(→Scope) |
|||
Line 118: | Line 118: | ||
<!-- 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?--> | ||
** Update the gettext package in all Fedora branches including rawhide to add <code>Provides: gettext-tools</code> for forward compatibility | ** Update the gettext package in all Fedora branches including rawhide to add <code>Provides: gettext-tools</code> for forward compatibility | ||
** File bugs against packages that require gettext-tools at runtime and hence need to be updated to depend on it. | ** File bugs against packages that require gettext-tools or gettext-devel at runtime and hence need to be updated to depend on it. | ||
** Before the Mass Rebuild: | ** Before the Mass Rebuild: | ||
*** In Rawhide dist-git change all packages with <code>BuildRequires: gettext</code> to gettext-tools (this affects about 1100+ Fedora source packages) | *** In Rawhide dist-git change all packages with <code>BuildRequires: gettext</code> to gettext-tools (this affects about 1100+ Fedora source packages) |
Revision as of 11:19, 2 June 2022
Split Gettext Package
Summary
Moving the larger translation tools from the gettext base package into a separate tools sub-package.
Owner
- Name: Sundeep ANAND
- Email: suanand@redhat.com
- Name: Jens Petersen
- Email: petersen@redhat.com
Current status
- Targeted release: Fedora Linux 37
- Last updated: 2022-06-02
- FESCo issue:
- Tracker bug:
- Release notes tracker:
Detailed Description
Gettext is one of the core packages. Its installed on-disk size is about ~6.1 MB. A large number of packages directly or indirectly depend on it. Extracting "tools" from main gettext package into a separate sub-package would reduce the footprint by about ~4.7 MB on most normal installations.
After the split this should look like:
gettext package -------------------- compressed size: 172 kB uncompressed size: 749.6 kB gettext-tools subpackage ------------------------ compressed size: 1.0 MB uncompressed size: 4.7 MB As gettext depends on gettext-libs: gettext-libs subpackage ----------------------- compressed size: 322K uncompressed size: 933.7 kB
Grouping of binaries:
gettext: envsubst gettext gettext.sh ngettext gettext-tools: msgattrib msgcat msgcmp msgcomm msgconv msgen msgexec msgfilter msgfmt msggrep msginit msgmerge msgunfmt msguniq recode-sr-latin xgettext
Feedback
- initial devel thread floating the idea (April 2022)
Benefit to Fedora
Space saving of about ~4.7 MB for typical installations.
Scope
- Proposal owners:
- Update the gettext package in all Fedora branches including rawhide to add
Provides: gettext-tools
for forward compatibility - File bugs against packages that require gettext-tools or gettext-devel at runtime and hence need to be updated to depend on it.
- Before the Mass Rebuild:
- In Rawhide dist-git change all packages with
BuildRequires: gettext
to gettext-tools (this affects about 1100+ Fedora source packages) - Update the Rawhide gettext package to have the new gettext-tools subpackage, which pulls in the gettext base package (PR)
- In Rawhide dist-git change all packages with
- Before branching, complete updating any remaining
Requires: gettext
in packages, which require gexttext-tools at runtime and weren't updated in time by their package maintainers.
- Update the gettext package in all Fedora branches including rawhide to add
- Other developers:
- Packagers who own packages that have a direct runtime dependency on gettext (estimated to be not more than 30 packages) and actually need gettext-tools have to change their
Requires: gettext
to the newgettext-tools
subpackage in Rawhide (roughly around 10 Fedora packages). (This should be a safe change even if they really only actually requiregettext
.)
- Packagers who own packages that have a direct runtime dependency on gettext (estimated to be not more than 30 packages) and actually need gettext-tools have to change their
- Release engineering:
- Just need to confirm that all BuildRequires changes have landed in dist-git ahead of the mass rebuild.
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with Objectives:
Upgrade/compatibility impact
Both "gettext" and "gettext-tools" obsoletes earlier version of gettext.
So, on update both packages will get installed on systems having gettext. (preinstalled)
For current older Fedora releases gettext should Provides: gettext-tools
for forward compatibility.
How To Test
- test upgrades from F36 to F37
- test minimal/default installs continue to work as expected
- packages that depend on gettext continue to rebuild, install, and function normally
User Experience
User will see lighter gettext package and a new gettext-tools package.
Many of the desktop/web apps/libraries use gettext-tools. They would need to update their dependency to "gettext-tools" now. This subpackaging is also the recommended packaging by upstream and corresponds to Debian's gettext-base and gettext packages.
Dependencies
Packages which explicitly have a dependency on gettext need to check if they need programs provided by gettext-tool, and if so they need to update their dependency to "gettext-tools" from gettext.
Perhaps about ~26 packages require gettext and ~1115 packages have build dependency.
Furthermore, gettext-tools has a dependency to gettext.
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) Change owners will revert the relevant packages updated.
- (
Provides: gettext-tools
could be put back in the base package if necessary to simplify the reverting)
- (
- Contingency deadline: Beta freeze
- Blocks release? No
Documentation
https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=blob;f=PACKAGING
Release Notes
A gettext-tools package has been added to gettext to separate out the larger gettext translation utilities that are not commonly used at runtime.