F35 Change: Gconv package split in glibc (System-Wide Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://fedoraproject.org/wiki/Changes/Gconv_package_split_in_glibc


== Summary ==
Most Gconv modules with the exception of unicode and similar essential
ones have been split into a separate package called glibc-gconv-extra.
Currently, the core package glibc has a strong (Requires) dependency
on glibc-gconv-extra making this change transparent to users. This
proposal is to weaken this dependency to Recommends so that it is
possible to remove glibc-gconv-extra from installations that do not
need it.

== Owner ==
* Name: [[User:siddhesh| Siddhesh Poyarekar]]
* Email: sipoyare@xxxxxxxxxx


== Detailed Description ==
The glibc-gconv-extra package contains all iconv converter plugins
except UTF-*, unicode, ISO-8859-1, ISO8859-15, CP1252 and ANSI_X3.110.
A number of minimal installations would typically not need all those
plugins and they can be removed without any ill effects to those
environments.  To achieve this, the glibc dependency on
glibc-gconv-extra needs to be weakened from Requires to Recommends.

Weakening the dependency of glibc on glibc-gconv-extra implies that
glibc-gconv-extra may not be pulled into certain installations by
default, e.g. in buildroots for package builds.  glibc-gconv-extra is
however necessary because a number of packages either run tests that
verify conversions between arbitrary character sets or need similar
functionality to convert character sets of files in the upstream
sources.  A method would have to be devised to ensure that
glibc-gconv-extra is available in buildroots. One option is to have
redhat-rpm-config Require glibc-gconv-extra as a way to ensure that
glibc-gconv-extra is in every buildroot, but better ideas are
desirable.

== Feedback ==
The change was made assuming that the weak dependency would be
sufficient to address compatibility but it was subsequently rolled
back when it was discovered that buildroots do not pull in weak
dependencies. Since the
[https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx/thread/JQTTSNHMSFV63KIDDPW4M7WV7CI6KZYW/
announcement on fedora-devel] the reception to the change idea itself
has been positive. There are compatibility concerns with respect to
buildroots and backward compatibility, which will be addressed.

== Benefit to Fedora ==
The ability to remove glibc-gconv-extra brings in two main benefits:

* Removal can save about 8MB in the installed size, which is an
advantage for minimal container images
* A number of the infrequently used modules have historically had bugs
that have been considered security issues.  Removing the
glibc-gconv-extra package is thus a hardening opportunity for UTF-8
clean environments.

== Scope ==
* Proposal owners:
The change required in glibc is minimal, requiring only spec file
changes to change dependencies.

* Other developers:
To allow glibc-gconv-extra to be installed in minimal koji buildroots,
redhat-rpm-config needs to be modified to depend on glibc-gconv-extra.
Alternatively, the buildroot definition needs to be altered somehow to
include glibc-gconv-extra.

If none of the above are feasible, package owners will need to add a
BuildRequires on glibc-gconv-extra if they need the extra converter
modules.  However this is the last option and should ideally be
avoided.

* Release engineering: [https://pagure.io/releng/issue/10176]
* 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 ==
1. Update glibc on an older system and verify that glibc-gconv-extra
gets updated by default
2. Update glibc on a system that has glibc-gconv-extra removed and
verify that glibc-gconv-extra is not pulled in
3. glibc downgrades should also have analogous behaviour
4. Build any package in mock or koji and verify that glibc-gconv-extra
is present in the buildroot

== User Experience ==
Minimal, UTF-8-only containers can be reduced by 8MB.

== Dependencies ==
If buildroot issues cannot be resolved through releng or a dependency
on redhat-rpm-config, a number of packages will need to be updated to
ensure that they build.  At this moment that list is unknown.

== Contingency Plan ==
* Contingency mechanism: glibc dependency on glibc-gconv-extra is
reverted to Requires
* Contingency deadline: 2021/08/24 (Beta freeze)
* Blocks release? No

== Documentation ==

Package split and its potential announced and discussed here:
https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx/thread/JQTTSNHMSFV63KIDDPW4M7WV7CI6KZYW/


-- 
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux