m (→Scope) |
(Add trackers) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | ||
= | = Plocate as the default locate implementation = | ||
Plocate as the default locate implementation | |||
== Summary == | == Summary == | ||
Line 10: | Line 9: | ||
== Owner == | == Owner == | ||
* Name: [[User:Zbyszek| Zbigniew Jędrzejewski-Szmek]] | * Name: [[User:Zbyszek| Zbigniew Jędrzejewski-Szmek]], [[User:Msekleta| Michal Sekletár]] | ||
* Email: zbyszek at in.waw.pl, msekleta at redhat.com | |||
* Email: msekleta at redhat.com | |||
== Current status == | == Current status == | ||
[[Category: | [[Category:ChangeAcceptedF36]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | ||
Line 36: | Line 33: | ||
ON_QA -> change is fully code complete | ON_QA -> change is fully code complete | ||
--> | --> | ||
* FESCo issue: | * [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/WYS5LANEOA2W7MYCXDQDJTOMFOUZCYYK/ devel thread] | ||
* Tracker bug: | * FESCo issue: [https://pagure.io/fesco/issue/2705 #2705] | ||
* Release notes tracker: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2030710 #2030710] | ||
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/778 #778] | |||
== Detailed Description == | == Detailed Description == | ||
Plocate is a newer implementation of `locate`/`mlocate` | Fedora is currently using `mlocate` as the provider for the `locate` command. | ||
Plocate is a newer implementation of `locate`/`slocate`/`mlocate` using `liburing` and `libzstd` for speed. | |||
The database it creates on disk is also smaller. | The database it creates on disk is also smaller. | ||
Debian recently switched to `plocate` as the default implementation | Debian recently switched to `plocate` as the default implementation | ||
Line 47: | Line 46: | ||
It doesn't seem useful to maintain multiple locate implementations. | It doesn't seem useful to maintain multiple locate implementations. | ||
Thus the new package Conflicts with | Thus the new package Conflicts with `mlocate`, so they cannot be installed in parallel. | ||
The plan is: | The plan is: | ||
Line 63: | Line 62: | ||
* Proposal owners: | * Proposal owners: | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
** package ` | ** package `plocate` (Review bug: https://bugzilla.redhat.com/show_bug.cgi?id=1931141, DONE) | ||
** submit a pull request to comps with `s/mlocate/plocate/` | ** submit a pull request to comps with `s/mlocate/plocate/` | ||
Line 74: | Line 73: | ||
* Trademark approval: n/a | * Trademark approval: n/a | ||
* Alignment with Objectives: | * Alignment with Objectives: | ||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
The upgrade should be mostly invisible. It is possible that somebody might be relying on some very specific mlocate behaviour or | 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. | ||
Plocate indexes bind mounts by default, while mlocate did not ([https://bugzilla.redhat.com/show_bug.cgi?id=906591 bug 906591]). This is a bug fix / positive change in behaviour. | |||
== How To Test == | == How To Test == | ||
Line 85: | Line 86: | ||
== User Experience == | == User Experience == | ||
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. | 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. | ||
== Dependencies == | == Dependencies == | ||
Line 107: | Line 108: | ||
== Release Notes == | == Release Notes == | ||
`plocate` is now used as the default provider of `/usr/bin/locate` instead of `mlocate`. |
Latest revision as of 14:41, 9 December 2021
Plocate as the default locate implementation
Summary
The venerable mlocate
program is replaced by plocate
— a compatible reimplementation that is faster and uses less disk space.
Owner
- Name: Zbigniew Jędrzejewski-Szmek, Michal Sekletár
- Email: zbyszek at in.waw.pl, msekleta at redhat.com
Current status
- Targeted release: Fedora Linux 36
- Last updated: 2021-12-09
- devel thread
- FESCo issue: #2705
- Tracker bug: #2030710
- Release notes tracker: #778
Detailed Description
Fedora is currently using mlocate
as the provider for the locate
command.
Plocate is a newer implementation of locate
/slocate
/mlocate
using liburing
and libzstd
for speed.
The database it creates on disk is also smaller.
Debian recently switched to plocate
as the default implementation
(https://lwn.net/Articles/846405/).
It doesn't seem useful to maintain multiple locate implementations.
Thus the new package Conflicts with mlocate
, so they cannot be installed in parallel.
The plan is:
- F35:
plocate
is made available for testing - F36:
mlocate
is replaced byplocate
in comps - F37 or F38:
mlocate
will be retired (or given away, if somebody wants to pick it up)
Feedback
Benefit to Fedora
We save some cpu cycles and disk sectors by using a more modern implementation of a common tool.
Scope
- Proposal owners:
- package
plocate
(Review bug: https://bugzilla.redhat.com/show_bug.cgi?id=1931141, DONE) - submit a pull request to comps with
s/mlocate/plocate/
- package
- 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:
Upgrade/compatibility impact
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.
Plocate indexes bind mounts by default, while mlocate did not (bug 906591). This is a bug fix / positive change in behaviour.
How To Test
- Install
plocate
(sudo dnf install plocate --allowerasing
) - Wait for
plocate-updatedb.service
to finish (sudo systemctl start plocate-updatedb.service
) - Use
plocate pattern
orplocate -r <regexp>
to search for files.
User Experience
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.
Dependencies
None.
Contingency Plan
- 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
Documentation
N/A (not a System Wide Change)
Release Notes
plocate
is now used as the default provider of /usr/bin/locate
instead of mlocate
.