]> git.pld-linux.org Git - packages/glibc.git/blobdiff - glibc.spec
Up to 2.35. static-pie configure option is gone
[packages/glibc.git] / glibc.spec
index d8cd35572c3cb25a42bc2ad5235c2a43e6e86fa7..9bd9da1db84ee1d0463162f5780c70ff440fcdec 100644 (file)
@@ -1,4 +1,5 @@
 # TODO:
+# - consider moving klogctl.3 man to man-pages (and drop syslog.2 stub hacks here)
 # - restore --with-pkgversion when tcl upstream fixes the #3599098 (broken platform::identify).
 # - --enable-systemtap
 # - look at locale fixes/updates in bugzilla
@@ -17,8 +18,7 @@
 %bcond_without nss_crypt       # disable crypt features based on Mozilla NSS library
 %bcond_with    bash_nls        # use bash NLS in shell scripts (ldd, sotruss); restores /bin/bash dep
 %bcond_without cet             # Intel Control-flow Enforcement Technology (CET)
-%bcond_without crypt           # don't build obsolete libcrypt
-%bcond_without static_pie      # disable static PIE support
+%bcond_with    crypt           # don't build obsolete libcrypt
 #
 %ifarch %{ix86} %{x8664}
 %{!?min_kernel:%global         min_kernel      3.2.0}
 %ifnarch i686 %{x8664} x32
 %undefine      with_cet
 %endif
-%ifarch %{arm}
-%undefine              with_static_pie
-%endif
 
-%define                core_version    2.33
+%define                core_version    2.35
 %define                llh_version     7:2.6.32.1-1
 
 Summary:       GNU libc
@@ -50,24 +47,24 @@ Summary(tr.UTF-8):  GNU libc
 Summary(uk.UTF-8):     GNU libc версії
 Name:          glibc
 Version:       %{core_version}
-Release:       5
+Release:       1
 Epoch:         6
 License:       LGPL v2.1+
 Group:         Libraries
 Source0:       https://ftp.gnu.org/gnu/glibc/%{name}-%{version}.tar.xz
-# Source0-md5: 390bbd889c7e8e8a7041564cb6b27cca
+# Source0-md5: dd571c67d85d89d7f60b854a4e207423
 Source2:       nscd.init
 Source3:       nscd.sysconfig
 Source4:       nscd.logrotate
 # from man-pages.spec --with tars
 Source5:       %{name}-man-pages.tar.xz
-# Source5-md5: ff93a5e391bcff0d88dd4f8c3f96577d
+# Source5-md5: 4481fa9cbead3fe9d24af66666db1c86
 Source6:       %{name}-localedb-gen
 Source7:       %{name}-LD-path.c
 Source9:       nscd.tmpfiles
 # use branch.sh to update glibc-git.patch
 Patch0:                glibc-git.patch
-# Patch0-md5:  049e56141bf71acd5d131ee63e11211d
+# Patch0-md5:  514da08d86b396f7931841c0cd86a660
 # against GNU TP (libc domain)
 #Patch1:               %{name}-pl.po-update.patch
 Patch2:                %{name}-pld.patch
@@ -81,7 +78,7 @@ Patch11:      %{name}-autoconf.patch
 
 Patch14:       %{name}-sparc-errno_fix.patch
 Patch15:       %{name}-new-charsets.patch
-Patch16:       %{name}-tzfile-noassert.patch
+
 # additions pending for upstream merge or taken from other distros
 Patch17:       %{name}-morelocales.patch
 # fixes mostly pending for upstream merge
@@ -90,10 +87,6 @@ Patch19:     %{name}-ZA_collate.patch
 
 Patch23:       %{name}-pt_pax.patch
 
-# http://pkgs.fedoraproject.org/cgit/rpms/glibc.git/plain/glibc-c-utf8-locale.patch
-Patch27:       %{name}-c-utf8-locale.patch
-
-Patch29:       %{name}-arm-alignment-fix.patch
 Patch30:       glibc-rh1124987.patch
 URL:           http://www.gnu.org/software/libc/
 %{?with_selinux:BuildRequires: audit-libs-devel}
@@ -156,9 +149,12 @@ Conflicts: rc-scripts < 0.3.1-13
 Conflicts:     rpm < 4.1
 Conflicts:     util-linux < 2.35.1-2
 Conflicts:     xorg-driver-video-nvidia-libs < 1:295.33
-ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel armv6hl aarch64
+ExclusiveArch: i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 ia64 alpha s390 s390x sparc sparc64 sparcv9 ppc ppc64 armv5tel armv6hl armv7hl armv7hnl aarch64
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+# errno, ps_*, __resp, __h_errno symbols
+%define                skip_post_check_so      libm.so.6 libc_malloc_debug.so.0 libcrypt.so.1 libthread_db.so.1 libresolv.so.2 libnss_db.so.2 libnss_compat.so.2 libnss_hesiod.so.2 libnsl.so.1 librt.so.1
+
 # avoid -s here (ld.so must not be stripped to allow any program debugging)
 %define                filterout_ld            (-Wl,)?-[sS] (-Wl,)?--strip.*
 # disable -D_FORTIFY_SOURCE=X and -fstack-protector
@@ -496,7 +492,7 @@ Requires:   %{name}-headers = %{epoch}:%{version}-%{release}
 %if %{with crypt}
 Requires:      %{name}-libcrypt(%{_target_cpu}) = %{epoch}:%{version}-%{release}
 %else
-Requires:      libxcrypt-devel
+Requires:      libxcrypt-devel >= 4.0.0
 %endif
 Provides:      %{name}-devel(%{_target_cpu}) = %{epoch}:%{version}-%{release}
 %ifarch %{ix86}
@@ -702,7 +698,7 @@ Summary(ru.UTF-8):  Статические библиотеки glibc
 Summary(uk.UTF-8):     Статичні бібліотеки glibc
 Group:         Development/Libraries
 Requires:      %{name}-devel = %{epoch}:%{version}-%{release}
-%{!?with_crypt:Requires:       libxcrypt-static}
+%{!?with_crypt:Requires:       libxcrypt-static >= 4.0.0}
 Provides:      %{name}-static(%{_target_cpu}) = %{epoch}:%{version}-%{release}
 %ifarch %{ix86}
 Provides:      %{name}-static(ix86) = %{epoch}:%{version}-%{release}
@@ -958,16 +954,13 @@ exit 1
 
 %patch14 -p1
 %patch15 -p1
-%patch16 -p1
+
 %patch17 -p1
 %patch18 -p1
 %patch19 -p1
 
 %patch23 -p0
 
-%patch27 -p1
-
-%patch29 -p1
 %patch30 -p1
 
 # cleanup backups after patching
@@ -1011,7 +1004,6 @@ AWK="gawk" \
        --enable-profile \
        --enable-stack-protector=strong \
        --enable-stackguard-randomization \
-       %{?with_static_pie:--enable-static-pie} \
        --enable-tunables \
        --with-binutils=$(pwd)/alt-tools \
        --with-bugurl=http://bugs.pld-linux.org/ \
@@ -1074,11 +1066,11 @@ PICFILES="libc_pic.a libc.map
        math/libm_pic.a libm.map
        resolv/libresolv_pic.a"
 
-install -p $PICFILES                           $RPM_BUILD_ROOT%{_libdir}
-install -p elf/sofini.os                               $RPM_BUILD_ROOT%{_libdir}/sofini.o
+install -p $PICFILES           $RPM_BUILD_ROOT%{_libdir}
+install -p elf/sofini.os       $RPM_BUILD_ROOT%{_libdir}/sofini.o
 
 # Include %{_libdir}/gconv/gconv-modules.cache
-$(pwd)/elf/ld.so --library-path $(pwd) ./iconv/iconvconfig --nostdlib --prefix=$RPM_BUILD_ROOT %{_libdir}/gconv -o $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
+:> $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache
 cd ..
 
 %if %{without cross}
@@ -1089,11 +1081,11 @@ install -p glibc-postinst                               $RPM_BUILD_ROOT/sbin
 mv -f $RPM_BUILD_ROOT/%{_lib}/libpcprofile.so  $RPM_BUILD_ROOT%{_libdir}
 
 # make symlinks across top-level directories absolute
-for l in BrokenLocale anl %{?with_crypt:crypt} dl \
+for l in BrokenLocale anl %{?with_crypt:crypt} c_malloc_debug\
 %ifarch %{x8664} x32
        mvec \
 %endif
-       resolv rt thread_db util; do
+       nss_compat nss_db nss_hesiod resolv thread_db; do
        test -L $RPM_BUILD_ROOT%{_libdir}/lib${l}.so || exit 1
        %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib${l}.so
        ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/lib${l}.so.*) $RPM_BUILD_ROOT%{_libdir}/lib${l}.so
@@ -1154,6 +1146,7 @@ done
 #   tlh - Klingon (bzflag)
 #
 # To be added when they become supported by glibc:
+#   ab     (at-spi2-core)
 #   ace    (iso-codes)
 #   ach    (iso-codes, libreport, vlc)
 #   aln    (libreport, vlc)
@@ -1163,12 +1156,12 @@ done
 #   ch     (iso-codes)
 #   co     (FileZilla, libfilezilla, vlc)
 #   es_419 (alpm - common "Spanish (Latin America)")
-#   frp    (iso-codes, lxlauncher, mate, xfce)
+#   frp    (iso-codes, lxlauncher, cinnamon, mate, xfce)
 #   gn     (iso-codes, gnome; gn_BR in gnome, maybe gn_PY)
 #   guc    (gtk-vnc)
 #   haw    (iso-codes, stellarium)
 #   hrx    (stellarium)
-#   hye    (tumbler)
+#   hye    (xfce)
 #   ie     (xfce, cinnamon)
 #   ilo    (kudzu, libosinfo, libreport)
 #   io     (alacarte, gtk+2, gnome, iso-codes)
@@ -1203,6 +1196,7 @@ done
 #   tw     (libosinfo)
 #   vec    (mate-applet-indicator)
 #   wba    (libosinfo)
+#   zgh    (cinnamon, xapps)
 #
 # To be removed (after fixing packages still using it):
 #   sr@Latn (use sr@latin instead)
@@ -1214,6 +1208,7 @@ done
 # anp=anp_IN
 # ar=common? (AE, BH, DZ, EG, IQ, JO, KW, LB, LY, MA, OM, QA, SA, SD, SY, TN, YE)
 # az=az_AZ
+# ber=ber_DZ? (or common for DZ, MA?)
 # bn=bn_BD
 # bo=bo_CN? (or common for CN, IN?)
 # ca=ca_ES
@@ -1231,6 +1226,7 @@ done
 # fr=fr_FR
 # fy=fy_NL
 # gez=gez_ET (?)
+# hy=hy_AM
 # it=it_IT
 # kab=kab_DZ
 # ks=ks_IN
@@ -1272,7 +1268,7 @@ done
 #   sv tr zh_CN zh_TW
 #
 for i in aa aa@saaho af ak am an ang anp ar ar_TN as ast az az_IR \
-       be@latin be@tarask bem bg bho bn bn_IN bo br brx bs byn \
+       be@latin be@tarask bem ber bg bho bn bn_IN bo br brx bs byn \
        ca@valencia ce chr ckb cmn crh csb cv cy de_AT de_CH doi dv dz \
        en en@boldquot en@quot en@shaw en_AU en_CA en_IE en_NZ en_US en_ZA eo \
        es_AR es_CL es_CO es_CR es_DO es_EC es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_SV es_UY es_VE \
@@ -1408,14 +1404,15 @@ if [ "$1" = "0" ]; then
        %groupremove nscd
 fi
 
+%posttrans -n iconv
+%{_sbindir}/iconvconfig --nostdlib -o %{_libdir}/gconv/gconv-modules.cache %{_libdir}/gconv
+
 %files -f %{name}.lang
 %defattr(644,root,root,755)
 %doc README NEWS
 %if %{without cross}
 %attr(755,root,root) /sbin/glibc-postinst
 %endif
-# TODO: package ldconfig symlinks as %ghost
-%attr(755,root,root) /%{_lib}/ld-%{core_version}.so
 %ifarch %{ix86} sparc sparcv9 sparc64 alpha sh
 %attr(755,root,root) /%{_lib}/ld-linux.so.2
 %endif
@@ -1433,64 +1430,53 @@ fi
 %endif
 %ifarch aarch64
 %attr(755,root,root) /lib/ld-linux-aarch64.so.1
-%attr(755,root,root) /%{_lib}/ld-linux-aarch64.so.1
 %endif
-%ifarch armv6hl
+%ifarch armv6hl armv7hl armv7hnl
 %attr(755,root,root) /lib/ld-linux-armhf.so.3
 %endif
 %ifnarch %{ix86} sparc sparcv9 sparc64 alpha sh ia64 %{x8664} x32 ppc64 s390x %{arm} aarch64
 %attr(755,root,root) /%{_lib}/ld.so.1
 %endif
-%attr(755,root,root) /%{_lib}/libBrokenLocale-%{core_version}.so
 %ifarch alpha
 %attr(755,root,root) /%{_lib}/libBrokenLocale.so.1.1
 %else
 %attr(755,root,root) /%{_lib}/libBrokenLocale.so.1
 %endif
