Hello community,

here is the log from the commit of package glibc for openSUSE:Factory checked 
in at 2019-02-08 12:03:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glibc (Old)
 and      /work/SRC/openSUSE:Factory/.glibc.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "glibc"

Fri Feb  8 12:03:36 2019 rev:225 rq:670586 version:2.29

Changes:
--------
--- /work/SRC/openSUSE:Factory/glibc/glibc.changes      2018-07-02 
23:26:47.461743577 +0200
+++ /work/SRC/openSUSE:Factory/.glibc.new.28833/glibc.changes   2019-02-08 
12:04:11.621676704 +0100
@@ -1,0 +2,152 @@
+Fri Feb  1 10:34:39 UTC 2019 - sch...@suse.de
+
+- Update to glibc 2.29
+  * The getcpu wrapper function has been added, which returns the currently
+    used CPU and NUMA node
+  * Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf
+  * The reallocarray function is now declared under _DEFAULT_SOURCE, not just
+    for _GNU_SOURCE, to match BSD environments
+  * For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel
+    indicates that it will abort the transaction prior to entering the kernel
+    (PPC_FEATURE2_HTM_NOSC on hwcap2)
+  * The functions posix_spawn_file_actions_addchdir_np and
+    posix_spawn_file_actions_addfchdir_np have been added, enabling
+    posix_spawn and posix_spawnp to run the new process in a different
+    directory
+  * The popen and system do not run atfork handlers anymore (BZ#17490)
+  * strftime's default formatting of a locale's alternative year (%Ey)
+    has been changed to zero-pad the year to a minimum of two digits,
+    like "%y"
+  * As a GNU extension, the '_' and '-' flags can now be applied to
+    "%EY" to control how the year number is formatted
+  * The glibc.tune tunable namespace has been renamed to glibc.cpu and the
+    tunable glibc.tune.cpu has been renamed to glibc.cpu.name
+  * The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
+    in <sys/procfs.h>, has been corrected to match the type actually used by
+    the Linux kernel
+  * An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]'
+    meant to scan a string and allocate space for it with malloc, is now
+    restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE
+    defined
+- unwind-ctor.patch, old-getdents64.patch, nss-files-leak.patch,
+  riscv-feholdexcept-setround.patch,
+  pthread-cond-broadcast-waiters-after-spinning.patch,
+  regex-uninit-memory-access.patch, spawni-maybe-script-execute.patch,
+  gethostid-gethostbyname-failure.patch, strstr-huge-needle.patch,
+  pthread-mutex-lock-elision-race.patch, x86-haswell-string-flags.patch,
+  if-nametoindex-descr-leak.patch, riscv-flush-icache.patch: Removed
+
+-------------------------------------------------------------------
+Wed Jan  9 14:21:04 UTC 2019 - sch...@suse.de
+
+- fnmatch-collating-elements.patch: update
+- riscv-flush-icache.patch: fix for compiling against 4.20 headers
+
+-------------------------------------------------------------------
+Wed Nov 28 09:52:49 UTC 2018 - sch...@suse.de
+
+- if-nametoindex-descr-leak.patch: if_nametoindex: Fix descriptor leak for
+  overlong name (CVE-2018-19591, BZ #23927, bsc#1117603)
+
+-------------------------------------------------------------------
+Wed Nov  7 17:24:35 UTC 2018 - Jan Engelhardt <jeng...@inai.de>
+
+- Fix typography for glibc-locale-base.
+
+-------------------------------------------------------------------
+Wed Nov  7 11:09:05 UTC 2018 - sch...@suse.de
+
+- pthread-mutex-lock-elision-race.patch: Fix race in pthread_mutex_lock
+  while promoting to PTHREAD_MUTEX_ELISION_NP (BZ #23275)
+- x86-haswell-string-flags.patch: x86: Fix Haswell CPU string flags (BZ
+  #23709)
+
+-------------------------------------------------------------------
+Wed Sep 26 09:41:59 UTC 2018 - sch...@suse.de
+
+- unwind-ctor.patch: Add missing unwind information to ld.so on powerpc32
+  (BZ #23707)
+- old-getdents64.patch: Rewrite __old_getdents64 (BZ #23497)
+- nss-files-leak.patch: Fix file stream leak in aliases lookup (BZ #23521)
+- riscv-feholdexcept-setround.patch: Fix rounding save/restore bug
+- pthread-cond-broadcast-waiters-after-spinning.patch: Fix
+  waiters-after-spinning case (BZ #23538)
+- regex-uninit-memory-access.patch: fix uninitialized memory access (BZ
+  #23578)
+- spawni-maybe-script-execute.patch: Fix segfault in maybe_script_execute
+- gethostid-gethostbyname-failure.patch: Check for NULL value from
+  gethostbyname_r (BZ #23679)
+- strstr-huge-needle.patch: Fix strstr bug with huge needles (BZ #23637)
+
+-------------------------------------------------------------------
+Wed Sep 12 06:47:33 UTC 2018 - sch...@suse.de
+
+- Add libpng-devel and zlib-devel for utils build
+
+-------------------------------------------------------------------
+Wed Aug 15 13:53:41 UTC 2018 - sch...@suse.de
+
+- Add glibc-locale-base subpackage containing only C, C.UTF-8 and
+  en_US.UTF-8 locales (fate#326551)
+
+-------------------------------------------------------------------
+Thu Aug  2 07:48:07 UTC 2018 - sch...@suse.de
+
+- Update to glibc 2.28
+  * The localization data for ISO 14651 is updated to match the 2016
+    Edition 4 release of the standard, this matches data provided by
+    Unicode 9.0.0
+  * Unicode 11.0.0 Support: Character encoding, character type info, and
+    transliteration tables are all updated to Unicode 11.0.0, using
+    generator scripts contributed by Mike FABIAN (Red Hat)
+  * <math.h> functions that round their results to a narrower type are added
+    from TS 18661-1:2014 and TS 18661-3:2015
+  * Two grammatical forms of month names are now supported
+  * The renameat2 function has been added, a variant of the renameat function
+    which has a flags argument
+  * The statx function has been added, a variant of the fstatat64
+    function with an additional flags argument
+  * IDN domain names in getaddrinfo and getnameinfo now use the system libidn2
+    library if installed
+  * Parsing of dynamic string tokens in DT_RPATH, DT_RUNPATH, DT_NEEDED,
+    DT_AUXILIARY, and DT_FILTER has been expanded to support the full
+    range of ELF gABI expressions including such constructs as
+    '$ORIGIN$ORIGIN' (if valid)
+  * Support for ISO C threads (ISO/IEC 9899:2011) has been added.
+  * The nonstandard header files <libio.h> and <_G_config.h> are no longer
+    installed
+  * The stdio functions 'getc' and 'putc' are no longer defined as macros
+  * All stdio functions now treat end-of-file as a sticky condition
+  * The macros 'major', 'minor', and 'makedev' are now only available from
+    the header <sys/sysmacros.h>
+  * The obsolete function ustat is no longer available to newly linked
+    binaries; the headers <ustat.h> and <sys/ustat.h> have been removed
+  * The obsolete function nfsservctl is no longer available to newly linked
+    binaries
+  * The obsolete function name llseek is no longer available to newly linked
+    binaries
+  * The AI_IDN_ALLOW_UNASSIGNED and NI_IDN_ALLOW_UNASSIGNED flags for the
+    getaddrinfo and getnameinfo functions have been deprecated
+  * The AI_IDN_USE_STD3_ASCII_RULES and NI_IDN_USE_STD3_ASCII_RULES flags for
+    the getaddrinfo and getnameinfo functions have been deprecated
+  * The fcntl function now have a Long File Support variant named fcntl64
+  * CVE-2016-6261, CVE-2016-6263, CVE-2017-14062: Various vulnerabilities have
+    been fixed by removing the glibc-internal IDNA implementation and using
+    the system-provided libidn2 library instead
+- Split off all libcrypt related functions into package libxcrypt
+- fix-locking-in-_IO_cleanup.patch, fnmatch-collating-elements.patch:
+  Rediff
+- aarch64-sys-ptrace-update.patch,
+  crypt_blowfish-1.2-hack_around_arm.diff, crypt_blowfish-1.2-sha.diff,
+  crypt_blowfish-const.patch, crypt_blowfish-gensalt.patch,
+  glibc-2.14-crypt.diff, i386-memmove-sse2-unaligned.patch,
+  i386-sigaction-sa-restorer.patch, mempcpy-avx512.patch,
+  netgroup-cache-keys.patch, nss-database-multiple-dfn.patch,
+  pkey-get-reserved-name.patch, powerpc-sys-ptrace-undefine-macros.patch,
+  powerpc-sys-ptrace-update.patch, realpath-ssize-max-overflow.patch,
+  res-send-enomem.patch, riscv-fmax-fmin-nan.patch,
+  riscv-kernel-sigaction.patch, riscv-readelflib.patch,
+  riscv-tls-init.patch: Removed
+- glibc_post_upgrade.c: Don't reload init (bsc#1103124)
+
+-------------------------------------------------------------------

Old:
----
  aarch64-sys-ptrace-update.patch
  crypt_blowfish-1.2-hack_around_arm.diff
  crypt_blowfish-1.2-sha.diff
  crypt_blowfish-1.3.tar.gz
  crypt_blowfish-const.patch
  crypt_blowfish-gensalt.patch
  glibc-2.14-crypt.diff
  glibc-2.27.tar.xz
  glibc-2.27.tar.xz.sig
  i386-memmove-sse2-unaligned.patch
  i386-sigaction-sa-restorer.patch
  mempcpy-avx512.patch
  netgroup-cache-keys.patch
  nss-database-multiple-dfn.patch
  pkey-get-reserved-name.patch
  powerpc-sys-ptrace-undefine-macros.patch
  powerpc-sys-ptrace-update.patch
  realpath-ssize-max-overflow.patch
  res-send-enomem.patch
  riscv-fmax-fmin-nan.patch
  riscv-kernel-sigaction.patch
  riscv-readelflib.patch
  riscv-tls-init.patch

New:
----
  glibc-2.29.tar.xz
  glibc-2.29.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ glibc.spec ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.001675432 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.009675429 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package glibc
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -20,7 +20,6 @@
 # It will avoid building some parts of glibc
 %bcond_with    fast_build
 
-%define crypt_bf_version 1.3
 %define build_snapshot 0
 %bcond_with ringdisabled
 
@@ -64,6 +63,7 @@
 BuildRequires:  libselinux-devel
 BuildRequires:  makeinfo
 BuildRequires:  pwdutils
+BuildRequires:  python3-base
 BuildRequires:  systemd-rpm-macros
 BuildRequires:  systemtap-headers
 BuildRequires:  xz
@@ -71,11 +71,15 @@
 BuildRequires:  gcc-c++
 BuildRequires:  gdb
 BuildRequires:  glibc-devel-static
+# BZ #24113
+#BuildRequires:  libidn2-0
 BuildRequires:  libstdc++-devel
 BuildRequires:  python3-pexpect
 %endif
 %if %{build_utils}
 BuildRequires:  gd-devel
+BuildRequires:  libpng-devel
+BuildRequires:  zlib-devel
 %endif
 %if "%flavor" == "i686"
 ExclusiveArch:  i586 i686
@@ -146,10 +150,10 @@
 %define enablekernel 4.15
 %endif
 
-Version:        2.27
+Version:        2.29
 Release:        0
 %if !%{build_snapshot}
-%define git_id 3260f6ce87b7
+%define git_id 56c86f5dd516
 %define libversion %version
 %else
 %define git_id %(echo %version | sed 's/.*\.g//')
@@ -173,10 +177,6 @@
 # For systemd 
 Source20:       nscd.conf
 Source21:       nscd.service
-# crypt_blowfish
-Source50:       
http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz
-# 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 %{build_main}
 # ngpt was used in 8.1 and SLES8
@@ -230,16 +230,6 @@
 # openSUSE specific patches - won't go upstream
 ###
 ### openSUSE extensions, configuration
-# PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876
-Patch1:         glibc-2.14-crypt.diff
-# PATCH-FEATURE-OPENSUSE constify crypt_blowfish
-Patch2:         crypt_blowfish-const.patch
-# PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish lnus...@suse.de
-Patch3:         crypt_blowfish-1.2-sha.diff
-# PATCH-FEATURE-OPENSUSE Move crypt_gensalt_rn to separate library
-Patch4:         crypt_blowfish-gensalt.patch
-# PATCH-FEATURE-OPENSUSE Avoid build failure on noexecstack marker on ARM 
dmuel...@suse.de
-Patch5:         crypt_blowfish-1.2-hack_around_arm.diff
 # PATCH-FIX-OPENSUSE Fix path for nscd databases
 Patch6:         glibc-2.3.3-nscd-db-path.diff
 # PATCH-FIX-OPENSUSE Fix path for nss_db (bnc#753657) - a...@suse.de
@@ -280,36 +270,6 @@
 ###
 # Patches from upstream
 ###
-# PATCH-FIX-UPSTREAM Fix parsing flags in ELF64 files (BZ #22827)
-Patch1000:      riscv-readelflib.patch
-# PATCH-FIX-UPSTREAM Fix multiple definitions of __nss_*_database (BZ #22918)
-Patch1001:      nss-database-multiple-dfn.patch
-# PATCH-FIX-UPSTREAM Linux: use reserved name __key in pkey_get (BZ #22797)
-Patch1002:      pkey-get-reserved-name.patch
-# PATCH-FIX-UPSTREAM linux/aarch64: sync sys/ptrace.h with Linux 4.15 (BZ 
#22433)
-Patch1003:      aarch64-sys-ptrace-update.patch
-# PATCH-FIX-UPSTREAM powerpc: Undefine Linux ptrace macros that conflict with 
__ptrace_request
-Patch1004:      powerpc-sys-ptrace-undefine-macros.patch
-# PATCH-FIX-UPSTREAM linux/powerpc: sync sys/ptrace.h with Linux 4.15 (BZ 
#22433, BZ #22807)
-Patch1005:      powerpc-sys-ptrace-update.patch
-# PATCH-FIX-UPSTREAM Fix netgroup cache keys (BZ #22342)
-Patch1006:      netgroup-cache-keys.patch
-# PATCH-FIX-UPSTREAM i386: Fix i386 sigaction sa_restorer initialization (BZ 
#21269)
-Patch1007:      i386-sigaction-sa-restorer.patch
-# PATCH-FIX-UPSTREAM RISC-V: Do not initialize $gp in TLS macros
-Patch1008:      riscv-tls-init.patch
-# PATCH-FIX-UPSTREAM RISC-V: fmax/fmin: Handle signalling NaNs correctly (BZ 
#22884)
-Patch1009:      riscv-fmax-fmin-nan.patch
-# PATCH-FIX-UPSTREAM Fix crash in resolver on memory allocation failure (BZ 
#23005)
-Patch1010:      res-send-enomem.patch
-# PATCH-FIX-UPSTREAM memmove-sse2-unaligned on 32bit x86 produces garbage when 
crossing 2GB threshold (CVE-2017-18269, BZ #22644)
-Patch1011:      i386-memmove-sse2-unaligned.patch
-# PATCH-FIX-UPSTREAM __mempcpy_avx512_no_vzeroupper mishandles large copies 
(CVE-2018-11237, BZ #23196)
-Patch1012:      mempcpy-avx512.patch
-# PATCH-FIX-UPSTREAM realpath-ssize-max-overflow.patch: Fix overflow in path 
length computation (CVE-2018-11236, BZ #22786)
-Patch1013:      realpath-ssize-max-overflow.patch
-# PATCH-FIX-UPSTREAM RISC-V: fix struct kernel_sigaction to match the kernel 
version (BZ #23069)
-Patch1014:      riscv-kernel-sigaction.patch
 
 ### 
 # Patches awaiting upstream approval
@@ -391,12 +351,22 @@
 not necessary to install this packages, the data files are already
 created.
 
-%package locale
-Summary:        Locale Data for Localized Programs
+%package locale-base
+Summary:        en_US Locale Data for Localized Programs
 License:        GPL-2.0-or-later AND MIT AND LGPL-2.1-or-later
 Group:          System/Libraries
 Requires(post): /bin/cat
 Requires:       glibc = %{version}
+
+%description locale-base
+Locale data for the internationalisation features of the GNU C library.
+This package contains only the U.S. English locale.
+
+%package locale
+Summary:        Locale Data for Localized Programs
+License:        GPL-2.0-or-later AND MIT AND LGPL-2.1-or-later
+Group:          System/Libraries
+Requires:       glibc-locale-base = %{version}
 # bug437293
 %ifarch ppc64
 Obsoletes:      glibc-locale-64bit
@@ -453,6 +423,7 @@
 Obsoletes:      glibc-devel-32bit
 %endif
 Requires:       glibc = %{version}
+Requires:       libxcrypt-devel
 Requires:       linux-kernel-headers
 
 %description devel
@@ -464,6 +435,7 @@
 License:        BSD-3-Clause AND LGPL-2.1-or-later AND LGPL-2.1-or-later WITH 
GCC-exception-2.0 AND GPL-2.0-or-later
 Group:          Development/Libraries/C and C++
 Requires:       %{name}-devel = %{version}
+Requires:       libxcrypt-devel-static
 # Provide Fedora name for package to make packaging easier
 Provides:       %{name}-static = %{version}
 
@@ -489,18 +461,6 @@
 
 %prep
 %setup -n glibc-%{version} -q -a 4
-# Owl crypt_blowfish
-tar -xzf %SOURCE50
-pushd crypt_blowfish-%{crypt_bf_version}
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5
-popd
-mv crypt/{crypt.h,gnu-crypt.h}
-mv crypt_blowfish-%crypt_bf_version/*.[chS] crypt/
-#
-%patch1 -p1
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
@@ -519,22 +479,6 @@
 %patch304 -p1
 %patch306 -p1
 
-%patch1000 -p1
-%patch1001 -p1
-%patch1002 -p1
-%patch1003 -p1
-%patch1004 -p1
-%patch1005 -p1
-%patch1006 -p1
-%patch1007 -p1
-%patch1008 -p1
-%patch1009 -p1
-%patch1010 -p1
-%patch1011 -p1
-%patch1012 -p1
-%patch1013 -p1
-%patch1014 -p1
-
 %patch2000 -p1
 %patch2004 -p1
 %patch2005 -p1
@@ -601,7 +545,6 @@
 BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 
's#-ffortify=[0-9]*##')
 BuildCC="%__cc"
 BuildCCplus="%__cxx"
-add_ons=libidn
 #
 #now overwrite for some architectures
 #
@@ -670,7 +613,6 @@
                CC="$BuildCC" CXX="$BuildCCplus" \
                --prefix=%{_prefix} \
                --libexecdir=%{_libexecdir} --infodir=%{_infodir} \
-               --enable-add-ons=$add_ons \
                $profile \
                "$@" \
                --build=%{target} --host=%{target} \
@@ -692,8 +634,8 @@
                --with-bugurl=http://bugs.opensuse.org \
                --enable-bind-now \
                --enable-systemtap \
-               --disable-timezone-tools
-# Should we enable --enable-nss-crypt to build use freebl3 hash functions?
+               --disable-timezone-tools \
+               --disable-crypt
        # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for 
configure)
        make %{?_smp_mflags} CFLAGS="$cflags" BUILD_CFLAGS="$cflags"
        cd ..
@@ -752,29 +694,35 @@
 #
 # Build glibc_post_upgrade binary
 #
-$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o 
glibc_post_upgrade \
-     -Lcc-base -Bcc-base/csu \
-    '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \
+mkdir glibc-post-upgrade
+cat > glibc-post-upgrade/Makefile <<\EOF
+subdir := glibc-post-upgrade
+include ../Makeconfig
+vpath %.c $(dir %{SOURCE8})
+others = glibc_post_upgrade
+others-static = glibc_post_upgrade
+libof-glibc_post_upgrade = glibc_post_upgrade
+$(objpfx)glibc_post_upgrade: $(common-objpfx)elf/static-stubs.o
+CFLAGS-glibc_post_upgrade.o = \
+    -Os -Wno-write-strings -DREMOVE_TLS_DIRS -DREMOVE_PPC_OPTIMIZE_POWER5 \
 %ifarch ppc ppc64
  %if !%{powerpc_optimize_cpu_power4}
-    '-DREMOVE_PPC_OPTIMIZE_POWER4' \
+    -DREMOVE_PPC_OPTIMIZE_POWER4 \
  %endif
  %if !%{powerpc_optimize_cpu_power6}
-    '-DREMOVE_PPC_OPTIMIZE_POWER6' \
+    -DREMOVE_PPC_OPTIMIZE_POWER6 \
  %endif
  %if !%{powerpc_optimize_cpu_power7}
-    '-DREMOVE_PPC_OPTIMIZE_POWER7' \
+    -DREMOVE_PPC_OPTIMIZE_POWER7 \
  %endif
  %if !%{powerpc_optimize_cpu_cell}
-    '-DREMOVE_PPC_OPTIMIZE_CELL' \
+    -DREMOVE_PPC_OPTIMIZE_CELL \
  %endif
 %endif
-    '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"'
-
-# crypt_blowfish man pages
-pushd crypt_blowfish-%{crypt_bf_version}
-make man
-popd
+    -DLIBDIR='"/%{_lib}"' -DGCONV_MODULES_DIR='"%{_libdir}/gconv"'
+include ../Rules
+EOF
+make -C cc-base subdirs=glibc-post-upgrade glibc-post-upgrade/others
 
 %check
 %if %{build_testsuite}
@@ -902,10 +850,13 @@
        # this will not work if we generate them in parallel.
        # thus we need to run fdupes on  /usr/lib/locale/
        # Still, on my system this is a speed advantage:
-       # non-parallel build for install-locales: 9:34mins
+       # non-parallel build for install-locale-files: 9:34mins
        # parallel build with fdupes: 7:08mins
-       make %{?_smp_mflags} install_root=%{buildroot} 
localedata/install-locales
+       make %{?_smp_mflags} install_root=%{buildroot} 
localedata/install-locale-files
+       # Avoid hardlinks across subpackages
+       mv %{buildroot}/usr/lib/locale/{en_US,C}.utf8 .
        %fdupes %{buildroot}/usr/lib/locale
+       mv {en_US,C}.utf8 %{buildroot}/usr/lib/locale/
        cd ..
 %endif
 # Create file list for glibc-locale package
@@ -913,7 +864,7 @@
 
 # Miscelanna:
 
-install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir}
+install -m 0700 cc-base/glibc-post-upgrade/glibc_post_upgrade 
%{buildroot}%{_sbindir}
 
 install -m 644 %{SOURCE7} %{buildroot}/etc
 install -m 644 %{SOURCE5} %{buildroot}/etc
@@ -933,12 +884,6 @@
 
 cd manpages; make install_root=%{buildroot} install; cd ..
 
-# crypt_blowfish man pages
-pushd crypt_blowfish-%{crypt_bf_version}
-install -m755 -d %{buildroot}%{_mandir}/man3
-install -m644 *.3 %{buildroot}%{_mandir}/man3
-popd
-
 # nscd tools:
 
 %ifnarch i686
@@ -1064,7 +1009,7 @@
 %post -p %{_sbindir}/glibc_post_upgrade
 %postun -p /sbin/ldconfig
 
-%post locale
+%post locale-base
 for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do
        [ -d "$l.d" ] || continue
        echo "###X# The following is autogenerated from extra files in the .d 
directory:" >>"$l"
@@ -1170,12 +1115,6 @@
 /%{_lib}/libanl.so.1
 /%{_lib}/libc-%{libversion}.so
 /%{_lib}/libc.so.6*
-/%{_lib}/libcidn-%{libversion}.so
-/%{_lib}/libcidn.so.1
-/%{_lib}/libcrypt-%{libversion}.so
-/%{_lib}/libcrypt.so.1
-/%{_lib}/libowcrypt-%{libversion}.so
-/%{_lib}/libowcrypt.so.1
 /%{_lib}/libdl-%{libversion}.so
 /%{_lib}/libdl.so.2*
 /%{_lib}/libm-%{libversion}.so
@@ -1251,14 +1190,24 @@
 %{_sbindir}/glibc_post_upgrade
 %{_sbindir}/iconvconfig
 
-%files locale -f libc.lang
+%files locale-base -f libc.lang
 %defattr(-,root,root)
 %{_datadir}/locale/locale.alias
 %if %{build_locales}
-       /usr/lib/locale
+%dir %{_prefix}/lib/locale
+%{_prefix}/lib/locale/C.utf8
+%{_prefix}/lib/locale/en_US.utf8
 %endif
 %{_libdir}/gconv
 
+%files locale
+%defattr(-,root,root)
+%if %{build_locales}
+%{_prefix}/lib/locale
+%exclude %{_prefix}/lib/locale/C.utf8
+%exclude %{_prefix}/lib/locale/en_US.utf8
+%endif
+
 %files devel
 %defattr(-,root,root)
 %license COPYING COPYING.LIB
@@ -1281,15 +1230,12 @@
 %ifarch x86_64
 %{_libdir}/libmvec_nonshared.a
 %endif
-%{_libdir}/libpthread_nonshared.a
 
 %files devel-static
 %defattr(-,root,root)
 %{_libdir}/libBrokenLocale.a
 %{_libdir}/libanl.a
 %{_libdir}/libc.a
-%{_libdir}/libcrypt.a
-%{_libdir}/libowcrypt.a
 %{_libdir}/libdl.a
 %{_libdir}/libm.a
 %ifarch x86_64
@@ -1347,8 +1293,6 @@
 %ifarch x86_64
 %{_libdir}/libmvec_p.a
 %endif
-%{_libdir}/libcrypt_p.a
-%{_libdir}/libowcrypt_p.a
 %{_libdir}/libpthread_p.a
 %{_libdir}/libresolv_p.a
 %{_libdir}/librt_p.a

++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.073675405 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.077675404 +0100
@@ -8,10 +8,11 @@
   prereq -glibc-x86
   +/usr/lib/getconf/[^g]
   +/usr/sbin/iconvconfig -> /usr/sbin/iconvconfig-<extension>
-glibc-locale
+glibc-locale-base
   arch i586 block!
   +/usr/lib(64)?/gconv/gconv-modules
   targettype x86 -/usr/lib(64)?/gconv/gconv-modules
+  obsoletes "glibc-locale-<targettype>"
 glibc-devel
   requires "glibc-<targettype> = %version"
   arch i586 block!

++++++ fix-locking-in-_IO_cleanup.patch ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.109675392 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.109675392 +0100
@@ -3,7 +3,7 @@
 During exit, skip files that are currently locked to avoid deadlock.
 
        [BZ #15142]
-       * include/bits/libio.h (_IO_ftrylockfile) [_IO_MTSAVE_IO]: Define.
+       * libio/libio.h (_IO_ftrylockfile) [_IO_MTSAVE_IO]: Define.
        * libio/genops.c (_IO_flush_all_lockp): Make static.  Rename
        argument to skip_locked, callers changed.  Skip files that are
        locked if skip_locked.
@@ -11,10 +11,10 @@
        files.
        * libio/libioP.h (_IO_flush_all_lockp): Don't declare.
 
-Index: glibc-2.27/include/bits/libio.h
+Index: glibc-2.27/libio/libio.h
 ===================================================================
---- glibc-2.27.orig/include/bits/libio.h
-+++ glibc-2.27/include/bits/libio.h
+--- glibc-2.27.orig/libio/libio.h
++++ glibc-2.27/libio/libio.h
 @@ -33,11 +33,15 @@ libc_hidden_proto (_IO_vfscanf)
    if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_lock_lock (*(_fp)->_lock)
  #  define _IO_funlockfile(_fp) \
@@ -35,9 +35,9 @@
 ===================================================================
 --- glibc-2.27.orig/libio/genops.c
 +++ glibc-2.27/libio/genops.c
-@@ -744,8 +744,8 @@ _IO_get_column (_IO_FILE *fp)
- #endif
- 
+@@ -744,8 +744,8 @@ _IO_adjust_column (unsigned start, const
+ }
+ libc_hidden_def (_IO_adjust_column)
  
 -int
 -_IO_flush_all_lockp (int do_lock)
@@ -45,9 +45,9 @@
 +_IO_flush_all_lockp (bool skip_locked)
  {
    int result = 0;
-   struct _IO_FILE *fp;
+   FILE *fp;
 @@ -758,7 +758,16 @@ _IO_flush_all_lockp (int do_lock)
-   for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain)
+   for (fp = (FILE *) _IO_list_all; fp != NULL; fp = fp->_chain)
      {
        run_fp = fp;
 -      if (do_lock)
@@ -85,7 +85,7 @@
  
 @@ -852,22 +860,18 @@ _IO_unbuffer_all (void)
  
-   for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
+   for (fp = (FILE *) _IO_list_all; fp; fp = fp->_chain)
      {
 +      run_fp = fp;
 +      /* Skip files that are currently locked.  */
@@ -151,9 +151,9 @@
 ===================================================================
 --- glibc-2.27.orig/libio/libioP.h
 +++ glibc-2.27/libio/libioP.h
-@@ -486,7 +486,6 @@ extern int _IO_new_do_write (_IO_FILE *,
- extern int _IO_old_do_write (_IO_FILE *, const char *, _IO_size_t);
- extern int _IO_wdo_write (_IO_FILE *, const wchar_t *, _IO_size_t);
+@@ -486,7 +486,6 @@ extern int _IO_new_do_write (FILE *, con
+ extern int _IO_old_do_write (FILE *, const char *, size_t);
+ extern int _IO_wdo_write (FILE *, const wchar_t *, size_t);
  libc_hidden_proto (_IO_wdo_write)
 -extern int _IO_flush_all_lockp (int);
  extern int _IO_flush_all (void);

++++++ fnmatch-collating-elements.patch ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.121675387 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.121675387 +0100
@@ -1,4 +1,8 @@
-Fix fnmatch handling of collating elements (BZ #17396, BZ #16976)
+Fix handling of collating elements in fnmatch (bug 17396, bug 16976)
+
+This fixes the same bug in fnmatch that was fixed by commit 7e2f0d2d77 for
+regexp matching.  As a side effect it also removes the use of an unbound
+VLA.
 
        [BZ #16976]
        [BZ #17396]
@@ -6,14 +10,34 @@
        looking up collating elements match against (wide) character
        sequence instead of name.  Correct alignment adjustment.
        * posix/fnmatch.c: Don't include "../locale/elem-hash.h".
+       (WMEMCMP) [HANDLE_MULTIBYTE]: Define.
        * posix/Makefile (tests): Add tst-fnmatch4 and tst-fnmatch5.
+       (LOCALES): Add cs_CZ.ISO-8859-2.
        * posix/tst-fnmatch4.c: New file.
        * posix/tst-fnmatch5.c: New file.
+       * include/wchar.h (__wmemcmp): Declare.
+       * wcsmbs/wmemcmp.c: Define __wmemcmp and add wmemcmp as weak alias.
+       * sysdeps/i386/i686/multiarch/wmemcmp.c: Likewise.
+       * sysdeps/x86_64/multiarch/wmemcmp.c: Likewise.
+       * sysdeps/s390/wmemcmp.c: Likewise.
 
-Index: glibc-2.27/posix/Makefile
+Index: glibc-2.28/include/wchar.h
+===================================================================
+--- glibc-2.28.orig/include/wchar.h
++++ glibc-2.28/include/wchar.h
+@@ -143,6 +143,8 @@ libc_hidden_proto (wmemchr)
+ libc_hidden_proto (__wmemchr)
+ libc_hidden_proto (wmemset)
+ libc_hidden_proto (__wmemset)
++extern int __wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
++     __THROW __attribute_pure__;
+ 
+ /* Now define the internal interfaces.  */
+ extern int __wcscasecmp (const wchar_t *__s1, const wchar_t *__s2)
+Index: glibc-2.28/posix/Makefile
 ===================================================================
---- glibc-2.27.orig/posix/Makefile
-+++ glibc-2.27/posix/Makefile
+--- glibc-2.28.orig/posix/Makefile
++++ glibc-2.28/posix/Makefile
 @@ -92,6 +92,7 @@ tests                := test-errno tstgetopt testfnm r
                   bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \
                   tst-pathconf tst-rxspencer-no-utf8 \
@@ -22,10 +46,20 @@
                   tst-posix_spawn-fd tst-posix_spawn-setsid \
                   tst-posix_fadvise tst-posix_fadvise64 \
                   tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \
-Index: glibc-2.27/posix/fnmatch.c
+@@ -166,7 +167,8 @@ $(objpfx)wordexp-tst.out: wordexp-tst.sh
+ endif
+ 
+ LOCALES := cs_CZ.UTF-8 da_DK.ISO-8859-1 de_DE.ISO-8859-1 de_DE.UTF-8 \
+-         en_US.UTF-8 es_US.ISO-8859-1 es_US.UTF-8 ja_JP.EUC-JP tr_TR.UTF-8
++         en_US.UTF-8 es_US.ISO-8859-1 es_US.UTF-8 ja_JP.EUC-JP tr_TR.UTF-8 \
++         cs_CZ.ISO-8859-2
+ include ../gen-locales.mk
+ 
+ $(objpfx)bug-regex1.out: $(gen-locales)
+Index: glibc-2.28/posix/fnmatch.c
 ===================================================================
---- glibc-2.27.orig/posix/fnmatch.c
-+++ glibc-2.27/posix/fnmatch.c
+--- glibc-2.28.orig/posix/fnmatch.c
++++ glibc-2.28/posix/fnmatch.c
 @@ -53,7 +53,6 @@
     we support a correct implementation only in glibc.  */
  #ifdef _LIBC
@@ -34,10 +68,22 @@
  # include "../locale/coll-lookup.h"
  # include <shlib-compat.h>
  
-Index: glibc-2.27/posix/fnmatch_loop.c
+@@ -237,6 +236,11 @@ __wcschrnul (const wchar_t *s, wint_t c)
+ #  define MEMPCPY(D, S, N) __wmempcpy (D, S, N)
+ #  define MEMCHR(S, C, N) __wmemchr (S, C, N)
+ #  define STRCOLL(S1, S2) wcscoll (S1, S2)
++#  ifdef _LIBC
++#   define WMEMCMP(S1, S2, N) __wmemcmp (S1, S2, N)
++#  else
++#   define WMEMCMP(S1, S2, N) wmemcmp (S1, S2, N)
++#  endif
+ #  define WIDE_CHAR_VERSION 1
+ /* Change the name the header defines so it doesn't conflict with
+    the <locale/weight.h> version included above.  */
+Index: glibc-2.28/posix/fnmatch_loop.c
 ===================================================================
---- glibc-2.27.orig/posix/fnmatch_loop.c
-+++ glibc-2.27/posix/fnmatch_loop.c
+--- glibc-2.28.orig/posix/fnmatch_loop.c
++++ glibc-2.28/posix/fnmatch_loop.c
 @@ -494,26 +494,12 @@ FCT (const CHAR *pattern, const CHAR *st
                          {
                            int32_t table_size;
@@ -62,12 +108,12 @@
 -                          for (strcnt = 0; strcnt < c1; ++strcnt)
 -                            str[strcnt] = startp[1 + strcnt];
 -#endif
-+                          int32_t *wextra;
++                          CHAR *wextra;
 +# endif
  
                            table_size =
                              _NL_CURRENT_WORD (LC_COLLATE,
-@@ -525,71 +511,55 @@ FCT (const CHAR *pattern, const CHAR *st
+@@ -525,71 +511,54 @@ FCT (const CHAR *pattern, const CHAR *st
                              _NL_CURRENT (LC_COLLATE,
                                           _NL_COLLATE_SYMB_EXTRAMB);
  
@@ -115,13 +161,13 @@
 +                                /* Adjust for the alignment.  */
 +                                idx = (idx + 3) & ~3;
 +
-+                                wextra = (int32_t *) &extra[idx + 4];
++                                wextra = (CHAR *) &extra[idx + 4];
 +
 +                                if (/* Compare the length of the sequence.  */
 +                                    c1 == wextra[0]
 +                                    /* Compare the wide char sequence.  */
-+                                    && memcmp (startp + 1, &wextra[1],
-+                                               c1 * sizeof (UCHAR)) == 0)
++                                    && WMEMCMP (startp + 1, &wextra[1],
++                                                c1) == 0)
 +                                  /* Yep, this is the entry.  */
 +                                  break;
 +# else
@@ -142,12 +188,12 @@
                                   this is not part of a range.  */
 -# if WIDE_CHAR_VERSION
 -                              int32_t *wextra;
-+                              if (! is_range
- 
+-
 -                              idx += 1 + extra[idx];
 -                              /* Adjust for the alignment.  */
 -                              idx = (idx + 3) & ~3;
--
++                              if (! is_range
+ 
 -                              wextra = (int32_t *) &extra[idx + 4];
 -# endif
 -
@@ -162,8 +208,7 @@
 -
 -                                  if ((int32_t) c1 == wextra[idx])
 -                                    goto matched;
-+                                  && memcmp (n, &wextra[1],
-+                                             c1 * sizeof (UCHAR)) == 0
++                                  && WMEMCMP (n, &wextra[1], c1) == 0
  # else
 -                                  for (c1 = 0; c1 < extra[idx]; ++c1)
 -                                    if (n[c1] != extra[1 + c1])
@@ -180,7 +225,7 @@
                                  }
  
                                /* Get the collation sequence value.  */
-@@ -597,9 +567,9 @@ FCT (const CHAR *pattern, const CHAR *st
+@@ -597,9 +566,9 @@ FCT (const CHAR *pattern, const CHAR *st
  # if WIDE_CHAR_VERSION
                                cold = wextra[1 + wextra[idx]];
  # else
@@ -192,7 +237,7 @@
                                cold = *((int32_t *) &extra[idx]);
  # endif
  
-@@ -609,10 +579,10 @@ FCT (const CHAR *pattern, const CHAR *st
+@@ -609,10 +578,10 @@ FCT (const CHAR *pattern, const CHAR *st
                              {
                                /* No valid character.  Match it as a
                                   single byte.  */
@@ -205,7 +250,7 @@
                                c = *p++;
                              }
                            else
-@@ -620,7 +590,6 @@ FCT (const CHAR *pattern, const CHAR *st
+@@ -620,7 +589,6 @@ FCT (const CHAR *pattern, const CHAR *st
                          }
                      }
                    else
@@ -213,7 +258,7 @@
  #endif
                      {
                        c = FOLD (c);
-@@ -712,25 +681,11 @@ FCT (const CHAR *pattern, const CHAR *st
+@@ -712,25 +680,11 @@ FCT (const CHAR *pattern, const CHAR *st
                              {
                                int32_t table_size;
                                const int32_t *symb_table;
@@ -236,11 +281,11 @@
 -                                 representation is UCS4.  */
 -                              for (strcnt = 0; strcnt < c1; ++strcnt)
 -                                str[strcnt] = startp[1 + strcnt];
-+                              int32_t *wextra;
++                              CHAR *wextra;
  # endif
  
                                table_size =
-@@ -743,51 +698,44 @@ FCT (const CHAR *pattern, const CHAR *st
+@@ -743,71 +697,63 @@ FCT (const CHAR *pattern, const CHAR *st
                                  _NL_CURRENT (LC_COLLATE,
                                               _NL_COLLATE_SYMB_EXTRAMB);
  
@@ -301,14 +346,14 @@
 +                                    /* Adjust for the alignment.  */
 +                                    idx = (idx + 3) & ~3;
 +
-+                                    wextra = (int32_t *) &extra[idx + 4];
++                                    wextra = (CHAR *) &extra[idx + 4];
 +
 +                                    if (/* Compare the length of the
 +                                           sequence.  */
 +                                        c1 == wextra[0]
 +                                        /* Compare the wide char sequence.  */
-+                                        && memcmp (startp + 1, &wextra[1],
-+                                                   c1 * sizeof (int32_t)) == 
0)
++                                        && WMEMCMP (startp + 1, &wextra[1],
++                                                    c1) == 0)
 +                                      /* Yep, this is the entry.  */
 +                                      break;
 +# else
@@ -328,11 +373,12 @@
                                    /* Get the collation sequence value.  */
                                    is_seqval = 1;
  # if WIDE_CHAR_VERSION
-@@ -795,19 +743,18 @@ FCT (const CHAR *pattern, const CHAR *st
+                                   cend = wextra[1 + wextra[idx]];
  # else
-                                   /* Adjust for the alignment.  */
+-                                  /* Adjust for the alignment.  */
                                    idx += 1 + extra[idx];
 -                                  idx = (idx + 3) & ~4;
++                                  /* Adjust for the alignment.  */
 +                                  idx = (idx + 3) & ~3;
                                    cend = *((int32_t *) &extra[idx]);
  # endif
@@ -351,13 +397,13 @@
                          }
                        else
                          {
-Index: glibc-2.27/posix/tst-fnmatch4.c
+Index: glibc-2.28/posix/tst-fnmatch4.c
 ===================================================================
 --- /dev/null
-+++ glibc-2.27/posix/tst-fnmatch4.c
-@@ -0,0 +1,51 @@
++++ glibc-2.28/posix/tst-fnmatch4.c
+@@ -0,0 +1,41 @@
 +/* Test for fnmatch handling of collating elements
-+   Copyright (C) 2015 Free Software Foundation, Inc.
++   Copyright (C) 2019 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
@@ -377,43 +423,33 @@
 +#include <stdio.h>
 +#include <locale.h>
 +#include <fnmatch.h>
++#include <support/check.h>
 +
-+static int
++static void
 +do_test_locale (const char *locale)
 +{
-+  const char *pattern = "[[.ll.]]";
++  TEST_VERIFY_EXIT (setlocale (LC_ALL, locale) != NULL);
 +
-+  if (setlocale (LC_ALL, locale) == NULL)
-+    {
-+      printf ("could not set locale %s\n", locale);
-+      return 1;
-+    }
-+
-+  if (fnmatch (pattern, "ll", 0) != 0)
-+    {
-+      printf ("%s didn't match in locale %s\n", pattern, locale);
-+      return 1;
-+    }
-+
-+  return 0;
++  TEST_VERIFY (fnmatch ("[[.ch.]]", "ch", 0) == 0);
 +}
 +
 +static int
 +do_test (void)
 +{
-+  return (do_test_locale ("es_US.ISO-8859-1")
-+        || do_test_locale ("es_US.UTF-8"));
++  do_test_locale ("cs_CZ.ISO-8859-2");
++  do_test_locale ("cs_CZ.UTF-8");
++
++  return 0;
 +}
 +
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-Index: glibc-2.27/posix/tst-fnmatch5.c
++#include <support/test-driver.c>
+Index: glibc-2.28/posix/tst-fnmatch5.c
 ===================================================================
 --- /dev/null
-+++ glibc-2.27/posix/tst-fnmatch5.c
-@@ -0,0 +1,53 @@
++++ glibc-2.28/posix/tst-fnmatch5.c
+@@ -0,0 +1,46 @@
 +/* Test for fnmatch handling of collating elements
-+   Copyright (C) 2015 Free Software Foundation, Inc.
++   Copyright (C) 2019 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
@@ -434,19 +470,17 @@
 +#include <locale.h>
 +#include <stdio.h>
 +#include <string.h>
++#include <support/check.h>
 +
 +#define LENGTH 20000000
 +
-+char pattern[LENGTH + 7];
++static char pattern[LENGTH + 7];
 +
 +static int
 +do_test (void)
 +{
-+  if (setlocale (LC_ALL, "en_US.UTF-8") == NULL)
-+    {
-+      puts ("could not set locale");
-+      return 1;
-+    }
++  TEST_VERIFY_EXIT (setlocale (LC_ALL, "en_US.UTF-8") != NULL);
++
 +  pattern[0] = '[';
 +  pattern[1] = '[';
 +  pattern[2] = '.';
@@ -454,14 +488,85 @@
 +  pattern[LENGTH + 3] = '.';
 +  pattern[LENGTH + 4] = ']';
 +  pattern[LENGTH + 5] = ']';
-+  int ret = fnmatch (pattern, "a", 0);
-+  if (ret == 0)
-+    {
-+      puts ("fnmatch returned 0 for invalid pattern");
-+      return 1;
-+    }
++  TEST_VERIFY (fnmatch (pattern, "a", 0) != 0);
++
 +  return 0;
 +}
 +
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
++#include <support/test-driver.c>
+Index: glibc-2.28/sysdeps/i386/i686/multiarch/wmemcmp.c
+===================================================================
+--- glibc-2.28.orig/sysdeps/i386/i686/multiarch/wmemcmp.c
++++ glibc-2.28/sysdeps/i386/i686/multiarch/wmemcmp.c
+@@ -26,5 +26,6 @@
+ # define SYMBOL_NAME wmemcmp
+ # include "ifunc-ssse3-sse4_2.h"
+ 
+-libc_ifunc_redirected (__redirect_wmemcmp, wmemcmp, IFUNC_SELECTOR ());
++libc_ifunc_redirected (__redirect_wmemcmp, __wmemcmp, IFUNC_SELECTOR ());
++weak_alias (__wmemcmp, wmemcmp)
+ #endif
+Index: glibc-2.28/sysdeps/s390/wmemcmp.c
+===================================================================
+--- glibc-2.28.orig/sysdeps/s390/wmemcmp.c
++++ glibc-2.28/sysdeps/s390/wmemcmp.c
+@@ -23,16 +23,17 @@
+ # include <ifunc-resolve.h>
+ 
+ # if HAVE_WMEMCMP_C
+-extern __typeof (wmemcmp) WMEMCMP_C attribute_hidden;
++extern __typeof (__wmemcmp) WMEMCMP_C attribute_hidden;
+ # endif
+ 
+ # if HAVE_WMEMCMP_Z13
+-extern __typeof (wmemcmp) WMEMCMP_Z13 attribute_hidden;
++extern __typeof (__wmemcmp) WMEMCMP_Z13 attribute_hidden;
+ # endif
+ 
+-s390_libc_ifunc_expr (wmemcmp, wmemcmp,
++s390_libc_ifunc_expr (__wmemcmp, __wmemcmp,
+                     (HAVE_WMEMCMP_Z13 && (hwcap & HWCAP_S390_VX))
+                     ? WMEMCMP_Z13
+                     : WMEMCMP_DEFAULT
+                     )
++weak_alias (__wmemcmp, wmemcmp)
+ #endif
+Index: glibc-2.28/sysdeps/x86_64/multiarch/wmemcmp.c
+===================================================================
+--- glibc-2.28.orig/sysdeps/x86_64/multiarch/wmemcmp.c
++++ glibc-2.28/sysdeps/x86_64/multiarch/wmemcmp.c
+@@ -26,5 +26,6 @@
+ # define SYMBOL_NAME wmemcmp
+ # include "ifunc-memcmp.h"
+ 
+-libc_ifunc_redirected (__redirect_wmemcmp, wmemcmp, IFUNC_SELECTOR ());
++libc_ifunc_redirected (__redirect_wmemcmp, __wmemcmp, IFUNC_SELECTOR ());
++weak_alias (__wmemcmp, wmemcmp)
+ #endif
+Index: glibc-2.28/wcsmbs/wmemcmp.c
+===================================================================
+--- glibc-2.28.orig/wcsmbs/wmemcmp.c
++++ glibc-2.28/wcsmbs/wmemcmp.c
+@@ -18,12 +18,12 @@
+ 
+ #include <wchar.h>
+ 
+-#ifndef WMEMCMP
+-# define WMEMCMP wmemcmp
++#ifdef WMEMCMP
++# define __wmemcmp WMEMCMP
+ #endif
+ 
+ int
+-WMEMCMP (const wchar_t *s1, const wchar_t *s2, size_t n)
++__wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
+ {
+   wchar_t c1;
+   wchar_t c2;
+@@ -81,3 +81,6 @@ WMEMCMP (const wchar_t *s1, const wchar_
+ 
+   return 0;
+ }
++#ifndef WMEMCMP
++weak_alias (__wmemcmp, wmemcmp)
++#endif

++++++ glibc-2.27.tar.xz -> glibc-2.29.tar.xz ++++++
/work/SRC/openSUSE:Factory/glibc/glibc-2.27.tar.xz 
/work/SRC/openSUSE:Factory/.glibc.new.28833/glibc-2.29.tar.xz differ: char 25, 
line 1

++++++ glibc-version.diff ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.189675362 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.189675362 +0100
@@ -8,7 +8,7 @@
  static const char banner[] =
 -"GNU C Library "PKGVERSION RELEASE" release version "VERSION".\n\
 +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git 
"GITID").\n\
- Copyright (C) 2018 Free Software Foundation, Inc.\n\
+ Copyright (C) 2019 Free Software Foundation, Inc.\n\
  This is free software; see the source for copying conditions.\n\
  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
  PARTICULAR PURPOSE.\n\


++++++ glibc_post_upgrade.c ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.237675343 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.241675342 +0100
@@ -1,6 +1,8 @@
 /* skeleton based on version from Fedora Core 3 */
 
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
 
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -26,14 +28,10 @@
 __attribute__((noinline)) void says (const char *str);
 __attribute__((noinline)) void sayn (long num);
 __attribute__((noinline)) void message (char *const path[]);
-__attribute__((noinline)) int check_elf (const char *name);
 
 int
 main (void)
 {
-  char initpath[256];
-  struct stat root, init_root;
-
   /* First, get rid of platform-optimized libraries. We remove any we have
      ever built, since otherwise we might end up using some old leftover
      libraries when new ones aren't installed in their place anymore. */
@@ -128,33 +126,6 @@
                    "--nostdlib", GCONV_MODULES_DIR);
     }
 
-  /* Check if telinit is available and the init fifo as well.  */
-  if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK))
-    _exit (0);
-  /* Check if we are not inside of some chroot, because we'd just
-     timeout and leave /etc/initrunlvl.  */
-  if (readlink ("/proc/1/exe", initpath, 256) <= 0 ||
-      readlink ("/proc/1/root", initpath, 256) <= 0 ||
-      access ("/.buildenv", F_OK) == 0 || /* XEN build */
-      stat ("/proc/1/root", &init_root) < 0 ||
-      stat ("/", &root) < 0 ||
-      init_root.st_dev != root.st_dev || init_root.st_ino != root.st_ino)
-    _exit (0);
-
-  if (check_elf ("/proc/1/exe"))
-    verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u");
-
-#if 0
-  /* Check if we can safely condrestart sshd.  */
-  if (access ("/sbin/service", X_OK) == 0
-      && access ("/usr/sbin/sshd", X_OK) == 0
-      && access ("/bin/bash", X_OK) == 0)
-    {
-      if (check_elf ("/usr/sbin/sshd"))
-       verbose_exec (121, "/sbin/service", "/sbin/service", "sshd", 
"condrestart");
-    }
-#endif
-
   _exit(0);
 }
 
@@ -231,106 +202,3 @@
   says ("/usr/sbin/glibc_post_upgrade: While trying to execute ");
   says (path[0]);
 }
-
-int
-check_elf (const char *name)
-{
-  /* Play safe, if we can't open or read, assume it might be
-     ELF for the current arch.  */
-  int ret = 1;
-  int fd = open (name, O_RDONLY);
-  if (fd >= 0)
-    {
-      Elf32_Ehdr ehdr;
-      if (read (fd, &ehdr, offsetof (Elf32_Ehdr, e_version))
-         == offsetof (Elf32_Ehdr, e_version))
-       {
-         ret = 0;
-         if (ehdr.e_ident[EI_CLASS]
-             == (sizeof (long) == 8 ? ELFCLASS64 : ELFCLASS32))
-           {
-#if defined __i386__
-             ret = ehdr.e_machine == EM_386;
-#elif defined __x86_64__
-             ret = ehdr.e_machine == EM_X86_64;
-#elif defined __ia64__
-             ret = ehdr.e_machine == EM_IA_64;
-#elif defined __powerpc64__
-             ret = ehdr.e_machine == EM_PPC64;
-#elif defined __powerpc__
-             ret = ehdr.e_machine == EM_PPC;
-#elif defined __s390__ || defined __s390x__
-             ret = ehdr.e_machine == EM_S390;
-#elif defined __x86_64__
-             ret = ehdr.e_machine == EM_X86_64;
-#elif defined __sparc__
-             if (sizeof (long) == 8)
-               ret = ehdr.e_machine == EM_SPARCV9;
-             else
-               ret = (ehdr.e_machine == EM_SPARC
-                      || ehdr.e_machine == EM_SPARC32PLUS);
-#else
-             ret = 1;
-#endif
-           }
-       }
-      close (fd);
-    }
-  return ret;
-}
-
-#ifdef SMALL_BINARY
-
-int __libc_multiple_threads __attribute__((nocommon));
-int __libc_enable_asynccancel (void) { return 0; }
-void __libc_disable_asynccancel (int x) { }
-void __libc_csu_init (void) { }
-void __libc_csu_fini (void) { }
-pid_t __fork (void) { return -1; }
-char thr_buf[65536];
-
-#ifndef __powerpc__
-int
-__libc_start_main (int (*main) (void), int argc, char **argv,
-                  void (*init) (void), void (*fini) (void),
-                  void (*rtld_fini) (void), void * stack_end)
-#else
-struct startup_info
-{
-  void *sda_base;
-  int (*main) (int, char **, char **, void *);
-  int (*init) (int, char **, char **, void *);
-  void (*fini) (void);
-};
-
-int
-__libc_start_main (int argc, char **ubp_av, char **ubp_ev,
-                  void *auxvec, void (*rtld_fini) (void),
-                  struct startup_info *stinfo,
-                  char **stack_on_entry)
-#endif
-{
-#if defined __ia64__ || defined __powerpc64__
-  register void *r13 __asm ("r13") = thr_buf + 32768;
-  __asm ("" : : "r" (r13));
-#elif defined __sparc__
-  register void *g6 __asm ("g6") = thr_buf + 32768;
-# ifdef __arch64__
-  __thread_self = thr_buf + 32768;
-# else
-  register void *__thread_self __asm ("g7") = thr_buf + 32768;
-# endif
-  __asm ("" : : "r" (g6), "r" (__thread_self));
-#elif defined __s390__ && !defined __s390x__
-  __asm ("sar %%a0,%0" : : "d" (thr_buf + 32768));
-#elif defined __s390x__
-  __asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : 
"0");
-#elif defined __powerpc__ && !defined __powerpc64__
-  register void *r2 __asm ("r2") = thr_buf + 32768;
-  __asm ("" : : "r" (r2));
-#endif
-  main();
-  return 0;
-}
-
-#endif

++++++ iconv-reset-input-buffer.patch ++++++
--- /var/tmp/diff_new_pack.NdGneO/_old  2019-02-08 12:04:15.257675336 +0100
+++ /var/tmp/diff_new_pack.NdGneO/_new  2019-02-08 12:04:15.257675336 +0100
@@ -17,13 +17,12 @@
 ===================================================================
 --- glibc-2.27.orig/iconv/Makefile
 +++ glibc-2.27/iconv/Makefile
-@@ -43,7 +43,8 @@ CFLAGS-charmap.c += -DCHARMAP_PATH='"$(i
- CFLAGS-linereader.c += -DNO_TRANSLITERATION
+@@ -44,7 +44,7 @@ CFLAGS-charmap.c += -DCHARMAP_PATH='"$(i
  CFLAGS-simple-hash.c += -I../locale
  
--tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6
-+tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \
-+         tst-iconv7
+ tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \
+-        tst-iconv-mt
++        tst-iconv7 tst-iconv-mt
  
  others                = iconv_prog iconvconfig
  install-others-programs       = $(inst_bindir)/iconv


Reply via email to