Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: glibc

glibc (2.30-0ubuntu3) focal; urgency=medium * Cherrypick upstream fix for strstr on s390x z15. LP: #1854326 -- Dimitri John Ledkov <xnox@ubuntu.com> Fri, 29 Nov 2019 14:19:57 +0000 glibc (2.30-0ubuntu2) eoan; urgency=medium * Merge with current Debian git, bringing in container-based testsuite fix: - debian/patches/any/local-test-install.diff: Use install_root rather than DESTDIR when installing container root, since we override install_root. * debian/patches/ubuntu/local-pldd-root.diff: Run tst-pldd as root to get us CAP_SYS_PTRACE, which is disabled by default in Ubuntu for non-root users. -- Adam Conrad <adconrad@ubuntu.com> Mon, 16 Sep 2019 08:56:30 -0600 glibc (2.30-0ubuntu1) eoan; urgency=medium * Merge with current 2.30 in Debian git (LP: #1842024), remaining changes: - Enable libc6{,-dev}-armel on armhf and libc6{-dev}-armhf on armel. - Heavily mangle the way we do service restarting on major upgrades. - Build i386 variants as -march=i686, build amd64 with -O3, and build ppc64 variants (both 64-bit and 32-bit) with -O3 -fno-tree-vectorize. - Build generic i386 flavour with -mno-tls-direct-seg-refs for Xen. - Drop the libc6-xen flavour, as the above change covers Xen's needs. - Enable systemtap support, which is currently disabled in Debian. - Don't build libc-l10n, its contents get stripped for language-packs. - Drop libc-bin manpages Recommends to Suggests to keep it in standard. - Revert dropping the ldconfig wrapper, as we still have a lot of packages that don't ship a trigger but instead call in postinst. - Use DH_COMPAT=8 for dh_strip to fix debug sections for valgrind. - Mangle locales package to support Ubuntu language packs seamlessly. - Relax some expected test failures for our infrastructure's quirks. * Let nptl/tst-stack4 fail, as it's been racing on several architectures. -- Adam Conrad <adconrad@ubuntu.com> Thu, 29 Aug 2019 04:14:59 -0600 glibc (2.30-0experimental0) UNRELEASED; urgency=medium [ Adam Conrad ] * New upstream release 2.30, with git updates up to 2019-09-08: - debian/symbols.wildcard: Add 2.30, and debian/control: Regenerate. - debian/patches/any/git-libio-stdout-putc.diff: Upstreamed. - debian/patches/any/git-pexpect-pretty-printers.diff: Upstreamed. - debian/patches/any/git-socket-constants.diff: Upstreamed. - debian/patches/any/local-tst-eintr1-eagain.diff: Obsolete. - debian/patches/hurd-i386/git-renameat2.diff: Upstreamed. - debian/patches/any/submitted-resolv-unaligned.diff: Rebased. - debian/patches/hurd-i386/tg-hurdsig-SA_SIGINFO.diff: Rebased. - debian/patches/hurd-i386/tg-hurdsig-fixes-2.diff: Rebased. - debian/patches/hurd-i386/tg-hurdsig-fixes.diff: Rebased. - debian/patches/hurd-i386/tg-hurdsig-global-dispositions.diff: Rebased. - debian/patches/hurd-i386/tg-io_select_timeout.diff: Rebased. - debian/patches/hurd-i386/tg-thread-cancel.diff: Rebased. - debian/patches/kfreebsd/submitted-auxv.diff: Rebased. - debian/patches/locale/locale-print-LANGUAGE.diff: Update for new test. * debian/patches/any/local-test-install.diff: Use install_root rather than DESTDIR when installing container root, since we override install_root. [ Samuel Thibault ] * debian/patches/hurd-i386/local-fix-nss.diff: Rebased. * debian/patches/hurd-i386/{tg-single-select-timeout.diff,tg-setitimer.diff, tg-remap_getcwd.diff,tg-io_select_timeout.diff,tg-poll_errors_fixes.diff, submitted-anon-mmap-shared.diff,tg-ONSTACK.diff}: Rename to git-foo, committed upstream for 2.31. * debian/testsuite-xfail-debian.mk: Update with new failing tests. * debian/patches/hurd-i386/git-ONSTACK.diff: Move earlier in the queue, since was applied upstream. * debian/patches/hurd-i386/tg-hurdsig-global-dispositions.diff: Rebase accordingly. * debian/patches/hurd-i386/libpthread_version.diff: Remove, now useless. * debian/patches/hurd-i386/local-hurdsig-globaldisp-version.diff: Remove version compatibility symbols, now useless. * debian/libc0.3.symbols.hurd-i386: Update accordingly. * debian/patches/hurd-i386/tg-sysvshm.diff: Fix warning. * debian/patches/hurd-i386/local-versionshack.diff: Remove, now useless. [ Aurelien Jarno ] * debian/patches/git-updates.diff: update from upstream stable branch. -- Adam Conrad <adconrad@0c3.net> Thu, 29 Aug 2019 01:58:14 -0600