-%attr(755,root,root) /%{_lib}/libSegFault.so
-%attr(755,root,root) /%{_lib}/libanl-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libanl.so.1
-%attr(755,root,root) /%{_lib}/libc-%{core_version}.so
 %ifarch alpha ia64
 %attr(755,root,root) /%{_lib}/libc.so.6.1
 %else
 %attr(755,root,root) /%{_lib}/libc.so.6
 %endif
-%attr(755,root,root) /%{_lib}/libdl-%{core_version}.so
+# for debugging and not linking
+%attr(755,root,root) /%{_lib}/libc_malloc_debug.so.0
+%attr(755,root,root) %{_libdir}/libc_malloc_debug.so
 %ifarch alpha
 %attr(755,root,root) /%{_lib}/libdl.so.2.1
 %else
 %attr(755,root,root) /%{_lib}/libdl.so.2
 %endif
-%attr(755,root,root) /%{_lib}/libm-%{core_version}.so
 %ifarch alpha ia64
 %attr(755,root,root) /%{_lib}/libm.so.6.1
 %else
 %attr(755,root,root) /%{_lib}/libm.so.6
 %endif
 %ifarch %{x8664} x32
-%attr(755,root,root) /%{_lib}/libmvec-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libmvec.so.1
 %endif
-%attr(755,root,root) /%{_lib}/libnsl-%{core_version}.so
 %ifarch alpha
 %attr(755,root,root) /%{_lib}/libnsl.so.1.1
 %else
 %attr(755,root,root) /%{_lib}/libnsl.so.1
 %endif
-%attr(755,root,root) /%{_lib}/libpthread-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libpthread.so.0
-%attr(755,root,root) /%{_lib}/libresolv-%{core_version}.so
 %ifarch alpha
 %attr(755,root,root) /%{_lib}/libresolv.so.2.1
 %else
 %attr(755,root,root) /%{_lib}/libresolv.so.2
 %endif
-%attr(755,root,root) /%{_lib}/librt-%{core_version}.so
 %attr(755,root,root) /%{_lib}/librt.so.1
-%attr(755,root,root) /%{_lib}/libthread_db-1.0.so
 %attr(755,root,root) /%{_lib}/libthread_db.so.1
-%attr(755,root,root) /%{_lib}/libutil-%{core_version}.so
 %ifarch alpha
 %attr(755,root,root) /%{_lib}/libutil.so.1.1
 %else
@@ -1500,12 +1486,10 @@ fi
 
 #%files -n nss_dns
 %defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_dns-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libnss_dns.so.2
 
 #%files -n nss_files
 %defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_files-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libnss_files.so.2
 
 %defattr(644,root,root,755)
@@ -1519,6 +1503,7 @@ fi
 %attr(755,root,root) %{_bindir}/getconf
 %attr(755,root,root) %{_bindir}/getent
 %attr(755,root,root) %{_bindir}/iconv
+%attr(755,root,root) %{_bindir}/ld.so
 %attr(755,root,root) %{_bindir}/locale
 %attr(755,root,root) %{_bindir}/zdump
 %attr(755,root,root) %{_sbindir}/zic
@@ -1771,7 +1756,6 @@ fi
 
 %files misc
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/catchsegv
 %attr(755,root,root) %{_bindir}/ldd
 %attr(755,root,root) %{_bindir}/pldd
 %ifarch %{ix86} m68k sparc sparcv9
@@ -1781,7 +1765,6 @@ fi
 %dir %{_libdir}/audit
 %attr(755,root,root) %{_libdir}/audit/sotruss-lib.so
 
-%{_mandir}/man1/catchsegv.1*
 %{_mandir}/man1/ldd.1*
 %{_mandir}/man1/pldd.1*
 %lang(cs) %{_mandir}/cs/man1/ldd.1*
@@ -1802,11 +1785,10 @@ fi
 %if %{with crypt}
 %files libcrypt
 %defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libcrypt-%{core_version}.so
 %ifarch alpha
-%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1.1
+%attr(755,root,root) /%{_lib}/libcrypt.so.1.1
 %else
-%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1
+%attr(755,root,root) /%{_lib}/libcrypt.so.1
 %endif
 %endif
 
@@ -1829,19 +1811,16 @@ fi
 
 %files -n nss_compat
 %defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_compat-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libnss_compat.so.2
 
 %files -n nss_db
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/makedb
-%attr(755,root,root) /%{_lib}/libnss_db-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libnss_db.so.2
 %{_var}/db/Makefile
 
 %files -n nss_hesiod
 %defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/libnss_hesiod-%{core_version}.so
 %attr(755,root,root) /%{_lib}/libnss_hesiod.so.2
 
 %if %{with memusage}
@@ -1859,31 +1838,35 @@ fi
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libBrokenLocale.so
-%attr(755,root,root) %{_libdir}/libanl.so
 %{?with_crypt:%attr(755,root,root) %{_libdir}/libcrypt.so}
-%attr(755,root,root) %{_libdir}/libdl.so
+# for dlopen and not linking
+%attr(755,root,root) %{_libdir}/libanl.so
 %attr(755,root,root) %{_libdir}/libm.so
 %ifarch %{x8664} x32
 %attr(755,root,root) %{_libdir}/libmvec.so
 %endif
 %attr(755,root,root) %{_libdir}/libpcprofile.so
 %attr(755,root,root) %{_libdir}/libresolv.so
-%attr(755,root,root) %{_libdir}/librt.so
+# for dlopen and not linking
 %attr(755,root,root) %{_libdir}/libthread_db.so
-%attr(755,root,root) %{_libdir}/libutil.so
+# empty archives, so linking with obsolete -lXX (these below) works
+%{_libdir}/libanl.a
+%{_libdir}/libdl.a
+%{_libdir}/libpthread.a
+%{_libdir}/librt.a
+%{_libdir}/libutil.a
 %{_libdir}/crt[1in].o
 %{_libdir}/[MSgr]crt1.o
-%{?with_static_pie:%{_libdir}/grcrt1.o}
+%{_libdir}/grcrt1.o
 # ld scripts
 %{_libdir}/libc.so
-%{_libdir}/libpthread.so
 # static-only libs
 %{_libdir}/libc_nonshared.a
 %{_libdir}/libg.a
 %ifarch alpha ppc sparc
 %{_libdir}/libnldbl_nonshared.a
 %endif
-%ifarch %{ix86} %{x8664} x32 ppc ppc64 s390 s390x sparc sparcv9 sparc64 aarch64 armv6hl
+%ifarch %{ix86} %{x8664} x32 ppc ppc64 s390 s390x sparc sparcv9 sparc64 aarch64 armv6hl armv7hl armv7hnl
 # ABI-dependent headers
 %{_includedir}/gnu/stubs-*.h
 %endif
@@ -2003,30 +1986,40 @@ fi
 
 %files static
 %defattr(644,root,root,755)
-%{_libdir}/libanl.a
 %{_libdir}/libBrokenLocale.a
 %{_libdir}/libc.a
 %{?with_crypt:%{_libdir}/libcrypt.a}
-%{_libdir}/libdl.a
 %{_libdir}/libm.a
 %{_libdir}/libmcheck.a
 %ifarch %{x8664} x32
 %{_libdir}/libm-%{core_version}.a
 %{_libdir}/libmvec.a
 %endif
-%{_libdir}/libpthread.a
 %{_libdir}/libresolv.a
-%{_libdir}/librt.a
-%{_libdir}/libutil.a
 
 %files profile
 %defattr(644,root,root,755)
-%{_libdir}/lib*_p.a
+%{_libdir}/libBrokenLocale_p.a
+%{_libdir}/libanl_p.a
+%{_libdir}/libc_p.a
+%{?with_crypt:%{_libdir}/libcrypt_p.a}
+%{_libdir}/libdl_p.a
+%{_libdir}/libm_p.a
+%ifarch %{x8664} x32
+%{_libdir}/libmvec_p.a
+%endif
+%{_libdir}/libpthread_p.a
+%{_libdir}/libresolv_p.a
+%{_libdir}/librt_p.a
+%{_libdir}/libutil_p.a
 
 %files pic
 %defattr(644,root,root,755)
-%{_libdir}/lib*_pic.a
-%{_libdir}/lib*.map
+%{_libdir}/libc_pic.a
+%{_libdir}/libm_pic.a
+%{_libdir}/libresolv_pic.a
+%{_libdir}/libc.map
+%{_libdir}/libm.map
 %{_libdir}/sofini.o
 
 %files -n nscd
@@ -2078,6 +2071,8 @@ fi
 %attr(755,root,root) %{_sbindir}/iconvconfig
 %dir %{_libdir}/gconv
 %{_libdir}/gconv/gconv-modules
+%dir %{_libdir}/gconv/gconv-modules.d
+%{_libdir}/gconv/gconv-modules.d/gconv-modules-extra.conf
 %verify(not md5 mtime size) %{_libdir}/gconv/gconv-modules.cache
 %attr(755,root,root) %{_libdir}/gconv/*.so
 %{_mandir}/man8/iconvconfig.8*
This page took 0.068273 seconds and 4 git commands to generate.