From 58f591261923eb622ce1f97ebe6bd0b12d8a4e01 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 29 Jun 2018 17:19:47 +0200 Subject: [PATCH] Auto-sync with upstream branch master Upstream commit: e69d994a63afc2d367f286a2a7df28cbf710f0fe --- .gitignore | 1 + glibc-deprecate_libcrypt.patch | 426 ----------------------- glibc-linux-timespec-header-compat.patch | 28 -- glibc.spec | 15 +- sources | 2 +- 5 files changed, 11 insertions(+), 461 deletions(-) create mode 100644 .gitignore delete mode 100644 glibc-deprecate_libcrypt.patch delete mode 100644 glibc-linux-timespec-header-compat.patch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc8630f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/glibc-2.27.9000-534-ge69d994a63.tar.gz diff --git a/glibc-deprecate_libcrypt.patch b/glibc-deprecate_libcrypt.patch deleted file mode 100644 index 698546f..0000000 --- a/glibc-deprecate_libcrypt.patch +++ /dev/null @@ -1,426 +0,0 @@ -Short description: Deprecate libcrypt. -Author(s): Zack Weinberg -Origin: https://sourceware.org/ml/libc-alpha/2017-08/msg01257.html -Bug-Fedora: #1566464 -Upsteram status: https://patchwork.sourceware.org/patch/22401/ - -Additionally we need to review: -https://patchwork.sourceware.org/patch/26750/ -and revisit the issues around bug rhbz1566464. - -Background information: - -https://sourceware.org/ml/libc-alpha/2017-08/msg01257.html -https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt - -From: Zack Weinberg -Subject: [PATCH] Deprecate libcrypt and don't build it by default - -Back in June, Björn Esser proposed to add OpenBSD-compatible bcrypt -support to our implementation of crypt(3), and Zack Weinberg replied -that it might actually make more sense to _remove_ libcrypt from -glibc, freeing up libcrypt.so.1 and crypt.h to be provided by a -separate project that could move faster. (For instance, libxcrypt: -https://github.com/besser82/libxcrypt) - -This patch disables build and installation of libcrypt by default. It -can be re-enabled with --enable-obsolete-crypt to configure. Unlike -libnsl, we do *not* install a runtime shared library; that's left to -the replacement. (Unlike the SunRPC situation, I think we can -probably drop this code altogether in a release or two.) - -The function prototypes for crypt and encrypt are removed from -unistd.h, and the function prototype for setkey is removed from -stdlib.h; they do *not* come back with --enable-obsolete-crypt. This -means glibc no longer provides the POSIX CRYPT option, and the macro -_XOPEN_CRYPT is also removed from unistd.h to indicate that. -(_SC_XOPEN_CRYPT is still defined, but sysconf(_SC_XOPEN_CRYPT) will -return -1 at runtime.) These functions are also unconditionally -removed from conform/data/{stdlib,unistd}.h-data. - - * posix/unistd.h (_XOPEN_CRYPT, crypt, encrypt): Don't declare. - * stdlib/stdlib.h (setkey): Don't declare. - - * configure.ac (--enable-obsolete-crypt): New configure option. - * configure: Regenerate. - * config.make.in (build-obsolete-crypt): New makefile variable. - * crypt/Banner: Delete file. - * crypt/Makefile: Don't build anything unless - $(build-obsolete-crypt) is 'yes'. - * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Only add things - to libcrypt-sysdep_routines when $(build-obsolete-crypt) is 'yes'. - * sysdeps/sparc/sparc64/multiarch/Makefile: Likewise. - * sysdeps/unix/sysv/linux/arm/Makefile: Likewise. - - * conform/Makefile: Only include libcrypt.a in linknamespace tests - when $(build-obsolete-crypt) is 'yes'. - * conform/data/stdlib.h-data (setkey): Don't expect. - * conform/data/unistd.h-data (crypt, encrypt): Don't expect. - * elf/Makefile: Only perform various tests of libcrypt.so/libcrypt.a - when $(build-obsolete-crypt) is 'yes'. - * elf/tst-linkall-static.c: Don't include crypt.h when USE_CRYPT - is false. ---- - NEWS | 18 ++++++++++++++++++ - config.make.in | 1 + - configure | 13 +++++++++++++ - configure.ac | 8 ++++++++ - conform/Makefile | 14 ++++++++++---- - conform/data/stdlib.h-data | 3 --- - conform/data/unistd.h-data | 6 ------ - crypt/Makefile | 5 +++++ - elf/Makefile | 16 ++++++++++++---- - elf/tst-linkall-static.c | 2 ++ - posix/unistd.h | 16 ---------------- - stdlib/stdlib.h | 6 ------ - sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | 2 ++ - sysdeps/sparc/sparc64/multiarch/Makefile | 2 ++ - sysdeps/unix/sysv/linux/arm/Makefile | 2 ++ - 15 files changed, 75 insertions(+), 39 deletions(-) - -diff --git a/config.make.in b/config.make.in -index 9e5e24b2c6..8fe610d04d 100644 ---- a/config.make.in -+++ b/config.make.in -@@ -82,6 +82,7 @@ mach-interface-list = @mach_interface_list@ - - experimental-malloc = @experimental_malloc@ - -+build-obsolete-crypt = @build_obsolete_crypt@ - nss-crypt = @libc_cv_nss_crypt@ - static-nss-crypt = @libc_cv_static_nss_crypt@ - -diff --git a/configure b/configure -index 7a8bd3f817..46f6bd7f86 100755 ---- a/configure -+++ b/configure -@@ -672,6 +672,7 @@ base_machine - have_tunables - build_pt_chown - build_nscd -+build_obsolete_crypt - build_obsolete_nsl - link_obsolete_rpc - libc_cv_static_nss_crypt -@@ -782,6 +783,7 @@ enable_experimental_malloc - enable_nss_crypt - enable_obsolete_rpc - enable_obsolete_nsl -+enable_obsolete_crypt - enable_systemtap - enable_build_nscd - enable_nscd -@@ -1453,6 +1455,7 @@ Optional Features: - link-time usage - --enable-obsolete-nsl build and install the obsolete libnsl library and - depending NSS modules -+ --enable-obsolete-crypt build and install the obsolete libcrypt library - --enable-systemtap enable systemtap static probe points [default=no] - --disable-build-nscd disable building and installing the nscd daemon - --disable-nscd library functions will not contact the nscd daemon -@@ -3632,6 +3635,16 @@ if test "$build_obsolete_nsl" = yes; then - - fi - -+# Check whether --enable-obsolete-crypt was given. -+if test "${enable_obsolete_crypt+set}" = set; then : -+ enableval=$enable_obsolete_crypt; build_obsolete_crypt=$enableval -+else -+ build_obsolete_crypt=no -+fi -+ -+ -+ -+ - # Check whether --enable-systemtap was given. - if test "${enable_systemtap+set}" = set; then : - enableval=$enable_systemtap; systemtap=$enableval -diff --git a/configure.ac b/configure.ac -index ca1282a6b3..0142353740 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -378,6 +378,14 @@ if test "$build_obsolete_nsl" = yes; then - AC_DEFINE(LINK_OBSOLETE_NSL) - fi - -+AC_ARG_ENABLE([obsolete-crypt], -+ AC_HELP_STRING([--enable-obsolete-crypt], -+ [build and install the obsolete libcrypt library]), -+ [build_obsolete_crypt=$enableval], -+ [build_obsolete_crypt=no]) -+AC_SUBST(build_obsolete_crypt) -+ -+ - AC_ARG_ENABLE([systemtap], - [AS_HELP_STRING([--enable-systemtap], - [enable systemtap static probe points @<:@default=no@:>@])], -diff --git a/conform/Makefile b/conform/Makefile -index 864fdeca21..5ef474fb24 100644 ---- a/conform/Makefile -+++ b/conform/Makefile -@@ -193,22 +193,28 @@ linknamespace-libs-thr = $(linknamespace-libs-isoc) \ - $(common-objpfx)rt/librt.a $(static-thread-library) - linknamespace-libs-posix = $(linknamespace-libs-thr) \ - $(common-objpfx)dlfcn/libdl.a --linknamespace-libs-xsi = $(linknamespace-libs-posix) \ -- $(common-objpfx)crypt/libcrypt.a -+linknamespace-libs-xsi = $(linknamespace-libs-posix) - linknamespace-libs-ISO = $(linknamespace-libs-isoc) - linknamespace-libs-ISO99 = $(linknamespace-libs-isoc) - linknamespace-libs-ISO11 = $(linknamespace-libs-isoc) --linknamespace-libs-XPG4 = $(linknamespace-libs-isoc) \ -- $(common-objpfx)crypt/libcrypt.a -+linknamespace-libs-XPG4 = $(linknamespace-libs-isoc) - linknamespace-libs-XPG42 = $(linknamespace-libs-XPG4) - linknamespace-libs-POSIX = $(linknamespace-libs-thr) - linknamespace-libs-UNIX98 = $(linknamespace-libs-xsi) - linknamespace-libs-XOPEN2K = $(linknamespace-libs-xsi) - linknamespace-libs-POSIX2008 = $(linknamespace-libs-posix) - linknamespace-libs-XOPEN2K8 = $(linknamespace-libs-xsi) -+ -+ifeq ($(build-obsolete-crypt),yes) -+linknamespace-libs-xsi += $(common-objpfx)crypt/libcrypt.a -+linknamespace-libs-XPG4 += $(common-objpfx)crypt/libcrypt.a -+endif -+ - linknamespace-libs = $(foreach std,$(conformtest-standards),\ - $(linknamespace-libs-$(std))) - -+ -+ - $(linknamespace-symlist-stdlibs-tests): $(objpfx)symlist-stdlibs-%: \ - $(linknamespace-libs) - LC_ALL=C $(READELF) -W -s $(linknamespace-libs-$*) > $@; \ -diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data -index d8fcccc2fb..6913828196 100644 ---- a/conform/data/stdlib.h-data -+++ b/conform/data/stdlib.h-data -@@ -149,9 +149,6 @@ function {unsigned short int*} seed48 (unsigned short int[3]) - #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98 - function int setenv (const char*, const char*, int) - #endif --#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 --function void setkey (const char*) --#endif - #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008 - function {char*} setstate (char*) - #endif -diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data -index ddf4f25132..aa070528e8 100644 ---- a/conform/data/unistd.h-data -+++ b/conform/data/unistd.h-data -@@ -437,9 +437,6 @@ function int chroot (const char*) - function int chown (const char*, uid_t, gid_t) - function int close (int) - function size_t confstr (int, char*, size_t) --#if !defined POSIX && !defined POSIX2008 --function {char*} crypt (const char*, const char*) --#endif - #if defined XPG4 || defined XPG42 || defined UNIX98 - function {char*} ctermid (char*) - function {char*} cuserid (char*) -@@ -449,9 +446,6 @@ allow cuserid - #endif - function int dup (int) - function int dup2 (int, int) --#if !defined POSIX && !defined POSIX2008 --function void encrypt (char[64], int) --#endif - function int execl (const char*, const char*, ...) - function int execle (const char*, const char*, ...) - function int execlp (const char*, const char*, ...) -diff --git a/crypt/Makefile b/crypt/Makefile -index 303800df73..024ec2c6ab 100644 ---- a/crypt/Makefile -+++ b/crypt/Makefile -@@ -22,6 +22,8 @@ subdir := crypt - - include ../Makeconfig - -+ifeq ($(build-obsolete-crypt),yes) -+ - headers := crypt.h - - extra-libs := libcrypt -@@ -52,9 +54,11 @@ tests += md5test sha256test sha512test - # machine over a minute. - xtests = md5test-giant - endif -+endif - - include ../Rules - -+ifeq ($(build-obsolete-crypt),yes) - ifneq ($(nss-crypt),yes) - md5-routines := md5 $(filter md5%,$(libcrypt-sysdep_routines)) - sha256-routines := sha256 $(filter sha256%,$(libcrypt-sysdep_routines)) -@@ -71,3 +75,4 @@ $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.so - else - $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.a - endif -+endif -diff --git a/elf/Makefile b/elf/Makefile -index 2a432d8bee..366f7b80ec 100644 ---- a/elf/Makefile -+++ b/elf/Makefile -@@ -385,15 +385,19 @@ $(objpfx)tst-_dl_addr_inside_object: $(objpfx)dl-addr-obj.os - CFLAGS-tst-_dl_addr_inside_object.c += $(PIE-ccflag) - endif - --# By default tst-linkall-static should try to use crypt routines to test --# static libcrypt use. --CFLAGS-tst-linkall-static.c += -DUSE_CRYPT=1 -+ifeq ($(build-obsolete-crypt),yes) -+# If the libcrypt library is being built, tst-linkall-static should -+# try to use crypt routines to test static libcrypt use. -+CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=1 - # However, if we are using NSS crypto and we don't have a static - # library, then we exclude the use of crypt functions in the test. - # We similarly exclude libcrypt.a from the static link (see below). - ifeq (yesno,$(nss-crypt)$(static-nss-crypt)) - CFLAGS-tst-linkall-static.c += -UUSE_CRYPT -DUSE_CRYPT=0 - endif -+else -+CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=0 -+endif - - include ../Rules - -@@ -1113,8 +1117,10 @@ localplt-built-dso := $(addprefix $(common-objpfx),\ - rt/librt.so \ - dlfcn/libdl.so \ - resolv/libresolv.so \ -- crypt/libcrypt.so \ - ) -+ifeq ($(build-obsolete-crypt),yes) -+localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so) -+endif - ifeq ($(build-mathvec),yes) - localplt-built-dso += $(addprefix $(common-objpfx), mathvec/libmvec.so) - endif -@@ -1395,6 +1401,7 @@ $(objpfx)tst-linkall-static: \ - $(common-objpfx)resolv/libanl.a \ - $(static-thread-library) - -+ifeq ($(build-obsolete-crypt),yes) - # If we are using NSS crypto and we have the ability to link statically - # then we include libcrypt.a, otherwise we leave out libcrypt.a and - # link as much as we can into the tst-linkall-static test. This assumes -@@ -1410,6 +1417,7 @@ ifeq (no,$(nss-crypt)) - $(objpfx)tst-linkall-static: \ - $(common-objpfx)crypt/libcrypt.a - endif -+endif - - # The application depends on the DSO, and the DSO loads the plugin. - # The plugin also depends on the DSO. This creates the circular -diff --git a/elf/tst-linkall-static.c b/elf/tst-linkall-static.c -index e8df38f74e..0ffae7c723 100644 ---- a/elf/tst-linkall-static.c -+++ b/elf/tst-linkall-static.c -@@ -18,7 +18,9 @@ - - #include - #include -+#if USE_CRYPT - #include -+#endif - #include - #include - #include -diff --git a/posix/unistd.h b/posix/unistd.h -index 4d149f9945..e75ce4d4ec 100644 ---- a/posix/unistd.h -+++ b/posix/unistd.h -@@ -107,9 +107,6 @@ __BEGIN_DECLS - /* The X/Open Unix extensions are available. */ - #define _XOPEN_UNIX 1 - --/* Encryption is present. */ --#define _XOPEN_CRYPT 1 -- - /* The enhanced internationalization capabilities according to XPG4.2 - are present. */ - #define _XOPEN_ENH_I18N 1 -@@ -1118,20 +1115,7 @@ ssize_t copy_file_range (int __infd, __off64_t *__pinoff, - extern int fdatasync (int __fildes); - #endif /* Use POSIX199309 */ - -- --/* XPG4.2 specifies that prototypes for the encryption functions must -- be defined here. */ - #ifdef __USE_XOPEN --/* Encrypt at most 8 characters from KEY using salt to perturb DES. */ --extern char *crypt (const char *__key, const char *__salt) -- __THROW __nonnull ((1, 2)); -- --/* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt -- block in place. */ --extern void encrypt (char *__glibc_block, int __edflag) -- __THROW __nonnull ((1)); -- -- - /* Swab pairs bytes in the first N bytes of the area pointed to by - FROM and copy the result to TO. The value of TO must not be in the - range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM -diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h -index 6b1ead31e0..8e23e93557 100644 ---- a/stdlib/stdlib.h -+++ b/stdlib/stdlib.h -@@ -958,12 +958,6 @@ extern int getsubopt (char **__restrict __optionp, - #endif - - --#ifdef __USE_XOPEN --/* Setup DES tables according KEY. */ --extern void setkey (const char *__key) __THROW __nonnull ((1)); --#endif -- -- - /* X/Open pseudo terminal handling. */ - - #ifdef __USE_XOPEN2KXSI -diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile b/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile -index a6d08f3a00..d8b8297fb0 100644 ---- a/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile -+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile -@@ -1,6 +1,8 @@ - ifeq ($(subdir),crypt) -+ifeq ($(build-obsolete-crypt),yes) - libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop - endif -+endif - - ifeq ($(subdir),locale) - localedef-aux += md5-crop -diff --git a/sysdeps/sparc/sparc64/multiarch/Makefile b/sysdeps/sparc/sparc64/multiarch/Makefile -index eaf758e7aa..0198f9886f 100644 ---- a/sysdeps/sparc/sparc64/multiarch/Makefile -+++ b/sysdeps/sparc/sparc64/multiarch/Makefile -@@ -1,6 +1,8 @@ - ifeq ($(subdir),crypt) -+ifeq ($(build-obsolete-crypt),yes) - libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop - endif -+endif - - ifeq ($(subdir),locale) - localedef-aux += md5-crop -diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile -index 4adc35de04..6cab4f3a31 100644 ---- a/sysdeps/unix/sysv/linux/arm/Makefile -+++ b/sysdeps/unix/sysv/linux/arm/Makefile -@@ -19,8 +19,10 @@ endif - # Add a syscall function to each library that needs one. - - ifeq ($(subdir),crypt) -+ifeq ($(build-obsolete-crypt),yes) - libcrypt-sysdep_routines += libc-do-syscall - endif -+endif - - ifeq ($(subdir),rt) - librt-sysdep_routines += libc-do-syscall --- -2.16.0 - diff --git a/glibc-linux-timespec-header-compat.patch b/glibc-linux-timespec-header-compat.patch deleted file mode 100644 index c3ef322..0000000 --- a/glibc-linux-timespec-header-compat.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit 371fd753b278a5ca5e8f3233f585f6b2826b0a3b -Author: Florian Weimer -Date: Thu Jun 21 08:18:15 2018 +0200 - - time: Define _STRUCT_TIMESPEC in - - After commit d76d3703551a362b472c866b5b6089f66f8daa8e ("Fix missing - timespec definition for sys/stat.h (BZ #21371)"), sanitizer builds start - to fail due to a conflicting definition of struct timespec in - . Define _STRUCT_TIMESPEC, which is already checked in - the kernel header, to support including after - . - -diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h -index 644db9fdb6206291..bde7e2826d839e77 100644 ---- a/time/bits/types/struct_timespec.h -+++ b/time/bits/types/struct_timespec.h -@@ -1,6 +1,10 @@ - #ifndef __timespec_defined - #define __timespec_defined 1 - -+#ifndef _STRUCT_TIMESPEC -+# define _STRUCT_TIMESPEC 1 -+#endif -+ - #include - - /* POSIX.1b structure for a time value. This is like a `struct timeval' but diff --git a/glibc.spec b/glibc.spec index 5162683..fba3058 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcsrcdir glibc-2.27.9000-523-gc49e18222e +%define glibcsrcdir glibc-2.27.9000-534-ge69d994a63 %define glibcversion 2.27.9000 -%define glibcrelease 28%{?dist} +%define glibcrelease 29%{?dist} # Pre-release tarballs are pulled in from git using a command that is # effectively: # @@ -157,9 +157,7 @@ Patch0015: glibc-rh1070416.patch Patch0016: glibc-nscd-sysconfig.patch Patch0017: glibc-cs-path.patch Patch0018: glibc-c-utf8-locale.patch -Patch0022: glibc-deprecate_libcrypt.patch Patch23: glibc-python3.patch -Patch24: glibc-linux-timespec-header-compat.patch ############################################################################## # Continued list of core "glibc" package information: @@ -792,7 +790,7 @@ build() %if %{with bootstrap} --without-selinux \ %endif - --disable-nss-crypt || + --disable-crypt || { cat config.log; false; } make %{?_smp_mflags} -O -r @@ -1354,7 +1352,6 @@ popd # Lastly copy some additional documentation for the packages. rm -rf documentation mkdir documentation -cp crypt/README.ufc-crypt documentation/README.ufc-crypt cp timezone/README documentation/README.timezone cp posix/gai.conf documentation/ @@ -1857,6 +1854,12 @@ fi %endif %changelog +* Fri Jun 29 2018 Florian Weimer - 2.27.9000-29 +- Drop glibc-deprecate_libcrypt.patch. Variant applied upstream. +- Drop glibc-linux-timespec-header-compat.patch. Upstreamed. +- Auto-sync with upstream branch master, + commit e69d994a63afc2d367f286a2a7df28cbf710f0fe. + * Thu Jun 28 2018 Florian Weimer - 2.27.9000-28 - Drop glibc-rh1315108.patch. extend_alloca was removed upstream. (#1315108) - Auto-sync with upstream branch master, diff --git a/sources b/sources index a7c0c3a..b054055 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glibc-2.27.9000-523-gc49e18222e.tar.gz) = 427baeeb294af60dc98078cd13a810d55d8c5c5f963e9f1b8c3c32db608b235b8d43608183e87e9b3efa15e883595634a5ae64601fff371cec437c08fbe7426f +SHA512 (glibc-2.27.9000-534-ge69d994a63.tar.gz) = eaa2938bd3847dce318ef5fca893c3b0d4c27b5040aa9d228710e0de3531a33cddf46463d637e592ed36b8a645d2faffd397bc4411eca1e3b8b71255f2b47b1b