Change Proposal Name
Plocate as the default locate implementation
mlocate program is replaced by
plocate — a compatible reimplementation that is faster and uses less disk space.
- Name: Zbigniew Jędrzejewski-Szmek
- Email: zbyszek at in.waw.pl
- Name: Michal Sekletár
- Email: msekleta at redhat.com
- Targeted release: Fedora Linux 36
- Last updated: 2021-11-22
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Plocate is a newer implementation of
mlocate that using
libzstd for speed.
The database it creates on disk is also smaller.
Debian recently switched to
plocate as the default implementation
It doesn't seem useful to maintain multiple locate implementations. Thus the new package Conflicts with the old one, so they cannot be installed in parallel.
The plan is:
plocateis made available for testing
mlocateis replaced by
- F37 or F38:
mlocatewill be retired (or given away, if somebody wants to pick it up)
Benefit to Fedora
We save some cpu cycles and disk sectors by using a more modern implementation of a common tool.
- Proposal owners:
mlocate(Review bug: https://bugzilla.redhat.com/show_bug.cgi?id=1931141, DONE)
- submit a pull request to comps with
- Other developers: install plocate locally and test if it works as expected on F35 and other versions
- Release engineering: n/a
- Policies and guidelines: n/a
- Trademark approval: n/a
- Alignment with Objectives: minimization: we save maybe a dozen MB of disk space (the exact amount varies by the number of files on disk)
The upgrade should be mostly invisible. It is possible that somebody might be relying on some very specific
mlocate behaviour or parsing the
mlocate database directly, but no such cases are currently known.
How To Test
sudo dnf install plocate --allowerasing)
- Wait for
plocate-updatedb.serviceto finish (
sudo systemctl start plocate-updatedb.service)
plocate -r <regexp>to search for files.
Users should not notice the difference. Installing plocate automatically removes mlocate. The new implementation is generally compatible with the old one in all common cases, and provides some additional options.
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
N/A (not a System Wide Change)
Plocate is now used as the default provider of /usr/bin/locate instead of mlocate.