Modifications :
  1. Download patch debian/sysdeps/mips.mk

    --- 2.30-0experimental2/debian/sysdeps/mips.mk 2020-02-05 06:29:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mips.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,14 +1,16 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # multilib flavours ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) # build 32-bit (n32) alternative library GLIBC_PASSES += mipsn32 DEB_ARCH_MULTILIB_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 -libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) mipsn32_configure_target = mips64-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -16,11 +18,10 @@ mipsn32_libdir = /usr/lib32 # build 64-bit alternative library GLIBC_PASSES += mips64 DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64 -libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) mips64_configure_target = mips64-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64
  2. Download patch debian/sysdeps/mipsr6.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsr6.mk 2020-02-05 06:29:13.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsr6.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,14 +1,16 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # multilib flavours ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) # build 32-bit (n32) alternative library GLIBC_PASSES += mipsn32 DEB_ARCH_MULTILIB_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 -libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) mipsn32_configure_target = mipsisa64r6-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -16,11 +18,10 @@ mipsn32_libdir = /usr/lib32 # build 64-bit alternative library GLIBC_PASSES += mips64 DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64 -libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) mips64_configure_target = mipsisa64r6-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64
  3. Download patch debian/script.in/nsscheck.sh

    --- 2.30-0experimental2/debian/script.in/nsscheck.sh 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/script.in/nsscheck.sh 2019-09-16 14:56:30.000000000 +0000 @@ -1,12 +1,9 @@ echo -n "Checking for services that may need to be restarted..." - # Only get the ones that are installed, of the same architecture - # as libc (or arch all) and configured - check=$(dpkg-query -W -f='${binary:Package} ${Status} ${Architecture}\n' $check 2> /dev/null | \ - grep -E "installed (all|${DPKG_MAINTSCRIPT_ARCH})$" | sed 's/[: ].*//') + # Only get the ones that are installed, and configured + [ -n "$check" ] && check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk '{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) { print package }}') # some init scripts don't match the package names check=$(echo $check | \ - sed -e's/\bapache2.2-common\b/apache2/g' \ - -e's/\bat\b/atd/g' \ + sed -e's/\bat\b/atd/g' \ -e's/\bdovecot-common\b/dovecot/g' \ -e's/\bexim4-base\b/exim4/g' \ -e's/\blpr\b/lpd/g' \
  4. Download patch debian/patches/hurd-i386/tg-locarchive.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/tg-locarchive.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/tg-locarchive.diff 2016-01-27 14:17:05.000000000 +0000 @@ -0,0 +1,46 @@ +From: Samuel Thibault <samuel.thibault@ens-lyon.org> +Subject: [PATCH] Fix installation of locales-all + +Dirty hack to fix installation of locales-all: instead of just locking the +archive extension (which is not supported on hurd-i386), lock it all. + +--- + locale/programs/locarchive.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -453,7 +453,16 @@ enlarge_archive (struct locarhandle *ah, + } + + /* Lock the new file. */ ++#ifdef __GNU__ ++ struct flock fl; ++ fl.l_whence = SEEK_SET; ++ fl.l_start = 0; ++ fl.l_len = 0; ++ fl.l_type = F_WRLCK; ++ if (fcntl(fd, F_SETLKW, &fl) != 0) ++#else + if (lockf64 (fd, F_LOCK, total) != 0) ++#endif + { + int errval = errno; + unlink (fname); +@@ -613,7 +622,16 @@ open_archive (struct locarhandle *ah, bo + error (EXIT_FAILURE, errno, _("cannot stat locale archive \"%s\""), + archivefname); + ++#ifdef __GNU__ ++ struct flock fl; ++ fl.l_whence = SEEK_SET; ++ fl.l_start = 0; ++ fl.l_len = 0; ++ fl.l_type = F_WRLCK; ++ if (!readonly && fcntl(fd, F_SETLKW, &fl) == -1) ++#else + if (!readonly && lockf64 (fd, F_LOCK, sizeof (struct locarhead)) == -1) ++#endif + { + close (fd); +
  5. Download patch debian/sysdeps/armel.mk

    --- 2.30-0experimental2/debian/sysdeps/armel.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/armel.mk 2019-09-16 14:56:30.000000000 +0000 @@ -5,38 +5,37 @@ extra_config_options = --enable-multi-ar ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) # build hard-float (armhf) alternative library -#GLIBC_PASSES += armhf -#DEB_ARCH_MULTILIB_PACKAGES += libc6-armhf libc6-dev-armhf -#armhf_configure_target = arm-linux-gnueabihf -#armhf_CC = $(CC) -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -#armhf_CXX = $(CXX) -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -#armhf_crypt = yes -#armhf_slibdir = /lib/arm-linux-gnueabihf -#armhf_libdir = /usr/lib/arm-linux-gnueabihf -# -#define libc6-dev-armhf_extra_pkg_install -# -#mkdir -p debian/libc6-dev-armhf/usr/include -#ln -sf arm-linux-gnueabi/bits debian/libc6-dev-armhf/usr/include/ -#ln -sf arm-linux-gnueabi/gnu debian/libc6-dev-armhf/usr/include/ -#ln -sf arm-linux-gnueabi/fpu_control.h debian/libc6-dev-armhf/usr/include/ -# -#mkdir -p debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu -#cp -a debian/tmp-armhf/usr/include/gnu/lib-names-hard.h \ -# debian/tmp-armhf/usr/include/gnu/stubs-hard.h \ -# debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu -# -#mkdir -p debian/libc6-dev-armhf/usr/include/sys -#for i in `ls debian/tmp-libc/usr/include/arm-linux-gnueabi/sys` ; do \ -# ln -sf ../arm-linux-gnueabi/sys/$$i debian/libc6-dev-armhf/usr/include/sys/$$i ; \ -#done -# -#endef -# -#define libc6-armhf_extra_pkg_install -#mkdir -p debian/libc6-armhf$(armhf_slibdir) -#ln -sf $(armhf_slibdir)/ld-linux-armhf.so.3 debian/libc6-armhf/lib -#ln -sf ld-linux-armhf.so.3 debian/libc6-armhf$(armhf_slibdir)/ld-linux.so.3 -#endef +GLIBC_PASSES += armhf +DEB_ARCH_MULTILIB_PACKAGES += libc6-armhf libc6-dev-armhf +armhf_configure_target = arm-linux-gnueabihf +armhf_CC = $(CC) -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard +armhf_CXX = $(CXX) -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard +armhf_slibdir = /lib/arm-linux-gnueabihf +armhf_libdir = /usr/lib/arm-linux-gnueabihf + +define libc6-dev-armhf_extra_pkg_install + +mkdir -p debian/libc6-dev-armhf/usr/include +ln -sf arm-linux-gnueabi/bits debian/libc6-dev-armhf/usr/include/ +ln -sf arm-linux-gnueabi/gnu debian/libc6-dev-armhf/usr/include/ +ln -sf arm-linux-gnueabi/fpu_control.h debian/libc6-dev-armhf/usr/include/ + +mkdir -p debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu +cp -a debian/tmp-armhf/usr/include/gnu/lib-names-hard.h \ + debian/tmp-armhf/usr/include/gnu/stubs-hard.h \ + debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu + +mkdir -p debian/libc6-dev-armhf/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/arm-linux-gnueabi/sys` ; do \ + ln -sf ../arm-linux-gnueabi/sys/$$i debian/libc6-dev-armhf/usr/include/sys/$$i ; \ +done + +endef + +define libc6-armhf_extra_pkg_install +mkdir -p debian/libc6-armhf$(armhf_slibdir) +ln -sf $(armhf_slibdir)/ld-linux-armhf.so.3 debian/libc6-armhf/lib +ln -sf ld-linux-armhf.so.3 debian/libc6-armhf$(armhf_slibdir)/ld-linux.so.3 +endef endif # multilib
  6. Download patch debian/sysdeps/mips64r6el.mk

    --- 2.30-0experimental2/debian/sysdeps/mips64r6el.mk 2020-02-05 06:28:55.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mips64r6el.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib64 @@ -11,7 +14,6 @@ libc6-mipsn32_shlib_dep = libc6-mipsn32 mipsn32_configure_target = mipsisa64r6el-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mipsisa32r6el-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  7. Download patch debian/patches/hurd-i386/tg-hurdsig-SA_SIGINFO.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/tg-hurdsig-SA_SIGINFO.diff 2020-02-04 19:50:28.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/tg-hurdsig-SA_SIGINFO.diff 2019-08-29 10:12:07.000000000 +0000 @@ -33,6 +33,20 @@ Subject: [PATCH] implement SA_SIGINFO si /* Make the thread described by SS take the signal described by SIGNO and DETAIL. If the process is traced, this will in fact stop with a SIGNO +--- a/hurd/hurd/sigpreempt.h ++++ b/hurd/hurd/sigpreempt.h +@@ -50,9 +50,9 @@ + struct hurd_signal_preemptor *next; /* List structure. */ + }; + +-#define HURD_PREEMPT_SIGNAL_P(preemptor, signo, sigcode) \ ++#define HURD_PREEMPT_SIGNAL_P(preemptor, signo, address) \ + (((preemptor)->signals & sigmask (signo)) \ +- && (sigcode) >= (preemptor)->first && (sigcode) <= (preemptor)->last) ++ && (address) >= (preemptor)->first && (address) <= (preemptor)->last) + + + /* Signal preemptors applying to all threads; locked by _hurd_siglock. */ --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -70,7 +70,7 @@ @@ -66,24 +80,6 @@ Subject: [PATCH] implement SA_SIGINFO si { if (pe->preemptor) { -@@ -1366,7 +1366,7 @@ _S_msg_sig_post (mach_port_t me, - if (err = signal_allowed (signo, refport)) - return err; - -- d.code = sigcode; -+ d.code = d.exc_subcode = sigcode; - d.exc = 0; - - /* Post the signal to a global receiver thread (or mark it pending in -@@ -1395,7 +1395,7 @@ _S_msg_sig_post_untraced (mach_port_t me, - if (err = signal_allowed (signo, refport)) - return err; - -- d.code = sigcode; -+ d.code = d.exc_subcode = sigcode; - d.exc = 0; - - /* Post the signal to the designated signal-receiving thread. This will --- /dev/null +++ b/sysdeps/mach/hurd/bits/sigaction.h @@ -0,0 +1,86 @@ @@ -510,8 +506,8 @@ Subject: [PATCH] implement SA_SIGINFO si { /* We have a previous sigcontext that sigreturn was about @@ -74,9 +151,13 @@ - the SP on sigreturn. */ - state->basic.uesp = state->basic.ecx; + interrupted RPC frame. */ + state->basic.esp = state->basic.uesp; - /* XXX what if handler != action->handler (for instance, if a signal - * preemptor took over) ? */
  8. Download patch debian/patches/hurd-i386/posix_openpt.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/posix_openpt.diff 2020-02-04 19:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/posix_openpt.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ -https://sourceware.org/ml/libc-alpha/2019-12/msg00799.html - -to commit after 2.31 is released - -diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c -index 46207f4e62..0eff0b54a3 100644 ---- a/sysdeps/unix/bsd/getpt.c -+++ b/sysdeps/unix/bsd/getpt.c -@@ -41,7 +41,7 @@ const char __libc_ptyname2[] attribute_hidden = PTYNAME2; - - /* Open a master pseudo terminal and return its file descriptor. */ - int --__getpt (void) -+__bsd_openpt (int oflag) - { - char buf[sizeof (_PATH_PTY) + 2]; - const char *p, *q; -@@ -61,7 +61,7 @@ __getpt (void) - - s[1] = *q; - -- fd = __open (buf, O_RDWR); -+ fd = __open (buf, oflag); - if (fd != -1) - return fd; - -@@ -74,18 +74,20 @@ __getpt (void) - return -1; - } - --#undef __getpt -+#ifndef HAVE_GETPT -+int -+__getpt (void) -+{ -+ return __bsd_openpt (O_RDWR); -+} - weak_alias (__getpt, getpt) -+#endif - - #ifndef HAVE_POSIX_OPENPT --/* We cannot define posix_openpt in general for BSD systems. */ - int - __posix_openpt (int oflag) - { -- __set_errno (ENOSYS); -- return -1; -+ return __bsd_openpt (oflag); - } - weak_alias (__posix_openpt, posix_openpt) -- --stub_warning (posix_openpt) - #endif -diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c -index cdde8377f5..1cb99d5185 100644 ---- a/sysdeps/unix/sysv/linux/getpt.c -+++ b/sysdeps/unix/sysv/linux/getpt.c -@@ -31,7 +31,7 @@ - #define _PATH_DEVPTS _PATH_DEV "pts" - - /* Prototype for function that opens BSD-style master pseudo-terminals. */ --extern int __bsd_getpt (void) attribute_hidden; -+extern int __bsd_openpt (int oflag) attribute_hidden; - - /* Open a master pseudo terminal and return its file descriptor. */ - int -@@ -88,14 +88,15 @@ __getpt (void) - { - int fd = __posix_openpt (O_RDWR); - if (fd == -1) -- fd = __bsd_getpt (); -+ fd = __bsd_openpt (O_RDWR); - return fd; - } -+weak_alias (__getpt, getpt) - - - #define PTYNAME1 "pqrstuvwxyzabcde"; - #define PTYNAME2 "0123456789abcdef"; - --#define __getpt __bsd_getpt -+#define HAVE_GETPT - #define HAVE_POSIX_OPENPT - #include <sysdeps/unix/bsd/getpt.c>
  9. Download patch debian/debhelper.in/libc.postrm

    --- 2.30-0experimental2/debian/debhelper.in/libc.postrm 2020-02-04 19:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/libc.postrm 2019-02-21 13:45:58.000000000 +0000 @@ -5,7 +5,7 @@ if [ "$1" = remove ]; then # When both the multiarch and the corresponding biarch packages are # installed, removing the multiarch package will remove the dynamic # linker. Recreate it in the postinst. - ARCH=${DPKG_MAINTSCRIPT_ARCH} + ARCH=${DPKG_MAINTSCRIPT_ARCH:-$(dpkg --print-architecture)} case "${ARCH}" in kfreebsd-i386 | s390 | powerpc) target="/lib32/ld.so.1"
  10. Download patch debian/patches/hurd-i386/git-libpthread_sigs.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-libpthread_sigs.diff 2020-02-05 21:43:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-libpthread_sigs.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ -Committed for glibc 2.31 - -From: Samuel Thibault <samuel.thibault@ens-lyon.org> -Subject: Enable global signal distribution in htl - -* sysdeps/mach/hurd/htl/pt-sigstate-init.c (__pthread_sigstate_init): -Call _hurd_sigstate_set_global_rcv(). -* sysdeps/mach/hurd/htl/pt-sigstate-destroy.c -(__pthread_sigstate_destroy): Call _hurd_sigstate_delete(). -* sysdeps/mach/hurd/htl/pt-sigstate.c: Include <hurd/msg.h> -(__pthread_sigstate): Use _hurd_sigstate_lock()/_hurd_sigstate_unlock() -and _hurd_sigstate_pending(). Call __msg_sig_post() to wake up thread -with pending signals. -* sysdeps/mach/hurd/Makefile (LDLIBS-pthread.so): Add -$(objdir)/hurd/libhurduser.so. - - ---- - sysdeps/mach/hurd/Makefile | 2 ++ - sysdeps/mach/hurd/htl/pt-sigstate-destroy.c | 1 + - sysdeps/mach/hurd/htl/pt-sigstate-init.c | 2 +- - sysdeps/mach/hurd/htl/pt-sigstate.c | 12 ++++++++++-- - 4 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile -index 3a853a6cd9..8a865a0e1f 100644 ---- a/sysdeps/mach/hurd/Makefile -+++ b/sysdeps/mach/hurd/Makefile -@@ -206,4 +206,6 @@ ifeq ($(subdir),nis) - CFLAGS-ypclnt.c += -DUSE_BINDINGDIR=1 - endif - -+LDLIBS-pthread.so += $(objdir)/hurd/libhurduser.so -+ - endif # in-Makerules -diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c -index e7154a371d..229a415487 100644 ---- a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c -+++ b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c -@@ -23,4 +23,5 @@ - void - __pthread_sigstate_destroy (struct __pthread *thread) - { -+ _hurd_sigstate_delete (thread->kernel_thread); - } -diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-init.c b/sysdeps/mach/hurd/htl/pt-sigstate-init.c -index 70832f9576..507fb8ade2 100644 ---- a/sysdeps/mach/hurd/htl/pt-sigstate-init.c -+++ b/sysdeps/mach/hurd/htl/pt-sigstate-init.c -@@ -35,7 +35,7 @@ __pthread_sigstate_init (struct __pthread *thread) - if (do_init_global) - { - struct hurd_sigstate *ss = _hurd_thread_sigstate (thread->kernel_thread); -- (void) ss; -+ _hurd_sigstate_set_global_rcv (ss); - } - else if (__pthread_num_threads >= 2) - do_init_global = 1; -diff --git a/sysdeps/mach/hurd/htl/pt-sigstate.c b/sysdeps/mach/hurd/htl/pt-sigstate.c -index f7050ec0df..2ddceb229e 100644 ---- a/sysdeps/mach/hurd/htl/pt-sigstate.c -+++ b/sysdeps/mach/hurd/htl/pt-sigstate.c -@@ -20,6 +20,7 @@ - #include <assert.h> - #include <signal.h> - #include <hurd/signal.h> -+#include <hurd/msg.h> - - #include <pt-internal.h> - -@@ -29,11 +30,12 @@ __pthread_sigstate (struct __pthread *thread, int how, - { - error_t err = 0; - struct hurd_sigstate *ss; -+ sigset_t pending; - - ss = _hurd_thread_sigstate (thread->kernel_thread); - assert (ss); - -- __spin_lock (&ss->lock); -+ _hurd_sigstate_lock (ss); - - if (oset != NULL) - *oset = ss->blocked; -@@ -64,7 +66,13 @@ __pthread_sigstate (struct __pthread *thread, int how, - if (!err && clear_pending) - __sigemptyset (&ss->pending); - -- __spin_unlock (&ss->lock); -+ pending = _hurd_sigstate_pending (ss) & ~ss->blocked; -+ _hurd_sigstate_unlock (ss); -+ -+ if (!err && pending) -+ /* Send a message to the signal thread so it -+ will wake up and check for pending signals. */ -+ __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); - - return err; - } --- -tg: (0bfe57e3de..) t/libpthread_sigs (depends on: baseline t/hurdsig-SA_SIGINFO t/hurdsig-boot-fix t/hurdsig-fixes t/hurdsig-fixes-2 t/hurdsig-global-dispositions t/hurdsig-global-dispositions-versions)
  11. Download patch debian/sysdeps/mips64r6.mk

    --- 2.30-0experimental2/debian/sysdeps/mips64r6.mk 2020-02-05 06:28:57.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mips64r6.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib64 @@ -11,7 +14,6 @@ libc6-mipsn32_shlib_dep = libc6-mipsn32 mipsn32_configure_target = mipsisa64r6-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mipsisa32r6-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  12. Download patch debian/sysdeps/mipsel.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsel.mk 2020-02-05 06:28:58.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsel.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # multilib flavours ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) @@ -8,7 +11,6 @@ libc6-mipsn32_shlib_dep = libc6-mipsn32 mipsn32_configure_target = mips64el-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -20,7 +22,6 @@ libc6-mips64_shlib_dep = libc6-mips64 (> mips64_configure_target = mips64el-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64
  13. Download patch debian/patches/ubuntu/localedata/ckb_IQ-new_locale.diff
  14. Download patch debian/patches/hurd-i386/git-errno_location.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-errno_location.diff 2020-02-04 19:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-errno_location.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -commit 25c084e0a7b5e8d604d0f86b55f343acadf7af5d -Author: Samuel Thibault <samuel.thibault@ens-lyon.org> -Date: Sat Jan 4 19:37:53 2020 +0100 - - htl: Add __errno_location and __h_errno_location - - As explained on - https://sourceware.org/ml/libc-alpha/2020-01/msg00049.html - the presence of __errno_location in libpthread.so on GNU/Linux makes - libpthread getting linked in for libstdc++. This aligns on that behavior, to - avoid issues that only GNU/Hurd would get. - -diff --git a/htl/Makefile b/htl/Makefile -index 3b5c10635d..b7e84b4b95 100644 ---- a/htl/Makefile -+++ b/htl/Makefile -@@ -135,6 +135,7 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \ - shm-directory \ - \ - cthreads-compat \ -+ herrno \ - $(SYSDEPS) - - libpthread-static-only-routines = pt-atfork -diff --git a/htl/Versions b/htl/Versions -index c5a616da10..1c306acf5c 100644 ---- a/htl/Versions -+++ b/htl/Versions -@@ -29,6 +29,7 @@ libc { - libpthread { - GLIBC_2.2.6 { - _IO_flockfile; _IO_ftrylockfile; _IO_funlockfile; -+ __errno_location; __h_errno_location; - } - GLIBC_2.12 { - __pthread_errorcheck_mutexattr; __pthread_recursive_mutexattr; -diff --git a/htl/herrno.c b/htl/herrno.c -new file mode 100644 -index 0000000000..66174a03e9 ---- /dev/null -+++ b/htl/herrno.c -@@ -0,0 +1,34 @@ -+/* Copyright (C) 1996-2020 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 -+ <https://www.gnu.org/licenses/>. */ -+ -+#include <features.h> -+#include <netdb.h> -+#undef h_errno -+ -+#include <tls.h> -+ -+/* We need to have the error status variable of the resolver -+ accessible in the libc. */ -+extern __thread int __h_errno; -+ -+ -+/* When threaded, h_errno may be a per-thread variable. */ -+int * -+__h_errno_location (void) -+{ -+ return &__h_errno; -+} -diff --git a/sysdeps/htl/Makefile b/sysdeps/htl/Makefile -index 12bb54ebf4..ef156f1315 100644 ---- a/sysdeps/htl/Makefile -+++ b/sysdeps/htl/Makefile -@@ -1,3 +1,7 @@ -+ifeq ($(subdir),htl) -+libpthread-sysdep_routines += errno-loc -+endif -+ - ifeq ($(subdir),rt) - librt-sysdep_routines += timer_routines - endif -diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist -index 4c7d06d073..0ede90859c 100644 ---- a/sysdeps/mach/hurd/i386/libpthread.abilist -+++ b/sysdeps/mach/hurd/i386/libpthread.abilist -@@ -145,5 +145,7 @@ GLIBC_2.12 sem_wait F - GLIBC_2.2.6 _IO_flockfile F - GLIBC_2.2.6 _IO_ftrylockfile F - GLIBC_2.2.6 _IO_funlockfile F -+GLIBC_2.2.6 __errno_location F -+GLIBC_2.2.6 __h_errno_location F - GLIBC_2.21 pthread_hurd_cond_timedwait_np F - GLIBC_2.21 pthread_hurd_cond_wait_np F
  15. Download patch debian/debhelper.in/libc-bin.lintian-overrides

    --- 2.30-0experimental2/debian/debhelper.in/libc-bin.lintian-overrides 2019-08-16 10:57:32.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/libc-bin.lintian-overrides 2019-09-16 14:56:30.000000000 +0000 @@ -1,12 +1,15 @@ # ldconfig must be executable even when the libc is not configured, and # thus must be linked statically -libc-bin: statically-linked-binary sbin/ldconfig +libc-bin: statically-linked-binary sbin/ldconfig.real # pt_chown must be setuid root and in /usr/lib, otherwise non-root users # won't be able to login libc-bin: setuid-binary usr/lib/pt_chown 4755 root/root libc-bin: sharedobject-in-library-directory-missing-soname usr/lib/pt_chown +# ldconfig.real doesn't have a manpage, since it's just ldconfig renamed +libc-bin: binary-without-manpage sbin/ldconfig.real + # ldconfig is called in the postinst for trigger support libc-bin: postinst-has-useless-call-to-ldconfig
  16. Download patch debian/control.in/main

    --- 2.30-0experimental2/debian/control.in/main 2020-02-05 21:45:22.000000000 +0000 +++ 2.30-0ubuntu3/debian/control.in/main 2019-09-16 14:56:30.000000000 +0000 @@ -3,19 +3,20 @@ Section: libs Priority: required Build-Depends: gettext, dpkg (>= 1.18.7), dpkg-dev (>= 1.17.14), xz-utils, file, quilt, autoconf, gawk, debhelper (>= 10), rdfind, symlinks, netbase, gperf, bison, - linux-libc-dev (>= 3.9) [linux-any], + linux-libc-dev (>= 3.9) [linux-any], systemtap-sdt-dev [linux-any], libaudit-dev [linux-any], libcap-dev [linux-any], libselinux-dev [linux-any], mig (>= 1.5-3) [hurd-i386], gnumach-dev (>= 2:1.8+git20181103-1~) [hurd-i386], - hurd-dev (>= 1:0.9.git20191029) [hurd-i386] | hurd-headers-dev [hurd-i386], - hurd-dev (>= 1:0.9.git20191029) [hurd-i386] <!stage1> | libihash-dev [hurd-i386] <!stage1>, + hurd-dev (>= 1:0.9.git20181030-1) [hurd-i386] | hurd-headers-dev [hurd-i386], + hurd-dev (>= 1:0.9.git20181030-1) [hurd-i386] <!stage1> | libihash-dev [hurd-i386] <!stage1>, kfreebsd-kernel-headers [kfreebsd-any], binutils (>= 2.29), - g++-9, g++-9-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>, - python3:native, + g++-9, g++-9-multilib [amd64 armhf armel i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 s390x sparc sparc64 x32] <!nobiarch>, + python3:native <!nocheck>, libidn2-0 (>= 2.0.5~) <!nocheck>, libc-bin (>= @GLIBC_VERSION@) <cross> Build-Depends-Indep: perl, po-debconf (>= 1.0) -Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org> Uploaders: Clint Adams <clint@debian.org>, Aurelien Jarno <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net>, Samuel Thibault <sthibault@debian.org> Standards-Version: 4.2.1 Vcs-Browser: https://salsa.debian.org/glibc-team/glibc @@ -29,7 +30,7 @@ Priority: required Essential: yes Multi-Arch: foreign Depends: ${shlibs:Depends}, ${misc:Depends} -Recommends: manpages +Suggests: manpages Build-Profiles: <!stage1> Description: GNU C Library: Binaries This package contains utility programs related to the GNU C Library. @@ -72,8 +73,7 @@ Architecture: all Section: doc Priority: optional Multi-Arch: foreign -Depends: ${misc:Depends} -Suggests: glibc-doc-reference +Depends: ${misc:Depends}, glibc-doc-reference (>= 2.18) Build-Profiles: <!stage1> Description: GNU C Library: Documentation Contains man pages for libpthread functions and the complete GNU C Library @@ -99,8 +99,9 @@ Package: locales Architecture: all Section: localization Priority: standard -Depends: libc-bin (>> @GLIBC_VERSION@), libc-l10n (>> @GLIBC_VERSION@), ${misc:Depends}, debconf | debconf-2.0 -Replaces: manpages-fr-extra (<< 20141022) +Depends: libc-bin (>> @GLIBC_VERSION@), ${misc:Depends}, debconf | debconf-2.0 +Breaks: libc-bin (<< 2.23) +Replaces: libc-bin (<< 2.23), manpages-fr-extra (<< 20141022) Build-Profiles: <!stage1> Description: GNU C Library: National Language (locale) data [support] Machine-readable data files, shared objects and programs used by the @@ -117,7 +118,7 @@ Architecture: any Section: localization Priority: optional Multi-Arch: foreign -Depends: libc-l10n (>> @GLIBC_VERSION@), ${misc:Depends} +Depends: ${misc:Depends} Breaks: locales (<< 2.13-17) Build-Profiles: <!stage1> Description: GNU C Library: Precompiled locale data
  17. Download patch debian/local/usr_sbin/locale-gen

    --- 2.30-0experimental2/debian/local/usr_sbin/locale-gen 2019-07-29 09:56:57.000000000 +0000 +++ 2.30-0ubuntu3/debian/local/usr_sbin/locale-gen 2019-09-16 14:56:30.000000000 +0000 @@ -1,10 +1,12 @@ -#!/bin/sh +#!/bin/bash set -e LOCALEGEN=/etc/locale.gen LOCALES=/usr/share/i18n/locales USER_LOCALES=/usr/local/share/i18n/locales +SUPPORTED=/var/lib/locales/supported.d +ALIASES=/usr/share/locale/locale.alias if [ -n "$POSIXLY_CORRECT" ]; then unset POSIXLY_CORRECT fi @@ -14,14 +16,89 @@ fi [ -s $LOCALEGEN ] || exit 0; KEEP= -if [ "$1" = '--keep-existing' ]; then - KEEP=1 -fi +IS_LANG=no +ARCHIVE=yes + +# Handle command-line options +prev= +while true +do + option="$1" + if [ -n "$prev" ]; then + eval "$prev=\$option" + prev= + continue + fi + + case $option in + -h|--help) + cat <<EOT +Usage: locale-gen [OPTIONS] +Options: + -h, --help display this message and exit + --purge remove existing locales before processing + --archive store compiled locale data inside a single archive + --no-archive do not store compiled locale data inside a single archive + (default) + --aliases=FILE read locale aliases from FILE. (Default: /etc/locale.alias) + --lang treat argument as generic language code +EOT + exit 0 + ;; + --purge) + # This is the default when called without arguments + ;; + --no-purge) + KEEP=1 + ;; + --archive) + ARCHIVE=yes + ;; + --no-archive) + ARCHIVE=no + ;; + --keep-existing) + KEEP=1 + ;; + --aliases) + prev=ALIASES + ;; + --aliases=*) + ALIASES=$(expr "x$option" : 'x[^=]*=\(.*\)') + ;; + --lang) + IS_LANG=yes + ;; + --*) + echo "locale-gen: invalid option -- $option" + echo "Try 'locale-gen --help' for more information." + exit 1 + ;; + *) + break + ;; + esac + + shift +done + +no_archive= +[ "$ARCHIVE" = yes ] || no_archive="--no-archive" +locale_alias= +[ -n "$ALIASES" ] && [ -r "$ALIASES" ] && locale_alias="-A $ALIASES" -if [ -z "$KEEP" ]; then +if [ -z "$1" ] && [ -z "$KEEP" ]; then # Remove all old locale dir and locale-archive before generating new # locale data. rm -rf /usr/lib/locale/locale-archive || true + for dir in /usr/lib/locale/*; do + [ -e "$dir" ] || continue + if [ "${dir#/usr/lib/locale/}" = C.UTF-8 ]; then + # owned by libc-bin + continue + fi + rm -rf "$dir" 2>/dev/null || true + done fi umask 022 @@ -35,8 +112,46 @@ is_entry_ok() { fi } +add_to_locale_gen() { + echo "$1" | while read locale; do + if ! grep -q "^[# ]*$locale *\$" $LOCALEGEN; then + echo "# $locale" >> $LOCALEGEN + fi + sed -i -e "0,/^[# ]*$locale *$/ s/^[# ]*$locale *$/$locale/" $LOCALEGEN + done +} + +if [ -z "$1" ]; then + GENERATE="`cat $SUPPORTED/* $LOCALEGEN 2>/dev/null || true`" +else + GENERATE= + while [ -n "$1" ]; do + if [ -f "$SUPPORTED/$1" ]; then + GENERATE="$GENERATE\n`cat $SUPPORTED/$1`" + elif [ $IS_LANG = no ] && L=`grep "^${1/%.utf8/.UTF-8} " /usr/share/i18n/SUPPORTED`; then + # convert utf8 to UTF-8 and check if the requested locale exists + GENERATE="$GENERATE\n$L" + add_to_locale_gen "$L" + elif [ $IS_LANG = no ] && L=`grep "^${1%.[uU][tT][fF]*} UTF-8" /usr/share/i18n/SUPPORTED`; then + # recognize 'll_CC.UTF-8' or 'll_CC.utf8' as ll_CC without codeset + GENERATE="$GENERATE\n$L" + add_to_locale_gen "$L" + else + # try to come up with a sensible default + L=`grep -E "^${1}( |[._@][^[:space:]]* )UTF-8" /usr/share/i18n/SUPPORTED || true` + if [ -z "$L" ]; then + echo "Error: '$1' is not a supported language or locale" >&2 + exit 1 + fi + GENERATE="$GENERATE\n$L" + add_to_locale_gen "$L" + fi + shift + done +fi + echo "Generating locales (this might take a while)..." -while read locale charset; do \ +echo -e "$GENERATE" | sort -u | while read locale charset; do \ case $locale in \#*) continue;; "") continue;; esac; \ is_entry_ok || continue if [ "$KEEP" ] && PERL_BADLANG=0 perl -MPOSIX -e \ @@ -57,7 +172,7 @@ while read locale charset; do \ input=$USER_LOCALES/$input fi fi - localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale || :; \ + localedef $no_archive -i $input -c -f $charset $locale_alias $locale || :; \ echo ' done'; \ -done < $LOCALEGEN +done echo "Generation complete."
  18. Download patch debian/rules

    --- 2.30-0experimental2/debian/rules 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/rules 2019-09-16 14:56:30.000000000 +0000 @@ -89,7 +89,6 @@ rtlddir=/lib slibdir=/lib/$(DEB_HOST_MULTIARCH) libdir=/usr/lib/$(DEB_HOST_MULTIARCH) mvec = no -crypt = no BASE_CC = gcc @@ -136,7 +135,7 @@ ifneq ($(filter stage1,$(DEB_BUILD_PROFI endif else DEB_ARCH_REGULAR_PACKAGES = $(libc) $(libc)-dev $(libc)-dbg $(libc)-pic libc-bin libc-dev-bin - DEB_INDEP_REGULAR_PACKAGES = glibc-doc glibc-source libc-l10n locales + DEB_INDEP_REGULAR_PACKAGES = glibc-doc glibc-source locales ifneq ($(filter noudeb,$(DEB_BUILD_PROFILES)),) DEB_UDEB_PACKAGES = else
  19. Download patch debian/control.in/libc

    --- 2.30-0experimental2/debian/control.in/libc 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/control.in/libc 2019-09-16 14:56:30.000000000 +0000 @@ -3,17 +3,18 @@ Architecture: @archs@ Section: libs Priority: optional Multi-Arch: same -Depends: ${shlibs:Depends}, ${libgcc:Depends}, ${libcrypt:Depends} +Depends: ${shlibs:Depends}, ${libgcc:Depends} Recommends: libidn2-0 (>= 2.0.5~) -Suggests: glibc-doc, debconf | debconf-2.0, libc-l10n, locales [!hurd-i386] -Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386] -Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~) +Suggests: glibc-doc, debconf | debconf-2.0, locales [!hurd-i386] +Provides: libc6-sparcv9b [sparc sparc64], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386], libc6-xen [i386], libc6-armel [armel], libc6-armhf [armhf] +Conflicts: libc6-loongson2f [mipsel], libc0.1-i686 [kfreebsd-i386], libc6-i686 [i386], openrc (<< 0.27-2~), libc6-xen [i386] Breaks: nscd (<< @GLIBC_VERSION@), locales (<< @GLIBC_VERSION@), locales-all (<< @GLIBC_VERSION@), hurd (<< 1:0.9.git20170910-1), libtirpc1 (<< 0.2.3), r-cran-later (<< 0.7.5+dfsg-2), nocache (<< 1.1-1~), iraf-fitsutil (<< 2018.07.06-4) Replaces: libc6-amd64 [amd64], libc6-i386 [i386], libc0.1-i686 [kfreebsd-i386], libc0.3-i686 [hurd-i386], libc6-i686 [i386], + libc6-xen [i386], libc6-x32 [x32], libc0.1-i386 [kfreebsd-i386], libc6-powerpc [powerpc], @@ -35,10 +36,10 @@ Architecture: @archs@ Section: libdevel Priority: optional Multi-Arch: same -Depends: @libc@ (= ${binary:Version}) <!stage1>, libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386] | hurd-headers-dev [hurd-i386], ${libcrypt-dev:Depends} +Depends: @libc@ (= ${binary:Version}) <!stage1>, libc-dev-bin (= ${binary:Version}), ${misc:Depends}, linux-libc-dev [linux-any], kfreebsd-kernel-headers (>= 0.11) [kfreebsd-any], gnumach-dev [hurd-i386], hurd-dev (>= 20080607-3) [hurd-i386] | hurd-headers-dev [hurd-i386] Replaces: hurd-dev (<< 20120408-3) [hurd-i386], kfreebsd-kernel-headers (<< 10.3~4) [kfreebsd-amd64 kfreebsd-i386] Suggests: glibc-doc, manpages-dev -Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64] +Provides: libc-dev, libc6-dev [alpha ia64 hurd-i386 kfreebsd-i386 kfreebsd-amd64], libc6-dev-armel [armel], libc6-dev-armhf [armhf] Breaks: binutils (<< 2.26), binutils-gold (<< 2.20.1-11), cmake (<< 2.8.4+dfsg.1-5), gcc-4.4 (<< 4.4.6-4), gcc-4.5 (<< 4.5.3-2), gcc-4.6 (<< 4.6.0-12), make (<< 3.81-8.1), pkg-config (<< 0.26-1), libjna-java (<< 3.2.7-4), liblouis-dev (<< 2.3.0-2), liblouisxml-dev (<< 2.4.0-2), libhwloc-dev (<< 1.2-3), check (<< 0.9.10-6.1+b1) [s390x], kfreebsd-kernel-headers (<< 10.3~4) [kfreebsd-amd64 kfreebsd-i386], libperl5.26 (<< 5.26.1-3) Conflicts: @libc-dev-conflict@ Description: GNU C Library: Development Libraries and Header Files @@ -77,7 +78,6 @@ Package-Type: udeb Architecture: @archs@ Section: debian-installer Priority: optional -Depends: libcrypt1-udeb Provides: @libc@, libc-udeb, libnss-dns-udeb, libnss-files-udeb, ${locale-compat:Depends} Build-Profiles: <!stage1> Description: GNU C Library: Shared libraries - udeb
  20. Download patch debian/patches/ubuntu/localedata/es_DO-am_pm.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/localedata/es_DO-am_pm.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/localedata/es_DO-am_pm.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,18 @@ +Description: Define 12-hours a.m./p.m. format +Bug-Ubuntu: https://launchpad.net/bugs/1288843 +Forwarded: http://sourceware.org/bugzilla/show_bug.cgi?id=16045 +Author: Gunnar Hjalmarsson <gunnarhj@ubuntu.com> + +--- a/localedata/locales/es_DO 2012-03-06 10:10:20.000000000 +0100 ++++ b/localedata/locales/es_DO 2014-03-09 01:03:37.309958275 +0100 +@@ -114,8 +114,8 @@ + d_t_fmt "%a %d %b %Y %T %Z" + d_fmt "%d//%m//%y" + t_fmt "%T" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "a.m.";"p.m." ++t_fmt_ampm "%I:%M:%S %p" + week 7;19971130;1 + END LC_TIME +
  21. Download patch debian/sysdeps/mips64el.mk

    --- 2.30-0experimental2/debian/sysdeps/mips64el.mk 2020-02-05 06:28:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mips64el.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib64 @@ -11,7 +14,6 @@ libc6-mipsn32_shlib_dep = libc6-mipsn32 mipsn32_configure_target = mips64el-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mipsel-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  22. Download patch debian/shlibs-add-udebs

    --- 2.30-0experimental2/debian/shlibs-add-udebs 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/shlibs-add-udebs 2019-08-29 09:59:56.000000000 +0000 @@ -36,7 +36,7 @@ W="[^[:space:]]*" # The following lists should match the ones in the *-udeb.install files # in debian/debhelper.in; $W replaces any "*" wildcards there. expr_libc1="ld$W libm-$W libm libdl$W libresolv$W libc-$W libc" -expr_libc2="libutil$W librt$W libpthread$W libmvec$W" +expr_libc2="libutil$W libcrypt$W librt$W libpthread$W libmvec$W" expr_libc3="libnss_dns$W libnss_files$W" expr_hurd="libmachuser$W libhurduser$W"
  23. Download patch debian/sysdeps/ppc64.mk

    --- 2.30-0experimental2/debian/sysdeps/ppc64.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/ppc64.mk 2019-09-16 14:56:30.000000000 +0000 @@ -3,6 +3,7 @@ extra_config_options = --enable-multi-ar # main library libc_rtlddir = /lib64 +libc_extra_cflags = -O3 -fno-tree-vectorize # multilib flavours ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) @@ -14,7 +15,7 @@ libc6-powerpc_shlib_dep = libc6-powerpc powerpc_configure_target = powerpc-linux-gnu powerpc_CC = $(CC) -m32 powerpc_CXX = $(CXX) -m32 -powerpc_crypt = yes +powerpc_extra_cflags = -O3 -fno-tree-vectorize powerpc_slibdir = /lib32 powerpc_libdir = /usr/lib32
  24. Download patch debian/sysdeps/i386.mk

    --- 2.30-0experimental2/debian/sysdeps/i386.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/i386.mk 2019-09-16 14:56:30.000000000 +0000 @@ -1,30 +1,6 @@ # configuration options for all flavours -extra_config_options = --enable-multi-arch --enable-static-pie - -ifeq (,$(filter stage1 stage2, $(DEB_BUILD_PROFILES))) -# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it -# greatly increase the speed when running under the 32bit Xen hypervisor. -GLIBC_PASSES += xen -DEB_ARCH_REGULAR_PACKAGES += libc6-xen -xen_extra_cflags = -mno-tls-direct-seg-refs -xen_slibdir = /lib/$(DEB_HOST_MULTIARCH)/i686/nosegneg - -define libc6-xen_extra_pkg_install -mkdir -p debian/libc6-xen/etc/ld.so.conf.d -echo '# This directive teaches ldconfig to search in nosegneg subdirectories' > debian/libc6-xen/etc/ld.so.conf.d/libc6-xen.conf -echo '# and cache the DSOs there with extra bit 1 set in their hwcap match' >> debian/libc6-xen/etc/ld.so.conf.d/libc6-xen.conf -echo '# fields. In Xen guest kernels, the vDSO tells the dynamic linker to' >> debian/libc6-xen/etc/ld.so.conf.d/libc6-xen.conf -echo '# search in nosegneg subdirectories and to match this extra hwcap bit' >> debian/libc6-xen/etc/ld.so.conf.d/libc6-xen.conf -echo '# in the ld.so.cache file.' >> debian/libc6-xen/etc/ld.so.conf.d/libc6-xen.conf -echo 'hwcap 1 nosegneg' >> debian/libc6-xen/etc/ld.so.conf.d/libc6-xen.conf -endef - -define libc6-dev_extra_pkg_install -mkdir -p debian/libc6-dev/$(libdir)/xen -cp -af debian/tmp-xen/$(libdir)/*.a \ - debian/libc6-dev/$(libdir)/xen -endef -endif +extra_config_options = --enable-multi-arch --enable-static-pie --enable-cet +libc_extra_cflags = -mno-tls-direct-seg-refs # multilib flavours ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) @@ -38,7 +14,6 @@ amd64_configure_target = x86_64-linux-gn # /usr/include/asm wrappers need that symbol. amd64_CC = $(CC) -m64 -D__x86_64__ amd64_CXX = $(CXX) -m64 -D__x86_64__ -amd64_crypt = yes amd64_mvec = yes amd64_rtlddir = /lib64 amd64_slibdir = /lib64 @@ -75,7 +50,6 @@ libc6-x32_shlib_dep = libc6-x32 (>= $(sh x32_configure_target = x86_64-linux-gnux32 x32_CC = $(CC) -mx32 x32_CXX = $(CXX) -mx32 -x32_crypt = yes x32_mvec = yes x32_rtlddir = /libx32 x32_slibdir = /libx32
  25. Download patch debian/patches/ubuntu/submitted-no-sprintf-pre-truncate.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/submitted-no-sprintf-pre-truncate.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/submitted-no-sprintf-pre-truncate.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,38 @@ +Description: when a program is compiled with -D_FORTIFY_SOURCE=2, the + vsprintf_chk function is called to handle sprintf/snprintf, but it + needlessly pretruncates the destination which changes the results of + sprintf(foo, "%sbar", baz). This patch restores the original behavior + that many programs have depended on. +Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=7075 +Bug-Ubuntu: https://launchpad.net/bugs/305901 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563637 +Author: Kees Cook <kees@ubuntu.com> +Author: Adam Conrad <adconrad@ubuntu.com> + +Index: glibc-2.9/libio/iovsprintf.c +=================================================================== +--- glibc-2.9.orig/libio/iovsprintf.c 2008-12-23 21:30:07.000000000 -0800 ++++ glibc-2.9/libio/iovsprintf.c 2008-12-23 21:30:19.000000000 -0800 +@@ -76,7 +76,6 @@ + if ((mode_flags & PRINTF_CHK) != 0) + { + _IO_JUMPS (&sf._sbf) = &_IO_str_chk_jumps; +- string[0] = '\0'; + } + else + _IO_JUMPS (&sf._sbf) = &_IO_str_jumps; +--- glibc-2.9.orig/libio/tst-sprintf-ub.c.orig 2019-02-20 02:25:11.467294842 -0700 ++++ glibc-2.9/libio/tst-sprintf-ub.c 2019-02-21 08:30:37.129814828 -0700 +@@ -38,12 +38,7 @@ + va_list args; + char *arg; + +- /* Expected results for fortified and non-fortified sprintf. */ +-#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 1 +- const char *expected = "CD"; +-#else + const char *expected = "ABCD"; +-#endif + + va_start (args, buf); + arg = va_arg (args, char *);
  26. Download patch debian/patches/hurd-i386/git-sendmsg-SCM_RIGHTS.diff
  27. Download patch debian/control
  28. Download patch debian/rules.d/debhelper.mk

    --- 2.30-0experimental2/debian/rules.d/debhelper.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/rules.d/debhelper.mk 2019-09-16 14:56:30.000000000 +0000 @@ -33,6 +33,13 @@ $(patsubst %,$(stamp)binaryinst_%,$(DEB_ dh_link -p$(curpass) dh_bugfiles -p$(curpass) + if test "$(curpass)" = "libc-bin"; then \ + mv debian/$(curpass)/sbin/ldconfig \ + debian/$(curpass)/sbin/ldconfig.real; \ + install -m755 -o0 -g0 debian/local/sbin/ldconfig \ + debian/$(curpass)/sbin/ldconfig; \ + fi + # when you want to install extra packages, use extra_pkg_install. $(call xx,extra_pkg_install) @@ -44,7 +51,7 @@ ifeq ($(filter nostrip,$(DEB_BUILD_OPTIO # work even without that package installed. if test "$(NOSTRIP_$(curpass))" != 1; then \ if test "$(DEBUG_$(curpass))" = 1; then \ - dh_strip -p$(curpass) -Xlibpthread $(DH_STRIP_DEBUG_PACKAGE); \ + DH_COMPAT=8 dh_strip -p$(curpass) -Xlibpthread $(DH_STRIP_DEBUG_PACKAGE); \ for f in $$(find debian/$(curpass) -name libpthread-\*.so) ; do \ dbgfile=$$(LC_ALL=C readelf -n $$f | sed -e '/Build ID:/!d' \ -e "s#^.*Build ID: \([0-9a-f]\{2\}\)\([0-9a-f]\+\)#\1/\2.debug#") ; \ @@ -56,7 +63,7 @@ ifeq ($(filter nostrip,$(DEB_BUILD_OPTIO --remove-section=.note $$f ; \ done ; \ else \ - dh_strip -p$(curpass) -Xlibpthread; \ + DH_COMPAT=8 dh_strip -p$(curpass) -Xlibpthread; \ fi ; \ for f in $$(find debian/$(curpass) -name \*crt\*.o) ; do \ $(DEB_HOST_GNU_TYPE)-strip --strip-debug --remove-section=.comment \ @@ -67,6 +74,9 @@ endif dh_compress -p$(curpass) dh_fixperms -p$(curpass) -Xpt_chown + if [ $(curpass) = locales ] ; then \ + chmod +x debian/$(curpass)/usr/share/locales/*-language-pack ; \ + fi # Use this instead of -X to dh_fixperms so that we can use # an unescaped regular expression. ld.so must be executable; # libc.so and NPTL's libpthread.so print useful version @@ -106,7 +116,7 @@ $(patsubst %,$(stamp)binaryinst_%,$(DEB_ dh_testroot dh_installdirs -p$(curpass) dh_install -p$(curpass) - dh_strip -p$(curpass) + DH_COMPAT=8 dh_strip -p$(curpass) # when you want to install extra packages, use extra_pkg_install. $(call xx,extra_pkg_install) @@ -155,10 +165,8 @@ endif # Generate common substvars files. : > tmp.substvars -ifeq ($(filter stage1 stage2,$(DEB_BUILD_PROFILES)),) +ifeq ($(filter stage2,$(DEB_BUILD_PROFILES)),) echo 'libgcc:Depends=libgcc1 [!hppa !m68k], libgcc2 [m68k], libgcc4 [hppa]' >> tmp.substvars - echo 'libcrypt:Depends=libcrypt1' >> tmp.substvars - echo 'libcrypt-dev:Depends=libcrypt-dev' >> tmp.substvars endif for pkg in $(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES) $(DEB_UDEB_PACKAGES); do \ cp tmp.substvars debian/$$pkg.substvars; \ @@ -244,7 +252,6 @@ $(stamp)debhelper_%: $(stamp)debhelper-c sed -e "s#RTLD_SO#$$rtld_so#g" -i $$t ; \ sed -e "s#MULTIARCHDIR#$$DEB_HOST_MULTIARCH#g" -i $$t ; \ $(if $(filter $(call xx,mvec),no),sed -e "/libmvec/d" -e "/libm-\*\.a/d" -i $$t ;) \ - $(if $(filter $(call xx,crypt),no),sed -e "/libcrypt/d" -i $$t ;) \ $(if $(filter-out $(DEB_HOST_ARCH_OS),linux),sed -e "/gdb/d" -i $$t ;) \ done ; \ done
  29. Download patch debian/patches/bfdb731438206b0f70fe7afa890681155c30b419.patch

    --- 2.30-0experimental2/debian/patches/bfdb731438206b0f70fe7afa890681155c30b419.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/bfdb731438206b0f70fe7afa890681155c30b419.patch 2019-11-29 14:19:42.000000000 +0000 @@ -0,0 +1,95 @@ +From bfdb731438206b0f70fe7afa890681155c30b419 Mon Sep 17 00:00:00 2001 +From: Stefan Liebler <stli@linux.ibm.com> +Date: Wed, 27 Nov 2019 12:35:40 +0100 +Subject: [PATCH] S390: Fix handling of needles crossing a page in strstr z15 + ifunc-variant. [BZ #25226] + +If the specified needle crosses a page-boundary, the s390-z15 ifunc variant of +strstr truncates the needle which results in invalid results. + +This is fixed by loading the needle beyond the page boundary to v18 instead of v16. +The bug is sometimes observable in test-strstr.c in check1 and check2 as the +haystack and needle is stored on stack. Thus the needle can be on a page boundary. + +check2 is now extended to test haystack / needles located on stack, at end of page +and on two pages. + +This bug was introduced with commit 6f47401bd5fc71209219779a0426170a9a7395b0 +("S390: Add arch13 strstr ifunc variant.") and is already released in glibc 2.30. +--- + string/test-strstr.c | 41 +++++++++++++++++++++++++++++++++++------ + sysdeps/s390/strstr-arch13.S | 2 +- + 2 files changed, 36 insertions(+), 7 deletions(-) + +diff --git a/string/test-strstr.c b/string/test-strstr.c +index 37fcb68..049f0e1 100644 +--- a/string/test-strstr.c ++++ b/string/test-strstr.c +@@ -139,16 +139,45 @@ check1 (void) + static void + check2 (void) + { +- const char s1[] = ", enable_static, \0, enable_shared, "; ++ const char s1_stack[] = ", enable_static, \0, enable_shared, "; ++ const size_t s1_byte_count = 18; ++ const char *s2_stack = &(s1_stack[s1_byte_count]); ++ const size_t s2_byte_count = 18; + char *exp_result; +- char *s2 = (void *) buf1 + page_size - 18; ++ const size_t page_size_real = getpagesize (); + +- strcpy (s2, s1); +- exp_result = stupid_strstr (s1, s1 + 18); ++ /* Haystack at end of page. The following page is protected. */ ++ char *s1_page_end = (void *) buf1 + page_size - s1_byte_count; ++ strcpy (s1_page_end, s1_stack); ++ ++ /* Haystack which crosses a page boundary. ++ Note: page_size is at least 2 * getpagesize. See test_init. */ ++ char *s1_page_cross = (void *) buf1 + page_size_real - 8; ++ strcpy (s1_page_cross, s1_stack); ++ ++ /* Needle at end of page. The following page is protected. */ ++ char *s2_page_end = (void *) buf2 + page_size - s2_byte_count; ++ strcpy (s2_page_end, s2_stack); ++ ++ /* Needle which crosses a page boundary. ++ Note: page_size is at least 2 * getpagesize. See test_init. */ ++ char *s2_page_cross = (void *) buf2 + page_size_real - 8; ++ strcpy (s2_page_cross, s2_stack); ++ ++ exp_result = stupid_strstr (s1_stack, s2_stack); + FOR_EACH_IMPL (impl, 0) + { +- check_result (impl, s1, s1 + 18, exp_result); +- check_result (impl, s2, s1 + 18, exp_result); ++ check_result (impl, s1_stack, s2_stack, exp_result); ++ check_result (impl, s1_stack, s2_page_end, exp_result); ++ check_result (impl, s1_stack, s2_page_cross, exp_result); ++ ++ check_result (impl, s1_page_end, s2_stack, exp_result); ++ check_result (impl, s1_page_end, s2_page_end, exp_result); ++ check_result (impl, s1_page_end, s2_page_cross, exp_result); ++ ++ check_result (impl, s1_page_cross, s2_stack, exp_result); ++ check_result (impl, s1_page_cross, s2_page_end, exp_result); ++ check_result (impl, s1_page_cross, s2_page_cross, exp_result); + } + } + +diff --git a/sysdeps/s390/strstr-arch13.S b/sysdeps/s390/strstr-arch13.S +index 92cafd3..aefdb49 100644 +--- a/sysdeps/s390/strstr-arch13.S ++++ b/sysdeps/s390/strstr-arch13.S +@@ -164,7 +164,7 @@ ENTRY(STRSTR_ARCH13) + vfenezb %v19,%v18,%v18 /* Search zero in loaded needle bytes. */ + veclb %v19,%v21 /* Zero index <= max loaded byte index? */ + jle .Lneedle_loaded /* -> v18 contains full needle. */ +- vl %v16,0(%r3) /* Load needle beyond page boundary. */ ++ vl %v18,0(%r3) /* Load needle beyond page boundary. */ + vfenezb %v19,%v18,%v18 + j .Lneedle_loaded + END(STRSTR_ARCH13) +-- +2.9.3 +
  30. Download patch debian/patches/ubuntu/local-altlocaledir.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/local-altlocaledir.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/local-altlocaledir.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,38 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: support alternative gettext tree in +# DP: /usr/share/locale-langpack +# DP: Dpatch author: Martin Pitt <martin.pitt@canonical.com> +# DP: Patch author: Martin Pitt <martin.pitt@canonical.com> +# DP: Upstream status: Ubuntu-Specific +# DP: Date: 2004-12-06 20:44:10 CET +# DP: Updated: 2016-10-05 13:51:00 CET + +--- glibc-2.3.5.orig/intl/l10nflist.c ++++ glibc-2.3.5/intl/l10nflist.c +@@ -267,7 +267,7 @@ _nl_make_l10nflist (l10nfile_list, dirli + + retval = (struct loaded_l10nfile *) + malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) +- * (1 << pop (mask)) ++ * 2 * (1 << pop (mask)) + * sizeof (struct loaded_l10nfile *))); + if (retval == NULL) + { +@@ -310,6 +310,17 @@ _nl_make_l10nflist (l10nfile_list, dirli + language, territory, codeset, + normalized_codeset, modifier, filename, 1); + } ++ const char* langpack_dir = "/usr/share/locale-langpack"; ++ if (strncmp(filename, "LC_MESSAGES", strlen("LC_MESSAGES")) == 0) { ++ for (cnt = mask; cnt >= 0; --cnt) ++ if ((cnt & ~mask) == 0) ++ { ++ retval->successor[entries++] ++ = _nl_make_l10nflist (l10nfile_list, langpack_dir, strlen (langpack_dir) + 1, cnt, ++ language, territory, codeset, ++ normalized_codeset, modifier, filename, 1); ++ } ++ } + retval->successor[entries] = NULL; + + return retval;
  31. Download patch debian/patches/hurd-i386/git-hurdsig-fixes.diff
  32. Download patch debian/patches/ubuntu/local-disable-nscd-netgroup-caching.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/local-disable-nscd-netgroup-caching.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/local-disable-nscd-netgroup-caching.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,13 @@ +--- eglibc-2.16.orig/nscd/nscd.conf ++++ eglibc-2.16/nscd/nscd.conf +@@ -80,7 +80,9 @@ + shared services yes + max-db-size services 33554432 + +- enable-cache netgroup yes ++# netgroup caching is known-broken, so disable it in the default config, ++# see: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1068889 ++ enable-cache netgroup no + positive-time-to-live netgroup 28800 + negative-time-to-live netgroup 20 + suggested-size netgroup 211
  33. Download patch debian/debhelper.in/locales.install

    --- 2.30-0experimental2/debian/debhelper.in/locales.install 2019-07-29 09:56:57.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/locales.install 2019-09-16 14:56:30.000000000 +0000 @@ -3,3 +3,5 @@ debian/tmp-libc/usr/share/i18n/* usr/sha debian/local/usr_sbin/locale-gen usr/sbin debian/local/usr_sbin/update-locale usr/sbin debian/local/usr_sbin/validlocale usr/sbin +debian/local/usr_share_locales/install-language-pack usr/share/locales +debian/local/usr_share_locales/remove-language-pack usr/share/locales
  34. Download patch debian/sysdeps/mips64.mk

    --- 2.30-0experimental2/debian/sysdeps/mips64.mk 2020-02-05 06:28:54.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mips64.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib64 @@ -11,7 +14,6 @@ libc6-mipsn32_shlib_dep = libc6-mipsn32 mipsn32_configure_target = mips64-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mips-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  35. Download patch debian/sysdeps/amd64.mk

    --- 2.30-0experimental2/debian/sysdeps/amd64.mk 2020-02-04 19:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/amd64.mk 2019-09-16 14:56:30.000000000 +0000 @@ -1,8 +1,9 @@ # configuration options for all flavours -extra_config_options = --enable-multi-arch --enable-static-pie +extra_config_options = --enable-multi-arch --enable-static-pie --enable-cet # main library libc_mvec = yes +libc_extra_cflags = -O3 libc_rtlddir = /lib64 # multilib flavours @@ -13,9 +14,8 @@ GLIBC_PASSES += i386 DEB_ARCH_MULTILIB_PACKAGES += libc6-i386 libc6-dev-i386 libc6-i386_shlib_dep = libc6-i386 (>= $(shlib_dep_ver)) i386_configure_target = i686-linux-gnu -i386_CC = $(CC) -m32 -i386_CXX = $(CXX) -m32 -i386_crypt = yes +i386_CC = $(CC) -m32 -march=pentium4 -mtune=generic +i386_CXX = $(CXX) -m32 -march=pentium4 -mtune=generic i386_slibdir = /lib32 i386_libdir = /usr/lib32 @@ -51,7 +51,6 @@ x32_configure_target = x86_64-linux-gnux x32_CC = $(CC) -mx32 x32_CXX = $(CXX) -mx32 x32_mvec = yes -x32_crypt = yes x32_rtlddir = /libx32 x32_slibdir = /libx32 x32_libdir = /usr/libx32
  36. Download patch debian/patches/hurd-i386/tg-hurdsig-fixes.diff
  37. Download patch debian/patches/hurd-i386/git-hurdsig-fixes-2.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-hurdsig-fixes-2.diff 2020-02-05 21:43:40.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-hurdsig-fixes-2.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -Committed for glibc 2.31 - -From: Jeremie Koenig <jk@jk.fr.eu.org> -Subject: [PATCH] Small signal fixes - - 22e7268 Hurd signals: fix sigwait for pending signals - da8bf5e Hurd signals: clear the pending mask in fork and spawn - 8e87205 Hurd signals: don't drop blocked ignored signals - ---- - hurd/hurdsig.c | 4 +--- - sysdeps/mach/hurd/fork.c | 4 +++- - sysdeps/mach/hurd/spawni.c | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) - ---- a/hurd/hurdsig.c -+++ b/hurd/hurdsig.c -@@ -904,9 +904,7 @@ - } - - /* Handle receipt of a blocked signal, or any signal while stopped. */ -- if (act != ignore /* Signals ignored now are forgotten now. */ -- && __sigismember (&blocked, signo) -- || (signo != SIGKILL && _hurd_stopped)) -+ if (__sigismember (&blocked, signo) || (signo != SIGKILL && _hurd_stopped)) - { - mark_pending (); - act = ignore; ---- a/sysdeps/mach/hurd/fork.c -+++ b/sysdeps/mach/hurd/fork.c -@@ -684,8 +684,10 @@ - err = __USEPORT (PROC, __proc_getpids (port, &_hurd_pid, &_hurd_ppid, - &_hurd_orphaned)); - -- /* Forking clears the trace flag. */ -+ /* Forking clears the trace flag and pending masks. */ - __sigemptyset (&_hurdsig_traced); -+ __sigemptyset (&_hurd_global_sigstate->pending); -+ __sigemptyset (&ss->pending); - - /* Release malloc locks. */ - _hurd_malloc_fork_child (); ---- a/sysdeps/mach/hurd/spawni.c -+++ b/sysdeps/mach/hurd/spawni.c -@@ -239,7 +239,7 @@ - - _hurd_sigstate_lock (ss); - ints[INIT_SIGMASK] = ss->blocked; -- ints[INIT_SIGPENDING] = _hurd_sigstate_pending (ss); /* XXX really? */ -+ ints[INIT_SIGPENDING] = 0; - ints[INIT_SIGIGN] = 0; - /* Unless we were asked to reset all handlers to SIG_DFL, - pass down the set of signals that were set to SIG_IGN. */
  38. Download patch debian/patches/hurd-i386/tg-hurdsig-boot-fix.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/tg-hurdsig-boot-fix.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/tg-hurdsig-boot-fix.diff 2016-01-27 14:17:05.000000000 +0000 @@ -0,0 +1,21 @@ +2012-09-05 Richard Braun <rbraun@sceen.net> + + * hurd/hurdsig.c (sigstate_is_global_rcv): Do not return true + if _HURD_GLOBAL_SIGSTATE is null. + +--- + hurd/hurdsig.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/hurd/hurdsig.c ++++ b/hurd/hurdsig.c +@@ -161,7 +161,8 @@ _hurd_sigstate_set_global_rcv (struct hu + static int + sigstate_is_global_rcv (const struct hurd_sigstate *ss) + { +- return ss->actions[0].sa_handler == SIG_IGN; ++ return (_hurd_global_sigstate != NULL) ++ && (ss->actions[0].sa_handler == SIG_IGN); + } + + /* Lock/unlock a hurd_sigstate structure. If the accessors below require
  39. Download patch debian/patches/hurd-i386/git-hurd_sigstate-PLT.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-hurd_sigstate-PLT.diff 2020-02-05 21:43:50.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-hurd_sigstate-PLT.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -committed for glibc 2.31 - -Index: glibc-2.28/sysdeps/hurd/include/hurd/signal.h -=================================================================== ---- glibc-2.28.orig/sysdeps/hurd/include/hurd/signal.h -+++ glibc-2.28/sysdeps/hurd/include/hurd/signal.h -@@ -11,6 +11,11 @@ libc_hidden_proto (_hurd_exception2signa - libc_hidden_proto (_hurd_intr_rpc_mach_msg) - libc_hidden_proto (_hurd_thread_sigstate) - libc_hidden_proto (_hurd_raise_signal) -+libc_hidden_proto (_hurd_sigstate_set_global_rcv) -+libc_hidden_proto (_hurd_sigstate_lock) -+libc_hidden_proto (_hurd_sigstate_pending) -+libc_hidden_proto (_hurd_sigstate_unlock) -+libc_hidden_proto (_hurd_sigstate_delete) - #endif - #ifdef _HURD_SIGNAL_H_HIDDEN_DEF - libc_hidden_def (_hurd_self_sigstate) -Index: glibc-2.28/hurd/hurdsig.c -=================================================================== ---- glibc-2.28.orig/hurd/hurdsig.c -+++ glibc-2.28/hurd/hurdsig.c -@@ -171,6 +171,7 @@ _hurd_sigstate_delete (thread_t th - free (ss); - } - } -+libc_hidden_def (_hurd_sigstate_delete) - - /* Make SS a global receiver, with pthread signal semantics. */ - void -@@ -188,6 +189,7 @@ _hurd_sigstate_set_global_rcv (str - assert (ss->thread != MACH_PORT_NULL); - ss->actions[0].sa_handler = SIG_IGN; - } -+libc_hidden_def (_hurd_sigstate_set_global_rcv) - - /* Check whether SS is a global receiver. */ - static int -@@ -214,6 +216,8 @@ _hurd_sigstate_unlock (struct hurd_sigs - if (sigstate_is_global_rcv (ss)) - __spin_unlock (&_hurd_global_sigstate->lock); - } -+libc_hidden_def (_hurd_sigstate_lock) -+libc_hidden_def (_hurd_sigstate_unlock) - - /* Retreive a thread's full set of pending signals, including the global - ones if appropriate. SS must be locked. */ -@@ -250,6 +254,7 @@ _hurd_sigstate_pending (const stru - __sigorset (&pending, &pending, &_hurd_global_sigstate->pending); - return pending; - } -+libc_hidden_def (_hurd_sigstate_pending) - - /* Clear a pending signal and return the associated detailed - signal information. SS must be locked, and must have signal SIGNO
  40. Download patch debian/testsuite-xfail-debian.mk

    --- 2.30-0experimental2/debian/testsuite-xfail-debian.mk 2020-02-04 19:39:18.000000000 +0000 +++ 2.30-0ubuntu3/debian/testsuite-xfail-debian.mk 2019-09-16 14:56:30.000000000 +0000 @@ -15,6 +15,15 @@ test-xfail-tst-cancel24-static = yes # control, we'll just let it fail test-xfail-tst-create-detached = yes +# This test is skipped in chroots, and appears to fail on autopkgtest +# testbeds. I've run out of time to debug and fix it upstream for +# disco, so this will have to XFAIL for now: +test-xfail-tst-nss-test3 = yes + +# This test is flapping on all architectures, due to this upstream bug: +# https://sourceware.org/bugzilla/show_bug.cgi?id=19329 +test-xfail-tst-stack4 = yes + ###################################################################### # alpha (including optimized flavours) ###################################################################### @@ -185,6 +194,26 @@ ifeq ($(config-machine)-$(config-os),arm # There is not support for protection key on ARM yet, and there is a # disagreement between kernel and glibc how to report that. test-xfail-tst-pkey = yes + +# These tests are currently known to fail under lxc, where we run our ARM +# regression tests, so pretend they fail on ARM: +test-xfail-tst-ttyname = yes +test-xfail-tst-support_descriptors = yes + +# This test fails due to a kernel bug when building armhf on an ARM64 +# machine. See bug #904385. +test-xfail-tst-signal6 = yes + +# This test has regressed with recent kernels +test-xfail-tst-thread-exit-clobber = yes + +# These (new in 2.29) tests appear to fail when building armhf on aarch64 +test-xfail-tst-minsigstksz-1 = yes +test-xfail-tst-minsigstksz-2 = yes +test-xfail-tst-minsigstksz-3 = yes +test-xfail-tst-minsigstksz-3a = yes +test-xfail-tst-minsigstksz-4 = yes +test-xfail-tst-xsigstack = yes endif @@ -195,6 +224,24 @@ ifeq ($(config-machine)-$(config-os),arm # There is not support for protection key on ARM yet, and there is a # disagreement between kernel and glibc how to report that. test-xfail-tst-pkey = yes + +# These tests are currently known to fail under lxc, where we run our ARM +# regression tests, so pretend they fail on ARM: +test-xfail-tst-ttyname = yes +test-xfail-tst-support_descriptors = yes + +# This test fails due to a kernel bug when building armhf on an ARM64 +# machine. See bug #904385. +test-xfail-tst-signal6 = yes +test-xfail-tst-minsigstksz-1 = yes +test-xfail-tst-minsigstksz-2 = yes +test-xfail-tst-minsigstksz-3 = yes +test-xfail-tst-minsigstksz-3a = yes +test-xfail-tst-minsigstksz-4 = yes +test-xfail-tst-xsigstack = yes + +# This test has regressed with recent kernels +test-xfail-tst-thread-exit-clobber = yes endif @@ -288,14 +335,6 @@ tests-unsupported += test-lfs #test-xfail-test-lfs = yes test-xfail-tst-tzset = yes -# TODO: should be succeeding again with gnumach >= 2019-12-01 -test-xfail-test-fpucw = yes -test-xfail-test-fpucw-ieee = yes -test-xfail-test-fpucw-ieee-static = yes -test-xfail-test-fpucw-static = yes -test-xfail-test-fenv-x87 = yes -test-xfail-tst-wcstod-round = yes - # new in 2.21 test-xfail-test-misc = yes test-xfail-tst-ptsname = yes @@ -306,13 +345,20 @@ test-xfail-tst-audit3 = yes test-xfail-tst-prelink = yes test-xfail-tst-tls-atexit = yes +# changed in 2.22, tests were run directly, now using threads +# TODO: should be succeeding again with gnumach >= 2016-03-06 +test-xfail-test-fpucw = yes +test-xfail-test-fpucw-ieee = yes +test-xfail-test-fpucw-ieee-static = yes +test-xfail-test-fpucw-static = yes +test-xfail-test-static = yes + # new in 2.23 +test-xfail-test-fenv-sse-2 = yes +test-xfail-test-fenv-x87 = yes test-xfail-tst-audit11 = yes test-xfail-tst-audit12 = yes - -# need get_cpu_features test-xfail-tst-get-cpu-features = yes -test-xfail-test-fenv-sse-2 = yes # new in 2.24 test-xfail-tst-execvpe5 = yes @@ -334,9 +380,11 @@ test-xfail-tst-secure-getenv = yes # new in 2.25 test-xfail-tst-posix_fallocate64 = yes +test-xfail-test-fesetexcept-traps = yes test-xfail-tst-posix_fadvise = yes test-xfail-tst-posix_fadvise64 = yes test-xfail-tst-vfork3 = yes +test-xfail-tst-wcstod-round = yes test-xfail-tst-env-setuid = yes test-xfail-tst-env-setuid-tunables = yes @@ -365,9 +413,8 @@ test-xfail-tst-copy_file_range-compat = # new in 2.28 test-xfail-tst-fgetc-after-eof = yes test-xfail-tst-fgetwc-after-eof = yes +test-xfail-test-as-const-jmp_buf-ssp = yes test-xfail-tst-malloc-stats-cancellation = yes - -# want /proc/self/fd test-xfail-tst-if_index-long = yes test-xfail-tst-support_descriptors = yes @@ -382,26 +429,6 @@ test-xfail-tst-res_hconf_reorder = yes test-xfail-ISO11/threads.h/conform = yes test-xfail-ISO11/threads.h/linknamespace = yes - -# new in 2.31 -#test-xfail-tst-auditmany = yes -#test-xfail-tst-dlopenfail = yes - -# actually never succeded -#test-xfail-tst-create_format1 = yes -#test-xfail-tst-getcwd-abspath = yes -# Assumes that self-locks are exclusive -#test-xfail-tst-lockf = yes - -# assumes that all st_mode flags (32bit) can exist in stx_mode flags (16bit) -#test-xfail-tst-statx = yes - -# wants pthread_barrierattr_setpshared -#test-xfail-tst-pututxline-cache = yes -#test-xfail-tst-pututxline-lockfail = yes - -# wants /proc/self/fd -#test-xfail-tst-updwtmpx = yes endif @@ -929,6 +956,16 @@ test-xfail-tst-malloc-thread-fail = yes test-xfail-tst-stack4 = yes endif +###################################################################### +# s390 +###################################################################### +ifeq ($(config-machine)-$(config-os),s390-linux-gnu) + +# In some conditions the kernel might not provide a heap, causing +# some tests to fail. See bug#889817 for details. +test-xfail-tst-malloc-usable-tunables = yes +endif + ###################################################################### # s390x
  41. Download patch debian/sysdeps/mipsr6el.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsr6el.mk 2020-02-05 06:29:09.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsr6el.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # multilib flavours ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) @@ -8,7 +11,6 @@ libc6-mipsn32_shlib_dep = libc6-mipsn32 mipsn32_configure_target = mipsisa64r6el-linux-gnuabin32 mipsn32_CC = $(CC) -mabi=n32 mipsn32_CXX = $(CXX) -mabi=n32 -mipsn32_crypt = yes mipsn32_rtlddir = /lib32 mipsn32_slibdir = /lib32 mipsn32_libdir = /usr/lib32 @@ -20,7 +22,6 @@ libc6-mips64_shlib_dep = libc6-mips64 (> mips64_configure_target = mipsisa64r6el-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64
  42. Download patch debian/patches/ubuntu/local-pldd-root.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/local-pldd-root.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/local-pldd-root.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,10 @@ +Description: Run tst-pldd as root so we have CAP_SYS_PTRACE +Author: Adam Conrad <adconrad@ubuntu.com> +Forwarded: no +Last-Update: 2019-09-16 + +--- /dev/null ++++ glibc-2.30/elf/tst-pldd.script +@@ -0,0 +1,2 @@ ++# We need to run this as root on Ubuntu to get ptrace permissions: ++su
  43. Download patch debian/patches/hurd-i386/git-hurdsig-boot-fix.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-hurdsig-boot-fix.diff 2020-02-05 21:43:38.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-hurdsig-boot-fix.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -Committed for glibc 2.31 - -2012-09-05 Richard Braun <rbraun@sceen.net> - - * hurd/hurdsig.c (sigstate_is_global_rcv): Do not return true - if _HURD_GLOBAL_SIGSTATE is null. - ---- - hurd/hurdsig.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/hurd/hurdsig.c -+++ b/hurd/hurdsig.c -@@ -161,7 +161,8 @@ _hurd_sigstate_set_global_rcv (struct hu - static int - sigstate_is_global_rcv (const struct hurd_sigstate *ss) - { -- return ss->actions[0].sa_handler == SIG_IGN; -+ return (_hurd_global_sigstate != NULL) -+ && (ss->actions[0].sa_handler == SIG_IGN); - } - - /* Lock/unlock a hurd_sigstate structure. If the accessors below require
  44. Download patch debian/sysdeps/ppc64el.mk

    --- 2.30-0experimental2/debian/sysdeps/ppc64el.mk 2019-08-16 10:57:33.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/ppc64el.mk 2019-09-16 14:56:30.000000000 +0000 @@ -3,3 +3,4 @@ extra_config_options = --enable-multi-ar # main library libc_rtlddir = /lib64 +libc_extra_cflags = -O3 -fno-tree-vectorize
  45. Download patch debian/patches/ubuntu/localedata/eo_US.diff
  46. Download patch debian/patches/hurd-i386/tg-context_functions.diff
  47. Download patch debian/debhelper.in/locales.config

    --- 2.30-0experimental2/debian/debhelper.in/locales.config 2019-07-29 09:56:57.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/locales.config 2019-09-16 14:56:30.000000000 +0000 @@ -34,12 +34,20 @@ if [ -e $LG ]; then GEN_LOCALES="$(convert_locale "$GEN_LOCALES")" fi +# This upgrades from Ubuntu << 16.04, where locale-gen wrote user locales +# to /var/lib/locales/supported.d/local, but we want them in /etc/locale.gen +if [ -f /var/lib/locales/supported.d/local ]; then + LOCAL_LOCALES="$(sed -e '/^[a-zA-Z]/!d' -e 's/ *$//g' /var/lib/locales/supported.d/local)" + LOCAL_LOCALES="$(convert_locale "$LOCAL_LOCALES")" + GEN_LOCALES=$(printf '%s\n' "$GEN_LOCALES" "$LOCAL_LOCALES") +fi + # List of supported locales (PROVIDED_LOCALES + USER_LOCALES + GEN_LOCALES) SUPPORTED_LOCALES="$(printf '%s\n' "$PROVIDED_LOCALES" "$USER_LOCALES" "$GEN_LOCALES" | grep -v "^$" | sort -u | tr '\n' ',' | sed -e 's/, */, /g' -e 's/, *$//g')" db_subst locales/locales_to_be_generated locales "$SUPPORTED_LOCALES" # Get the list of selected locales from /etc/locale.gen -if [ -e /etc/locale.gen ]; then +if [ -e /etc/locale.gen -o -f /var/lib/locales/supported.d/local ]; then if [ -L $LG ] && [ "$(readlink $LG)" = "/usr/share/i18n/SUPPORTED" ]; then SELECTED_LOCALES="All locales" else @@ -77,6 +85,13 @@ while [ "$STATE" -ge 0 ]; do RET=$SUPPORTED_LOCALES fi DEFAULT_LOCALES="$(echo $RET | sed -e 's/ [^ ]*,/,/g' -e 's/ [^ ]*$//')" + for langpack in /var/lib/locales/supported.d/*; do + if [ -f $langpack ]; then + while read locale charset; do + DEFAULT_LOCALES="$DEFAULT_LOCALES, $locale" + done < $langpack + fi + done if [ -n "$DEFAULT_LOCALES" ]; then db_subst locales/default_environment_locale locales $DEFAULT_LOCALES db_input medium locales/default_environment_locale || true
  48. Download patch debian/debhelper.in/libc.postinst
  49. Download patch debian/patches/hurd-i386/git-altstack-RPC.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-altstack-RPC.diff 2020-02-04 19:39:18.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-altstack-RPC.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -commit e46efff89550a8e693a3362976f85070762c5cb8 -Author: Samuel Thibault <samuel.thibault@ens-lyon.org> -Date: Wed Dec 11 00:23:00 2019 +0100 - - hurd: Fix using altstack while in an RPC call to be aborted - - * sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): Always check - for interrupted code being with esp pointing at mach_msg arguments, even - when using an altstack. If we need to abort the RPC we will need - this. - -diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c -index a6928a607b6..0c5d5a194c1 100644 ---- a/sysdeps/mach/hurd/i386/trampoline.c -+++ b/sysdeps/mach/hurd/i386/trampoline.c -@@ -74,12 +74,6 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler, - interrupted RPC frame. */ - state->basic.esp = state->basic.uesp; - -- if ((ss->actions[signo].sa_flags & SA_ONSTACK) -- && !(ss->sigaltstack.ss_flags & (SS_DISABLE|SS_ONSTACK))) -- { -- sigsp = ss->sigaltstack.ss_sp + ss->sigaltstack.ss_size; -- ss->sigaltstack.ss_flags |= SS_ONSTACK; -- } - /* This code has intimate knowledge of the special mach_msg system call - done in intr-msg.c; that code does (see intr-msg.h): - movl %esp, %ecx -@@ -91,13 +85,20 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler, - We must check for the window during which %esp points at the - mach_msg arguments. The space below until %ecx is used by - the _hurd_intr_rpc_mach_msg frame, and must not be clobbered. */ -- else if (state->basic.eip >= (int) &_hurd_intr_rpc_msg_cx_sp -- && state->basic.eip < (int) &_hurd_intr_rpc_msg_sp_restored) -- /* The SP now points at the mach_msg args, but there is more stack -- space used below it. The real SP is saved in %ecx; we must push the -- new frame below there, and restore that value as the SP on -- sigreturn. */ -- sigsp = (char *) (state->basic.uesp = state->basic.ecx); -+ if (state->basic.eip >= (int) &_hurd_intr_rpc_msg_cx_sp -+ && state->basic.eip < (int) &_hurd_intr_rpc_msg_sp_restored) -+ /* The SP now points at the mach_msg args, but there is more stack -+ space used below it. The real SP is saved in %ecx; we must push the -+ new frame below there (if not on the altstack), and restore that value as -+ the SP on sigreturn. */ -+ state->basic.uesp = state->basic.ecx; -+ -+ if ((ss->actions[signo].sa_flags & SA_ONSTACK) -+ && !(ss->sigaltstack.ss_flags & (SS_DISABLE|SS_ONSTACK))) -+ { -+ sigsp = ss->sigaltstack.ss_sp + ss->sigaltstack.ss_size; -+ ss->sigaltstack.ss_flags |= SS_ONSTACK; -+ } - else - sigsp = (char *) state->basic.uesp; -
  50. Download patch debian/sysdeps/sparc64.mk

    --- 2.30-0experimental2/debian/sysdeps/sparc64.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/sparc64.mk 2019-08-29 09:59:56.000000000 +0000 @@ -16,7 +16,6 @@ libc6-sparc_shlib_dep = libc6-sparc (>= sparc_configure_target=sparcv9-linux-gnu sparc_CC = $(CC) -m32 sparc_CXX = $(CXX) -m32 -sparc_crypt = yes sparc_rtlddir = /lib sparc_slibdir = /lib32 sparc_libdir = /usr/lib32
  51. Download patch debian/patches/hurd-i386/libpthread_sigs.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/libpthread_sigs.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/libpthread_sigs.diff 2019-08-29 09:59:56.000000000 +0000 @@ -0,0 +1,99 @@ +From: Samuel Thibault <samuel.thibault@ens-lyon.org> +Subject: Enable global signal distribution in htl + +* sysdeps/mach/hurd/htl/pt-sigstate-init.c (__pthread_sigstate_init): +Call _hurd_sigstate_set_global_rcv(). +* sysdeps/mach/hurd/htl/pt-sigstate-destroy.c +(__pthread_sigstate_destroy): Call _hurd_sigstate_delete(). +* sysdeps/mach/hurd/htl/pt-sigstate.c: Include <hurd/msg.h> +(__pthread_sigstate): Use _hurd_sigstate_lock()/_hurd_sigstate_unlock() +and _hurd_sigstate_pending(). Call __msg_sig_post() to wake up thread +with pending signals. +* sysdeps/mach/hurd/Makefile (LDLIBS-pthread.so): Add +$(objdir)/hurd/libhurduser.so. + + +--- + sysdeps/mach/hurd/Makefile | 2 ++ + sysdeps/mach/hurd/htl/pt-sigstate-destroy.c | 1 + + sysdeps/mach/hurd/htl/pt-sigstate-init.c | 2 +- + sysdeps/mach/hurd/htl/pt-sigstate.c | 12 ++++++++++-- + 4 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile +index 3a853a6cd9..8a865a0e1f 100644 +--- a/sysdeps/mach/hurd/Makefile ++++ b/sysdeps/mach/hurd/Makefile +@@ -206,4 +206,6 @@ ifeq ($(subdir),nis) + CFLAGS-ypclnt.c += -DUSE_BINDINGDIR=1 + endif + ++LDLIBS-pthread.so += $(objdir)/hurd/libhurduser.so ++ + endif # in-Makerules +diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c +index e7154a371d..229a415487 100644 +--- a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c ++++ b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c +@@ -23,4 +23,5 @@ + void + __pthread_sigstate_destroy (struct __pthread *thread) + { ++ _hurd_sigstate_delete (thread->kernel_thread); + } +diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-init.c b/sysdeps/mach/hurd/htl/pt-sigstate-init.c +index 70832f9576..507fb8ade2 100644 +--- a/sysdeps/mach/hurd/htl/pt-sigstate-init.c ++++ b/sysdeps/mach/hurd/htl/pt-sigstate-init.c +@@ -35,7 +35,7 @@ __pthread_sigstate_init (struct __pthread *thread) + if (do_init_global) + { + struct hurd_sigstate *ss = _hurd_thread_sigstate (thread->kernel_thread); +- (void) ss; ++ _hurd_sigstate_set_global_rcv (ss); + } + else if (__pthread_num_threads >= 2) + do_init_global = 1; +diff --git a/sysdeps/mach/hurd/htl/pt-sigstate.c b/sysdeps/mach/hurd/htl/pt-sigstate.c +index f7050ec0df..2ddceb229e 100644 +--- a/sysdeps/mach/hurd/htl/pt-sigstate.c ++++ b/sysdeps/mach/hurd/htl/pt-sigstate.c +@@ -20,6 +20,7 @@ + #include <assert.h> + #include <signal.h> + #include <hurd/signal.h> ++#include <hurd/msg.h> + + #include <pt-internal.h> + +@@ -29,11 +30,12 @@ __pthread_sigstate (struct __pthread *thread, int how, + { + error_t err = 0; + struct hurd_sigstate *ss; ++ sigset_t pending; + + ss = _hurd_thread_sigstate (thread->kernel_thread); + assert (ss); + +- __spin_lock (&ss->lock); ++ _hurd_sigstate_lock (ss); + + if (oset != NULL) + *oset = ss->blocked; +@@ -64,7 +66,13 @@ __pthread_sigstate (struct __pthread *thread, int how, + if (!err && clear_pending) + __sigemptyset (&ss->pending); + +- __spin_unlock (&ss->lock); ++ pending = _hurd_sigstate_pending (ss) & ~ss->blocked; ++ _hurd_sigstate_unlock (ss); ++ ++ if (!err && pending) ++ /* Send a message to the signal thread so it ++ will wake up and check for pending signals. */ ++ __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); + + return err; + } +-- +tg: (0bfe57e3de..) t/libpthread_sigs (depends on: baseline t/hurdsig-SA_SIGINFO t/hurdsig-boot-fix t/hurdsig-fixes t/hurdsig-fixes-2 t/hurdsig-global-dispositions t/hurdsig-global-dispositions-versions)
  52. Download patch debian/patches/git-updates.diff
  53. Download patch debian/local/sbin/ldconfig

    --- 2.30-0experimental2/debian/local/sbin/ldconfig 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/local/sbin/ldconfig 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,16 @@ +#!/bin/sh + +if test $# = 0 \ + && test x"$LDCONFIG_NOTRIGGER" = x \ + && test x"$DPKG_MAINTSCRIPT_PACKAGE" != x \ + && dpkg-trigger --check-supported 2>/dev/null +then + if dpkg-trigger --no-await ldconfig; then + if test x"$LDCONFIG_TRIGGER_DEBUG" != x; then + echo "ldconfig: wrapper deferring update (trigger activated)" + fi + exit 0 + fi +fi + +exec /sbin/ldconfig.real "$@"
  54. Download patch debian/debhelper.in/libc-bin.postinst

    --- 2.30-0experimental2/debian/debhelper.in/libc-bin.postinst 2019-07-29 09:56:57.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/libc-bin.postinst 2019-09-16 14:56:30.000000000 +0000 @@ -48,6 +48,8 @@ if [ "$1" = "configure" ] && [ "$2" != " fi if [ "$1" = "triggered" ] || [ "$1" = "configure" ]; then + LDCONFIG_NOTRIGGER=y + export LDCONFIG_NOTRIGGER ldconfig || ldconfig --verbose exit 0 fi
  55. Download patch debian/sysdeps/mipsn32r6el.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsn32r6el.mk 2020-02-05 06:29:06.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsn32r6el.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib32 @@ -11,7 +14,6 @@ libc6-mips64_shlib_dep = libc6-mips64 (> mips64_configure_target = mipsisa64r6el-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mipsisa32r6el-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  56. Download patch debian/patches/series

    --- 2.30-0experimental2/debian/patches/series 2020-02-05 06:28:24.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/series 2019-11-29 14:19:43.000000000 +0000 @@ -25,6 +25,7 @@ alpha/submitted-makecontext.diff arm/local-sigaction.diff arm/unsubmitted-ldconfig-cache-abi.diff +arm/unsubmitted-ldso-abi-check.diff arm/local-soname-hack.diff arm/local-vfp-sysdeps.diff arm/unsubmitted-ldso-multilib.diff @@ -32,29 +33,27 @@ arm/local-arm-futex.diff hppa/local-inlining.diff -hurd-i386/posix_openpt.diff hurd-i386/git-ONSTACK.diff -hurd-i386/git-getrandom.diff -hurd-i386/git-altstack-RPC.diff hurd-i386/local-enable-ldconfig.diff -hurd-i386/git-context_functions.diff +hurd-i386/tg-context_functions.diff hurd-i386/tg-sysvshm.diff hurd-i386/tg-thread-cancel.diff hurd-i386/tg-bigmem.diff hurd-i386/local-disable-ioctls.diff -hurd-i386/git-sendmsg-SCM_RIGHTS.diff +hurd-i386/tg-locarchive.diff +hurd-i386/tg-sendmsg-SCM_RIGHTS.diff hurd-i386/tg-sendmsg-SCM_CREDS.diff hurd-i386/tg-mach-hurd-link.diff hurd-i386/local-ED.diff hurd-i386/local-madvise_warn.diff -hurd-i386/git-hurdsig-fixes.diff -hurd-i386/git-hurdsig-global-dispositions.diff -hurd-i386/git-hurdsig-globaldisp-version.diff +hurd-i386/tg-hurdsig-fixes.diff +hurd-i386/tg-hurdsig-global-dispositions.diff +hurd-i386/local-hurdsig-globaldisp-version.diff hurd-i386/tg-hurdsig-SA_SIGINFO.diff -hurd-i386/git-hurdsig-fixes-2.diff +hurd-i386/tg-hurdsig-fixes-2.diff hurd-i386/tg-hooks.diff hurd-i386/local-usr.diff -hurd-i386/git-hurdsig-boot-fix.diff +hurd-i386/tg-hurdsig-boot-fix.diff hurd-i386/git-single-select-timeout.diff hurd-i386/git-setitimer.diff hurd-i386/tg-pie-sbrk.diff @@ -70,15 +69,14 @@ hurd-i386/tg-sigstate_thread_reference.d hurd-i386/submitted-bind_umask2.diff hurd-i386/tg-bootstrap.diff hurd-i386/local-mach_print.diff -#hurd-i386/git-anon-mmap-shared.diff +hurd-i386/git-anon-mmap-shared.diff hurd-i386/tg-eintr.diff hurd-i386/tg-libc_rwlock_recursive.diff hurd-i386/local-no_unsupported_ioctls.diff hurd-i386/local-exec_filename.diff -hurd-i386/git-libpthread_sigs.diff -hurd-i386/git-hurd_sigstate-PLT.diff -hurd-i386/git-rlock.diff -hurd-i386/git-errno_location.diff +hurd-i386/libpthread_sigs.diff +hurd-i386/local-hurd_sigstate-PLT.diff +hurd-i386/tg-WRLCK-upgrade.diff i386/local-biarch.diff i386/unsubmitted-quiet-ldconfig.diff @@ -138,5 +136,18 @@ any/submitted-resolv-unaligned.diff any/local-cudacc-float128.diff any/submitted-ld.so-cache-new-format.diff any/local-test-install.diff -any/local-revert-24323.diff -any/submitted-stt-gnu-ifunc-detection.patch + +# Ubuntu patches live in their own little world, to maintain sanity +ubuntu/local-altlocaledir.diff +ubuntu/local-disable-ld_audit.diff +ubuntu/local-disable-nscd-netgroup-caching.diff +ubuntu/submitted-no-sprintf-pre-truncate.diff +ubuntu/localedata/ckb_IQ-new_locale.diff +ubuntu/localedata/en_IE-am_pm.diff +ubuntu/localedata/eo_US.diff +ubuntu/localedata/es_DO-am_pm.diff +ubuntu/localedata/lv_LV-currency.diff +ubuntu/localedata/sd_PK.diff +ubuntu/localedata/ug_CN@latin.diff +ubuntu/local-pldd-root.diff +bfdb731438206b0f70fe7afa890681155c30b419.patch
  57. Download patch debian/debhelper.in/libc.preinst

    --- 2.30-0experimental2/debian/debhelper.in/libc.preinst 2020-02-04 19:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/libc.preinst 2019-09-16 14:56:30.000000000 +0000 @@ -92,11 +92,9 @@ check_dir () { if [ "$type" != abort-upgrade ] then - # Load debconf module if available and usable - if [ -f /usr/share/debconf/confmodule ] && \ - ( [ "$DEBCONF_USE_CDEBCONF" ] || perl -e "" 2>/dev/null ) ; then + # Load debconf module if available + if [ -f /usr/share/debconf/confmodule ] ; then . /usr/share/debconf/confmodule - USE_DEBCONF=1 fi # See if LD_LIBRARY_PATH contains the traditional /lib, but not the @@ -145,7 +143,7 @@ then # sanity checking for the appropriate kernel on each architecture. kernel_ver=`uname -r` - case ${DPKG_MAINTSCRIPT_ARCH} in + case ${DPKG_MAINTSCRIPT_ARCH:-$(dpkg --print-architecture)} in *) # The GNU libc requires a >= 3.2 kernel, found in wheezy kernel_ver_min=3.2 @@ -155,7 +153,7 @@ then if linux_compare_versions "$kernel_ver" lt $kernel_ver_min then - if [ "$USE_DEBCONF" ] + if [ -f /usr/share/debconf/confmodule ] then db_version 2.0 db_fset glibc/kernel-too-old seen false @@ -175,7 +173,7 @@ then if linux_compare_versions "$kernel_ver" lt $kernel_ver_rec then - if [ "$USE_DEBCONF" ] + if [ -f /usr/share/debconf/confmodule ] then db_version 2.0 db_fset glibc/kernel-not-supported seen false @@ -198,7 +196,7 @@ then kernel_ver_min=8.3 if kfreebsd_compare_versions "$kernel_ver" lt $kernel_ver_min then - if [ "$USE_DEBCONF" ] + if [ -f /usr/share/debconf/confmodule ] then db_version 2.0 db_version 2.0 @@ -273,7 +271,7 @@ then # NSS authentication trouble guard if dpkg --compare-versions "$preversion" lt GLIBC_VERSION; then if pidof xscreensaver xlockmore >/dev/null; then - if [ "$USE_DEBCONF" ] ; then + if [ -f /usr/share/debconf/confmodule ] ; then db_version 2.0 db_reset glibc/disable-screensaver db_input critical glibc/disable-screensaver || true @@ -300,14 +298,20 @@ then fi check="kdm postgresql xdm" + # the following substitution processes the check variable + # and returns results in the services variable # NSS services check: __NSS_CHECK__ if [ -n "$services" ]; then - if [ "$USE_DEBCONF" ] ; then + if [ -f /usr/share/debconf/confmodule ] ; then db_version 2.0 db_reset glibc/upgrade db_subst glibc/upgrade services $services - db_input critical glibc/upgrade || true + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/upgrade || true + else + db_input critical glibc/upgrade || true + fi db_go || true db_get glibc/upgrade answer=$RET @@ -350,6 +354,102 @@ then exit 1 fi fi + + services="" + check="apache2 apache apache-ssl apache-perl autofs at" + check="$check boa cucipop courier-authdaemon cron cups exim" + check="$check exim4-base dovecot-common cucipop incron lprng lpr" + check="$check lpr-ppd mysql-server nis openbsd-inetd" + check="$check openldapd postgresql-common proftpd postfix postfix-tls" + check="$check rsync samba sasl2-bin slapd smail sendmail snmpd ssh" + check="$check spamassassin vsftpd wu-ftpd wu-ftpd-academ wwwoffle" + check="$check webmin dropbear gdm gdm3" + # the following substitution processes the check variable + # and returns results in the services variable + # NSS services check: + __NSS_CHECK__ + if [ -n "$services" ]; then + if [ -f /usr/share/debconf/confmodule ] ; then + db_version 2.0 + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium libraries/restart-without-asking || true + else + db_input critical libraries/restart-without-asking || true + fi + db_go || true + + db_get libraries/restart-without-asking + if [ "$RET" != true ]; then + db_reset glibc/restart-services + db_set glibc/restart-services "$services" + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/restart-services || true + else + db_input critical glibc/restart-services || true + fi + db_go || true + db_get glibc/restart-services + services="$RET" + fi + else + echo + echo "Name Service Switch update in the C Library: post-installation question." + echo + echo "Running services and programs that are using NSS need to be restarted," + echo "otherwise they might not be able to do lookup or authentication any more" + echo "(for services such as ssh, this can affect your ability to login)." + echo "Note: restarting sshd/telnetd should not affect any existing connections." + echo + echo "The services detected are: " + echo " $services" + echo + echo "If other services have begun to fail mysteriously after this upgrade, it is" + echo "probably necessary to restart them too. We recommend that you reboot your" + echo "machine after the upgrade to avoid NSS-related troubles." + echo + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" = noninteractive ]; then + echo "Non-interactive mode, restarting services" + answer=yes + else + echo -n "Do you wish to restart services? [Y/n] " + read answer + case $answer in + N*|n*) services="" ;; + *) ;; + esac + fi + fi + + if [ -n "$services" ]; then + echo "Stopping some services possibly affected by the upgrade (will be restarted later):" + for service in $services; do + case "$service" in + cron) + # See bug (LP: #508083) + echo -n " $service: stopping..." + if invoke-rc.d ${service} stop > /dev/null 2>&1; then + echo "done." + echo "$service" >> /var/run/services.need_start + else + echo "FAILED! ($?)" + echo "$service" >> /var/run/services.need_restart + fi + ;; + + *) + # log service details to allow postinst to handle the + # restart. + echo "$service" >> /var/run/services.need_restart + ;; + esac + done + + fi + echo + else + echo "Nothing to restart." + fi fi # end upgrading and $preversion lt GLIBC_VERSION fi # Upgrading
  58. Download patch debian/patches/hurd-i386/tg-sendmsg-SCM_RIGHTS.diff
  59. Download patch debian/patches/hurd-i386/git-rlock.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-rlock.diff 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-rlock.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ -commit 0b262ca4c64cd9042576ddb9969607c0ea1187d7 -Author: Svante Signell <svante.signell@gmail.com> -Date: Wed Oct 30 01:23:41 2019 +0100 - - hurd: Support for file record locking - - * sysdeps/mach/hurd/fcntl.c: Add support for file-record-lock RPC - fixing posix file locking using the flock64 version of struct - flock. - -diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c -index 26243682ca..0e3f0adbd9 100644 ---- a/sysdeps/mach/hurd/fcntl.c -+++ b/sysdeps/mach/hurd/fcntl.c -@@ -130,23 +130,75 @@ __libc_fcntl (int fd, int cmd, ...) - case F_SETLKW: - { - struct flock *fl = va_arg (ap, struct flock *); -- int wait = 0; -- va_end (ap); -+ - switch (cmd) - { - case F_GETLK: -- errno = ENOSYS; -- return -1; -- case F_SETLKW: -- wait = 1; -- /* FALLTHROUGH */ -+ cmd = F_GETLK64; -+ break; - case F_SETLK: -- return __f_setlk (fd, fl->l_type, fl->l_whence, -- fl->l_start, fl->l_len, wait); -+ cmd = F_SETLK64; -+ break; -+ case F_SETLKW: -+ cmd = F_SETLKW64; -+ break; - default: - errno = EINVAL; - return -1; - } -+ -+ struct flock64 fl64 = { -+ .l_type = fl->l_type, -+ .l_whence = fl->l_whence, -+ .l_start = fl->l_start, -+ .l_len = fl->l_len, -+ .l_pid = fl->l_pid -+ }; -+ -+ err = HURD_FD_PORT_USE (d, __file_record_lock (port, cmd, &fl64, -+ MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND)); -+ -+ /* XXX: To remove once file_record_lock RPC is settled. */ -+ if (err == EMIG_BAD_ID || err == EOPNOTSUPP) -+ { -+ int wait = 0; -+ va_end (ap); -+ switch (cmd) -+ { -+ case F_GETLK64: -+ errno = ENOSYS; -+ return -1; -+ case F_SETLKW64: -+ wait = 1; -+ /* FALLTHROUGH */ -+ case F_SETLK64: -+ return __f_setlk (fd, fl->l_type, fl->l_whence, -+ fl->l_start, fl->l_len, wait); -+ default: -+ errno = EINVAL; -+ return -1; -+ } -+ } -+ else if (cmd == F_GETLK64) -+ { -+ fl->l_type = fl64.l_type; -+ fl->l_whence = fl64.l_whence; -+ fl->l_start = fl64.l_start; -+ fl->l_len = fl64.l_len; -+ fl->l_pid = fl64.l_pid; -+ -+ if ((sizeof fl->l_start != sizeof fl64.l_start -+ && fl->l_start != fl64.l_start) -+ || (sizeof fl->l_len != sizeof fl64.l_len -+ && fl->l_len != fl64.l_len)) -+ { -+ errno = EOVERFLOW; -+ return -1; -+ } -+ } -+ -+ result = err ? __hurd_dfail (fd, err) : 0; -+ break; - } - - case F_GETLK64: -@@ -154,23 +206,34 @@ __libc_fcntl (int fd, int cmd, ...) - case F_SETLKW64: - { - struct flock64 *fl = va_arg (ap, struct flock64 *); -- int wait = 0; -- va_end (ap); -- switch (cmd) -+ -+ err = HURD_FD_PORT_USE (d, __file_record_lock (port, cmd, fl, -+ MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND)); -+ -+ /* XXX: To remove once file_record_lock RPC is settled. */ -+ if (err == EMIG_BAD_ID || err == EOPNOTSUPP) - { -- case F_GETLK64: -- errno = ENOSYS; -- return -1; -- case F_SETLKW64: -- wait = 1; -- /* FALLTHROUGH */ -- case F_SETLK64: -- return __f_setlk (fd, fl->l_type, fl->l_whence, -- fl->l_start, fl->l_len, wait); -- default: -- errno = EINVAL; -- return -1; -+ int wait = 0; -+ va_end (ap); -+ switch (cmd) -+ { -+ case F_GETLK64: -+ errno = ENOSYS; -+ return -1; -+ case F_SETLKW64: -+ wait = 1; -+ /* FALLTHROUGH */ -+ case F_SETLK64: -+ return __f_setlk (fd, fl->l_type, fl->l_whence, -+ fl->l_start, fl->l_len, wait); -+ default: -+ errno = EINVAL; -+ return -1; -+ } - } -+ -+ result = err ? __hurd_dfail (fd, err) : 0; -+ break; - } - - case F_GETFL: /* Get per-open flags. */
  60. Download patch debian/patches/hurd-i386/git-hurdsig-globaldisp-version.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/git-hurdsig-globaldisp-version.diff 2020-02-05 21:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/git-hurdsig-globaldisp-version.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -Committed for glibc 2.31 - -jkoenig's work on signals - ---- - hurd/Versions | 8 ++++++++ - sysdeps/mach/hurd/i386/libc.abilist | 4 +++++ - 3 files changed, 78 insertions(+), 5 deletions(-) - ---- a/hurd/Versions -+++ b/hurd/Versions -@@ -136,6 +136,14 @@ - # "quasi-internal" functions - _hurd_port_move; - } -+ GLIBC_2.21 { -+ # functions used by libpthread and <hurd/signal.h> -+ _hurd_sigstate_set_global_rcv; -+ _hurd_sigstate_lock; -+ _hurd_sigstate_pending; -+ _hurd_sigstate_unlock; -+ _hurd_sigstate_delete; -+ } - - HURD_CTHREADS_0.3 { - # weak refs to libthreads functions that libc calls iff libthreads in use ---- a/sysdeps/mach/hurd/i386/libc.abilist -+++ b/sysdeps/mach/hurd/i386/libc.abilist -@@ -1940,6 +1946,11 @@ - GLIBC_2.2.6 xprt_unregister F - GLIBC_2.21 __mach_host_self_ D 0x4 - GLIBC_2.21 __pthread_get_cleanup_stack F -+GLIBC_2.21 _hurd_sigstate_delete F -+GLIBC_2.21 _hurd_sigstate_lock F -+GLIBC_2.21 _hurd_sigstate_pending F -+GLIBC_2.21 _hurd_sigstate_set_global_rcv F -+GLIBC_2.21 _hurd_sigstate_unlock F - GLIBC_2.21 pthread_attr_destroy F - GLIBC_2.21 pthread_attr_getdetachstate F - GLIBC_2.21 pthread_attr_getinheritsched F
  61. Download patch debian/local/usr_share_locales/remove-language-pack

    --- 2.30-0experimental2/debian/local/usr_share_locales/remove-language-pack 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/local/usr_share_locales/remove-language-pack 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,68 @@ +#!/bin/sh -e + +if [ -z "$1" ]; then + echo "Usage: $0 <language code> <class> [<version>]" + exit 0 +fi + +# Copied from locale-gen +normalize_locale() { + # Insert a leading x in case $1 begins with a dash + this_locale=x$1 + charset= + if echo $this_locale | LC_ALL=C grep '\.' > /dev/null 2>&1; then + charset=$(echo $this_locale | sed -e 's/^x//' -e 's/.*\(\.[^@]*\).*/\1/' | LC_ALL=C tr '[A-Z]' '[a-z]' | LC_ALL=C sed -e 's/[^a-z0-9.]//g') + fi + modifier= + if echo $this_locale | LC_ALL=C grep '@' > /dev/null 2>&1; then + modifier=$(echo $this_locale | sed -e 's/^x//' -e 's/.*\(@[^.]*\).*/\1/') + fi + main=$(echo $this_locale | sed -e 's/^x//' -e 's/[.@].*//') + echo $main$charset$modifier +} + +get_supported_local_normalized() { + [ -e /etc/locale.gen ] || return 0 + sort -u /etc/locale.gen | while read locale charset; do + case $locale in + \#*) continue ;; + "") continue ;; + esac + normalize_locale "$locale" + done +} + +remove_locale() { + this_locale=$(normalize_locale "$1") + if ! echo "$supported_local_normalized" | fgrep -qx "$this_locale"; then + if [ -e /usr/lib/locale/locale-archive ]; then + localedef --delete-from-archive "$this_locale" + fi + fi +} + +# remove binary locales +# do nothing for gnome/kde +if [ -z "$2" ]; then + # do not remove locales if we merely remove language-support-* without + # removing language-pack-* + if [ ! -e /var/lib/locales/supported.d/$1 ]; then + supported_local_normalized="$(get_supported_local_normalized)" + if [ "$1" = 'zh-hans' ]; then + remove_locale zh_CN.utf8 + remove_locale zh_SG.utf8 + elif [ "$1" = 'zh-hant' ]; then + remove_locale zh_HK.utf8 + remove_locale zh_TW.utf8 + else + if [ -e /usr/lib/locale/locale-archive ]; then + for l in $(localedef --list-archive|grep "^$1[._@]"); do + remove_locale "$l" + done + fi + fi + fi +fi + +# ensure that .desktop caches are up to date +dpkg-trigger gmenucache || true
  62. Download patch debian/patches/ubuntu/localedata/ug_CN@latin.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/localedata/ug_CN@latin.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/localedata/ug_CN@latin.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,164 @@ +Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=13865 + +Index: langpack-locales/locales/ug_CN@latin +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ b/localedata/locales/ug_CN@latin 2012-04-04 12:01:25.459348798 +0200 +@@ -0,0 +1,145 @@ ++escape_char / ++comment_char % ++% ++% Uyghur Latin locale ++% Source: http://en.wikipedia.org/wiki/Uyghur_language ++% Contact: Eagle Burkut ++% Email: eagle.burkut@gmail.com ++% Language: ug ++% Territory: CN ++% Revision: 1.00 ++% Date: 2012-03-17 ++% Users: general ++% Charset: UTF-8 ++% Distribution and use is free, ++% also for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Uyghur Latin locale" ++source "http://en.wikipedia.org/wiki/Uyghur_language" ++address "" ++contact "Eagle Burkut" ++email "eagle.burkut@gmail.com" ++tel "" ++fax "" ++language "Uyghur" ++territory "China" ++revision "1.00" ++date "2012-03-17" ++ ++category "i18n:2012";LC_IDENTIFICATION ++category "i18n:2012";LC_CTYPE ++category "i18n:2012";LC_COLLATE ++category "i18n:2012";LC_TIME ++category "i18n:2012";LC_NUMERIC ++category "i18n:2012";LC_MONETARY ++category "i18n:2012";LC_MESSAGES ++category "i18n:2012";LC_PAPER ++category "i18n:2012";LC_NAME ++category "i18n:2012";LC_ADDRESS ++category "i18n:2012";LC_TELEPHONE ++category "i18n:2012";LC_MEASUREMENT ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MONETARY ++copy "ug_CN" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "ug_CN" ++END LC_NUMERIC ++ ++LC_TELEPHONE ++copy "ug_CN" ++END LC_TELEPHONE ++ ++LC_TIME ++ ++abday "<U0059><U0065>";/ ++ "<U0044><U00FC>";/ ++ "<U0053><U0065>";/ ++ "<U0043><U0068>";/ ++ "<U0050><U0065>";/ ++ "<U004A><U00FC>";/ ++ "<U0053><U0068>" ++day "<U0059><U0065><U006B><U0073><U0068><U0065><U006E><U0062><U0065>";/ ++ "<U0044><U00FC><U0073><U0068><U0065><U006E><U0062><U0065>";/ ++ "<U0053><U0065><U0079><U0073><U0068><U0065><U006E><U0062><U0065>";/ ++ "<U0043><U0068><U0061><U0072><U0073><U0068><U0065><U006E><U0062><U0065>";/ ++ "<U0050><U0065><U0079><U0073><U0068><U0065><U006E><U0062><U0065>";/ ++ "<U004A><U00FC><U006D><U0065>";/ ++ "<U0053><U0068><U0065><U006E><U0062><U0065>" ++abmon "<U0051><U0065>";/ ++ "<U0048><U0075>";/ ++ "<U004E><U006F>";/ ++ "<U00DC><U006D>";/ ++ "<U0042><U0061>";/ ++ "<U0053><U0065>";/ ++ "<U0043><U0068>";/ ++ "<U0054><U006F>";/ ++ "<U004D><U0069>";/ ++ "<U004F><U007A>";/ ++ "<U004F><U0071>";/ ++ "<U004B><U00F6>" ++mon "<U0051><U0065><U0068><U0072><U0069><U0074><U0061><U006E>";/ ++ "<U0048><U0075><U0074>";/ ++ "<U004E><U006F><U0072><U0075><U007A>";/ ++ "<U00DC><U006D><U0069><U0064>";/ ++ "<U0042><U0061><U0068><U0061><U0072>";/ ++ "<U0053><U0065><U0070><U0065><U0072>";/ ++ "<U0043><U0068><U0069><U006C><U006C><U0065>";/ ++ "<U0054><U006F><U006D><U0075><U007A>";/ ++ "<U004D><U0069><U007A><U0061><U006E>";/ ++ "<U004F><U0067><U0068><U0075><U007A>";/ ++ "<U004F><U0067><U0068><U006C><U0061><U0071>";/ ++ "<U004B><U00F6><U006E><U0065><U006B>" ++ ++% %a, %Y-%m-%d, %T (abday, YYYY-mm-dd, HH:MM:SS) (Ye, 2012-12-31, 23:08:59) ++d_t_fmt "<U0025><U0061><U002C><U0020><U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>/ ++<U002C><U0020><U0025><U0054>" ++ ++% %a, %Y-%m-%d (abday, YYYY-mm-dd) (Ye, 2012-12-31) ++d_fmt "<U0025><U0061><U002C><U0020><U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>" ++ ++% %T (HH:MM:SS) ++t_fmt "<U0025><U0054>" ++ ++am_pm "";"" ++ ++% %a, %Y-%m-%d, %T (abday, YYYY-mm-dd, HH:MM:SS) (Ye, 2012-12-31, 23:08:59) ++date_fmt "<U0025><U0061><U002C><U0020><U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>/ ++<U002C><U0020><U0025><U0054>" ++ ++END LC_TIME ++ ++LC_MESSAGES ++yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>" ++noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++yesstr "<U0059><U0065><U0073>" ++nostr "<U004E><U006F>" ++END LC_MESSAGES ++ ++LC_PAPER ++copy "ug_CN" ++END LC_PAPER ++ ++LC_MEASUREMENT ++copy "ug_CN" ++END LC_MEASUREMENT ++ ++LC_NAME % to be fixed ++copy "ug_CN" ++END LC_NAME ++ ++LC_ADDRESS % to be fixed ++copy "ug_CN" ++END LC_ADDRESS +Index: langpack-locales/SUPPORTED +=================================================================== +--- a/localedata/SUPPORTED 2012-04-04 12:00:54.671347626 +0200 ++++ b/localedata/SUPPORTED 2012-04-04 12:01:34.139349128 +0200 +@@ -420,6 +420,7 @@ + tt_RU/UTF-8 \ + tt_RU@iqtelif/UTF-8 \ + ug_CN/UTF-8 \ ++ug_CN@latin/UTF-8 \ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ + unm_US/UTF-8 \
  63. Download patch debian/patches/hurd-i386/tg-hurdsig-global-dispositions.diff
  64. Download patch debian/patches/hurd-i386/local-hurdsig-globaldisp-version.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/local-hurdsig-globaldisp-version.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/local-hurdsig-globaldisp-version.diff 2019-09-16 14:41:14.000000000 +0000 @@ -0,0 +1,38 @@ +jkoenig's work on signals + +--- + hurd/Versions | 8 ++++++++ + sysdeps/mach/hurd/i386/libc.abilist | 4 +++++ + 3 files changed, 78 insertions(+), 5 deletions(-) + +--- a/hurd/Versions ++++ b/hurd/Versions +@@ -136,6 +136,14 @@ + # "quasi-internal" functions + _hurd_port_move; + } ++ GLIBC_2.21 { ++ # functions used by libpthread and <hurd/signal.h> ++ _hurd_sigstate_set_global_rcv; ++ _hurd_sigstate_lock; ++ _hurd_sigstate_pending; ++ _hurd_sigstate_unlock; ++ _hurd_sigstate_delete; ++ } + + HURD_CTHREADS_0.3 { + # weak refs to libthreads functions that libc calls iff libthreads in use +--- a/sysdeps/mach/hurd/i386/libc.abilist ++++ b/sysdeps/mach/hurd/i386/libc.abilist +@@ -1940,6 +1946,11 @@ + GLIBC_2.2.6 xprt_unregister F + GLIBC_2.21 __mach_host_self_ D 0x4 + GLIBC_2.21 __pthread_get_cleanup_stack F ++GLIBC_2.21 _hurd_sigstate_delete F ++GLIBC_2.21 _hurd_sigstate_lock F ++GLIBC_2.21 _hurd_sigstate_pending F ++GLIBC_2.21 _hurd_sigstate_set_global_rcv F ++GLIBC_2.21 _hurd_sigstate_unlock F + GLIBC_2.21 pthread_attr_destroy F + GLIBC_2.21 pthread_attr_getdetachstate F + GLIBC_2.21 pthread_attr_getinheritsched F
  65. Download patch debian/rules.d/control.mk

    --- 2.30-0experimental2/debian/rules.d/control.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/rules.d/control.mk 2019-09-16 14:56:30.000000000 +0000 @@ -38,8 +38,8 @@ $(stamp)control: debian/rules.d/control. cat debian/control.in/mips32 >> $@T cat debian/control.in/mipsn32 >> $@T cat debian/control.in/mips64 >> $@T -# cat debian/control.in/armhf >> $@T -# cat debian/control.in/armel >> $@T + cat debian/control.in/armhf >> $@T + cat debian/control.in/armel >> $@T cat debian/control.in/kfreebsd-i386 >> $@T cat debian/control.in/x32 >> $@T cat debian/control.in/opt >> $@T
  66. Download patch debian/local/manpages/locale-gen.8

    --- 2.30-0experimental2/debian/local/manpages/locale-gen.8 2019-07-29 09:56:57.000000000 +0000 +++ 2.30-0ubuntu3/debian/local/manpages/locale-gen.8 2019-09-16 14:56:30.000000000 +0000 @@ -86,6 +86,13 @@ The main configuration file, which has a line that is not empty and does not begin with a # is treated as a locale definition that is to be built. +\fB/var/lib/locales/supported.d/\fP +.PP +A directory containing locale.gen snippets provided by language-pack +packages. Do not edit these manually, they will be overwritten on +package upgrades. +.PP + .SH "SEE ALSO" .PP localedef(1), locale(1), locale.gen(5).
  67. Download patch debian/sysdeps/x32.mk

    --- 2.30-0experimental2/debian/sysdeps/x32.mk 2020-02-04 19:43:47.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/x32.mk 2019-09-16 14:56:30.000000000 +0000 @@ -1,5 +1,5 @@ # configuration options for all flavours -extra_config_options = --enable-multi-arch --enable-static-pie +extra_config_options = --enable-multi-arch --enable-static-pie --enable-cet # main library libc_mvec = yes @@ -15,7 +15,6 @@ libc6-amd64_shlib_dep = libc6-amd64 (>= amd64_configure_target = x86_64-linux-gnu amd64_CC = $(CC) -m64 amd64_CXX = $(CXX) -m64 -amd64_crypt = yes amd64_mvec = yes amd64_rtlddir = /lib64 amd64_slibdir = /lib64 @@ -45,9 +44,8 @@ GLIBC_PASSES += i386 DEB_ARCH_MULTILIB_PACKAGES += libc6-i386 libc6-dev-i386 libc6-i386_shlib_dep = libc6-i386 (>= $(shlib_dep_ver)) i386_configure_target = i686-linux-gnu -i386_CC = $(CC) -m32 -i386_CXX = $(CXX) -m32 -i386_crypt = yes +i386_CC = $(CC) -m32 -march=pentium4 -mtune=generic +i386_CXX = $(CXX) -m32 -march=pentium4 -mtune=generic i386_mvec = no i386_slibdir = /lib32 i386_libdir = /usr/lib32
  68. Download patch debian/sysdeps/mipsn32.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsn32.mk 2020-02-05 06:29:04.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsn32.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib32 @@ -11,7 +14,6 @@ libc6-mips64_shlib_dep = libc6-mips64 (> mips64_configure_target = mips64-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mips-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  69. Download patch debian/sysdeps/kfreebsd-amd64.mk

    --- 2.30-0experimental2/debian/sysdeps/kfreebsd-amd64.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/kfreebsd-amd64.mk 2018-04-16 20:02:33.000000000 +0000 @@ -11,7 +11,6 @@ i386_add-ons = $(libc_add-ons) i386_configure_target = i686-kfreebsd-gnu i386_CC = $(CC) -m32 -march=pentium4 -mtune=generic i386_CXX = $(CXX) -m32 -march=pentium4 -mtune=generic -i386_crypt = yes i386_slibdir = /lib32 i386_libdir = /usr/lib32
  70. Download patch debian/sysdeps/sparc.mk

    --- 2.30-0experimental2/debian/sysdeps/sparc.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/sparc.mk 2018-04-16 20:02:33.000000000 +0000 @@ -14,7 +14,6 @@ libc6-sparc64_shlib_dep = libc6-sparc64 sparc64_configure_target=sparc64-linux-gnu sparc64_CC = $(CC) -m64 sparc64_CXX = $(CXX) -m64 -sparc64_crypt = yes sparc64_rtlddir = /lib64 sparc64_slibdir = /lib64 sparc64_libdir = /usr/lib64
  71. Download patch debian/libc0.3.symbols.hurd-i386

    --- 2.30-0experimental2/debian/libc0.3.symbols.hurd-i386 2020-02-04 19:39:18.000000000 +0000 +++ 2.30-0ubuntu3/debian/libc0.3.symbols.hurd-i386 2019-09-16 14:41:14.000000000 +0000 @@ -102,7 +102,6 @@ libhurduser.so.0.3 #PACKAGE# #MINVER# __file_lock@Base 2.11 __file_lock_stat@Base 2.11 __file_notice_changes@Base 2.11 - __file_record_lock@Base 2.29-3~ __file_reparent@Base 2.11 __file_set_size@Base 2.11 __file_set_translator@Base 2.11 @@ -480,7 +479,6 @@ libhurduser.so.0.3 #PACKAGE# #MINVER# file_lock@Base 2.11 file_lock_stat@Base 2.11 file_notice_changes@Base 2.11 - file_record_lock@Base 2.29-3~ file_reparent@Base 2.11 file_set_size@Base 2.11 file_set_translator@Base 2.11
  72. Download patch debian/changelog.ubuntu
  73. Download patch debian/patches/ubuntu/localedata/en_IE-am_pm.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/localedata/en_IE-am_pm.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/localedata/en_IE-am_pm.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,14 @@ +# Description: Add am_pm for en_IE. +# Ubuntu: https://launchpad.net/bugs/199899 +# Upstream: http://sourceware.org/bugzilla/show_bug.cgi?id=3236 +--- a/localedata/locales/en_IE ++++ b/localedata/locales/en_IE +@@ -110,7 +110,7 @@ mon "January";/ + d_t_fmt "%a %d %b %Y %T %Z" + d_fmt "%d//%m//%y" + t_fmt "%T" +-am_pm "";"" ++am_pm "AM";"PM" + t_fmt_ampm "" + first_weekday 2 + week 7;19971130;4
  74. Download patch debian/local/usr_share_locales/install-language-pack

    --- 2.30-0experimental2/debian/local/usr_share_locales/install-language-pack 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/local/usr_share_locales/install-language-pack 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,19 @@ +#!/bin/sh -e + +if [ -z "$1" ]; then + echo "Usage: $0 <language code> <class> [<version>]" + exit 0 +fi + +# install locales for base packages (not for gnome/kde) +if [ -z "$2" ]; then + # Update requested locales if locales-all is not installed + if dpkg-query -s locales-all >/dev/null 2>&1 ; then + echo "locales-all installed, skipping locales generation" + else + /usr/sbin/locale-gen --keep-existing "$1" + fi +fi + +# ensure that .desktop caches are up to date +dpkg-trigger gmenucache || true
  75. Download patch debian/debhelper.in/locales.postinst

    --- 2.30-0experimental2/debian/debhelper.in/locales.postinst 2019-08-16 10:57:32.000000000 +0000 +++ 2.30-0ubuntu3/debian/debhelper.in/locales.postinst 2019-09-16 14:56:30.000000000 +0000 @@ -73,6 +73,11 @@ EOF update-locale "LANG=$DEFAULT_ENVIRONMENT" fi fi + # Remove cruft from locales from Ubuntu << 16.04: + if dpkg --compare-versions "$2" lt 2.23; then + rm -f /var/lib/locales/supported.d/local + rm -rf /var/lib/belocs + fi fi #DEBHELPER#
  76. Download patch debian/patches/hurd-i386/tg-WRLCK-upgrade.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/tg-WRLCK-upgrade.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/tg-WRLCK-upgrade.diff 2019-02-21 13:45:58.000000000 +0000 @@ -0,0 +1,49 @@ +From: Samuel Thibault <samuel.thibault@ens-lyon.org> +Subject: [PATCH] Make F_RDLCK/F_WRLCK atomic + +lockf(LOCK_EX) would for instance drop any existing shared lock before taking +the exclusive lock. F_RDLCK/F_WRLCK need atomic changes, so introduce and use +__LOCK_ATOM + +Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> + +* misc/sys/file.h (__LOCK_ATOMIC): New macro. +* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Use __LOCK_ATOMIC along LOCK_SH and +LOCK_EX. + +XXX: Adding to misc/sys/file.h is questionable + +--- + misc/sys/file.h | 1 + + sysdeps/mach/hurd/fcntl.c | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/misc/sys/file.h b/misc/sys/file.h +index 64e8764..a5892db 100644 +--- a/misc/sys/file.h ++++ b/misc/sys/file.h +@@ -40,6 +40,7 @@ __BEGIN_DECLS + #define LOCK_SH 1 /* Shared lock. */ + #define LOCK_EX 2 /* Exclusive lock. */ + #define LOCK_UN 8 /* Unlock. */ ++#define __LOCK_ATOMIC 16 /* Atomic update. */ + + /* Can be OR'd in to one of the above. */ + #define LOCK_NB 4 /* Don't block when locking. */ +diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c +index 70180fa..8a8308f 100644 +--- a/sysdeps/mach/hurd/f_setlk.c ++++ b/sysdeps/mach/hurd/f_setlk.c +@@ -150,8 +150,8 @@ __libc_fcntl (int fd, int cmd, ...) + + switch (type) + { +- case F_RDLCK: cmd = LOCK_SH; break; +- case F_WRLCK: cmd = LOCK_EX; break; ++ case F_RDLCK: cmd = LOCK_SH | __LOCK_ATOMIC; break; ++ case F_WRLCK: cmd = LOCK_EX | __LOCK_ATOMIC; break; + case F_UNLCK: cmd = LOCK_UN; break; + default: + errno = EINVAL; +-- +tg: (9a079e2..) t/WRLCK-upgrade (depends on: baseline)
  77. Download patch debian/patches/ubuntu/localedata/sd_PK.diff
  78. Download patch debian/sysdeps/mipsn32r6.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsn32r6.mk 2020-02-05 06:29:08.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsn32r6.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib32 @@ -11,7 +14,6 @@ libc6-mips64_shlib_dep = libc6-mips64 (> mips64_configure_target = mipsisa64r6-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mipsisa32r6-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  79. Download patch debian/sysdeps/powerpc.mk

    --- 2.30-0experimental2/debian/sysdeps/powerpc.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/powerpc.mk 2018-04-16 20:02:33.000000000 +0000 @@ -7,11 +7,10 @@ ifeq (,$(filter nobiarch, $(DEB_BUILD_PR # build 64-bit (ppc64) alternative library GLIBC_PASSES += ppc64 DEB_ARCH_MULTILIB_PACKAGES += libc6-ppc64 libc6-dev-ppc64 -libc6-ppc64_shlib_dep = libc6-ppc64 (>= $(shlib_dep_ver)) ppc64_configure_target = powerpc64-linux-gnu ppc64_CC = $(CC) -m64 ppc64_CXX = $(CXX) -m64 -ppc64_crypt = yes +libc6-ppc64_shlib_dep = libc6-ppc64 (>= $(shlib_dep_ver)) ppc64_rtlddir = /lib64 ppc64_slibdir = /lib64 ppc64_libdir = /usr/lib64
  80. Download patch debian/patches/ubuntu/local-disable-ld_audit.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/local-disable-ld_audit.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/local-disable-ld_audit.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,20 @@ +Description: pro-actively disable LD_AUDIT for setuid binaries, regardless + of where the libraries are loaded from. This is to try to make sure that + CVE-2010-3856 cannot sneak back in. Upstream is unlikely to take this, + since it limits the functionality of LD_AUDIT. +Author: Kees Cook <kees@ubuntu.com> +Author: Adam Conrad <adconrad@0c3.net> + +Index: eglibc-2.15/elf/rtld.c +=================================================================== +--- eglibc-2.15.orig/elf/rtld.c 2012-05-09 10:05:29.456899131 -0700 ++++ eglibc-2.15/elf/rtld.c 2012-05-09 10:38:53.952009069 -0700 +@@ -2442,7 +2442,7 @@ + char *p; + + while ((p = (strsep) (&str, ":")) != NULL) +- if (dso_name_valid_for_suid (p)) ++ if (! __glibc_unlikely (__libc_enable_secure) && dso_name_valid_for_suid (p)) + { + /* This is using the local malloc, not the system malloc. The + memory can never be freed. */
  81. Download patch debian/sysdeps/s390x.mk

    --- 2.30-0experimental2/debian/sysdeps/s390x.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/s390x.mk 2018-04-16 20:02:33.000000000 +0000 @@ -12,7 +12,6 @@ GLIBC_PASSES += s390 DEB_ARCH_MULTILIB_PACKAGES += libc6-s390 libc6-dev-s390 libc6-s390_shlib_dep = libc6-s390 (>= $(shlib_dep_ver)) s390_configure_target = s390-linux-gnu -s390_crypt = yes s390_CC = $(CC) -m31 s390_CXX = $(CXX) -m31 s390_slibdir = /lib32
  82. Download patch debian/patches/hurd-i386/git-getrandom.diff
  83. Download patch debian/patches/arm/unsubmitted-ldso-abi-check.diff
  84. Download patch debian/sysdeps/armhf.mk

    --- 2.30-0experimental2/debian/sysdeps/armhf.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/armhf.mk 2019-09-16 14:56:30.000000000 +0000 @@ -16,37 +16,36 @@ endef ifeq (,$(filter nobiarch, $(DEB_BUILD_PROFILES))) # build soft-float (armel) alternative library -#GLIBC_PASSES += armel -#DEB_ARCH_MULTILIB_PACKAGES += libc6-armel libc6-dev-armel -#armel_configure_target = arm-linux-gnueabi -#armel_CC = $(CC) -mfloat-abi=soft -#armel_CXX = $(CXX) -mfloat-abi=soft -#armel_crypt = yes -#armel_slibdir = /lib/arm-linux-gnueabi -#armel_libdir = /usr/lib/arm-linux-gnueabi -# -#define libc6-dev-armel_extra_pkg_install -# -#mkdir -p debian/libc6-dev-armel/usr/include -#ln -sf arm-linux-gnueabihf/bits debian/libc6-dev-armel/usr/include/ -#ln -sf arm-linux-gnueabihf/gnu debian/libc6-dev-armel/usr/include/ -#ln -sf arm-linux-gnueabihf/fpu_control.h debian/libc6-dev-armel/usr/include/ -# -#mkdir -p debian/libc6-dev-armel/usr/include/arm-linux-gnueabihf/gnu -#cp -a debian/tmp-armel/usr/include/gnu/lib-names-soft.h \ -# debian/tmp-armel/usr/include/gnu/stubs-soft.h \ -# debian/libc6-dev-armel/usr/include/arm-linux-gnueabihf/gnu -# -#mkdir -p debian/libc6-dev-armel/usr/include/sys -#for i in `ls debian/tmp-libc/usr/include/arm-linux-gnueabihf/sys` ; do \ -# ln -sf ../arm-linux-gnueabihf/sys/$$i debian/libc6-dev-armel/usr/include/sys/$$i ; \ -#done -# -#endef -# -#define libc6-armel_extra_pkg_install -#mkdir -p debian/libc6-armel/lib -#ln -sf $(armel_slibdir)/ld-linux.so.3 debian/libc6-armel/lib -#endef +GLIBC_PASSES += armel +DEB_ARCH_MULTILIB_PACKAGES += libc6-armel libc6-dev-armel +armel_configure_target = arm-linux-gnueabi +armel_CC = $(CC) -mfloat-abi=soft +armel_CXX = $(CXX) -mfloat-abi=soft +armel_slibdir = /lib/arm-linux-gnueabi +armel_libdir = /usr/lib/arm-linux-gnueabi + +define libc6-dev-armel_extra_pkg_install + +mkdir -p debian/libc6-dev-armel/usr/include +ln -sf arm-linux-gnueabihf/bits debian/libc6-dev-armel/usr/include/ +ln -sf arm-linux-gnueabihf/gnu debian/libc6-dev-armel/usr/include/ +ln -sf arm-linux-gnueabihf/fpu_control.h debian/libc6-dev-armel/usr/include/ + +mkdir -p debian/libc6-dev-armel/usr/include/arm-linux-gnueabihf/gnu +cp -a debian/tmp-armel/usr/include/gnu/lib-names-soft.h \ + debian/tmp-armel/usr/include/gnu/stubs-soft.h \ + debian/libc6-dev-armel/usr/include/arm-linux-gnueabihf/gnu + +mkdir -p debian/libc6-dev-armel/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/arm-linux-gnueabihf/sys` ; do \ + ln -sf ../arm-linux-gnueabihf/sys/$$i debian/libc6-dev-armel/usr/include/sys/$$i ; \ +done + +endef + +define libc6-armel_extra_pkg_install +mkdir -p debian/libc6-armel/lib +ln -sf $(armel_slibdir)/ld-linux.so.3 debian/libc6-armel/lib +endef endif # multilib
  85. Download patch debian/patches/ubuntu/localedata/lv_LV-currency.diff

    --- 2.30-0experimental2/debian/patches/ubuntu/localedata/lv_LV-currency.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/ubuntu/localedata/lv_LV-currency.diff 2019-09-16 14:56:30.000000000 +0000 @@ -0,0 +1,24 @@ +Description: Changed to currency EUR/‬€ +Bug-Ubuntu: https://launchpad.net/bugs/1264551 +Forwarded: https://sourceware.org/bugzilla/show_bug.cgi?id=16374 +Author: Gunnar Hjalmarsson <gunnarhj@ubuntu.com> + +--- a/localedata/locales/lv_LV 2012-03-06 10:10:19.000000000 +0100 ++++ b/localedata/locales/lv_LV 2014-09-28 22:37:43.021365004 +0200 +@@ -2131,12 +2133,12 @@ + negative_sign "-" + int_frac_digits 2 + frac_digits 2 +-p_cs_precedes 1 ++p_cs_precedes 0 + p_sep_by_space 1 +-n_cs_precedes 1 ++n_cs_precedes 0 + n_sep_by_space 1 +-p_sign_posn 3 +-n_sign_posn 3 ++p_sign_posn 1 ++n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC
  86. Download patch debian/sysdeps/mipsn32el.mk

    --- 2.30-0experimental2/debian/sysdeps/mipsn32el.mk 2020-02-05 06:29:03.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/mipsn32el.mk 2019-08-29 09:59:56.000000000 +0000 @@ -1,3 +1,6 @@ +# configuration options for all flavours +CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie + # main library libc_rtlddir = /lib32 @@ -11,7 +14,6 @@ libc6-mips64_shlib_dep = libc6-mips64 (> mips64_configure_target = mips64el-linux-gnuabi64 mips64_CC = $(CC) -mabi=64 mips64_CXX = $(CXX) -mabi=64 -mips64_crypt = yes mips64_rtlddir = /lib64 mips64_slibdir = /lib64 mips64_libdir = /usr/lib64 @@ -23,7 +25,6 @@ libc6-mips32_shlib_dep = libc6-mips32 (> mips32_configure_target = mipsel-linux-gnu mips32_CC = $(CC) -mabi=32 mips32_CXX = $(CXX) -mabi=32 -mips32_crypt = yes mips32_rtlddir = /lib mips32_slibdir = /libo32 mips32_libdir = /usr/libo32
  87. Download patch debian/patches/hurd-i386/local-hurd_sigstate-PLT.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/local-hurd_sigstate-PLT.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/local-hurd_sigstate-PLT.diff 2019-09-16 14:41:14.000000000 +0000 @@ -0,0 +1,53 @@ +Index: glibc-2.28/sysdeps/hurd/include/hurd/signal.h +=================================================================== +--- glibc-2.28.orig/sysdeps/hurd/include/hurd/signal.h ++++ glibc-2.28/sysdeps/hurd/include/hurd/signal.h +@@ -11,6 +11,11 @@ libc_hidden_proto (_hurd_exception2signa + libc_hidden_proto (_hurd_intr_rpc_mach_msg) + libc_hidden_proto (_hurd_thread_sigstate) + libc_hidden_proto (_hurd_raise_signal) ++libc_hidden_proto (_hurd_sigstate_set_global_rcv) ++libc_hidden_proto (_hurd_sigstate_lock) ++libc_hidden_proto (_hurd_sigstate_pending) ++libc_hidden_proto (_hurd_sigstate_unlock) ++libc_hidden_proto (_hurd_sigstate_delete) + #endif + #ifdef _HURD_SIGNAL_H_HIDDEN_DEF + libc_hidden_def (_hurd_self_sigstate) +Index: glibc-2.28/hurd/hurdsig.c +=================================================================== +--- glibc-2.28.orig/hurd/hurdsig.c ++++ glibc-2.28/hurd/hurdsig.c +@@ -171,6 +171,7 @@ _hurd_sigstate_delete (thread_t th + free (ss); + } + } ++libc_hidden_def (_hurd_sigstate_delete) + + /* Make SS a global receiver, with pthread signal semantics. */ + void +@@ -188,6 +189,7 @@ _hurd_sigstate_set_global_rcv (str + assert (ss->thread != MACH_PORT_NULL); + ss->actions[0].sa_handler = SIG_IGN; + } ++libc_hidden_def (_hurd_sigstate_set_global_rcv) + + /* Check whether SS is a global receiver. */ + static int +@@ -214,6 +216,8 @@ _hurd_sigstate_unlock (struct hurd_sigs + if (sigstate_is_global_rcv (ss)) + __spin_unlock (&_hurd_global_sigstate->lock); + } ++libc_hidden_def (_hurd_sigstate_lock) ++libc_hidden_def (_hurd_sigstate_unlock) + + /* Retreive a thread's full set of pending signals, including the global + ones if appropriate. SS must be locked. */ +@@ -250,6 +254,7 @@ _hurd_sigstate_pending (const stru + __sigorset (&pending, &pending, &_hurd_global_sigstate->pending); + return pending; + } ++libc_hidden_def (_hurd_sigstate_pending) + + /* Clear a pending signal and return the associated detailed + signal information. SS must be locked, and must have signal SIGNO
  88. Download patch debian/sysdeps/linux.mk

    --- 2.30-0experimental2/debian/sysdeps/linux.mk 2019-08-16 10:57:33.000000000 +0000 +++ 2.30-0ubuntu3/debian/sysdeps/linux.mk 2019-09-16 14:56:30.000000000 +0000 @@ -13,7 +13,7 @@ pldd = yes threads = yes ifeq ($(filter stage1 stage2,$(DEB_BUILD_PROFILES)),) - libc_extra_config_options = --with-selinux $(extra_config_options) + libc_extra_config_options = --with-selinux --enable-systemtap $(extra_config_options) endif ifndef LINUX_SOURCE @@ -46,6 +46,9 @@ $(stamp)mkincludedir: fi ; \ done + ln -s /usr/include/$(DEB_HOST_MULTIARCH)/sys/sdt.h debian/include/sys/sdt.h + ln -s /usr/include/$(DEB_HOST_MULTIARCH)/sys/sdt-config.h debian/include/sys/sdt-config.h + # To make configure happy if libc6-dev is not installed. touch debian/include/assert.h
  89. Download patch debian/patches/hurd-i386/tg-hurdsig-fixes-2.diff

    --- 2.30-0experimental2/debian/patches/hurd-i386/tg-hurdsig-fixes-2.diff 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/hurd-i386/tg-hurdsig-fixes-2.diff 2019-08-29 10:12:07.000000000 +0000 @@ -0,0 +1,51 @@ +From: Jeremie Koenig <jk@jk.fr.eu.org> +Subject: [PATCH] Small signal fixes + + 22e7268 Hurd signals: fix sigwait for pending signals + da8bf5e Hurd signals: clear the pending mask in fork and spawn + 8e87205 Hurd signals: don't drop blocked ignored signals + +--- + hurd/hurdsig.c | 4 +--- + sysdeps/mach/hurd/fork.c | 4 +++- + sysdeps/mach/hurd/spawni.c | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +--- a/hurd/hurdsig.c ++++ b/hurd/hurdsig.c +@@ -904,9 +904,7 @@ + } + + /* Handle receipt of a blocked signal, or any signal while stopped. */ +- if (act != ignore /* Signals ignored now are forgotten now. */ +- && __sigismember (&blocked, signo) +- || (signo != SIGKILL && _hurd_stopped)) ++ if (__sigismember (&blocked, signo) || (signo != SIGKILL && _hurd_stopped)) + { + mark_pending (); + act = ignore; +--- a/sysdeps/mach/hurd/fork.c ++++ b/sysdeps/mach/hurd/fork.c +@@ -684,8 +684,10 @@ + err = __USEPORT (PROC, __proc_getpids (port, &_hurd_pid, &_hurd_ppid, + &_hurd_orphaned)); + +- /* Forking clears the trace flag. */ ++ /* Forking clears the trace flag and pending masks. */ + __sigemptyset (&_hurdsig_traced); ++ __sigemptyset (&_hurd_global_sigstate->pending); ++ __sigemptyset (&ss->pending); + + /* Release malloc locks. */ + _hurd_malloc_fork_child (); +--- a/sysdeps/mach/hurd/spawni.c ++++ b/sysdeps/mach/hurd/spawni.c +@@ -239,7 +239,7 @@ + + _hurd_sigstate_lock (ss); + ints[INIT_SIGMASK] = ss->blocked; +- ints[INIT_SIGPENDING] = _hurd_sigstate_pending (ss); /* XXX really? */ ++ ints[INIT_SIGPENDING] = 0; + ints[INIT_SIGIGN] = 0; + /* Unless we were asked to reset all handlers to SIG_DFL, + pass down the set of signals that were set to SIG_IGN. */
  90. Download patch debian/patches/hurd-i386/git-hurdsig-global-dispositions.diff
  91. Download patch debian/patches/hurd-i386/git-context_functions.diff
  92. Download patch debian/patches/any/submitted-stt-gnu-ifunc-detection.patch

    --- 2.30-0experimental2/debian/patches/any/submitted-stt-gnu-ifunc-detection.patch 2020-02-05 06:28:24.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/any/submitted-stt-gnu-ifunc-detection.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -commit 8f923e75945a6e829d5640ac412b5e9555e5ef9c -Author: Fangrui Song <maskray@google.com> -Date: Tue Feb 4 22:09:22 2020 -0800 - - Improve IFUNC check - - GNU ld's RISCV port does not support IFUNC. ld -no-pie produces no - relocation and the test passed incorrectly. Be more rigid by testing - IRELATIVE explicitly. - ---- a/configure -+++ b/configure -@@ -4035,7 +4035,7 @@ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \ - -o conftest conftest.S 1>&5 2>&5; then - # Do a link to see if the backend supports IFUNC relocs. - $READELF -r conftest 1>&5 -- LC_ALL=C $READELF -r conftest | grep 'no relocations' >/dev/null || { -+ LC_ALL=C $READELF -Wr conftest | grep -q IRELATIVE && { - libc_cv_ld_gnu_indirect_function=yes - } - fi ---- a/configure.ac -+++ b/configure.ac -@@ -649,7 +649,7 @@ if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \ - -o conftest conftest.S 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then - # Do a link to see if the backend supports IFUNC relocs. - $READELF -r conftest 1>&AS_MESSAGE_LOG_FD -- LC_ALL=C $READELF -r conftest | grep 'no relocations' >/dev/null || { -+ LC_ALL=C $READELF -Wr conftest | grep -q IRELATIVE && { - libc_cv_ld_gnu_indirect_function=yes - } - fi
  93. Download patch debian/patches/any/local-revert-24323.diff

    --- 2.30-0experimental2/debian/patches/any/local-revert-24323.diff 2020-02-04 20:24:45.000000000 +0000 +++ 2.30-0ubuntu3/debian/patches/any/local-revert-24323.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ ---- a/ChangeLog -+++ b/ChangeLog -@@ -1393,18 +1393,6 @@ - * dlfcn/dlfcn.h (Dl_serinfo): Do not use array of length 1 for - dls_serpath field. - --2019-06-18 Florian Weimer <fweimer@redhat.com> -- -- [BZ #24323] -- * include/elf.h (DT_1_SUPPORTED_MASK): Include DF_1_PIE. -- * elf/dl-load.c (_dl_map_object_from_fd): Check for DF_1_PIE and -- fail when called from dlopen. -- * elf/Makefile [have-fpie && build-shared] (tests): Add -- tst-dlopen-pie. -- (tst-dlopen-pie): Link with -ldl. -- (tst-dlopen-pie.out): Add run-time dependency on tst-pie1. -- * elf/tst-dlopen-pie.c (do_test): New file. -- - 2019-06-17 Rafal Luzynski <digitalfreak@lingonborough.com> - - [BZ #24614] ---- a/elf/Makefile -+++ b/elf/Makefile -@@ -305,7 +305,7 @@ test-xfail-tst-protected1b = yes - endif - ifeq (yesyes,$(have-fpie)$(build-shared)) - modules-names += tst-piemod1 --tests += tst-pie1 tst-pie2 tst-dlopen-pie -+tests += tst-pie1 tst-pie2 - tests-pie += tst-pie1 tst-pie2 - ifeq (yes,$(have-protected-data)) - tests += vismain -@@ -1066,8 +1066,6 @@ CFLAGS-tst-pie2.c += $(pie-ccflag) - - $(objpfx)tst-piemod1.so: $(libsupport) - $(objpfx)tst-pie1: $(objpfx)tst-piemod1.so --$(objpfx)tst-dlopen-pie: $(libdl) --$(objpfx)tst-dlopen-pie.out: $(objpfx)tst-pie1 - - ifeq (yes,$(build-shared)) - # NB: Please keep cet-built-dso in sysdeps/x86/Makefile in sync with ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -1173,10 +1173,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, - goto call_lose; - } - -- /* dlopen of an executable is not valid because it is not possible -- to perform proper relocations, handle static TLS, or run the -- ELF constructors. For PIE, the check needs the dynamic -- section, so there is another check below. */ - if (__glibc_unlikely (type != ET_DYN) - && __glibc_unlikely ((mode & __RTLD_OPENEXEC) == 0)) - { -@@ -1213,11 +1209,9 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, - elf_get_dynamic_info (l, NULL); - - /* Make sure we are not dlopen'ing an object that has the -- DF_1_NOOPEN flag set, or a PIE object. */ -- if ((__glibc_unlikely (l->l_flags_1 & DF_1_NOOPEN) -- && (mode & __RTLD_DLOPEN)) -- || (__glibc_unlikely (l->l_flags_1 & DF_1_PIE) -- && __glibc_unlikely ((mode & __RTLD_OPENEXEC) == 0))) -+ DF_1_NOOPEN flag set. */ -+ if (__glibc_unlikely (l->l_flags_1 & DF_1_NOOPEN) -+ && (mode & __RTLD_DLOPEN)) - { - /* We are not supposed to load this object. Free all resources. */ - _dl_unmap_segments (l); -@@ -1228,11 +1222,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, - if (l->l_phdr_allocated) - free ((void *) l->l_phdr); - -- if (l->l_flags_1 & DF_1_PIE) -- errstring -- = N_("cannot dynamically load position-independent executable"); -- else -- errstring = N_("shared object cannot be dlopen()ed"); -+ errstring = N_("shared object cannot be dlopen()ed"); - goto call_lose; - } - ---- a/elf/tst-dlopen-pie.c -+++ /dev/null -@@ -1,49 +0,0 @@ --/* dlopen test for PIE objects. -- 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 -- 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 -- <http://www.gnu.org/licenses/>. */ -- --/* This test attempts to open the (otherwise unrelated) PIE test -- program elf/tst-pie1 and expects the attempt to fail. */ -- --#include <dlfcn.h> --#include <stddef.h> --#include <string.h> --#include <support/check.h> --#include <support/support.h> -- --static void --test_mode (int mode) --{ -- char *pie_path = xasprintf ("%s/elf/tst-pie1", support_objdir_root); -- if (dlopen (pie_path, mode) != NULL) -- FAIL_EXIT1 ("dlopen succeeded unexpectedly (%d)", mode); -- const char *message = dlerror (); -- const char *expected -- = "cannot dynamically load position-independent executable"; -- if (strstr (message, expected) == NULL) -- FAIL_EXIT1 ("unexpected error message (mode %d): %s", mode, message); --} -- --static int --do_test (void) --{ -- test_mode (RTLD_LAZY); -- test_mode (RTLD_NOW); -- return 0; --} -- --#include <support/test-driver.c> ---- a/include/elf.h -+++ b/include/elf.h -@@ -23,7 +23,7 @@ - # endif - # define DT_1_SUPPORTED_MASK \ - (DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN \ -- | DF_1_ORIGIN | DF_1_NODEFLIB | DF_1_PIE) -+ | DF_1_ORIGIN | DF_1_NODEFLIB) - - #endif /* !_ISOMAC */ - #endif /* elf.h */
  94. Download patch debian/rules.d/build.mk

    --- 2.30-0experimental2/debian/rules.d/build.mk 2020-01-19 09:29:52.000000000 +0000 +++ 2.30-0ubuntu3/debian/rules.d/build.mk 2019-09-16 14:56:30.000000000 +0000 @@ -89,12 +89,11 @@ $(stamp)configure_%: $(stamp)config_sub_ --enable-stack-protector=strong \ --enable-obsolete-rpc \ --enable-obsolete-nsl \ - --with-pkgversion="Debian GLIBC $(DEB_VERSION)" \ - --with-bugurl="http://www.debian.org/Bugs/" \ + --with-pkgversion="Ubuntu GLIBC $(DEB_VERSION)" \ + --with-bugurl="https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs" \ $(if $(filter $(pt_chown),yes),--enable-pt_chown) \ $(if $(filter $(threads),no),--disable-nscd) \ $(if $(filter $(call xx,mvec),no),--disable-mathvec) \ - $(if $(filter $(call xx,crypt),no),--disable-crypt) \ $(call xx,with_headers) $(call xx,extra_config_options) touch $@

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: util-linux

util-linux (2.34-0.1ubuntu7) focal; urgency=medium * d/p/lsblk-force-to-print-PKNAME-for-partition.patch: fix regression that lsblk doesn't print PKNAME column for partitions (LP: #1862846) -- Mauricio Faria de Oliveira <mfo@canonical.com> Thu, 20 Feb 2020 11:09:29 -0300 util-linux (2.34-0.1ubuntu6) focal; urgency=medium * No-change rebuild with fixed binutils on arm64. -- Matthias Klose <doko@ubuntu.com> Sat, 08 Feb 2020 11:20:58 +0000 util-linux (2.34-0.1ubuntu5) focal; urgency=medium * d/p/libblkid-xfs-log-check-for-reg-xfs-on-more-sectors.patch: fix ambivalent detection of bcache and xfs_external_log due to regular xfs on bcache backing device. (LP: #1858802) -- Mauricio Faria de Oliveira <mfo@canonical.com> Wed, 08 Jan 2020 16:03:19 -0300 util-linux (2.34-0.1ubuntu4) focal; urgency=medium * bash-completion/umount: fix completion to not require gawk be present. Thanks to Étienne Mollier for the patch. (LP: #1845529) -- Mathieu Trudel-Lapierre <cyphermox@ubuntu.com> Tue, 03 Dec 2019 15:27:13 -0500 util-linux (2.34-0.1ubuntu3) focal; urgency=medium * Drop dependency from util-linux to fdisk. The transition to split-out fdisk was done before 18.04 so the transitional dependency is no longer needed, and fdisk should not be pulled into the essential package set since it's not needed in container environments. For bootable systems which need fdisk, it will be pulled in directly. -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 22 Nov 2019 13:40:12 -0800 util-linux (2.34-0.1ubuntu2) eoan; urgency=medium * d/p/prevent-fstrim-inside-container.patch: - Prevent fstrim to run inside a container environment. (LP: #1589289) -- Eric Desrochers <eric.desrochers@canonical.com> Wed, 21 Aug 2019 13:19:03 +0000 util-linux (2.34-0.1ubuntu1) eoan; urgency=low * Merge from Debian unstable. Remaining changes: - Build hwclock with audit support. - Drop debian/hwclock.rules and hwclock.default, recent kernels sync the RTC automatically. - Add sulogin-fallback-static-sh.patch: Add support for /bin/static-sh as fallback if the regular shell fails to execute. Patch ported from sysvinit. (see LP #505887) - Add sulogin-lockedpwd.patch: Make sure file systems can be fixed on machines with locked root accounts (as Ubuntu does by default). Don't require --force for sulogin. - Clean up weekly fstrim cron file, now a systemd timer unit. - Update s390-tools breaks/replaces, to the correct version for ubuntu. - Enable fstrim.timer by default. * Dropped changes, included upstream: - debian/patches/32-bit-safe-mbr-parsing.patch: [PATCH] libfdisk: (dos) Use strtoul to parse the label-id. -- Steve Langasek <steve.langasek@ubuntu.com> Thu, 15 Aug 2019 23:50:01 -0700

Modifications :
  1. Download patch debian/patches/umount-completion.patch

    --- 2.34-0.1/debian/patches/umount-completion.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/umount-completion.patch 2019-12-03 20:27:13.000000000 +0000 @@ -0,0 +1,76 @@ +From: Étienne Mollier <etienne.mollier@mailoo.org> +Subject: Reimplement umount completion to not use gawk's gensub. + +diff -Naur a/bash-completion/umount b/bash-completion/umount +--- a/bash-completion/umount 2019-04-02 12:12:03.180261025 +0200 ++++ b/bash-completion/umount 2019-08-08 20:14:17.758472003 +0200 +@@ -1,3 +1,33 @@ ++_umount_points_list() ++{ ++ # List of characters to escape, shamelessly stolen from "scp" comp. ++ local escape_chars='[][(){}<>\",:;^&!$=?`|\\'\'' \t\f\n\r\v]' ++ ++ # This is most odd, but we are adding artifically a space after the ++ # file name because, somehow, it enables proper escaping of dangerous ++ # characters, e.g. "|" -> "\|". Without space, it is possible to get ++ # either 0 "|" or 2 "\\|" backslashes, but 1 does not work. Also, ++ # sticking to sub() and gsub(), instead of gensub(), allows to be AWK ++ # implementation agnostic. ++ findmnt -lno TARGET | awk '{ ++ if ($0 ~ "^"ENVIRON["HOME"]) { ++ homeless = $0 ++ sub("^"ENVIRON["HOME"], "~", homeless) ++ gsub("'"$escape_chars"'", "\\\\&", homeless) ++ print homeless " " ++ } ++ if ($0 ~ "^"ENVIRON["PWD"]) { ++ reldir = $0 ++ sub("^"ENVIRON["PWD"]"/?", "", reldir) ++ gsub("'"$escape_chars"'", "\\\\&", reldir) ++ print "./" reldir " " ++ print reldir " " ++ } ++ gsub("'"$escape_chars"'", "\\\\&") ++ print $0 " " ++ }' ++} ++ + _umount_module() + { + local cur prev OPTS +@@ -48,28 +78,11 @@ + return 0 + ;; + esac +- +- local oldifs=$IFS +- IFS=$'\n' +- COMPREPLY=( $( compgen -W "$(findmnt -lno TARGET | awk \ +- '{ +- if ($0 ~ ENVIRON["HOME"]) { +- homeless = $0 +- homeless = gensub(ENVIRON["HOME"], "\\\\~", "g", homeless) +- homeless = gensub(/(\s)/, "\\\\\\1", "g", homeless) +- print homeless +- } +- if ($0 ~ ENVIRON["PWD"]) { +- reldir = $0 +- reldir = gensub(ENVIRON["PWD"]"/", "", "g", reldir) +- reldir = gensub(/(\s)/, "\\\\\\1", "g", reldir) +- print "./" reldir +- print reldir +- } +- gsub(/\s/, "\\\\&") +- print $0 +- }' +- )" -- "$cur" ) ) +- IFS=$oldifs ++ local IFS=$'\n' ++ COMPREPLY=( $( compgen -W '$( _umount_points_list )' -- "$cur" ) ) + } +-complete -F _umount_module umount ++ ++# counteract the artificial addition of " " in _gen_mount_points() by ++# disabling spaces automatically appended to the end of the file name ++# completion via "-o nospace". ++complete -F _umount_module -o nospace umount
  2. Download patch debian/patches/libblkid-xfs-log-check-for-reg-xfs-on-more-sectors.patch

    --- 2.34-0.1/debian/patches/libblkid-xfs-log-check-for-reg-xfs-on-more-sectors.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/libblkid-xfs-log-check-for-reg-xfs-on-more-sectors.patch 2020-01-08 19:03:19.000000000 +0000 @@ -0,0 +1,114 @@ +Origin: upstream, https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=d756af7d640c51ce8d1414607bd3f17eeecf2424 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1858802 +Bug-Debian: https://bugs.debian.org/948444 +From d756af7d640c51ce8d1414607bd3f17eeecf2424 Mon Sep 17 00:00:00 2001 +From: Mauricio Faria de Oliveira <mfo@canonical.com> +Date: Tue, 7 Jan 2020 18:53:51 -0300 +Subject: [PATCH] libblkid: (xfs) external log: check for regular xfs on more + sectors + +The xfs external log probe only checks for regular xfs on sector zero, +but then checks for valid log record headers on all first 512 sectors. + +This can incorrectly detect an xfs external log if a regular xfs (i.e. +with internal log) is shifted by up to 512 sectors; it may happen with +bcache and LVM1 for example, as the regular xfs is found later in disk. + +This results in ambivalent filesystem detection, thus no UUID for udev. + +Fix this problem by checking for regular xfs on all sectors considered +by the xfs external log probe. + +Test-case with bcache: +--- + + $ IMG=bcache-backing-device.img + $ dd if=/dev/zero of=$IMG bs=1G count=0 seek=1 + $ DEV=$(sudo losetup --find --show $IMG) + + $ sudo make-bcache -B $DEV + + $ sudo mkfs.xfs -d agsize=16m -l agnum=0 -f /dev/bcache0 + + $ sudo LD_LIBRARY_PATH=./.libs ./wipefs /dev/bcache0 + DEVICE OFFSET TYPE UUID LABEL + bcache0 0x0 xfs 9f6dfa9d-4488-46f7-906b-dcfc96027cfe + + $ echo 1 | sudo tee /sys/block/bcache0/bcache/stop + + $ sudo hexdump -C $DEV | grep -m2 -e XFSB -e 'fe ed ba be' + 00002000 58 46 53 42 00 00 10 00 00 00 00 00 00 03 f0 00 |XFSB............| + 00007000 fe ed ba be 00 00 00 01 00 00 00 02 00 00 00 14 |................| + + Without patch: + + $ sudo LD_LIBRARY_PATH=./.libs ./wipefs $DEV + DEVICE OFFSET TYPE UUID LABEL + loop0 0x1018 bcache 23da3ba9-2467-453d-b020-06f02c947190 + loop0 0x7000 xfs_external_log + + With patch: + + $ sudo LD_LIBRARY_PATH=./.libs ./wipefs $DEV + DEVICE OFFSET TYPE UUID LABEL + loop0 0x1018 bcache 23da3ba9-2467-453d-b020-06f02c947190 + +Test-case with LVM1: +--- + + $ IMG=lvm-backing-device.img + $ dd if=/dev/zero of=$IMG bs=1G count=0 seek=1 + $ DEV=$(sudo losetup --find --show $IMG) + + $ sudo lvm pvcreate -M1 $DEV + $ sudo lvm vgcreate -M1 lvm-vg-test $DEV + $ sudo lvm lvcreate lvm-vg-test --name lvm-lv-test --extents 100%VG + + $ sudo mkfs.xfs -d agsize=16m -l agnum=0 -f /dev/mapper/lvm--vg--test-lvm--lv--test + + $ sudo LD_LIBRARY_PATH=./.libs ./wipefs /dev/mapper/lvm--vg--test-lvm--lv--test + DEVICE OFFSET TYPE UUID LABEL + lvm--vg--test-lvm--lv--test 0x0 xfs 451ba725-8394-4ebe-9b49-fc5f4a99667f + + $ sudo lvchange -an lvm-vg-test + + $ sudo hexdump -C $DEV | grep -m2 -e XFSB -e 'fe ed ba be' + 00020000 58 46 53 42 00 00 10 00 00 00 00 00 00 03 f0 00 |XFSB............| + 00025000 fe ed ba be 00 00 00 01 00 00 00 02 00 00 00 14 |................| + + Without patch: + + $ sudo LD_LIBRARY_PATH=./.libs ./wipefs $DEV + DEVICE OFFSET TYPE UUID LABEL + loop0 0x0 LVM1_member agUhNT-9f42-Z30B-Z4Ew-skWd-3h3a-tWMY0A + loop0 0x25000 xfs_external_log + + With patch: + + $ sudo LD_LIBRARY_PATH=./.libs ./wipefs $DEV + DEVICE OFFSET TYPE UUID LABEL + loop0 0x0 LVM1_member agUhNT-9f42-Z30B-Z4Ew-skWd-3h3a-tWMY0A + +Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com> +--- + libblkid/src/superblocks/xfs.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/libblkid/src/superblocks/xfs.c ++++ b/libblkid/src/superblocks/xfs.c +@@ -252,11 +252,12 @@ + if (!buf) + return errno ? -errno : 1; + +- if (memcmp(buf, "XFSB", 4) == 0) +- return 1; /* this is regular XFS, ignore */ +- + /* check the first 512 512-byte sectors */ + for (i = 0; i < 512; i++) { ++ /* this is regular XFS (maybe with some sectors shift), ignore */ ++ if (memcmp(&buf[i*512], "XFSB", 4) == 0) ++ return 1; ++ + rhead = (struct xlog_rec_header *)&buf[i*512]; + + if (xlog_valid_rec_header(rhead)) {
  3. Download patch debian/util-linux.hwclock.default

    --- 2.34-0.1/debian/util-linux.hwclock.default 2019-07-28 15:14:02.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/util-linux.hwclock.default 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -# Defaults for the hwclock init script. See hwclock(5) and hwclock(8). - -# This is used to specify that the hardware clock incapable of storing -# years outside the range of 1994-1999. Set to yes if the hardware is -# broken or no if working correctly. -#BADYEAR=no - -# Set this to yes if it is possible to access the hardware clock, -# or no if it is not. -#HWCLOCKACCESS=yes - -# Set this to any options you might need to give to hwclock, such -# as machine hardware clock type for Alphas. -#HWCLOCKPARS= - -# Set this to the hardware clock device you want to use, it should -# probably match the CONFIG_RTC_HCTOSYS_DEVICE kernel config option. -#HCTOSYS_DEVICE=rtc0 -
  4. Download patch debian/rules

    --- 2.34-0.1/debian/rules 2019-07-28 15:14:02.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/rules 2019-07-28 21:44:43.000000000 +0000 @@ -11,6 +11,7 @@ CONFOPTS += --enable-raw CONFOPTS += --with-selinux CONFOPTS += --with-smack CONFOPTS += --enable-partx +CONFOPTS += --with-audit ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),) CONFOPTS += --without-systemd --without-udev --without-audit else @@ -134,9 +135,9 @@ override_dh_installinit: ifeq (linux,$(DEB_HOST_ARCH_OS)) ifeq (,$(findstring s390,$(DEB_HOST_ARCH))) # install /etc/init.d/hwclock.sh - dh_installinit --name=hwclock.sh --no-start - # install /etc/default/hwclock - dh_installinit --name=hwclock + # - update-rc.d manually handled in maintainers scripts as there + # is special per-arch considerations. + dh_installinit --name=hwclock.sh --noscripts endif endif # install uuidd sysvinit script @@ -144,6 +145,7 @@ endif ln -s ../misc-utils/uuidd.rc debian/uuid-runtime.uuidd.init dh_installinit --name=uuidd --restart-after-upgrade rm -f debian/uuid-runtime.uuidd.init + dh_installsystemd --package=util-linux fstrim.timer override_dh_installpam: dh_installpam --package=util-linux --name=runuser
  5. Download patch debian/util-linux.install

    --- 2.34-0.1/debian/util-linux.install 2019-07-28 15:14:02.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/util-linux.install 2019-07-28 21:44:43.000000000 +0000 @@ -1,5 +1,4 @@ #!/usr/bin/dh-exec --with=install -debian/hwclock.rules => /lib/udev/rules.d/85-hwclock.rules debian/hwclock-set => /lib/udev/hwclock-set # perl gets to do rename, not us. debian/tmp/usr/bin/rename => /usr/bin/rename.ul
  6. Download patch debian/patches/sulogin-fallback-static-sh.patch

    --- 2.34-0.1/debian/patches/sulogin-fallback-static-sh.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/sulogin-fallback-static-sh.patch 2018-02-14 22:20:35.000000000 +0000 @@ -0,0 +1,18 @@ +Description: Add support for /bin/static-sh as fallback if the regular shell fails to execute +Author: Michael Vogt <michael.vogt@ubuntu.com> +Bug-Ubuntu: https://launchpad.net/bugs/505887 + +--- a/login-utils/sulogin.c ++++ b/login-utils/sulogin.c +@@ -793,6 +793,11 @@ + xsetenv("SHELL", "/bin/sh", 1); + execl("/bin/sh", profile ? "-sh" : "sh", NULL); + warn(_("failed to execute %s"), "/bin/sh"); ++ ++ /* Fall back to static shell */ ++ setenv("SHELL", "/bin/static-sh", 1); ++ execl("/bin/static-sh", profile ? "-sh" : "sh", NULL); ++ warn(_("failed to execute %s"), "/bin/static-sh"); + } + + static void usage(void)
  7. Download patch debian/control

    --- 2.34-0.1/debian/control 2019-07-28 15:14:02.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/control 2019-11-22 21:38:02.000000000 +0000 @@ -19,10 +19,12 @@ Build-Depends: bc <!stage1 !nocheck>, socat <!stage1 !nocheck>, systemd [linux-any] <!stage1>, bison, - zlib1g-dev + zlib1g-dev, + libaudit-dev Section: base Priority: required -Maintainer: LaMont Jones <lamont@debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: LaMont Jones <lamont@debian.org> Uploaders: Adam Conrad <adconrad@0c3.net> Standards-Version: 4.4.0 Rules-Requires-Root: binary-targets @@ -35,7 +37,7 @@ Build-Profiles: <!stage1> Section: utils Essential: yes Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends} -Depends: ${misc:Depends}, fdisk, login (>= 1:4.5-1.1~) +Depends: ${misc:Depends}, login (>= 1:4.5-1.1~) Suggests: dosfstools, kbd | console-tools, util-linux-locales Replaces: bash-completion (<< 1:2.8), sysvinit-utils (<< 2.88dsf-59.1~), @@ -79,7 +81,7 @@ Build-Profiles: <!stage1> XB-Important: yes Section: admin Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends} -Depends: ${misc:Depends}, util-linux (>= 2.29.2-3~) +Depends: ${misc:Depends}, util-linux (>= 2.30.1-0ubuntu4~) Suggests: nfs-common (>=1:1.1.0-13) Breaks: bash-completion (<< 1:2.1-4.3~) Replaces: bash-completion (<< 1:2.1-4.3~) @@ -112,8 +114,8 @@ Section: utils Priority: important Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} -Replaces: util-linux (<< 2.29.2-3~) -Breaks: util-linux (<< 2.29.2-3~) +Replaces: util-linux (<< 2.30.1-0ubuntu4~) +Breaks: util-linux (<< 2.30.1-0ubuntu4~) Multi-Arch: foreign Description: collection of partitioning utilities This package contains the classic fdisk, sfdisk and cfdisk partitioning @@ -368,7 +370,7 @@ Depends: ${misc:Depends}, ${shlibs:Depen Package-Type: udeb Description: stripped down miscellaneous system utilities, for debian-installer This is a minimal version of util-linux for debian-installer. It only - contains the blkid binary at the moment. + contains the blkid and fallocate binaries at the moment. Package: rfkill Architecture: linux-any
  8. Download patch debian/patches/prevent-fstrim-inside-container.patch

    --- 2.34-0.1/debian/patches/prevent-fstrim-inside-container.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/prevent-fstrim-inside-container.patch 2019-08-21 13:17:10.000000000 +0000 @@ -0,0 +1,44 @@ +Description: fstrim shouldn't run inside a container + Container type implies the following products: + openvz OpenVZ/Virtuozzo + lxc Linux container implementation by LXC + lxc-libvirt Linux container implementation by libvirt + systemd-nspawn systemd's minimal container implementation, see systemd-nspawn(1) + docker Docker container manager + podman Podman container manager + rkt rkt app container runtime + wsl Windows Subsystem for Linux + + References: + https://www.freedesktop.org/software/systemd/man/systemd.unit.html + https://www.freedesktop.org/software/systemd/man/systemd-detect-virt.html# + + Fix: #840 +Author: Eric Desrochers <eric.desrochers@canonical.com> +Origin: upstream, https://github.com/karelzak/util-linux/commit/0280d31a2bd6292acd9a4b86d0f6b5feb275a618 +Bug: https://github.com/karelzak/util-linux/issues/840 +Bug-Ubuntu: https://launchpad.net/bugs/1589289 +Index: util-linux-2.34/sys-utils/fstrim.service.in +=================================================================== +--- util-linux-2.34.orig/sys-utils/fstrim.service.in ++++ util-linux-2.34/sys-utils/fstrim.service.in +@@ -1,6 +1,7 @@ + [Unit] + Description=Discard unused blocks on filesystems from /etc/fstab + Documentation=man:fstrim(8) ++ConditionVirtualization=!container + + [Service] + Type=oneshot +Index: util-linux-2.34/sys-utils/fstrim.timer +=================================================================== +--- util-linux-2.34.orig/sys-utils/fstrim.timer ++++ util-linux-2.34/sys-utils/fstrim.timer +@@ -1,6 +1,7 @@ + [Unit] + Description=Discard unused blocks once a week + Documentation=man:fstrim ++ConditionVirtualization=!container + + [Timer] + OnCalendar=weekly
  9. Download patch debian/patches/lsblk-force-to-print-PKNAME-for-partition.patch

    --- 2.34-0.1/debian/patches/lsblk-force-to-print-PKNAME-for-partition.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/lsblk-force-to-print-PKNAME-for-partition.patch 2020-02-20 14:09:29.000000000 +0000 @@ -0,0 +1,31 @@ +Origin: upstream, https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=e3bb9bfb76c17b1d05814436ced62c05c4011f48 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1862846 +Bug-Debian: https://bugs.debian.org/951217 +From e3bb9bfb76c17b1d05814436ced62c05c4011f48 Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Thu, 27 Jun 2019 09:22:18 +0200 +Subject: lsblk: force to print PKNAME for partition + +PKNAME (parent kernel device name) is based on printed tree according +to parent -> child relationship. The tree is optional and not printed +if partition specified (.e.g "lsblk -o+PKNAME /dev/sda1"), but old +versions print the PKNAME also in this case. + +Addresses: https://github.com/karelzak/util-linux/issues/813 +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + misc-utils/lsblk.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/misc-utils/lsblk.c ++++ b/misc-utils/lsblk.c +@@ -1019,6 +1019,9 @@ + DBG(DEV, ul_debugobj(dev, "add '%s' to scols", dev->name)); + ON_DBG(DEV, if (ul_path_isopen_dirfd(dev->sysfs)) ul_debugobj(dev, " %s ---> is open!", dev->name)); + ++ if (!parent && dev->wholedisk) ++ parent = dev->wholedisk; ++ + /* Do not print device more than one in --list mode */ + if (!(lsblk->flags & LSBLK_TREE) && dev->is_printed) + return;
  10. Download patch debian/util-linux.maintscript

    --- 2.34-0.1/debian/util-linux.maintscript 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/util-linux.maintscript 2019-01-14 13:00:23.000000000 +0000 @@ -0,0 +1 @@ +rm_conffile /etc/cron.weekly/fstrim 2.31.1-0.4ubuntu1~
  11. Download patch debian/patches/series

    --- 2.34-0.1/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/series 2020-02-20 14:09:29.000000000 +0000 @@ -0,0 +1,6 @@ +sulogin-fallback-static-sh.patch +sulogin-lockedpwd.patch +prevent-fstrim-inside-container.patch +umount-completion.patch +libblkid-xfs-log-check-for-reg-xfs-on-more-sectors.patch +lsblk-force-to-print-PKNAME-for-partition.patch
  12. Download patch debian/patches/sulogin-lockedpwd.patch

    --- 2.34-0.1/debian/patches/sulogin-lockedpwd.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.34-0.1ubuntu7/debian/patches/sulogin-lockedpwd.patch 2019-01-14 13:00:23.000000000 +0000 @@ -0,0 +1,18 @@ +Description: Make sure file systems can be fixed on machines with locked root accounts (as Ubuntu does by default). Don't require --force for sulogin. +Author: Martin Pitt <martin.pitt@ubuntu.com> +Bug-Debian: https://bugs.debian.org/326678 + +Index: util-linux-2.33.1-0.1ubuntu1/login-utils/sulogin.c +=================================================================== +--- util-linux-2.33.1-0.1ubuntu1.orig/login-utils/sulogin.c ++++ util-linux-2.33.1-0.1ubuntu1/login-utils/sulogin.c +@@ -982,7 +982,8 @@ + const char *passwd = pwd->pw_passwd; + const char *answer; + int doshell = 0; +- int deny = !opt_e && locked_account_password(pwd->pw_passwd); ++ /* Ubuntu's root account is locked by default allow access without --force */ ++ int deny = 0; + + doprompt(passwd, con, deny); +

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: glibc-doc-reference

glibc-doc-reference (2.30-1ubuntu1) focal; urgency=low * Merge from Debian unstable. Remaining changes: - Revert "Revert: Remove inappropriate joke". -- Steve Langasek <steve.langasek@ubuntu.com> Thu, 13 Feb 2020 12:42:43 -0800

Modifications :
  1. Download patch debian/control

    --- 2.30-1/debian/control 2020-02-08 12:32:02.000000000 +0000 +++ 2.30-1ubuntu1/debian/control 2020-02-09 00:15:53.000000000 +0000 @@ -3,7 +3,8 @@ Section: non-free/doc Priority: optional Build-Depends: debhelper-compat (= 12) Build-Depends-Indep: texinfo, gawk, python3, texlive-binaries, texlive-latex-base -Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org> Uploaders: Clint Adams <schizo@debian.org>, Aurelien Jarno <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net> Standards-Version: 4.5.0 Vcs-Browser: https://salsa.debian.org/glibc-team/glibc-doc-reference
  2. Download patch debian/patches/series

    --- 2.30-1/debian/patches/series 2018-03-03 12:55:45.000000000 +0000 +++ 2.30-1ubuntu1/debian/patches/series 2020-02-09 00:15:53.000000000 +0000 @@ -1,2 +1,3 @@ 01-build-system.diff 02-dont-clutter-main-info-directory.diff +Revert-Revert-Remove-inappropriate-joke.patch
  3. Download patch debian/patches/Revert-Revert-Remove-inappropriate-joke.patch

    --- 2.30-1/debian/patches/Revert-Revert-Remove-inappropriate-joke.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.30-1ubuntu1/debian/patches/Revert-Revert-Remove-inappropriate-joke.patch 2018-11-09 17:11:21.000000000 +0000 @@ -0,0 +1,34 @@ +From 41a9e27758f9ead95ca1c4f545cf24f1e95aa23e Mon Sep 17 00:00:00 2001 +From: Dimitri John Ledkov <xnox@ubuntu.com> +Date: Fri, 9 Nov 2018 17:05:16 +0000 +Subject: [PATCH] Revert "Revert: Remove inappropriate joke" + +This reverts commit ffa81c22a3ac0fb75ad9bf2b1c3cdbf9eafa0bc9. + +Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com> +--- + manual/startup.texi | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/manual/startup.texi b/manual/startup.texi +index 7395d32dd0..21c48cd037 100644 +--- a/manual/startup.texi ++++ b/manual/startup.texi +@@ -1005,14 +1005,6 @@ This function actually terminates the process by raising a + intercept this signal; see @ref{Signal Handling}. + @end deftypefun + +-@c Put in by rms. Don't remove. +-@cartouche +-@strong{Future Change Warning:} Proposed Federal censorship regulations +-may prohibit us from giving you information about the possibility of +-calling this function. We would be required to say that this is not an +-acceptable way of terminating a program. +-@end cartouche +- + @node Termination Internals + @subsection Termination Internals + +-- +2.19.1 +
  1. glibc
  2. util-linux
  3. glibc-doc-reference