glibc/glibc-localedef-handle-symlinks.patch
Arjun Shankar 024178b5e0 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.

Rawhide commit: a0bdca4f3f

Also:

 * locale: make install-locale-files instead of install-locales
   - Drop glibc-fedora-localedef.patch
   - Rawhide commit: cf979ff812

 * localedef: Handle symbolic links when generating locale-archive
   - Add glibc-localedef-handle-symlinks.patch
   - Upstream commit: ea89d5bbd9e5e514b606045d909e6ab87d851c88
2022-03-02 14:04:03 +01:00

28 lines
1.0 KiB
Diff

commit ea89d5bbd9e5e514b606045d909e6ab87d851c88
Author: Arjun Shankar <arjun@redhat.com>
Date: Thu Feb 24 21:43:09 2022 +0100
localedef: Handle symbolic links when generating locale-archive
Whenever locale data for any locale included symbolic links, localedef
would throw the error "incomplete set of locale files" and exclude it
from the generated locale archive. This commit fixes that.
Co-authored-by: Florian Weimer <fweimer@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index 45408c26c169ff05..eeb2fa6ffecd1dba 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -1397,7 +1397,7 @@ add_locales_to_archive (size_t nlist, char *list[], bool replace)
{
char fullname[fnamelen + 2 * strlen (d->d_name) + 7];
- if (d_type == DT_UNKNOWN)
+ if (d_type == DT_UNKNOWN || d_type == DT_LNK)
{
strcpy (stpcpy (stpcpy (fullname, fname), "/"),
d->d_name);