From Fedora Project Wiki
(→‎Current status: ready for wrangling)
(Announcing the Change proposal)
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 -->


= Change Proposal Name =
= 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
* Email: zbyszek at in.waw.pl, msekleta at redhat.com
* Name: [[User:Msekleta| Michal Sekletár]]
* Email: msekleta at redhat.com






== Current status ==
== Current status ==
[[Category:ChangeReadyForWrangler]]
[[Category:ChangeAnnounced]]
<!-- 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
-->
-->
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/WYS5LANEOA2W7MYCXDQDJTOMFOUZCYYK/ devel thread]
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: <will be assigned by the Wrangler>
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: <will be assigned by the Wrangler>
Line 74: Line 72:
* Trademark approval: 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)
* Alignment with Objectives:  


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==

Revision as of 17:20, 23 November 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


Current status

  • Targeted release: Fedora Linux 36
  • Last updated: 2021-11-23
  • devel thread
  • 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>

Detailed Description

Plocate is a newer implementation of locate/mlocate that 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 the old one, so they cannot be installed in parallel.

The plan is:

  1. F35: plocate is made available for testing
  2. F36: mlocate is replaced by plocate in comps
  3. 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

  • 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.

How To Test

  1. Install plocate (sudo dnf install plocate --allowerasing)
  2. Wait for plocate-updatedb.service to finish (sudo systemctl start plocate-updatedb.service)
  3. Use plocate pattern or plocate -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.