Kaynağa Gözat

glibc: updated to 2.14.1

git-svn-id: http://trac.vinelinux.org/repos/projects/specs@5290 ec354946-7b23-47d6-9f5a-488ba84defc7
kenta 13 yıl önce
ebeveyn
işleme
978fce75fa
1 değiştirilmiş dosya ile 237 ekleme ve 157 silme
  1. 237 157
      g/glibc/glibc-vl.spec

+ 237 - 157
g/glibc/glibc-vl.spec

@@ -1,9 +1,13 @@
-%define glibcsrcdir glibc-2.11.1
-%define glibc_release_url ftp://sources.redhat.com/pub/glibc/releases/
-%define glibcversion 2.11.1
+%define glibcversion 2.14.1
+%define glibcsrcdir glibc-%{glibcversion}
+%define glibcportsdir glibc-ports-%{glibcversion}
+%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
 ### glibc.spec.in follows:
 %define run_glibc_tests 1
 %define auxarches athlon sparcv9v sparc64v alphaev6
+%if %{build_compat32}
+%define auxarches i586 athlon sparcv9 alphaev6
+%endif
 %define xenarches i686 athlon
 %ifarch %{xenarches}
 %define buildxen 1
@@ -12,30 +16,23 @@
 %define buildxen 0
 %define xenpackage 0
 %endif
-%ifarch ppc ppc64
-##VINE##%define buildpower6 1
-%define buildpower6 0
+%ifarch ppc64
+%define buildpower6 1
 %else
 %define buildpower6 0
 %endif
 %define rtkaioarches %{ix86} x86_64 ia64 ppc ppc64 s390 s390x
-%define debuginfocommonarches alpha alphaev6 sparc sparcv9 sparcv9v sparc64 sparc64v
-%if 0%{?rhel} >= 6
-%define multiarcharches ppc pp64 %{ix86} x86_64
-%else
-%define multiarcharches %{ix86} x86_64
-%endif
-%define _unpackaged_files_terminate_build 0
-%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
-%if %{build_compat32}
-%define auxarches i586 athlon sparcv9 alphaev6
-%endif
+%define biarcharches %{ix86} x86_64 ppc ppc64 s390 s390x
+%define debuginfocommonarches %{biarcharches} alpha alphaev6
+%define multiarcharches ppc ppc64 %{ix86} x86_64 %{sparc}
+# Remove -s to get verbose output.
+%define silentrules PARALLELMFLAGS=-s
 
 Summary: The GNU libc libraries
 Summary(ja): GNU libc ライブラリ
 Name: glibc
 Version: %{glibcversion}
-Release: 9%{?_dist_release}
+Release: 1%{?_dist_release}
 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
 # Things that are linked directly into dynamically linked programs
 # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -43,20 +40,19 @@ Release: 9%{?_dist_release}
 # libraries without restrictions.
 License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
 Group: System Environment/Libraries
-URL: http://sources.redhat.com/glibc/
-Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.bz2
-Source1: %{glibcsrcdir}-fedora.tar.bz2
+URL: http://www.gnu.org/software/glibc/
+Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.xz
+Source1: %{?glibc_release_url}%{glibcportsdir}.tar.xz
+Source2: %{glibcsrcdir}-fedora.tar.xz
 Source10: find_provides_glibc.sh
 Source11: find_requires_glibc.sh
 Patch0: %{name}-fedora.patch
-Patch1: %{name}-ia64-lib64.patch
-# updates or security fix
-Patch100: glibc-rh643822.patch
-Patch101: glibc-rh667974.patch 
-Patch102: glibc-rh625893.patch 
-Patch103: glibc-rh681054.patch 
-Patch104: glibc-rh645672.patch 
-
+Patch1: %{name}-%{version}-locarchive.patch
+Patch2: %{name}-%{version}-sysdep-ASFLAGS.patch
+Patch3: %{name}-%{version}-locales-dir.patch
+# Patch4: %{name}-no-leaf-attribute.patch
+# Patch5: %{name}-arenalock.patch
+# Patch6: %{name}-rh757881.patch
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Obsoletes: glibc-profile < 2.4
 Provides: ldconfig
@@ -73,6 +69,8 @@ BuildRequires: /bin/ps, /bin/kill, /bin/awk
 # This is to ensure that __frame_state_for is exported by glibc
 # will be compatible with egcs 1.x.y
 BuildRequires: gcc >= 3.2
+%define enablekernel 2.6.32
+Conflicts: kernel < %{enablekernel}
 %define enablekernel 2.6.18
 %ifarch i386
 %define nptl_target_cpu i486
@@ -131,7 +129,7 @@ glibc パッケージはシステム上の複数のプログラムで使われ
 Summary: The GNU libc libraries.
 Summary(ja): GNU libc ライブラリ
 Group: System Environment/Libraries
-Requires: %{name} >= %{version}
+Requires: %{name} >= %{version}-%{release}
 
 %description -n compat32-%{name}
 The glibc package contains standard libraries which are used by
