Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release-src > by-pkgid > a4a0d1c8399898809d0c2e3f4ac34ae9 > files > 29

glibc-2.20-20.mga5.src.rpm

localedef --add-to-archive doesn't follow symbolic links, thus if you have any
locale with symlinked files to save disk space, for example:
/usr/share/locale/pt_BR/LC_CTYPE -> ../ISO-8859-1/LC_CTYPE
"localedef --add-to-archive /usr/share/locale/pt_BR" will not work, because
current locarchive.c code doesn't consider symlink case.

diff -p -up glibc-2.11.1/locale/programs/locarchive.c.orig glibc-2.11.1/locale/programs/locarchive.c
--- glibc-2.11.1/locale/programs/locarchive.c.orig	2010-04-08 14:10:46.515770746 -0300
+++ glibc-2.11.1/locale/programs/locarchive.c	2010-04-08 14:11:55.587520585 -0300
@@ -1323,7 +1323,7 @@ add_locales_to_archive (nlist, list, rep
 		      char fullname[fnamelen + 2 * strlen (d->d_name) + 7];
 
 #ifdef _DIRENT_HAVE_D_TYPE
-		      if (d_type == DT_UNKNOWN)
+		      if (d_type == DT_UNKNOWN || d_type == DT_LNK)
 #endif
 			{
 			  strcpy (stpcpy (stpcpy (fullname, fname), "/"),