diff --git a/_service b/_service deleted file mode 100644 index 3f7f18c..0000000 --- a/_service +++ /dev/null @@ -1,15 +0,0 @@ - - - 2.25.90.%cd.g%h - git://sourceware.org/git/glibc - git - - - - xz - *.tar - - - glibc - - diff --git a/abort-no-flush.patch b/abort-no-flush.patch index e7bc31a..a32b6fe 100644 --- a/abort-no-flush.patch +++ b/abort-no-flush.patch @@ -18,7 +18,7 @@ Index: glibc-2.19/stdlib/abort.c struct abort_msg_s *__abort_msg __attribute__ ((nocommon)); libc_hidden_def (__abort_msg) @@ -66,16 +63,8 @@ abort (void) - __sigprocmask (SIG_UNBLOCK, &sigs, (sigset_t *) NULL); + __sigprocmask (SIG_UNBLOCK, &sigs, 0); } - /* Flush all streams. We cannot close them now because the user diff --git a/add-locales.patch b/add-locales.patch new file mode 100644 index 0000000..7a18cd1 --- /dev/null +++ b/add-locales.patch @@ -0,0 +1,29 @@ +Index: glibc-2.25/localedata/SUPPORTED +=================================================================== +--- glibc-2.25.orig/localedata/SUPPORTED ++++ glibc-2.25/localedata/SUPPORTED +@@ -129,6 +129,7 @@ en_CA.UTF-8/UTF-8 \ + en_CA/ISO-8859-1 \ + en_DK.UTF-8/UTF-8 \ + en_DK/ISO-8859-1 \ ++en_GB.ISO-8859-15/ISO-8859-15 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ + en_HK.UTF-8/UTF-8 \ +@@ -145,6 +146,7 @@ en_PH.UTF-8/UTF-8 \ + en_PH/ISO-8859-1 \ + en_SG.UTF-8/UTF-8 \ + en_SG/ISO-8859-1 \ ++en_US.ISO-8859-15/ISO-8859-15 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ + en_ZA.UTF-8/UTF-8 \ +@@ -269,6 +271,8 @@ it_IT/ISO-8859-1 \ + it_IT@euro/ISO-8859-15 \ + iu_CA/UTF-8 \ + ja_JP.EUC-JP/EUC-JP \ ++ja_JP.SHIFT_JISX0213/SHIFT_JISX0213 \ ++ja_JP.SJIS/SHIFT_JIS \ + ja_JP.UTF-8/UTF-8 \ + ka_GE.UTF-8/UTF-8 \ + ka_GE/GEORGIAN-PS \ diff --git a/check-build.sh b/check-build.sh deleted file mode 100644 index 3f33595..0000000 --- a/check-build.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# Copyright (c) 2003, 2004, 2011,2012 SUSE Linux Products GmbH, Germany. All rights reserved. -# -# Authors: Thorsten Kukuk -# - - - -if [ `nice` -gt '9' ] ; then - echo "Don't modify nice for building glibc!" - exit 1 -fi - -# get kernel version -OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" -ARCH=(`uname -m`) - -if test ${version[0]} -gt 2 ; then - : # okay -elif test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then - echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2 - exit 1 -elif $ARCH -eq 'x86_64' ; then - if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 32 ; then - echo "FATAL: kernel too old, need kernel >= 2.6.32 for this package" 1>&2 - exit 1 - fi -fi - - -exit 0 - diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch index 801c381..f660b31 100644 --- a/fnmatch-collating-elements.patch +++ b/fnmatch-collating-elements.patch @@ -19,9 +19,9 @@ Index: glibc-2.22/posix/Makefile tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ tst-fnmatch3 bug-regex36 tst-getaddrinfo5 \ + tst-fnmatch4 tst-fnmatch5 \ - tst-posix_spawn-fd \ - tst-posix_fadvise tst-posix_fadvise64 - xtests := bug-ga2 + tst-posix_spawn-fd tst-posix_spawn-setsid \ + tst-posix_fadvise tst-posix_fadvise64 \ + tst-sysconf-empty-chroot Index: glibc-2.22/posix/fnmatch.c =================================================================== --- glibc-2.22.orig/posix/fnmatch.c diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff deleted file mode 100644 index 2efdd81..0000000 --- a/glibc-2.2-sunrpc.diff +++ /dev/null @@ -1,82 +0,0 @@ -For details see: -http://sourceware.org/bugzilla/show_bug.cgi?id=5379 - - -Index: glibc-2.20/sunrpc/clnt_udp.c -=================================================================== ---- glibc-2.20.orig/sunrpc/clnt_udp.c -+++ glibc-2.20/sunrpc/clnt_udp.c -@@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr - XDR *xdrs; - int outlen = 0; - int inlen; -+ int pollresult; - socklen_t fromlen; - struct pollfd fd; - int milliseconds = (cu->cu_wait.tv_sec * 1000) + -@@ -378,37 +379,39 @@ send_again: - anyup = 0; - for (;;) - { -- switch (__poll (&fd, 1, milliseconds)) -+ switch (pollresult = __poll (&fd, 1, milliseconds)) - { -- - case 0: -- if (anyup == 0) -+ case -1: -+ if (pollresult == 0 || errno == EINTR) - { -- anyup = is_network_up (cu->cu_sock); -- if (!anyup) -- return (cu->cu_error.re_status = RPC_CANTRECV); -+ if (anyup == 0) -+ { -+ anyup = is_network_up (cu->cu_sock); -+ if (!anyup) -+ return (cu->cu_error.re_status = RPC_CANTRECV); -+ } -+ -+ time_waited.tv_sec += cu->cu_wait.tv_sec; -+ time_waited.tv_usec += cu->cu_wait.tv_usec; -+ while (time_waited.tv_usec >= 1000000) -+ { -+ time_waited.tv_sec++; -+ time_waited.tv_usec -= 1000000; -+ } -+ if ((time_waited.tv_sec < timeout.tv_sec) || -+ ((time_waited.tv_sec == timeout.tv_sec) && -+ (time_waited.tv_usec < timeout.tv_usec))) -+ { -+ if (pollresult == 0) -+ goto send_again; -+ else -+ continue; -+ } -+ return (cu->cu_error.re_status = RPC_TIMEDOUT); - } - -- time_waited.tv_sec += cu->cu_wait.tv_sec; -- time_waited.tv_usec += cu->cu_wait.tv_usec; -- while (time_waited.tv_usec >= 1000000) -- { -- time_waited.tv_sec++; -- time_waited.tv_usec -= 1000000; -- } -- if ((time_waited.tv_sec < timeout.tv_sec) || -- ((time_waited.tv_sec == timeout.tv_sec) && -- (time_waited.tv_usec < timeout.tv_usec))) -- goto send_again; -- return (cu->cu_error.re_status = RPC_TIMEDOUT); -- -- /* -- * buggy in other cases because time_waited is not being -- * updated. -- */ -- case -1: -- if (errno == EINTR) -- continue; -+ /* errno != EINTR */ - cu->cu_error.re_errno = errno; - return (cu->cu_error.re_status = RPC_CANTRECV); - } diff --git a/glibc-2.25.tar.xz b/glibc-2.25.tar.xz deleted file mode 100644 index 714c058..0000000 --- a/glibc-2.25.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 -size 13873900 diff --git a/glibc-2.25.tar.xz.sig b/glibc-2.25.tar.xz.sig deleted file mode 100644 index 25a8824..0000000 --- a/glibc-2.25.tar.xz.sig +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEcBAABAgAGBQJYl08CAAoJEHnEPfvxzyGHhWcH/2eIspxugXwMnM0YZm3fkzji -yJpu19zpYvfap+tTXJGiY/P6UrJSqHUCSssxWyWJQAbOov40IT/ySSg3DyWhyxra -6HTTOwjIGz/9KQwVdzm79LA+YhsOauowvdiYCS6XnTQbPMc7zBDsOIEAzp+vXNdl -KIzIe7XzUJnK9kl6oqBzXuzdA4jjjzZ2jqyMOwRypipkAXu7OgXO7TiEdN149eSs -2Owodmw9epP1omEK1KLo0N9QsG/+ioaHNfldtWzWNvxuRigAnwaaJTy5zVG7xJ45 -xVfsXaZQKFt4KPep1GF5jaZ30TWTvt5gyjOBiZa/+UfvEOXOt0ox/BB8ydlV/eg= -=HMRX ------END PGP SIGNATURE----- diff --git a/glibc-2.26.tar.xz b/glibc-2.26.tar.xz new file mode 100644 index 0000000..3a2b030 --- /dev/null +++ b/glibc-2.26.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd +size 14682748 diff --git a/glibc-2.26.tar.xz.sig b/glibc-2.26.tar.xz.sig new file mode 100644 index 0000000..21adc1c --- /dev/null +++ b/glibc-2.26.tar.xz.sig @@ -0,0 +1,10 @@ +-----BEGIN PGP SIGNATURE----- + +iQEcBAABAgAGBQJZgduLAAoJEHnEPfvxzyGHDesH/itf17ZUWSWNIRp2cC0RK1et +jtR7ufFMpSHfMFJQXkli162s+iFMAxuOus52rma/h3PP8BXVbEKB7M3N0dvqPbmC +AIC6YtAYU/I4M3V+6T1pi4ras19i2VgNY+iag0xw5o0ah4yZmZwB5eFR2xIz10ZD +SGffJyCD/8EFwn/SPx38JS55ENwGj5PT1m2TsEnlLeHg7sCH7ksb5Pqq/ZEwIw0v +E56a4hSliDUhurc0gUQmFxm/FhFSdTzns0vShfgou4D2tNSYaUjrf/17ebj0ehUF +XkNH5jvwHoxiKzEVnD7dS9NLbvOPAG4AlFnWejgqvX0JB/M5TknOcmJYpzZYiGE= +=XObH +-----END PGP SIGNATURE----- diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 deleted file mode 100644 index 4d5120f..0000000 --- a/glibc-2.3.locales.diff.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:88419776f97fb76adac25cec0540b5be19c90d7a745cd56512f79bb523b7da37 -size 328722 diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff deleted file mode 100644 index 7d34630..0000000 --- a/glibc-cpusetsize.diff +++ /dev/null @@ -1,26 +0,0 @@ -Index: glibc-2.17.90/bits/sched.h -=================================================================== ---- glibc-2.17.90.orig/bits/sched.h -+++ glibc-2.17.90/bits/sched.h -@@ -52,7 +52,7 @@ struct __sched_param - #if defined _SCHED_H && !defined __cpu_set_t_defined - # define __cpu_set_t_defined - /* Size definition for CPU sets. */ --# define __CPU_SETSIZE 1024 -+# define __CPU_SETSIZE 4096 - # define __NCPUBITS (8 * sizeof (__cpu_mask)) - - /* Type for array elements in 'cpu_set_t'. */ -Index: glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h -=================================================================== ---- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/bits/sched.h -+++ glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h -@@ -111,7 +111,7 @@ struct __sched_param - #if defined _SCHED_H && !defined __cpu_set_t_defined - # define __cpu_set_t_defined - /* Size definition for CPU sets. */ --# define __CPU_SETSIZE 1024 -+# define __CPU_SETSIZE 4096 - # define __NCPUBITS (8 * sizeof (__cpu_mask)) - - /* Type for array elements in 'cpu_set_t'. */ diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff deleted file mode 100644 index 86a36bf..0000000 --- a/glibc-resolv-reload.diff +++ /dev/null @@ -1,121 +0,0 @@ -From libc-alpha-return-22754-pasky=ucw.cz@sourceware.org Tue Mar 16 00:47:00 2010 -Return-Path: -X-Original-To: pasky@pasky.or.cz -Delivered-To: pasky@pasky.or.cz -Received: from nikam.ms.mff.cuni.cz (nikam-dmz.ms.mff.cuni.cz [195.113.20.16]) - by machine.or.cz (Postfix) with ESMTPS id C1B8586202A - for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET) -Received: by nikam.ms.mff.cuni.cz (Postfix) - id 9CDEC9AC7A4; Tue, 16 Mar 2010 00:47:00 +0100 (CET) -Delivered-To: pasky@kam.mff.cuni.cz -Received: from jabberwock.ucw.cz (jabberwock.ucw.cz [89.250.246.4]) - by nikam.ms.mff.cuni.cz (Postfix) with ESMTP id 99F0E9AC77B - for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET) -Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) - by jabberwock.ucw.cz (Postfix) with SMTP id 14E1ACF040 - for ; Tue, 16 Mar 2010 00:46:59 +0100 (CET) -Received: (qmail 18956 invoked by alias); 15 Mar 2010 23:46:58 -0000 -Delivered-To: moderator for libc-alpha@sourceware.org -Received: (qmail 15843 invoked by uid 22791); 15 Mar 2010 17:23:15 -0000 -X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 - tests=BAYES_00 -X-Spam-Check-By: sourceware.org -Message-ID: <4B9E6CFA.7020002@riot.org> -Date: Mon, 15 Mar 2010 18:23:06 +0100 -From: Sebastian Kienzl -User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) -MIME-Version: 1.0 -To: libc-alpha@sourceware.org -Subject: Reloading of /etc/resolv.conf -Content-Type: multipart/mixed; - boundary="------------060407080409020101000002" -Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm -Precedence: bulk -List-Id: -List-Unsubscribe: -List-Subscribe: -List-Archive: -List-Post: -List-Help: , -Sender: libc-alpha-owner@sourceware.org -Delivered-To: mailing list libc-alpha@sourceware.org - -This is a multi-part message in MIME format. ---------------060407080409020101000002 -Content-Type: text/plain; charset=ISO-8859-15; format=flowed -Content-Transfer-Encoding: 7bit - -Hello! - -There's a patch in the wild against the resolver which makes it reload -/etc/resolv.conf on change, see -http://sources.redhat.com/ml/libc-alpha/2004-09/msg00130.html - -However, this patch actually doesn't work properly for multi-threaded -programs, as only one thread will notice the change and refresh its -resolver state. I've attached a proper patch. It's for 2.5 but it should -work with current versions, too. - -Even though the patch may not be interesting for upstream, I decided to -let you know about this problem, since the mentioned patch seems to be -used by at least Debian and Ubuntu. - -Regards, -Seb. - - - ---------------060407080409020101000002 -Content-Type: text/plain; - name="glibc-2.5-resolvconf.patch" -Content-Transfer-Encoding: 7bit -Content-Disposition: inline; - filename="glibc-2.5-resolvconf.patch" - -Index: glibc-2.17.90/resolv/res_libc.c -=================================================================== ---- glibc-2.17.90.orig/resolv/res_libc.c -+++ glibc-2.17.90/resolv/res_libc.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - extern unsigned long long int __res_initstamp attribute_hidden; - /* We have atomic increment operations on 64-bit platforms. */ -@@ -89,12 +89,34 @@ res_init(void) { - return (__res_vinit(&_res, 1)); - } - -+static time_t resconf_mtime; -+__libc_lock_define_initialized (static, resconf_mtime_lock); -+ -+/* Check if the modification time of resolv.conf has changed. -+ If so, have all threads re-initialize their resolver states */ -+static void -+__res_check_resconf (void) -+{ -+ struct stat statbuf; -+ if (stat (_PATH_RESCONF, &statbuf) == 0) { -+ __libc_lock_lock (resconf_mtime_lock); -+ if (statbuf.st_mtime != resconf_mtime) { -+ resconf_mtime = statbuf.st_mtime; -+ atomicinclock (lock); -+ atomicinc (__res_initstamp); -+ atomicincunlock (lock); -+ } -+ __libc_lock_unlock (resconf_mtime_lock); -+ } -+} -+ - /* Initialize resp if RES_INIT is not yet set or if res_init in some other - thread requested re-initializing. */ - int - __res_maybe_init (res_state resp, int preinit) - { - if (resp->options & RES_INIT) { -+ __res_check_resconf (); - if (__res_initstamp != resp->_u._ext.initstamp) { - if (resp->nscount > 0) - __res_iclose (resp, true); diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 36fc946..0a38171 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de + +- Update to glibc 2.26 + * A per-thread cache has been added to malloc + * Unicode 10.0.0 Support + * Improvements to the DNS stub resolver + * New function reallocarray, which resizes an allocated block (like + realloc) to the product of two sizes, with a guaranteed clean failure + upon integer overflow in the multiplication + * New wrappers for the Linux-specific system calls preadv2 and pwritev2 + * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to + create a new session ID for the spawned process + * errno.h is now safe to use from C-preprocessed assembly language on all + supported operating systems + * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements + 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE + 754-2008) and ISO/IEC TS 18661-3:2015 + * The synchronization that pthread_spin_unlock performs has been changed to + now be equivalent to a C11 atomic store with release memory order to the + spin lock's memory location + * The DNS stub resolver no longer performs EDNS fallback + * res_mkquery and res_nmkquery no longer support the IQUERY opcode + * The _res_opcodes variable has been removed from libresolv + * no longer includes inline versions of any string functions, + as this kind of optimization is better done by the compiler + * The nonstandard header has been removed + * The obsolete header has been removed + * The obsolete signal constant SIGUNUSED is no longer defined by + * The obsolete function cfree has been removed + * The stack_t type no longer has the name struct sigaltstack + * The ucontext_t type no longer has the name struct ucontext + * On S/390 GNU/Linux, the constants defined by have been + synced with the kernel + * Linux kernel 3.2 or later is required at runtime, on all architectures + supported by that kernel + * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, + to avoid fragmentation-based spoofing attacks (CVE-2017-12132) + * LD_LIBRARY_PATH is now ignored in binaries running in privileged + AT_SECURE mode to guard against local privilege escalation attacks + (CVE-2017-1000366) + * Avoid printing a backtrace from the __stack_chk_fail function since it + is called on a corrupt stack and a backtrace is unreliable on a + corrupt stack (CVE-2010-3192) + * A use-after-free vulnerability in clntudp_call in the Sun RPC system + has been fixed (CVE-2017-12133) + * fate#322258, fate#321513, fate#322453 +- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, + i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, + sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, + tunables-bigendian.patch: Removed + +------------------------------------------------------------------- +Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de + +- Fix RPM group + +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + +------------------------------------------------------------------- +Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de + +- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE + programs (BZ #21209) +- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for + AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) + +------------------------------------------------------------------- +Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de + +- Remove glibc-cpusetsize.diff, no longer useful + +------------------------------------------------------------------- +Wed May 31 10:35:31 UTC 2017 - schwab@suse.de + +- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, + BZ #21289) + +------------------------------------------------------------------- +Mon May 29 18:10:31 UTC 2017 - schwab@suse.de + +- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h + aliasing + +------------------------------------------------------------------- +Mon May 29 10:24:22 UTC 2017 - schwab@suse.de + +- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE + locales (bsc#1039502) + +------------------------------------------------------------------- +Tue May 23 09:54:08 UTC 2017 - schwab@suse.de + +- Remove glibc-testsuite.patch, no longer relevant + +------------------------------------------------------------------- +Mon May 22 10:04:59 UTC 2017 - schwab@suse.de + +- Use multibuild feature +- Remove obsolete check-build.sh +- glibc.rpmlintrc: remove obsolete entries +- Use %tmpfiles_create in nscd postin + ------------------------------------------------------------------- Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch deleted file mode 100644 index bb60587..0000000 --- a/glibc-testsuite.patch +++ /dev/null @@ -1,15 +0,0 @@ -test-lfs runs for ever on ReiserFS. Let's disable it completely. - -Index: glibc-2.17.90/io/Makefile -=================================================================== ---- glibc-2.17.90.orig/io/Makefile -+++ glibc-2.17.90/io/Makefile -@@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat - - others := pwd - test-srcs := ftwtest --tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ -+tests := test-utime test-stat test-stat2 tst-getcwd \ - tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ - tst-openat tst-unlinkat tst-fstatat tst-futimesat \ - tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index e36a20f..fe38b5a 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -16,27 +16,35 @@ # -%define build_snapshot 0 - -# PLEASE run pre_checkin.sh in this directory before submitting -# this package. Otherwise the .spec and .changes for glibc-testsuite -# and glibc-utils aren't updated. - # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.3 +%define build_snapshot 0 + +%define flavor testsuite Name: glibc-testsuite -%define normal_build ("%{name}" == "glibc") -%define utils_build ("%{name}" == "glibc-utils") -%define testsuite_build ("%{name}" == "glibc-testsuite") -# UTILS-SUMMARY-BEGIN -Summary: Standard Shared Libraries (from the GNU C Library) -License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ -Group: System/Libraries -# UTILS-SUMMARY-END +Summary: Testsuite results from the GNU C Library +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ + +%bcond_with all +%define build_main 1 +%define build_utils %{with all} +%define build_testsuite %{with all} +%if "%flavor" == "utils" +%define build_main 0 +%define build_utils 1 +%define build_testsuite 0 +%endif +%if "%flavor" == "testsuite" +%define build_main 0 +%define build_utils 0 +%define build_testsuite 1 +%endif + BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -45,16 +53,21 @@ BuildRequires: makeinfo BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz -%if %{testsuite_build} +%if %{build_testsuite} BuildRequires: gcc-c++ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel BuildRequires: python-pexpect %endif -%if %{utils_build} +%if %{build_utils} BuildRequires: gd-devel %endif +%if "%flavor" == "i686" +ExclusiveArch: i586 i686 +BuildArch: i686 +%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic +%endif %define __filter_GLIBC_PRIVATE 1 %ifarch i686 @@ -64,7 +77,7 @@ BuildRequires: gd-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{utils_build} +%if %{with fast_build} || %{build_utils} && %{without all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -76,7 +89,7 @@ BuildRequires: gd-devel %endif %endif -%define build_variants %{normal_build} +%define build_variants %{build_main} %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -103,14 +116,23 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -# 3.0 is the SLES 11 SP3 kernel -# 3.1 is the openSUSE 12.1 kernel -%define enablekernel 3.0 +# glibc requires at least kernel 3.2 +%define enablekernel 3.2 +# some architectures need a newer kernel +%ifarch ppc64le +%define enablekernel 3.10 +%endif +%ifarch aarch64 +%define enablekernel 3.7 +%endif +%ifarch ia64 +%define enablekernel 3.2.18 +%endif -Version: 2.25 +Version: 2.26 Release: 0 %if !%{build_snapshot} -%define git_id db0242e30234 +%define git_id 1c9a5c270d8b %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -118,9 +140,11 @@ Release: 0 %endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%else +Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 @@ -138,7 +162,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} # The sign key uses MD5 which is no longer accepted by gpg #Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign -%if %{normal_build} +%if %{build_main} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -160,8 +184,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif # %{normal_build} -%if %{utils_build} +%endif +%if %{build_utils} Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -207,8 +231,6 @@ Patch8: glibc-nscd.conf.patch Patch9: glibc-nodate.patch # PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch11: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle old glibc binaries Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de @@ -217,16 +239,16 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) -Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales -Patch100: glibc-2.3.locales.diff.bz2 +Patch100: add-locales.patch # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -239,10 +261,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: ### Network related patches -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch300: glibc-resolv-reload.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -251,12 +269,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) -Patch1000: tunables-bigendian.patch -# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) -Patch1001: i686-memchr-sse.patch -# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) -Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -281,10 +293,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch Patch3000: manpages.patch %description +%if %build_main The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math library, and the POSIX thread library. A system is not functional without these libraries. +%endif +%if %build_utils +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. + +If you are unsure if you need this, do not install this package. +%endif +%if %build_testsuite +This package contains the testsuite results from the GNU C Library. +%endif %package info Summary: Info Files for the GNU C Library @@ -408,7 +432,7 @@ which is highly discouraged. %package extra Summary: Extra binaries from GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: glibc = %{version} %description extra @@ -457,14 +481,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 @@ -472,15 +495,9 @@ rm nscd/s-stamp %patch104 -p1 %patch105 -p1 -%patch300 -p1 -%patch301 -p1 %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -636,7 +653,7 @@ configure_and_build_glibc() { $profile $elision \ "$@" \ --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -652,7 +669,8 @@ configure_and_build_glibc() { --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc \ + --enable-bind-now \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -751,7 +769,7 @@ popd ####################################################################### %check -%if %{testsuite_build} +%if %{build_testsuite} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 # Increase timeout @@ -793,7 +811,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if %{normal_build} +%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -994,6 +1012,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%if !%{build_utils} # Remove unwanted files (packaged in glibc-utils) rm -f %{buildroot}/%{_lib}/libmemusage* rm -f %{buildroot}/%{_lib}/libpcprofile* @@ -1011,6 +1030,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 +%endif # !utils # LSB %ifarch %ix86 @@ -1032,9 +1052,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 %endif -%endif # %{normal_build} +%else # !main -%if %{utils_build} +%if %{build_utils} make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ subdirs='malloc debug elf' @@ -1047,7 +1067,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} -%endif # %{utils_build} +%endif # utils + +%endif # !main ####################################################################### ### @@ -1055,13 +1077,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ### ####################################################################### -%if %{normal_build} %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig -%endif # %{normal_build} - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -1086,7 +1104,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /run/nscd +%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1098,14 +1116,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%if %{normal_build} %files -####################################################################### -### -### FILES -### -####################################################################### - +%if %{build_main} # glibc %defattr(-,root,root) %doc LICENSES @@ -1381,10 +1393,9 @@ exit 0 /var/lib/misc/Makefile %endif # !i686 -%endif # %{normal_build} +%endif # main -%if %{utils_build} -%files +%if %{build_utils} %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so @@ -1397,6 +1408,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%endif # %{utils_build} +%endif # utils %changelog diff --git a/glibc-testsuite.spec.in b/glibc-testsuite.spec.in new file mode 100644 index 0000000..c43f8d5 --- /dev/null +++ b/glibc-testsuite.spec.in @@ -0,0 +1,6 @@ +%define flavor testsuite + +Name: glibc-testsuite +Summary: Testsuite results from the GNU C Library +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ diff --git a/glibc-utils.changes b/glibc-utils.changes index 36fc946..0a38171 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de + +- Update to glibc 2.26 + * A per-thread cache has been added to malloc + * Unicode 10.0.0 Support + * Improvements to the DNS stub resolver + * New function reallocarray, which resizes an allocated block (like + realloc) to the product of two sizes, with a guaranteed clean failure + upon integer overflow in the multiplication + * New wrappers for the Linux-specific system calls preadv2 and pwritev2 + * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to + create a new session ID for the spawned process + * errno.h is now safe to use from C-preprocessed assembly language on all + supported operating systems + * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements + 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE + 754-2008) and ISO/IEC TS 18661-3:2015 + * The synchronization that pthread_spin_unlock performs has been changed to + now be equivalent to a C11 atomic store with release memory order to the + spin lock's memory location + * The DNS stub resolver no longer performs EDNS fallback + * res_mkquery and res_nmkquery no longer support the IQUERY opcode + * The _res_opcodes variable has been removed from libresolv + * no longer includes inline versions of any string functions, + as this kind of optimization is better done by the compiler + * The nonstandard header has been removed + * The obsolete header has been removed + * The obsolete signal constant SIGUNUSED is no longer defined by + * The obsolete function cfree has been removed + * The stack_t type no longer has the name struct sigaltstack + * The ucontext_t type no longer has the name struct ucontext + * On S/390 GNU/Linux, the constants defined by have been + synced with the kernel + * Linux kernel 3.2 or later is required at runtime, on all architectures + supported by that kernel + * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, + to avoid fragmentation-based spoofing attacks (CVE-2017-12132) + * LD_LIBRARY_PATH is now ignored in binaries running in privileged + AT_SECURE mode to guard against local privilege escalation attacks + (CVE-2017-1000366) + * Avoid printing a backtrace from the __stack_chk_fail function since it + is called on a corrupt stack and a backtrace is unreliable on a + corrupt stack (CVE-2010-3192) + * A use-after-free vulnerability in clntudp_call in the Sun RPC system + has been fixed (CVE-2017-12133) + * fate#322258, fate#321513, fate#322453 +- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, + i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, + sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, + tunables-bigendian.patch: Removed + +------------------------------------------------------------------- +Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de + +- Fix RPM group + +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + +------------------------------------------------------------------- +Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de + +- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE + programs (BZ #21209) +- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for + AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) + +------------------------------------------------------------------- +Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de + +- Remove glibc-cpusetsize.diff, no longer useful + +------------------------------------------------------------------- +Wed May 31 10:35:31 UTC 2017 - schwab@suse.de + +- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, + BZ #21289) + +------------------------------------------------------------------- +Mon May 29 18:10:31 UTC 2017 - schwab@suse.de + +- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h + aliasing + +------------------------------------------------------------------- +Mon May 29 10:24:22 UTC 2017 - schwab@suse.de + +- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE + locales (bsc#1039502) + +------------------------------------------------------------------- +Tue May 23 09:54:08 UTC 2017 - schwab@suse.de + +- Remove glibc-testsuite.patch, no longer relevant + +------------------------------------------------------------------- +Mon May 22 10:04:59 UTC 2017 - schwab@suse.de + +- Use multibuild feature +- Remove obsolete check-build.sh +- glibc.rpmlintrc: remove obsolete entries +- Use %tmpfiles_create in nscd postin + ------------------------------------------------------------------- Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index e04201f..cc72262 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -16,25 +16,35 @@ # -%define build_snapshot 0 - -# PLEASE run pre_checkin.sh in this directory before submitting -# this package. Otherwise the .spec and .changes for glibc-testsuite -# and glibc-utils aren't updated. - # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.3 +%define build_snapshot 0 + +%define flavor utils Name: glibc-utils -%define normal_build ("%{name}" == "glibc") -%define utils_build ("%{name}" == "glibc-utils") -%define testsuite_build ("%{name}" == "glibc-testsuite") -Summary: Development utilities from GNU C library +Summary: Development utilities from the GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ + +%bcond_with all +%define build_main 1 +%define build_utils %{with all} +%define build_testsuite %{with all} +%if "%flavor" == "utils" +%define build_main 0 +%define build_utils 1 +%define build_testsuite 0 +%endif +%if "%flavor" == "testsuite" +%define build_main 0 +%define build_utils 0 +%define build_testsuite 1 +%endif + BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -43,16 +53,21 @@ BuildRequires: makeinfo BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz -%if %{testsuite_build} +%if %{build_testsuite} BuildRequires: gcc-c++ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel BuildRequires: python-pexpect %endif -%if %{utils_build} +%if %{build_utils} BuildRequires: gd-devel %endif +%if "%flavor" == "i686" +ExclusiveArch: i586 i686 +BuildArch: i686 +%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic +%endif %define __filter_GLIBC_PRIVATE 1 %ifarch i686 @@ -62,7 +77,7 @@ BuildRequires: gd-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{utils_build} +%if %{with fast_build} || %{build_utils} && %{without all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -74,7 +89,7 @@ BuildRequires: gd-devel %endif %endif -%define build_variants %{normal_build} +%define build_variants %{build_main} %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -101,14 +116,23 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -# 3.0 is the SLES 11 SP3 kernel -# 3.1 is the openSUSE 12.1 kernel -%define enablekernel 3.0 +# glibc requires at least kernel 3.2 +%define enablekernel 3.2 +# some architectures need a newer kernel +%ifarch ppc64le +%define enablekernel 3.10 +%endif +%ifarch aarch64 +%define enablekernel 3.7 +%endif +%ifarch ia64 +%define enablekernel 3.2.18 +%endif -Version: 2.25 +Version: 2.26 Release: 0 %if !%{build_snapshot} -%define git_id db0242e30234 +%define git_id 1c9a5c270d8b %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -116,9 +140,11 @@ Release: 0 %endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%else +Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 @@ -136,7 +162,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} # The sign key uses MD5 which is no longer accepted by gpg #Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign -%if %{normal_build} +%if %{build_main} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -158,8 +184,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif # %{normal_build} -%if %{utils_build} +%endif +%if %{build_utils} Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -205,8 +231,6 @@ Patch8: glibc-nscd.conf.patch Patch9: glibc-nodate.patch # PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch11: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle old glibc binaries Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de @@ -215,16 +239,16 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) -Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales -Patch100: glibc-2.3.locales.diff.bz2 +Patch100: add-locales.patch # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -237,10 +261,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: ### Network related patches -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch300: glibc-resolv-reload.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -249,12 +269,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) -Patch1000: tunables-bigendian.patch -# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) -Patch1001: i686-memchr-sse.patch -# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) -Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -279,11 +293,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch Patch3000: manpages.patch %description +%if %build_main +The GNU C Library provides the most important standard libraries used +by nearly all programs: the standard C library, the standard math +library, and the POSIX thread library. A system is not functional +without these libraries. +%endif +%if %build_utils The glibc-utils package contains mtrace, a memory leak tracer and xtrace, a function call tracer which can be helpful during program debugging. -If you are unsure if you need this, don't install this package. +If you are unsure if you need this, do not install this package. +%endif +%if %build_testsuite +This package contains the testsuite results from the GNU C Library. +%endif %package info Summary: Info Files for the GNU C Library @@ -407,7 +432,7 @@ which is highly discouraged. %package extra Summary: Extra binaries from GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: glibc = %{version} %description extra @@ -456,14 +481,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 @@ -471,15 +495,9 @@ rm nscd/s-stamp %patch104 -p1 %patch105 -p1 -%patch300 -p1 -%patch301 -p1 %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -635,7 +653,7 @@ configure_and_build_glibc() { $profile $elision \ "$@" \ --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -651,7 +669,8 @@ configure_and_build_glibc() { --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc \ + --enable-bind-now \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -750,7 +769,7 @@ popd ####################################################################### %check -%if %{testsuite_build} +%if %{build_testsuite} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 # Increase timeout @@ -792,7 +811,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if %{normal_build} +%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -993,6 +1012,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%if !%{build_utils} # Remove unwanted files (packaged in glibc-utils) rm -f %{buildroot}/%{_lib}/libmemusage* rm -f %{buildroot}/%{_lib}/libpcprofile* @@ -1010,6 +1030,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 +%endif # !utils # LSB %ifarch %ix86 @@ -1031,9 +1052,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 %endif -%endif # %{normal_build} +%else # !main -%if %{utils_build} +%if %{build_utils} make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ subdirs='malloc debug elf' @@ -1046,7 +1067,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} -%endif # %{utils_build} +%endif # utils + +%endif # !main ####################################################################### ### @@ -1054,13 +1077,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ### ####################################################################### -%if %{normal_build} %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig -%endif # %{normal_build} - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -1085,7 +1104,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /run/nscd +%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1097,14 +1116,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%if %{normal_build} %files -####################################################################### -### -### FILES -### -####################################################################### - +%if %{build_main} # glibc %defattr(-,root,root) %doc LICENSES @@ -1380,10 +1393,9 @@ exit 0 /var/lib/misc/Makefile %endif # !i686 -%endif # %{normal_build} +%endif # main -%if %{utils_build} -%files +%if %{build_utils} %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so @@ -1396,6 +1408,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%endif # %{utils_build} +%endif # utils %changelog diff --git a/glibc-utils.spec.in b/glibc-utils.spec.in new file mode 100644 index 0000000..7dd5b57 --- /dev/null +++ b/glibc-utils.spec.in @@ -0,0 +1,6 @@ +%define flavor utils + +Name: glibc-utils +Summary: Development utilities from the GNU C Library +License: LGPL-2.1+ +Group: Development/Libraries/C and C++ diff --git a/glibc.changes b/glibc.changes index 36fc946..0a38171 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de + +- Update to glibc 2.26 + * A per-thread cache has been added to malloc + * Unicode 10.0.0 Support + * Improvements to the DNS stub resolver + * New function reallocarray, which resizes an allocated block (like + realloc) to the product of two sizes, with a guaranteed clean failure + upon integer overflow in the multiplication + * New wrappers for the Linux-specific system calls preadv2 and pwritev2 + * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to + create a new session ID for the spawned process + * errno.h is now safe to use from C-preprocessed assembly language on all + supported operating systems + * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements + 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE + 754-2008) and ISO/IEC TS 18661-3:2015 + * The synchronization that pthread_spin_unlock performs has been changed to + now be equivalent to a C11 atomic store with release memory order to the + spin lock's memory location + * The DNS stub resolver no longer performs EDNS fallback + * res_mkquery and res_nmkquery no longer support the IQUERY opcode + * The _res_opcodes variable has been removed from libresolv + * no longer includes inline versions of any string functions, + as this kind of optimization is better done by the compiler + * The nonstandard header has been removed + * The obsolete header has been removed + * The obsolete signal constant SIGUNUSED is no longer defined by + * The obsolete function cfree has been removed + * The stack_t type no longer has the name struct sigaltstack + * The ucontext_t type no longer has the name struct ucontext + * On S/390 GNU/Linux, the constants defined by have been + synced with the kernel + * Linux kernel 3.2 or later is required at runtime, on all architectures + supported by that kernel + * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, + to avoid fragmentation-based spoofing attacks (CVE-2017-12132) + * LD_LIBRARY_PATH is now ignored in binaries running in privileged + AT_SECURE mode to guard against local privilege escalation attacks + (CVE-2017-1000366) + * Avoid printing a backtrace from the __stack_chk_fail function since it + is called on a corrupt stack and a backtrace is unreliable on a + corrupt stack (CVE-2010-3192) + * A use-after-free vulnerability in clntudp_call in the Sun RPC system + has been fixed (CVE-2017-12133) + * fate#322258, fate#321513, fate#322453 +- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, + i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, + sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, + tunables-bigendian.patch: Removed + +------------------------------------------------------------------- +Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de + +- Fix RPM group + +------------------------------------------------------------------- +Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de + +- s390-elision-enable-envvar.patch: enable TLE only if + GLIBC_ELISION_ENABLE=yes is defined (fate#322271) + +------------------------------------------------------------------- +Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de + +- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE + programs (BZ #21209) +- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for + AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624) + +------------------------------------------------------------------- +Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de + +- Remove glibc-cpusetsize.diff, no longer useful + +------------------------------------------------------------------- +Wed May 31 10:35:31 UTC 2017 - schwab@suse.de + +- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, + BZ #21289) + +------------------------------------------------------------------- +Mon May 29 18:10:31 UTC 2017 - schwab@suse.de + +- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h + aliasing + +------------------------------------------------------------------- +Mon May 29 10:24:22 UTC 2017 - schwab@suse.de + +- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE + locales (bsc#1039502) + +------------------------------------------------------------------- +Tue May 23 09:54:08 UTC 2017 - schwab@suse.de + +- Remove glibc-testsuite.patch, no longer relevant + +------------------------------------------------------------------- +Mon May 22 10:04:59 UTC 2017 - schwab@suse.de + +- Use multibuild feature +- Remove obsolete check-build.sh +- glibc.rpmlintrc: remove obsolete entries +- Use %tmpfiles_create in nscd postin + ------------------------------------------------------------------- Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index 3f66b81..f1e08d5 100644 Binary files a/glibc.keyring and b/glibc.keyring differ diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc index 3c55cb4..daca217 100644 --- a/glibc.rpmlintrc +++ b/glibc.rpmlintrc @@ -1,25 +1,20 @@ -addFilter(".*glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") -addFilter(".*glibc.* incorrect-fsf-address") -# False positive - glibc implements gethostbyname -addFilter(".*binary-or-shlib-calls-gethostbyname") +# glibc-profile is a devel package +addFilter("glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") +# glibc is not a devel package +addFilter("glibc\\..* non-devel-file-in-devel-package") +# getent deliberately uses gethostbyname +addFilter("binary-or-shlib-calls-gethostbyname /usr/bin/getent") # We do need to keep the symtab (see comments in glibc.spec), so this is intented: -addFilter(".*unstripped-binary-or-object.*") -# The duplication is intented: -addFilter(".*files-duplicate /usr/lib64/libbsd-compat.a /usr/lib.*/libg.a") +addFilter("unstripped-binary-or-object") # ld.so is special: -addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so") +addFilter("shared-lib-without-dependency-information /lib.*/ld-2.*\\.so") # Handled via glibc_post_upgrade: -addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post") -# Do not require permissions, this will lead to a cycle (bnc#700925): -addFilter("glibc\..*: permissions-missing-requires") +addFilter("postin-without-ldconfig") # We will not rename glibc to follow the shlib policy addFilter("shlib-policy-missing-suffix") -# The dynamic linker and libnsl call exit - this is fine -addFilter(".*shared-lib-calls-exit.*") +# libpthread and libnsl call exit - this is fine +addFilter("shared-lib-calls-exit") # The man-pages package contains a number of man pages for programs that come # with glibc, therefore do not warn about them -addFilter(".*glibc.*no-manual-page-for-binary getent") -addFilter(".*glibc.*no-manual-page-for-binary iconv") -addFilter(".*glibc.*no-manual-page-for-binary ldd") -addFilter(".*glibc.*no-manual-page-for-binary ldconfig") -addFilter(".*nscd.*no-manual-page-for-binary nscd") +addFilter("glibc.*no-manual-page-for-binary (getent|iconv|ldd|ldconfig|locale)") +addFilter("nscd.*no-manual-page-for-binary nscd") diff --git a/glibc.spec b/glibc.spec index 60003f1..4421561 100644 --- a/glibc.spec +++ b/glibc.spec @@ -16,27 +16,41 @@ # -%define build_snapshot 0 - -# PLEASE run pre_checkin.sh in this directory before submitting -# this package. Otherwise the .spec and .changes for glibc-testsuite -# and glibc-utils aren't updated. - # Run with osc --with=fast_build to have a shorter turnaround # It will avoid building some parts of glibc %bcond_with fast_build %define crypt_bf_version 1.3 +%define build_snapshot 0 + +# INCLUDE glibc$flavor.spec.in +%ifarch i686 +%define flavor i686 +%else +%define flavor %nil +%endif Name: glibc -%define normal_build ("%{name}" == "glibc") -%define utils_build ("%{name}" == "glibc-utils") -%define testsuite_build ("%{name}" == "glibc-testsuite") -# UTILS-SUMMARY-BEGIN Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries -# UTILS-SUMMARY-END +# END INCLUDE glibc$flavor.spec.in + +%bcond_with all +%define build_main 1 +%define build_utils %{with all} +%define build_testsuite %{with all} +%if "%flavor" == "utils" +%define build_main 0 +%define build_utils 1 +%define build_testsuite 0 +%endif +%if "%flavor" == "testsuite" +%define build_main 0 +%define build_utils 0 +%define build_testsuite 1 +%endif + BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -45,16 +59,21 @@ BuildRequires: makeinfo BuildRequires: pwdutils BuildRequires: systemd-rpm-macros BuildRequires: xz -%if %{testsuite_build} +%if %{build_testsuite} BuildRequires: gcc-c++ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libstdc++-devel BuildRequires: python-pexpect %endif -%if %{utils_build} +%if %{build_utils} BuildRequires: gd-devel %endif +%if "%flavor" == "i686" +ExclusiveArch: i586 i686 +BuildArch: i686 +%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic +%endif %define __filter_GLIBC_PRIVATE 1 %ifarch i686 @@ -64,7 +83,7 @@ BuildRequires: gd-devel %define build_locales 1 %define build_html 0 %else -%if %{with fast_build} || %{utils_build} +%if %{with fast_build} || %{build_utils} && %{without all} %define build_profile 0 %define build_locales 0 %define build_html 0 @@ -76,7 +95,7 @@ BuildRequires: gd-devel %endif %endif -%define build_variants %{normal_build} +%define build_variants %{build_main} %define disable_assert 0 %define enable_stackguard_randomization 1 @@ -103,14 +122,23 @@ BuildRequires: gd-devel %define powerpc_optimize_cpu_power7 0 %define powerpc_optimize_cpu_cell 0 %endif # ppc, ppc64 -# 3.0 is the SLES 11 SP3 kernel -# 3.1 is the openSUSE 12.1 kernel -%define enablekernel 3.0 +# glibc requires at least kernel 3.2 +%define enablekernel 3.2 +# some architectures need a newer kernel +%ifarch ppc64le +%define enablekernel 3.10 +%endif +%ifarch aarch64 +%define enablekernel 3.7 +%endif +%ifarch ia64 +%define enablekernel 3.2.18 +%endif -Version: 2.25 +Version: 2.26 Release: 0 %if !%{build_snapshot} -%define git_id db0242e30234 +%define git_id 1c9a5c270d8b %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -118,9 +146,11 @@ Release: 0 %endif Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} +Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig +%else +Source: glibc-%{version}.tar.xz %endif Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 @@ -138,7 +168,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version} # The sign key uses MD5 which is no longer accepted by gpg #Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign -%if %{normal_build} +%if %{build_main} # ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 @@ -160,8 +190,8 @@ Provides: ld-linux.so.3(GLIBC_2.4) Requires(pre): filesystem Recommends: glibc-extra Provides: rtld(GNU_HASH) -%endif # %{normal_build} -%if %{utils_build} +%endif +%if %{build_utils} Requires: glibc = %{version} %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -207,8 +237,6 @@ Patch8: glibc-nscd.conf.patch Patch9: glibc-nodate.patch # PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch10: glibc-version.diff -# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de -Patch11: glibc-testsuite.patch # PATCH-FIX-OPENSUSE handle old glibc binaries Patch12: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de @@ -217,16 +245,16 @@ Patch13: glibc-2.3.2.no_archive.diff Patch14: glibc-bindresvport-blacklist.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch15: glibc-2.3.90-langpackdir.diff -# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review) -Patch18: glibc-cpusetsize.diff # PATCH-FEATURE-SLE Use nscd user for nscd Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined +Patch22: s390-elision-enable-envvar.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales -Patch100: glibc-2.3.locales.diff.bz2 +Patch100: add-locales.patch # PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch102: glibc-2.4.90-no_NO.diff # PATCH-FIX-OPENSUSE -- Renames for China @@ -239,10 +267,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch ### Broken patches in glibc that we revert for now: ### Network related patches -# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change -Patch300: glibc-resolv-reload.diff -# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de -Patch301: glibc-2.2-sunrpc.diff # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch304: glibc-resolv-mdnshint.diff # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 @@ -251,12 +275,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) -Patch1000: tunables-bigendian.patch -# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182) -Patch1001: i686-memchr-sse.patch -# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115) -Patch1002: sunrpc-use-after-free.patch ### # Patches awaiting upstream approval @@ -281,10 +299,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch Patch3000: manpages.patch %description +%if %build_main The GNU C Library provides the most important standard libraries used by nearly all programs: the standard C library, the standard math library, and the POSIX thread library. A system is not functional without these libraries. +%endif +%if %build_utils +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. + +If you are unsure if you need this, do not install this package. +%endif +%if %build_testsuite +This package contains the testsuite results from the GNU C Library. +%endif %package info Summary: Info Files for the GNU C Library @@ -408,7 +438,7 @@ which is highly discouraged. %package extra Summary: Extra binaries from GNU C Library License: LGPL-2.1+ -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: glibc = %{version} %description extra @@ -457,14 +487,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 %patch100 -p1 %patch102 -p1 @@ -472,15 +501,9 @@ rm nscd/s-stamp %patch104 -p1 %patch105 -p1 -%patch300 -p1 -%patch301 -p1 %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -636,7 +659,7 @@ configure_and_build_glibc() { $profile $elision \ "$@" \ --build=%{target} --host=%{target} \ -%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x +%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ %endif %ifarch mipsel @@ -652,7 +675,8 @@ configure_and_build_glibc() { --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ - --enable-bind-now --enable-obsolete-rpc \ + --enable-bind-now \ + --enable-obsolete-rpc --enable-obsolete-nsl \ --disable-timezone-tools # Should we enable --enable-systemtap? # Should we enable --enable-nss-crypt to build use freebl3 hash functions? @@ -751,7 +775,7 @@ popd ####################################################################### %check -%if %{testsuite_build} +%if %{build_testsuite} # The testsuite will fail if asneeded is used export SUSE_ASNEEDED=0 # Increase timeout @@ -793,7 +817,7 @@ make %{?_smp_mflags} -C cc-base check-abi ####################################################################### %install -%if %{normal_build} +%if %{build_main} # We don't want to strip the .symtab from our libraries in find-debuginfo.sh, # certainly not from libpthread.so.* because it is used by libthread_db to find # some non-exported symbols in order to detect if threading support @@ -994,6 +1018,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf +%if !%{build_utils} # Remove unwanted files (packaged in glibc-utils) rm -f %{buildroot}/%{_lib}/libmemusage* rm -f %{buildroot}/%{_lib}/libpcprofile* @@ -1011,6 +1036,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile rm -f %{buildroot}%{_sbindir}/nscd %endif # i686 +%endif # !utils # LSB %ifarch %ix86 @@ -1032,9 +1058,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3 ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3 %endif -%endif # %{normal_build} +%else # !main -%if %{utils_build} +%if %{build_utils} make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \ subdirs='malloc debug elf' @@ -1047,7 +1073,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof} rm -rf %{buildroot}%{_mandir}/man* rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} -%endif # %{utils_build} +%endif # utils + +%endif # !main ####################################################################### ### @@ -1055,13 +1083,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir} ### ####################################################################### -%if %{normal_build} %post -p %{_sbindir}/glibc_post_upgrade - %postun -p /sbin/ldconfig -%endif # %{normal_build} - %post locale for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do [ -d "$l.d" ] || continue @@ -1086,7 +1110,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc %post -n nscd %service_add_post nscd.service -mkdir -p /run/nscd +%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf # Previously we had nscd.socket, remove it test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || : test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || : @@ -1098,14 +1122,8 @@ exit 0 %service_del_postun nscd.service exit 0 -%if %{normal_build} %files -####################################################################### -### -### FILES -### -####################################################################### - +%if %{build_main} # glibc %defattr(-,root,root) %doc LICENSES @@ -1381,10 +1399,9 @@ exit 0 /var/lib/misc/Makefile %endif # !i686 -%endif # %{normal_build} +%endif # main -%if %{utils_build} -%files +%if %{build_utils} %defattr(-,root,root) /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so @@ -1397,6 +1414,6 @@ exit 0 %{_bindir}/sotruss %{_bindir}/xtrace %{_bindir}/pldd -%endif # %{utils_build} +%endif # utils %changelog diff --git a/i686-memchr-sse.patch b/i686-memchr-sse.patch deleted file mode 100644 index a201f51..0000000 --- a/i686-memchr-sse.patch +++ /dev/null @@ -1,45 +0,0 @@ -2017-03-29 Adhemerval Zanella - - [BZ# 21182] - * string/test-memchr.c (do_test): Add BZ#21182 checks for address - near end of a page. - * sysdeps/i386/i686/multiarch/memchr-sse2.S (__memchr): Fix - overflow calculation. - -Index: glibc-2.25/string/test-memchr.c -=================================================================== ---- glibc-2.25.orig/string/test-memchr.c -+++ glibc-2.25/string/test-memchr.c -@@ -208,6 +208,12 @@ test_main (void) - do_test (0, i, i + 1, i + 1, 0); - } - -+ /* BZ#21182 - wrong overflow calculation for i686 implementation -+ with address near end of the page. */ -+ for (i = 2; i < 16; ++i) -+ /* page_size is in fact getpagesize() * 2. */ -+ do_test (page_size / 2 - i, i, i, 1, 0x9B); -+ - do_random_tests (); - return ret; - } -Index: glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S -=================================================================== ---- glibc-2.25.orig/sysdeps/i386/i686/multiarch/memchr-sse2.S -+++ glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S -@@ -117,7 +117,6 @@ L(crosscache): - - # ifndef USE_AS_RAWMEMCHR - jnz L(match_case2_prolog1) -- lea -16(%edx), %edx - /* Calculate the last acceptable address and check for possible - addition overflow by using satured math: - edx = ecx + edx -@@ -125,6 +124,7 @@ L(crosscache): - add %ecx, %edx - sbb %eax, %eax - or %eax, %edx -+ sub $16, %edx - jbe L(return_null) - lea 16(%edi), %edi - # else diff --git a/pre_checkin.sh b/pre_checkin.sh index 121f4b1..4dc225c 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -1,29 +1,8 @@ -#!/bin/bash -# This script is called automatically during autobuild checkin. -sed -e 's/^Name:.*glibc/&-testsuite/' glibc.spec > glibc-testsuite.spec -cp glibc.changes glibc-testsuite.changes -awk '/^Name:/{ $0 = $0 "-utils" } -/UTILS-SUMMARY-BEGIN/ { - ignore = 1 - print "\ -Summary: Development utilities from GNU C library\n\ -License: LGPL-2.1+\n\ -Group: Development/Languages/C and C++" -} -/UTILS-SUMMARY-END/ { ignore = 0; next } -/^%description$/ { - ignore = 1 - print "\ -%description\n\ -The glibc-utils package contains mtrace, a memory leak tracer and\n\ -xtrace, a function call tracer which can be helpful during program\n\ -debugging.\n\ -\n\ -If you are unsure if you need this, don'\''t install this package.\n" -} -/^%package/ { ignore = 0} -!ignore { print }' glibc.spec > glibc-utils.spec -cp glibc.changes glibc-utils.changes - -osc service localrun format_spec_file - +#!/bin/sh +for flavor in utils testsuite; do + sed -e "/^# INCLUDE /r glibc-$flavor.spec.in" \ + -e "/^# INCLUDE /,/^# END INCLUDE /d" \ + glibc.spec > glibc-$flavor.spec + cp glibc.changes glibc-$flavor.changes +done +osc service lr format_spec_file diff --git a/s390-elision-enable-envvar.patch b/s390-elision-enable-envvar.patch new file mode 100644 index 0000000..e83b280 --- /dev/null +++ b/s390-elision-enable-envvar.patch @@ -0,0 +1,31 @@ +Index: glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c +=================================================================== +--- glibc-2.25.orig/sysdeps/unix/sysv/linux/s390/elision-conf.c ++++ glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + /* Reasonable initial tuning values, may be revised in the future. + This is a conservative initial value. */ +@@ -64,7 +65,17 @@ elision_init (int argc __attribute__ ((u + When false elision is never attempted. */ + int elision_available = (GLRO (dl_hwcap) & HWCAP_S390_TE) ? 1 : 0; + +- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; ++ /* Scan the environment and conditionally enable TLE. */ ++ if (elision_available != 0 && __libc_enable_secure == 0) ++ { ++ for ( ; *environ != NULL; environ++) ++ if (**environ == 'G' ++ && strcmp (*environ, "GLIBC_ELISION_ENABLE=yes") == 0) ++ { ++ __pthread_force_elision = elision_available; ++ break; ++ } ++ } + } + + #ifdef SHARED diff --git a/sunrpc-use-after-free.patch b/sunrpc-use-after-free.patch deleted file mode 100644 index b1ddd22..0000000 --- a/sunrpc-use-after-free.patch +++ /dev/null @@ -1,111 +0,0 @@ -2017-02-27 Florian Weimer - - [BZ #21115] - * sunrpc/clnt_udp.c (clntudp_call): Free ancillary data later. - * sunrpc/Makefile (tests): Add tst-udp-error. - (tst-udp-error): Link against libc.so explicitly. - * sunrpc/tst-udp-error: New file. - -Index: glibc-2.25/sunrpc/Makefile -=================================================================== ---- glibc-2.25.orig/sunrpc/Makefile -+++ glibc-2.25/sunrpc/Makefile -@@ -93,7 +93,7 @@ rpcgen-objs = rpc_main.o rpc_hout.o rpc_ - extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) - others += rpcgen - --tests = tst-xdrmem tst-xdrmem2 test-rpcent -+tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error - xtests := tst-getmyaddr - - ifeq ($(have-thread-library),yes) -@@ -155,6 +155,7 @@ BUILD_CPPFLAGS += $(sunrpc-CPPFLAGS) - $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so -+$(objpfx)tst-udp-error: $(common-objpfx)linkobj/libc.so - - $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) - -Index: glibc-2.25/sunrpc/clnt_udp.c -=================================================================== ---- glibc-2.25.orig/sunrpc/clnt_udp.c -+++ glibc-2.25/sunrpc/clnt_udp.c -@@ -424,9 +424,9 @@ send_again: - cmsg = CMSG_NXTHDR (&msg, cmsg)) - if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR) - { -- free (cbuf); - e = (struct sock_extended_err *) CMSG_DATA(cmsg); - cu->cu_error.re_errno = e->ee_errno; -+ free (cbuf); - return (cu->cu_error.re_status = RPC_CANTRECV); - } - free (cbuf); -Index: glibc-2.25/sunrpc/tst-udp-error.c -=================================================================== ---- /dev/null -+++ glibc-2.25/sunrpc/tst-udp-error.c -@@ -0,0 +1,62 @@ -+/* Check for use-after-free in clntudp_call (bug 21115). -+ Copyright (C) 2017 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ support_become_root (); -+ support_enter_network_namespace (); -+ -+ /* Obtain a likely-unused port number. */ -+ struct sockaddr_in sin = -+ { -+ .sin_family = AF_INET, -+ .sin_addr.s_addr = htonl (INADDR_LOOPBACK), -+ }; -+ { -+ int fd = xsocket (AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); -+ xbind (fd, (struct sockaddr *) &sin, sizeof (sin)); -+ socklen_t sinlen = sizeof (sin); -+ xgetsockname (fd, (struct sockaddr *) &sin, &sinlen); -+ /* Close the socket, so that we will receive an error below. */ -+ close (fd); -+ } -+ -+ int sock = RPC_ANYSOCK; -+ CLIENT *clnt = clntudp_create -+ (&sin, 1, 2, (struct timeval) { 1, 0 }, &sock); -+ TEST_VERIFY_EXIT (clnt != NULL); -+ TEST_VERIFY (clnt_call (clnt, 3, -+ (xdrproc_t) xdr_void, NULL, -+ (xdrproc_t) xdr_void, NULL, -+ ((struct timeval) { 3, 0 })) -+ == RPC_CANTRECV); -+ clnt_destroy (clnt); -+ -+ return 0; -+} -+ -+#include diff --git a/tunables-bigendian.patch b/tunables-bigendian.patch deleted file mode 100644 index f679c20..0000000 --- a/tunables-bigendian.patch +++ /dev/null @@ -1,73 +0,0 @@ -2017-02-08 Siddhesh Poyarekar - - [BZ #21109] - * elf/dl-tunable-types.h (tunable_callback_t): Accept - tunable_val_t as argument. - * elf/dl-tunables.c (__tunable_set_val): Add comment. - * malloc/arena.c (set_mallopt_check): Take tunable_val_t as - argument. - (DL_TUNABLE_CALLBACK_FNDECL): Likewise. - -Index: glibc-2.25/elf/dl-tunable-types.h -=================================================================== ---- glibc-2.25.orig/elf/dl-tunable-types.h -+++ glibc-2.25/elf/dl-tunable-types.h -@@ -21,8 +21,6 @@ - # define _TUNABLE_TYPES_H_ - #include - --typedef void (*tunable_callback_t) (void *); -- - typedef enum - { - TUNABLE_TYPE_INT_32, -@@ -43,6 +41,8 @@ typedef union - const char *strval; - } tunable_val_t; - -+typedef void (*tunable_callback_t) (tunable_val_t *); -+ - /* Security level for tunables. This decides what to do with individual - tunables for AT_SECURE binaries. */ - typedef enum -Index: glibc-2.25/elf/dl-tunables.c -=================================================================== ---- glibc-2.25.orig/elf/dl-tunables.c -+++ glibc-2.25/elf/dl-tunables.c -@@ -455,6 +455,8 @@ __tunable_set_val (tunable_id_t id, void - if (cur->strval == NULL) - return; - -+ /* Caller does not need the value, just call the callback with our tunable -+ value. */ - if (valp == NULL) - goto cb; - -Index: glibc-2.25/malloc/arena.c -=================================================================== ---- glibc-2.25.orig/malloc/arena.c -+++ glibc-2.25/malloc/arena.c -@@ -212,9 +212,9 @@ __malloc_fork_unlock_child (void) - #if HAVE_TUNABLES - static inline int do_set_mallopt_check (int32_t value); - void --DL_TUNABLE_CALLBACK (set_mallopt_check) (void *valp) -+DL_TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp) - { -- int32_t value = *(int32_t *) valp; -+ int32_t value = (int32_t) valp->numval; - do_set_mallopt_check (value); - if (check_action != 0) - __malloc_check_init (); -@@ -223,9 +223,9 @@ DL_TUNABLE_CALLBACK (set_mallopt_check) - # define DL_TUNABLE_CALLBACK_FNDECL(__name, __type) \ - static inline int do_ ## __name (__type value); \ - void \ --DL_TUNABLE_CALLBACK (__name) (void *valp) \ -+DL_TUNABLE_CALLBACK (__name) (tunable_val_t *valp) \ - { \ -- __type value = *(__type *) valp; \ -+ __type value = (__type) (valp)->numval; \ - do_ ## __name (value); \ - } -