about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--fedora/glibc.spec.in15
-rw-r--r--fedora/glibc_post_upgrade.c12
2 files changed, 23 insertions, 4 deletions
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index d2963e1420..b0afaa3e04 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 99
+%define glibcrelease 1
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -524,7 +524,7 @@ $GCC -static -L. -Os ../fedora/glibc_post_upgrade.c -o glibc_post_upgrade.%{_tar
 %ifarch %{nptlarches}
     '-DLIBTLS="/%{_lib}/tls/"' \
 %endif
-    '-DGCONV_MODULES_CACHE="%{_prefix}/%{_lib}/gconv/gconv-modules.cache"' \
+    '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' \
     '-DLD_SO_CONF="/etc/ld.so.conf"'
 cd ..
 
@@ -1266,6 +1266,17 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Mon Dec 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.4-1
+- update from CVS
+  - glibc 2.3.4 release
+  - add -o and --nostdlib options to iconvconfig
+- if /sbin/ldconfig doesn't exist when running
+  glibc_post_upgrade.%%{_target_cpu}, just don't attempt to run it.
+  This can happen during first install of bi-arch glibc and the
+  other arch glibc's %post wil run /sbin/ldconfig (#143326)
+- use -o and --nostdlib options to create all needed
+  gconv-modules.cache files on bi-arch setups
+
 * Sun Dec 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-99
 - rebuilt
 
diff --git a/fedora/glibc_post_upgrade.c b/fedora/glibc_post_upgrade.c
index e0d0d082f2..4b7b806ee7 100644
--- a/fedora/glibc_post_upgrade.c
+++ b/fedora/glibc_post_upgrade.c
@@ -116,6 +116,12 @@ main (void)
       char linkbuf[64], *linkp;
       int linklen;
 
+      /* If installing bi-arch glibc, rpm sometimes doesn't unpack all files
+         before running one of the lib's %post scriptlet.  /sbin/ldconfig will
+         then be run by the other arch's %post.  */
+      if (access ("/sbin/ldconfig", X_OK))
+	break;
+
       verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig");
 
       rerun_ldconfig = 0;
@@ -151,9 +157,11 @@ main (void)
      }
   while (rerun_ldconfig && ++rerun_cnt < 2);
 
-  if (! utimes (GCONV_MODULES_CACHE, NULL))
+  if (! utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL))
     {
-      verbose_exec (113, "/usr/sbin/iconvconfig", "/usr/sbin/iconvconfig");
+      verbose_exec (113, "/usr/sbin/iconvconfig", "/usr/sbin/iconvconfig",
+		    "-o", GCONV_MODULES_DIR"/gconv-modules.cache",
+		    "--nostdlib", GCONV_MODULES_DIR);
     }
 
   /* Check if telinit is available and the init fifo as well.  */