Bug 2054789

Summary: locale: de-duplicate LC_CTYPE files in glibc-langpack-* by symlinking identical copies to C.utf8 variant
Product: Red Hat Enterprise Linux 9 Reporter: Arjun Shankar <ashankar>
Component: glibcAssignee: Arjun Shankar <ashankar>
Status: CLOSED ERRATA QA Contact: Sergey Kolosov <skolosov>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: ashankar, codonell, dj, fweimer, mnewsome, pfrankli, sipoyare, skolosov
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glibc-2.34-28.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 11:11:43 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Arjun Shankar 2022-02-15 17:26:32 UTC
LC_CTYPE for almost half the locales is identical to the one for C.utf8.  When building the glibc RPM, we hardlink identical files to save space, but when they get split across separate glibc-langpack-* RPMs, the content is duplicated and installed in duplicate for each langpack installed.

Fix this so that we generate symbolic links instead that get installed as-is by RPM.

This is a packaging change that has already been done in Fedora Rawhide.

Relevant commit:

commit a0bdca4f3f0b5d8fa83b94baa29aee593a6185d7
Author: Arjun Shankar <arjun>
Date:   Tue Feb 15 00:40:57 2022 +0100

    locale: symlink identical langpack LC_CTYPEs to the C.utf8 version
    
    Almost half the LC_CTYPE files in langpacks are identical to the C.utf8
    variant which is installed by default.  This commit converts these to
    symbolic links instead, saving ~350K of installed size per langpack.
    
    Reviewed-by: Florian Weimer <fweimer>


Additional nice-to-have commit:

commit cf979ff812591e7190025c9454ab73a9c31baa5b
Author: Arjun Shankar <arjun>
Date:   Thu Feb 10 12:00:48 2022 +0100

    locale: make install-locale-files instead of install-locales
    
    glibc-fedora-localedef.patch was altering the install-locales target so
    that it does not generate a locale-archive.
    
    This commit drops the patch and uses the install-locale-files target
    instead of install-locales.  install-locale-files does not generate
    locale-archive, and does not group identical locale files via hardlinks.
    
    hardlink is also passed a -c flag so that it actually compares file
    contents and hardlinks identical ones.

Comment 1 Florian Weimer 2022-02-22 14:04:48 UTC
*** Bug 2056991 has been marked as a duplicate of this bug. ***

Comment 7 errata-xmlrpc 2022-11-15 11:11:43 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (glibc bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:8272