@@ -197,7 +195,7 @@ glibc-devel パッケージには (ほとんどすべてのプログラムで使
 Summary: Object files for development using standard C libraries.
 Summary(ja): 標準 C ライブラリで使われるオブジェクトファイル
 Group: Development/Libraries
-Requires: %{name}-devel >= %{version}
+Requires: %{name}-devel = %{version}-%{release}
 Requires: compat32-%{name} = %{version}-%{release}
 
 %description -n compat32-%{name}-devel
@@ -282,7 +280,7 @@ executables.
 Install glibc-headers if you are going to develop programs which will
 use the standard C libraries.
 
-%description devel -l ja
+%description headers -l ja
 glibc-headers パッケージには (ほとんどすべてのプログラムで使われる)
 標準 C ライブラリを使用したプログラムを開発するためのヘッダーファイルが
 含まれます。標準 C ライブラリを使用するプログラムを開発する場合には、
@@ -327,6 +325,7 @@ glibc-common-extra パッケージには GNU libc ライブラリ用の英語と
 Summary: A Name Service Caching Daemon (nscd).
 Summary(ja): ネームサービスキャッシングデーモン (nscd)
 Group: System Environment/Daemons
+Requires: %{name} = %{version}-%{release}
 Requires: audit-libs >= 1.1.3
 Requires(pre): /sbin/chkconfig, /usr/sbin/useradd, /usr/sbin/userdel, sh-utils
 
@@ -403,19 +402,13 @@ package or when debugging this package.
 %endif
 
 %prep
-%setup -q -n %{glibcsrcdir} -b1
-%patch0 -E -p1
-%ifarch ia64
-%if "%{_lib}" == "lib64"
+rm -rf %{glibcportsdir}
+%setup -q -n %{glibcsrcdir} -b1 -b2
+# %patch0 -E -p1
 %patch1 -p1
-%endif
-%endif
-
-%patch100 -p1 -b .CVE-2011-0536-1
-%patch101 -p1 -b .CVE-2011-0536-2
-%patch102 -p1 -b .CVE-2011-1095
-%patch103 -p1 -b .CVE-2011-1071
-%patch104 -p1 -b .CVE-2010-3856
+%patch2 -p1
+%patch3 -p1
+# %patch4 -p1
 
 # A lot of programs still misuse memcpy when they have to use
 # memmove. The memcpy implementation below is not tolerant at
@@ -503,16 +496,20 @@ shift
 rm -rf $builddir
 mkdir $builddir ; cd $builddir
 build_CFLAGS="$BuildFlags -g -O3 $*"
-../configure CC="$GCC" CXX="$GXX" CFLAGS="$build_CFLAGS" \
+# Some configure checks can spuriously fail for some architectures if
+# unwind info is present
+configure_CFLAGS="$build_CFLAGS -fno-asynchronous-unwind-tables"
+../configure CC="$GCC" CXX="$GXX" CFLAGS="$configure_CFLAGS" \
 	--prefix=%{_prefix} \
-	--enable-add-ons=nptl$AddOns --without-cvs $EnableKernel \
+	--enable-add-ons=../%{glibcportsdir},nptl$AddOns $EnableKernel \
 	--with-headers=%{_prefix}/include --enable-bind-now \
-	--with-tls --with-__thread --build %{nptl_target_cpu}-vine-linux \
+	--build %{nptl_target_cpu}-vine-linux \
 	--host %{nptl_target_cpu}-vine-linux \
 %ifarch %{multiarcharches}
 	--enable-multi-arch \
 %endif
-	--disable-profile --enable-experimental-malloc --enable-nss-crypt
+	--disable-profile --enable-nss-crypt ||
+{ cat config.log; false; }
 
 make %{?_smp_mflags} -r CFLAGS="$build_CFLAGS" PARALLELMFLAGS=-s
 
@@ -549,9 +546,6 @@ build_nptl linuxnptl-power6
 cd build-%{nptl_target_cpu}-linuxnptl
 $GCC -static -L. -Os -g ../fedora/glibc_post_upgrade.c -o glibc_post_upgrade.%{_target_cpu} \
   -DNO_SIZE_OPTIMIZATION \
-%ifarch i386 i486 i586
-  -DARCH_386 \
-%endif
   '-DLIBTLS="/%{_lib}/tls/"' \
   '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' \
   '-DLD_SO_CONF="/etc/ld.so.conf"' \
@@ -564,6 +558,7 @@ GCC=`cat Gcc`
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT
 make -j1 install_root=$RPM_BUILD_ROOT install -C build-%{nptl_target_cpu}-linuxnptl PARALLELMFLAGS=-s
+chmod +x $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown
 %ifnarch %{auxarches}
 cd build-%{nptl_target_cpu}-linuxnptl && \
   make %{?_smp_mflags} install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` && \
@@ -573,7 +568,7 @@ cd build-%{nptl_target_cpu}-linuxnptl && \
 librtso=`basename $RPM_BUILD_ROOT/%{_lib}/librt.so.*`
 
 %ifarch %{rtkaioarches}
-rm -f $RPM_BUILD_ROOT{,%{_prefix}}/%{_lib}/librtkaio.so*
+rm -f $RPM_BUILD_ROOT{,%{_prefix}}/%{_lib}/librtkaio.*
 rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/librt.so.*
 mkdir -p $RPM_BUILD_ROOT/%{_lib}/rtkaio
 mv $RPM_BUILD_ROOT/%{_lib}/librtkaio-*.so $RPM_BUILD_ROOT/%{_lib}/rtkaio/
@@ -671,18 +666,11 @@ install -p -m 644 fedora/nsswitch.conf $RPM_BUILD_ROOT/etc/nsswitch.conf
 mkdir -p $RPM_BUILD_ROOT/etc/default
 install -p -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/nss
 
-# Take care of setuids
-# -- new security review sez that this shouldn't be needed anymore
-#chmod 755 $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown
-
 # This is for ncsd - in glibc 2.2
 install -m 644 nscd/nscd.conf $RPM_BUILD_ROOT/etc
 mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
 install -m 755 nscd/nscd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nscd
 
-# Don't include ld.so.cache
-rm -f $RPM_BUILD_ROOT/etc/ld.so.cache
-
 # Include ld.so.conf
 echo 'include ld.so.conf.d/*.conf' > $RPM_BUILD_ROOT/etc/ld.so.conf
 > $RPM_BUILD_ROOT/etc/ld.so.cache
@@ -690,6 +678,7 @@ chmod 644 $RPM_BUILD_ROOT/etc/ld.so.conf
 mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
 mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
 > $RPM_BUILD_ROOT/etc/sysconfig/nscd
+> $RPM_BUILD_ROOT/etc/gai.conf
 
 # Include %{_prefix}/%{_lib}/gconv/gconv-modules.cache
 > $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gconv/gconv-modules.cache
@@ -739,8 +728,6 @@ rm -f ${RPM_BUILD_ROOT}/%{_lib}/libnss-*.so.1
 # Ugly hack for buggy rpm
 ln -f ${RPM_BUILD_ROOT}%{_sbindir}/iconvconfig{,.%{_target_cpu}}
 
-rm -f $RPM_BUILD_ROOT/etc/gai.conf
-
 # In F7+ this is provided by rpcbind rpm
 rm -f $RPM_BUILD_ROOT%{_sbindir}/rpcinfo
 
@@ -769,7 +756,7 @@ rm -f $RPM_BUILD_ROOT%{_sbindir}/rpcinfo
   # languages very well, temporarily disable
   LIB_LANG=''
   sed -e "$LIB_LANG" -e "$SHARE_LANG" \
-      -e '\,/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\),d' \
+      -e '\,/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\|rpc\|gai\.conf\),d' \
       -e '\,/%{_lib}/lib\(pcprofile\|memusage\)\.so,d' \
       -e '\,bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d'
 } | sort > rpm.filelist
@@ -811,11 +798,10 @@ sed -i -e '\|%{_prefix}/%{_lib}/lib.*\.a|d' \
        -e '\|nscd|d' rpm.filelist
 
 grep '%{_prefix}/bin' < rpm.filelist >> common.filelist
-#grep '%{_prefix}/lib/locale' < rpm.filelist | grep -v /locale-archive.tmpl >> common.filelist
-#grep '%{_prefix}/libexec/pt_chown' < rpm.filelist >> common.filelist
 grep '%{_prefix}/sbin/[^gi]' < rpm.filelist >> common.filelist
 grep '%{_prefix}/share' < rpm.filelist | \
-  grep -v '%{_prefix}/share/zoneinfo' >> common.filelist
+  grep -v -e '%{_prefix}/share/zoneinfo' -e '%%dir %{prefix}/share' \
+       >> common.filelist
 
 sed -i -e '\|%{_prefix}/bin|d' \
        -e '\|%{_prefix}/lib/locale|d' \
@@ -830,12 +816,15 @@ sed -i -e '\|/%{_lib}/%{nosegneg_subdir}|d' rpm.filelist
 %endif
 
 echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist
-echo '%{_prefix}/sbin/tzdata-update' >> common.filelist
+# Convert tzdata-update to lua
+# echo '%{_prefix}/sbin/tzdata-update' >> common.filelist
 echo '%{_prefix}/sbin/nscd' > nscd.filelist
 
-cat > utils.filelist <<EOF
+cat >> rpm.filelist <<EOF
 %{_prefix}/%{_lib}/libmemusage.so
 %{_prefix}/%{_lib}/libpcprofile.so
+EOF
+cat > utils.filelist <<EOF
 %{_prefix}/bin/memusage
 %{_prefix}/bin/memusagestat
 %{_prefix}/bin/mtrace
@@ -847,8 +836,6 @@ EOF
 rm -f $RPM_BUILD_ROOT/etc/localtime
 ##VINE##cp -f $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/localtime
 cp -f $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo/Asia/Tokyo $RPM_BUILD_ROOT/etc/localtime
-##VINE###ln -sf ..%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/localtime
-#ln -sf ..%{_prefix}/share/zoneinfo/Asia/Tokyo $RPM_BUILD_ROOT/etc/localtime
 
 rm -rf $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo
 
@@ -858,15 +845,17 @@ touch -r timezone/northamerica $RPM_BUILD_ROOT/etc/localtime
 touch -r sunrpc/etc.rpc $RPM_BUILD_ROOT/etc/rpc
 
 cd fedora
-$GCC -Os -g -static -o build-locale-archive build-locale-archive.c \
+$GCC -Os -g -o build-locale-archive build-locale-archive.c \
   ../build-%{nptl_target_cpu}-linuxnptl/locale/locarchive.o \
   ../build-%{nptl_target_cpu}-linuxnptl/locale/md5.o \
   -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \
-  -L../build-%{nptl_target_cpu}-linuxnptl
+  -L../build-%{nptl_target_cpu}-linuxnptl \
+  -B../build-%{nptl_target_cpu}-linuxnptl/csu/ -lc -lc_nonshared
 install -m 700 build-locale-archive $RPM_BUILD_ROOT/usr/sbin/build-locale-archive
-$GCC -Os -g -static -o tzdata-update tzdata-update.c \
-  -L../build-%{nptl_target_cpu}-linuxnptl
-install -m 700 tzdata-update $RPM_BUILD_ROOT/usr/sbin/tzdata-update
+# Convert tzdata-update to lua
+# $GCC -Os -g -static -o tzdata-update tzdata-update.c \
+#   -L../build-%{nptl_target_cpu}-linuxnptl
+# install -m 700 tzdata-update $RPM_BUILD_ROOT/usr/sbin/tzdata-update
 cd ..
 
 # the last bit: more documentation
@@ -963,13 +952,15 @@ eu-readelf -hS $RPM_BUILD_ROOT/usr/bin/getconf $RPM_BUILD_ROOT/usr/libexec/getco
 
 find_debuginfo_args='--strict-build-id -g'
 %ifarch %{debuginfocommonarches}
+echo %{_prefix}/libexec/pt_chown > workaround.filelist
 find_debuginfo_args="$find_debuginfo_args \
-  -l common.filelist -l utils.filelist -l nscd.filelist \
+  -l common.filelist -l utils.filelist -l nscd.filelist -l workaround.filelist \
+  -p '.*/(sbin|libexec)/.*' \
   -o debuginfocommon.filelist \
   -l rpm.filelist -l nosegneg.filelist \
 "
 %endif
-/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
+eval /usr/lib/rpm/find-debuginfo.sh "$find_debuginfo_args" -o debuginfo.filelist
 
 list_debug_archives()
 {
@@ -1002,21 +993,11 @@ egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist
 
 egrep -v "$auxarches_debugsources" \
   debuginfocommon.sources >> debuginfocommon.filelist
-%ifnarch %{auxarches}
-# non-aux arches when there is a debuginfo-common
-# all the sources go into debuginfo-common
-#cat debuginfocommon.sources >> debuginfocommon.filelist
+
 %endif
 
 list_debug_archives >> debuginfocommon.filelist
 
-%else
-
-# already found by find-debuginfo
-#list_debug_archives >> debuginfo.filelist
-
-%endif
-
 %endif
 
 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
@@ -1029,6 +1010,7 @@ sed -e '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //;s#^/*##' \
     common.filelist devel.filelist static.filelist headers.filelist \
     utils.filelist nscd.filelist debuginfocommon.filelist |
 (cd $RPM_BUILD_ROOT; xargs --no-run-if-empty rm -f 2> /dev/null || :)
+rm -f $RPM_BUILD_ROOT%{_prefix}/libexec/pt_chown
 
 %else
 
@@ -1039,12 +1021,19 @@ touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid}
 
 %ifnarch %{auxarches}
 > $RPM_BUILD_ROOT/%{_prefix}/lib/locale/locale-archive
-#> $RPM_BUILD_ROOT/%{_prefix}/lib/locale/locale-archive.tmpl
 %endif
 
 mkdir -p $RPM_BUILD_ROOT/var/cache/ldconfig
 > $RPM_BUILD_ROOT/var/cache/ldconfig/aux-cache
 
+%pre -p <lua>
+-- Check that the running kernel is new enough
+required = '%{enablekernel}'
+rel = posix.uname("%r")
+if rpm.vercmp(rel, required) < 0 then
+  error("FATAL: kernel too old", 0)
+end
+
 %post -p /usr/sbin/glibc_post_upgrade.%{_target_cpu}
 
 %postun -p /sbin/ldconfig
@@ -1053,22 +1042,105 @@ mkdir -p $RPM_BUILD_ROOT/var/cache/ldconfig
 
 %postun -n compat32-%{name} -p /sbin/ldconfig
 
-%post common
-/usr/sbin/build-locale-archive
-
-%triggerin common -p /usr/sbin/tzdata-update -- tzdata
-
-%post common-extra
-cp -f /usr/lib/locale/locale-archive-extra.tmpl /usr/lib/locale/locale-archive.tmpl
-/usr/sbin/build-locale-archive
-
-%postun common-extra
-cp -f /usr/lib/locale/locale-archive-ja.tmpl /usr/lib/locale/locale-archive.tmpl
-/usr/sbin/build-locale-archive
+%triggerin common -p <lua> -- glibc
+if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
+  pid = posix.fork()
+  if pid == 0 then
+    posix.exec("%{_prefix}/sbin/build-locale-archive")
+  elseif pid > 0 then
+    posix.wait(pid)
+  end
+end
+
+%post common -p <lua>
+if posix.access("/etc/ld.so.cache") then
+  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
+    pid = posix.fork()
+    if pid == 0 then
+      posix.exec("%{_prefix}/sbin/build-locale-archive")
+    elseif pid > 0 then
+      posix.wait(pid)
+    end
+  end
+end
+
+%triggerin common -p <lua> -- tzdata
+function update (filename, new_data)
+  local fd = io.open(filename)
+  if not fd then return end
+  local data = fd:read("*a")
+  fd:close()
+  if not data then return end
+  -- Don't update the file unnecessarily.
+  if data == new_data then return end
+  local tempfilename = filename .. ".tzupdate"
+  fd = io.open(tempfilename, "w")
+  if not fd then return end
+  fd:write(new_data)
+  fd:close()
+  posix.chmod(tempfilename, 0644)
+  if not os.rename(tempfilename, filename) then
+    os.remove(tempfilename)
+  end
+end
+fd = io.open("/etc/sysconfig/clock")
+if not fd then return end
+zonename = nil
+for l in fd:lines() do
+  zone = string.match(l, "^[ \t]*ZONE[ \t]*=[ \t]*\"?([^ \t\n\"]*)");
+  if zone then
+    zonename = "/usr/share/zoneinfo/" .. zone
+    break
+  end
+end
+fd:close()
+if not zonename then return end
+fd = io.open(zonename)
+if not fd then return end
+data = fd:read("*a")
+fd:close()
+if not data then return end
+update("/etc/localtime", data)
+update("/var/spool/postfix/etc/localtime", data)
+
+%post common-extra -p <lua>
+-- cp -f /usr/lib/locale/locale-archive-extra.tmpl /usr/lib/locale/locale-archive.tmpl
+if posix.access("/etc/ld.so.cache") then
+  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
+    pid = posix.fork()
+    if pid == 0 then
+      posix.exec("%{_prefix}/sbin/build-locale-archive")
+    elseif pid > 0 then
+      posix.wait(pid)
+    end
+  end
+end
+
+%postun common-extra -p <lua>
+posix.exec("cp -f /usr/lib/locale/locale-archive-ja.tmpl /usr/lib/locale/locale-archive.tmpl")
+if posix.access("/etc/ld.so.cache") then
+  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
+    pid = posix.fork()
+    if pid == 0 then
+      posix.exec("%{_prefix}/sbin/build-locale-archive")
+    elseif pid > 0 then
+      posix.wait(pid)
+    end
+  end
+end
 
 %triggerun -- common-extra
-cp -f /usr/lib/locale/locale-archive-ja.tmpl /usr/lib/locale/locale-archive.tmpl
-/usr/sbin/build-locale-archive
+posix.exec("cp -f /usr/lib/locale/locale-archive-ja.tmpl /usr/lib/locale/locale-archive.tmpl")
+if posix.access("/etc/ld.so.cache") then
+  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
+    pid = posix.fork()
+    if pid == 0 then
+      posix.exec("%{_prefix}/sbin/build-locale-archive")
+    elseif pid > 0 then
+      posix.wait(pid)
+    end
+  end
+end
 
 %post devel
 /sbin/install-info %{_infodir}/libc.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
@@ -1089,15 +1161,17 @@ fi
 %postun utils -p /sbin/ldconfig
 
 %pre -n nscd
-/usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
-  -c "NSCD Daemon" -u 28 nscd > /dev/null 2>&1 || :
+getent group nscd >/dev/null || /usr/sbin/groupadd -g 28 -r nscd
+getent passwd nscd >/dev/null ||
+  /usr/sbin/useradd -M -o -r -d / -s /sbin/nologin \
+		    -c "NSCD Daemon" -u 28 -g nscd nscd
 
 %post -n nscd
 /sbin/chkconfig --add nscd
 
 %preun -n nscd
 if [ $1 = 0 ] ; then
-  service nscd stop > /dev/null 2>&1
+  /sbin/service nscd stop > /dev/null 2>&1
   /sbin/chkconfig --del nscd
 fi
 
@@ -1152,18 +1226,21 @@ rm -f *.filelist*
 %verify(not md5 size mtime) %config(noreplace) /etc/localtime
 %verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf
 %verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf
+%verify(not md5 size mtime) %config(noreplace) /etc/rpc
 %dir /etc/ld.so.conf.d
 %dir %{_prefix}/libexec/getconf
 %dir %{_prefix}/%{_lib}/gconv
 %dir %attr(0700,root,root) /var/cache/ldconfig
 %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache
 %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache
+%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/gai.conf
 %doc README NEWS INSTALL FAQ BUGS NOTES PROJECTS CONFORMANCE
 %doc COPYING COPYING.LIB README.libm LICENSES
 %doc hesiod/README.hesiod
 
 %if %{build_compat32}
 %files -f rpm.filelist -n compat32-%{name}
+%defattr(-,root,root)
 %ifarch %{rtkaioarches}
 %dir /%{_lib}/rtkaio
 %endif
@@ -1175,10 +1252,6 @@ rm -f *.filelist*
 %dir /%{_lib}/rtkaio/%{nosegneg_subdir}
 %endif
 %endif
-%exclude /etc
-%exclude /sbin
-%exclude %{_prefix}/sbin/iconvconfig
-#%exclude %{_prefix}/share
 %endif
 
 %if %{xenpackage}
@@ -1256,6 +1329,13 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Sat Dec 17 2011 NAKAMURA Kenta <kenta@vinelinux.org> 2.14.1-1
+- updated to 2.14.1
+- converted tzdata-update to lua (Red Hat Bugzilla – Bug 729796)
+- dropped obsolete CVE patches
+- update glibc-fedora.patch (glibc-2.14.90-20.fc17) for reference
+- added patch1, 2 and 3 based on glibc-fedora.patch
+
 * Sun Jul 10 2011 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 2.11.1-9
 - add patch100,101 for fix CVE-2011-0536
 - add patch102 for fix CVE-2011-1095
@@ -1714,7 +1794,7 @@ rm -f *.filelist*
   - concurrent IPv4 and IPv6 DNS lookups by getaddrinfo
 
 * Mon May  5 2008 Jakub Jelinek <jakub@redhat.com> 2.8-3
-- don't run telinit u in %post if both /dev/initctl and
+- don't run telinit u in %%post if both /dev/initctl and
   /sbin/initctl exist (#444978)
 - workaround GCC ppc64 miscompilation of c{log{,10},acosh,atan}l
   (#444996)
@@ -1739,7 +1819,7 @@ rm -f *.filelist*
 - update to trunk
   - misc fixes (BZ#4314, BZ#4407, BZ#5209, BZ#5436, BZ#5768, BZ#5998,
 		BZ#6024)
-- restart sshd in %post when upstart is used - it doesn't have
+- restart sshd in %%post when upstart is used - it doesn't have
   /dev/initctl (#441763)
 - disable assert checking again
 
@@ -1869,9 +1949,9 @@ rm -f *.filelist*
 * Tue Sep 18 2007 Jakub Jelinek <jakub@redhat.com> 2.6.90-14
 - -D_FORTIFY_SOURCE{,=2} support for C++
 - fortification of fread{,_unlocked}
-- support *scanf m allocation modifier (%ms, %mls, %mc, ...)
+- support *scanf m allocation modifier (%%ms, %%mls, %%mc, ...)
 - in -std=c99 or -D_XOPEN_SOURCE=600 mode don't recognize
-  %as, %aS and %a[ as a GNU extension for *scanf
+  %%as, %%aS and %%a[ as a GNU extension for *scanf
 - fix splice, vmsplice, tee return value, make them cancellation
   points
 - mq_open checking
@@ -1956,7 +2036,7 @@ rm -f *.filelist*
 - fix LD_AUDIT=a:b program (#180432)
 - don't crash on pseudo-zero long double values passed to
   *printf on i?86/x86_64/ia64 (BZ#4586)
-- fix *printf %La and strtold with some hexadecimal floating point
+- fix *printf %%La and strtold with some hexadecimal floating point
   constants on ppc/ppc64
 - fix nextafterl on ppc/ppc64
 - fix sem_timedwait on i?86 and x86_64
@@ -1992,10 +2072,10 @@ rm -f *.filelist*
 
 * Fri May  4 2007 Jakub Jelinek <jakub@redhat.com> 2.5.90-22
 - add transliteration for <U2044> (BZ#3213)
-- fix *scanf with %f on hexadecimal floats without exponent (BZ#4342)
-- fix *printf with very large precisions for %s (#238406, BZ#4438)
+- fix *scanf with %%f on hexadecimal floats without exponent (BZ#4342)
+- fix *printf with very large precisions for %%s (#238406, BZ#4438)
 - fix inet_ntop size checking for AF_INET (BZ#4439)
-- for *printf %e avoid 1.000e-00, for exponent 0 always use + sign (#238431)
+- for *printf %%e avoid 1.000e-00, for exponent 0 always use + sign (#238431)
 - fix a regression introduced in #223467 changes
 - gethostby*_r alignment fixes (BZ#4381)
 - fix ifaddrs error handling
@@ -2008,14 +2088,14 @@ rm -f *.filelist*
   then unlink the locale-archive template - this should save
   > 80MB of glibc-common occupied disk space
 - fix _XOPEN_VERSION (BZ#4364)
-- fix printf with %g and values tiny bit smaller than 1.e-4 (#235864,
+- fix printf with %%g and values tiny bit smaller than 1.e-4 (#235864,
   BZ#4362)
 - fix NIS+ __nisfind_server (#235229)
 
 * Sat Mar 31 2007 Jakub Jelinek <jakub@redhat.com> 2.5.90-20
 - assorted NIS+ speedups (#223467)
 - fix HAVE_LIBCAP configure detection (#178934)
-- remove %{_prefix}/sbin/rpcinfo from glibc-common (#228894)
+- remove %%{_prefix}/sbin/rpcinfo from glibc-common (#228894)
 - nexttoward*/nextafter* fixes (BZ#3306)
 - feholdexcept/feupdateenv fixes (BZ#3427)
 - speed up fnmatch with two or more * in the pattern
@@ -2050,7 +2130,7 @@ rm -f *.filelist*
 - fix application crashes when doing NSS lookups through nscd
   mmapped databases and nscd decides to start garbage collection
   during the lookups (#219145, #225315)
-- fix %0lld printing of 0LL on 32-bit architectures (BZ#3902)
+- fix %%0lld printing of 0LL on 32-bit architectures (BZ#3902)
 - ignore errors from install-info in glibc-devel scriptlets
   (#223691)
 
@@ -2103,7 +2183,7 @@ rm -f *.filelist*
   in __libc_start_main instead)
 - add unwind info for x86-64 restore_rt signal return landing pad
   (#217087)
-- add power6x subdir to /%{_lib}/ and /%{_lib}/rtkaio/,
+- add power6x subdir to /%%{_lib}/ and /%%{_lib}/rtkaio/,
   link all libs from ../power6/* into them
 
 * Tue Nov 28 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-8
@@ -2136,7 +2216,7 @@ rm -f *.filelist*
 * Fri Nov  3 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-4
 - fix atexit backwards compatibility (#213388)
 - add mai_IN locale (#213415)
-- remove bogus %{_libdir}/librt.so.1 symlink (#213555)
+- remove bogus %%{_libdir}/librt.so.1 symlink (#213555)
 - fix memusage (#213656)
 - change libc.info category (#209493)
 
@@ -2186,7 +2266,7 @@ rm -f *.filelist*
   AT_PLATFORM
 - fix ppc{32,64} libSegFault.so
 - use -mtune=generic even for glibc-devel.i386 (#206437)
-- fix /%{_lib}/librt.so.1 symlink
+- fix /%%{_lib}/librt.so.1 symlink
 
 * Fri Sep 15 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-32
 - on ppc* use just AT_PLATFORM and altivec AT_HWCAP bit for library selection
@@ -2200,7 +2280,7 @@ rm -f *.filelist*
 - fix mktime on 32-bit arches a few years after 2038 (BZ#2821)
 
 * Thu Sep  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4.90-30
-- add librtkaio, to use it add /%{lib}/rtkaio to your
+- add librtkaio, to use it add /%%{lib}/rtkaio to your
   LD_LIBRARY_PATH or /etc/ld.so.conf
 - fix or_IN February name (#204730)
 - fix pthread_create called from cancellation handlers (BZ#3124)
@@ -2531,7 +2611,7 @@ rm -f *.filelist*
 
 * Thu Oct 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-15
 - update from CVS
-  - be permissive in %n check because of kernel bug #165351 (#171240)
+  - be permissive in %%n check because of kernel bug #165351 (#171240)
   - don't misalign stack in pthread_once on x86_64 (#170786, IT#81521)
   - many locale fixes
 
@@ -2703,15 +2783,15 @@ rm -f *.filelist*
   - fix linuxthreads clocks
 - put xen libs into the glibc-2*.i686 package instead of a separate one
 - fix librt.so symlink in linuxthreads-devel
-- do not include linuxthreads-devel on %{auxarches},
+- do not include linuxthreads-devel on %%{auxarches},
   just on the base architectures
 
 * Wed Apr 27 2005 Jakub Jelinek <jakub@redhat.com> 2.3.5-2
 - update from CVS
   - with MALLOC_CHECK_=N N>0 (#153003)
   - fix recursive dlclose (#154641)
-  - handle %z in strptime (#154804)
-  - automatically append /%{_lib}/obsolete/linuxthreads/
+  - handle %%z in strptime (#154804)
+  - automatically append /%%{_lib}/obsolete/linuxthreads/
     to standard library search path if LD_ASSUME_KERNEL=N N <= 2.4.19
     or for glibc 2.0 binaries (or broken ones that don't use errno/h_errno
     properly).  Warning: all those will stop working when LinuxThreads
@@ -2738,9 +2818,9 @@ rm -f *.filelist*
 - fix <pthread.h> and <bits/libc-lock.h> with -std=c89 -fexceptions (#153774)
 
 * Mon Apr  4 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-20
-- move LinuxThreads libraries to /%{_lib}/obsolete/linuxthreads/
-  and NPTL libraries to /%{_lib}.  To run a program against LinuxThreads,
-  LD_ASSUME_KERNEL=2.4.xx LD_LIBRARY_PATH=/%{_lib}/obsolete/linuxthreads/
+- move LinuxThreads libraries to /%%{_lib}/obsolete/linuxthreads/
+  and NPTL libraries to /%%{_lib}.  To run a program against LinuxThreads,
+  LD_ASSUME_KERNEL=2.4.xx LD_LIBRARY_PATH=/%%{_lib}/obsolete/linuxthreads/
   is now needed
 - bzip2 ChangeLog* files instead of gzipping them
 
@@ -2750,9 +2830,9 @@ rm -f *.filelist*
   - fix initgroups (BZ#661)
 - kill nptl-devel subpackage, add linuxthreads-devel,
   compile and link by default against NPTL and only with
-  -I/usr/include/linuxthreads -L/usr/%{_lib}/linuxthreads
+  -I/usr/include/linuxthreads -L/usr/%%{_lib}/linuxthreads
   against LinuxThreads
-- package /usr/lib/debug/%{_lib}/tls/i{5,6}86 symlinks in
+- package /usr/lib/debug/%%{_lib}/tls/i{5,6}86 symlinks in
   i386 glibc-debuginfo
 - limit number of ChangeLog* files in glibc-common %%doc
   to last 2.5 years of changes only to save space
@@ -2781,14 +2861,14 @@ rm -f *.filelist*
   - with -D_FORTIFY_SOURCE=*, avoid defining read and a bunch of others
     as function-like macros, there are too many broken programs
     out there
-- add %%dir %{_prefix}/%{_lib}/gconv to glibc's file list (#151372)
+- add %%dir %%{_prefix}/%%{_lib}/gconv to glibc's file list (#151372)
 
 * Sun Mar  6 2005 Roland McGrath <roland@redhat.com> 2.3.4-14
 - fix bits/socket2.h macro typos
 
 * Sat Mar  5 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-12
 - fix tst-chk{2,3}
-- fix up AS_NEEDED directive in /usr/%{_lib}/libc.so
+- fix up AS_NEEDED directive in /usr/%%{_lib}/libc.so
 - BuildReq binutils >= 2.15.94.0.2-1 for AS_NEEDED, in
   glibc-devel Conflict with binutils < 2.15.94.0.2-1
 
@@ -2840,9 +2920,9 @@ rm -f *.filelist*
   - change regex \B handling to match old GNU regex as well as perl/grep's dfa
     (from empty string inside of word to empty string not at a word boundary,
      BZ#693)
-  - slightly optimize i686 TLS accesses, use direct TLS %gs access in sem_*
+  - slightly optimize i686 TLS accesses, use direct TLS %%gs access in sem_*
     and allow building -mno-tls-direct-seg-refs glibc that is free of direct TLS
-    %gs access with negative offsets
+    %%gs access with negative offsets
   - fix addseverity
   - fix fmemopen
   - fix rewinddir
@@ -2883,7 +2963,7 @@ rm -f *.filelist*
 - 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)
+  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
 
@@ -2922,7 +3002,7 @@ rm -f *.filelist*
 
 * Tue Dec 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-92
 - update from CVS
-- fix %{_prefix}/libexec/getconf filenames generation
+- fix %%{_prefix}/libexec/getconf filenames generation
 
 * Tue Dec 14 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-91
 - update from CVS
@@ -2932,7 +3012,7 @@ rm -f *.filelist*
     (#142214)
   - some more realloc corruption checks
   - fix getconf _POSIX_V6_WIDTH_RESTRICTED_ENVS output,
-    tweak %{_prefix}/libexec/getconf/ filenames
+    tweak %%{_prefix}/libexec/getconf/ filenames
 
 * Fri Dec 10 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-90
 - update from CVS
@@ -2960,8 +3040,8 @@ rm -f *.filelist*
     check_dst_limits_calc_pos_1 (#142060)
   - make getpid () working with clone/clone2 without CLONE_THREAD
     (so far on i386/x86_64/ia64 only)
-- move %{_prefix}/libexec/getconf/* to glibc from glibc-common
-- make %{_prefix}/libexec/getconf directory owned by glibc package
+- move %%{_prefix}/libexec/getconf/* to glibc from glibc-common
+- make %%{_prefix}/libexec/getconf directory owned by glibc package
 
 * Fri Dec  3 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-87
 - update from CVS
@@ -2986,7 +3066,7 @@ rm -f *.filelist*
   - support -v specification in getconf
   - fix sysconf (_SC_LFS64_CFLAGS) etc.
   - avoid thread stack aliasing issues on EM64T (#140803)
-- move %{_prefix}/include/nptl headers from nptl-devel
+- move %%{_prefix}/include/nptl headers from nptl-devel
   to glibc-headers, so that even NPTL specific programs
   can be built bi-arch without problems
 
@@ -3018,8 +3098,8 @@ rm -f *.filelist*
 
 * Fri Nov 19 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-80
 - update from CVS
-  - with -D_FORTIFY_SOURCE=2, prevent missing %N$ formats
-  - for -D_FORTIFY_SOURCE=2 and %n in writable format string,
+  - with -D_FORTIFY_SOURCE=2, prevent missing %%N$ formats
+  - for -D_FORTIFY_SOURCE=2 and %%n in writable format string,
     issue special error message instead of using the buffer overflow
     detected one
   - speedup regex searching with REG_NOSUB, add RE_NO_SUB,
@@ -3447,7 +3527,7 @@ rm -f *.filelist*
   - strtol speed optimization
   - don't try to use certainly unimplemented syscalls on ppc64
 - kill -debug subpackage, move the libs to glibc-debuginfo{,-common}
-  into /usr/lib/debug/usr/%{_lib}/ directory
+  into /usr/lib/debug/usr/%%{_lib}/ directory
 - fix c_stubs with gcc 3.4
 - move all the up to 3 builds into %%build scriptlet and
   leave only installation in the %%install scriptlet
@@ -3796,7 +3876,7 @@ rm -f *.filelist*
   - fix zic bug on 64-bit platforms
   - some TLS handling fixes
   - make ldconfig look into alternate ABI dirs by default (#99402)
-- move %{_datadir}/zoneinfo to tzdata package, so that it can be
+- move %%{_datadir}/zoneinfo to tzdata package, so that it can be
   errataed separately from glibc
 - new add-on - rtkaio
 - prereq libgcc, as glibc now relies on libgcc_s.so.1 for pthread_cancel
@@ -4006,7 +4086,7 @@ rm -f *.filelist*
 - fix NPTL pthread_cond_timedwait
 - fix sysconf (_SC_MONOTONIC_CLOCK)
 - use /%%{_lib}/tls instead of /lib/tls on x86-64
-- add /%{_lib}/tls/librt*so* and /%{_lib}/i686/librt*so*
+- add /%%{_lib}/tls/librt*so* and /%%{_lib}/i686/librt*so*
 - display content of .out files for all make check failures
 
 * Wed Mar 26 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-17
@@ -4072,7 +4152,7 @@ rm -f *.filelist*
 - update from CVS
 - only warn about errno, h_errno or _res for binaries, never
   libraries
-- rebuilt with gcc-3.2.2-4 to use direct %gs TLS access insn sequences
+- rebuilt with gcc-3.2.2-4 to use direct %%gs TLS access insn sequences
 
 * Sun Feb 23 2003 Jakub Jelinek <jakub@redhat.com> 2.3.2-2
 - update from CVS
@@ -4255,8 +4335,8 @@ rm -f *.filelist*
 
 * Fri Dec 13 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-14
 - update from CVS
-  - replace __libc_lock_needed@GOTOFF(%ebx) with
-    %gs:offsetof(tcbhead_t, multiple_threads)
+  - replace __libc_lock_needed@GOTOFF(%%ebx) with
+    %%gs:offsetof(tcbhead_t, multiple_threads)
   - start of new NPTL cancellation wrappers
 
 * Thu Dec 12 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-13
@@ -4309,7 +4389,7 @@ rm -f *.filelist*
 
 * Thu Oct 24 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-4
 - update from CVS
-  - fixed %a and %A in *printf (#75821)
+  - fixed %%a and %%A in *printf (#75821)
   - fix re_comp memory leaking (#76594)
 
 * Tue Oct 22 2002 Jakub Jelinek <jakub@redhat.com> 2.3.1-3
@@ -4437,7 +4517,7 @@ rm -f *.filelist*
 
 * Wed Aug 14 2002 Jakub Jelinek <jakub@redhat.com> 2.2.90-21
 - fix path to locale-archive in libc reader
-- build locale archive at glibc-common %post time
+- build locale archive at glibc-common %%post time
 - export __strtold_internal and __wcstold_internal on Alpha again
 - workaround some localedata problems
 
@@ -4553,7 +4633,7 @@ rm -f *.filelist*
 - rebuilt against newer glibc-kernheaders to use the correct
   PATH_MAX
 - handle .athlon.rpm glibc the same way as .i686.rpm
-- add a couple of .ISO-8859-15 locales (#61922)
+- add a couple of .ISO-8859-15 locales (#61908)
 - readd temporarily currencies which were superceeded by Euro
   into the list of accepted currencies by localedef to make
   standard conformance testsuites happy
@@ -4682,9 +4762,9 @@ rm -f *.filelist*
 
 * Fri Aug 10 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-4
 - don't crash on catclose(-1)
-- fix wscanf %[] handling
+- fix wscanf %%[] handling
 - fix return value from swprintf
-- handle year + %U/%W week + week day in strptime
+- handle year + %%U/%%W week + week day in strptime
 
 * Thu Aug  9 2001 Jakub Jelinek <jakub@redhat.com> 2.2.4-3
 - update from CVS to
@@ -4700,7 +4780,7 @@ rm -f *.filelist*
 * Sat Aug  4 2001 Jakub Jelinek <jakub@redhat.com>
 - update from CVS
   - fix iconv cache handling
-- glibc should not own %{_infodir}, %{_mandir} nor %{_mandir}/man3 (#50673)
+- glibc should not own %%{_infodir}, %%{_mandir} nor %%{_mandir}/man3 (#50673)
 - add gconv-modules.cache as emtpy config file (#50699)
 - only run iconvconfig if /usr is mounted read-write (#50667)