[PATCH core-updates 0/3] glibc 2.27

  • Done
  • quality assurance status badge
Details
3 participants
  • Efraim Flashner
  • Ludovic Courtès
  • Marius Bakke
Owner
unassigned
Submitted by
Marius Bakke
Severity
normal
M
M
Marius Bakke wrote on 20 Mar 2018 11:20
(address . guix-patches@gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20180320102045.31795-1-mbakke@fastmail.com
These patches allow building the world with glibc 2.27. Apart from
"make", packages seem generally happy with this version.

I opted for a unified diff of all post-release updates instead of
individual patches. It is "only" 12k lines so far.

Marius Bakke (3):
gnu: glibc: Update to 2.27.
gnu: make: Fix compatibility with glibc 2.27.
gnu: make: End phase on #t.

gnu/local.mk | 3 +
gnu/packages/base.scm | 60 +-
gnu/packages/commencement.scm | 3 +-
gnu/packages/patches/glibc-2.27-git-fixes.patch | 12765 +++++++++++++++++++
.../patches/glibc-hidden-visibility-ldconfig.patch | 16 +
gnu/packages/patches/make-glibc-compat.patch | 52 +
6 files changed, 12875 insertions(+), 24 deletions(-)
create mode 100644 gnu/packages/patches/glibc-2.27-git-fixes.patch
create mode 100644 gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch
create mode 100644 gnu/packages/patches/make-glibc-compat.patch

--
2.16.2
M
M
Marius Bakke wrote on 20 Mar 2018 11:24
[PATCH core-updates 1/3] gnu: glibc: Update to 2.27.
(address . 30873@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20180320102419.32286-1-mbakke@fastmail.com
* gnu/packages/base.scm (glibc/linux): Update to 2.27.
[native-inputs]: Add BISON.
[arguments]: Remove deprecated "--enable-add-ons" from #:configure-flags.
Also remove unneeded "libc_cv_ssp=no" and "libcv_ssp_strong=no" flags.
(glibc-2.26): New public variable.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[native-inputs]:
Add BISON-BOOT0.
* gnu/packages/patches/glibc-2.27-git-fixes.patch,
gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch: New files.
* gnu/local.mk (dist_patch_DATA): Register them.
---
gnu/local.mk | 2 +
gnu/packages/base.scm | 49 +-
gnu/packages/commencement.scm | 3 +-
gnu/packages/patches/glibc-2.27-git-fixes.patch | 12765 +++++++++++++++++++
.../patches/glibc-hidden-visibility-ldconfig.patch | 16 +
5 files changed, 12814 insertions(+), 21 deletions(-)
create mode 100644 gnu/packages/patches/glibc-2.27-git-fixes.patch
create mode 100644 gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch

Toggle diff (531 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index a03b482df..2b2684a20 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -715,12 +715,14 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
%D%/packages/patches/glibc-bootstrap-system.patch \
+ %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \
%D%/packages/patches/glibc-memchr-overflow-i686.patch \
%D%/packages/patches/glibc-o-largefile.patch \
%D%/packages/patches/glibc-vectorized-strcspn-guards.patch \
%D%/packages/patches/glibc-versioned-locpath.patch \
+ %D%/packages/patches/glibc-2.27-git-fixes.patch \
%D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \
%D%/packages/patches/glog-gcc-5-demangling.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index c6b21e725..57c7cd514 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -36,6 +36,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages ed)
#:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision)
@@ -538,26 +539,15 @@ store.")
(define-public glibc/linux
(package
(name "glibc")
- ;; Glibc has stable branches that continuously pick fixes for each supported
- ;; release. Unfortunately they do not do point-releases, so we are stuck
- ;; with copying almost all patches, or use a snapshot of the release branch.
- ;;
- ;; This version number corresponds to the output of `git describe` and the
- ;; archive can be generated by checking out the commit ID and running:
- ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz
- ;; See <https://bugs.gnu.org/29406> for details.
- ;;
;; Note: Always use a dot after the minor version since various places rely
;; on "version-major+minor" to determine where locales are found.
- (version "2.26.105-g0890d5379c")
+ (version "2.27")
(source (origin
(method url-fetch)
- (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
- "glibc-" (version-major+minor version) "-"
- (caddr (string-split version #\.)) ".tar.xz"))
+ (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
- "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g"))
+ "0wpwq7gsm7sd6ysidv0z575ckqdg13cr2njyfgrbgh4f65adwwji"))
(snippet
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
;; required on LFS distros to avoid loading the distro's libc.so
@@ -569,6 +559,8 @@ store.")
#t))
(modules '((guix build utils)))
(patches (search-patches "glibc-ldd-x86_64.patch"
+ "glibc-2.27-git-fixes.patch"
+ "glibc-hidden-visibility-ldconfig.patch"
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"))))
(build-system gnu-build-system)
@@ -595,8 +587,7 @@ store.")
(guix build gnu-build-system))
#:configure-flags
- (list "--enable-add-ons"
- "--sysconfdir=/etc"
+ (list "--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
@@ -631,10 +622,7 @@ store.")
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash")
- "/bin/bash")
-
- ;; XXX: Work around "undefined reference to `__stack_chk_guard'".
- "libc_cv_ssp=no" "libc_cv_ssp_strong=no")
+ "/bin/bash"))
#:tests? #f ; XXX
#:phases (modify-phases %standard-phases
@@ -745,6 +733,7 @@ store.")
;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
+ ("bison" ,bison)
("gettext" ,gettext-minimal)))
(native-search-paths
@@ -853,6 +842,26 @@ GLIBC/HURD for a Hurd host"
;; Below are old libc versions, which we use mostly to build locale data in
;; the old format (which the new libc cannot cope with.)
+(define-public glibc-2.26
+ (package
+ (inherit glibc)
+ ;; This version number corresponds to the output of `git describe` and the
+ ;; archive can be generated by checking out the commit ID and running:
+ ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz
+ ;; See <https://bugs.gnu.org/29406> for why this was necessary.
+ (version "2.26.105-g0890d5379c")
+ (source (origin
+ (inherit (package-source glibc))
+ (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
+ "glibc-" (version-major+minor version) "-"
+ (caddr (string-split version #\.)) ".tar.xz"))
+ (sha256
+ (base32
+ "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g"))
+ (patches (search-patches "glibc-ldd-x86_64.patch"
+ "glibc-versioned-locpath.patch"
+ "glibc-allow-kernel-2.6.32.patch"))))))
+
(define-public glibc-2.25
(package
(inherit glibc)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 92766de6e..3a7555b07 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -522,7 +522,8 @@ the bootstrap environment."
#t)))))))
(propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0))))
(native-inputs
- `(("texinfo" ,texinfo-boot0)
+ `(("bison" ,bison-boot0)
+ ("texinfo" ,texinfo-boot0)
("perl" ,perl-boot0)))
(inputs
`(;; The boot inputs. That includes the bootstrap libc. We don't want
diff --git a/gnu/packages/patches/glibc-2.27-git-fixes.patch b/gnu/packages/patches/glibc-2.27-git-fixes.patch
new file mode 100644
index 000000000..56f11138a
--- /dev/null
+++ b/gnu/packages/patches/glibc-2.27-git-fixes.patch
@@ -0,0 +1,12765 @@
+This patch includes all post-release fixes for version 2.27 up to commit
+3b922526415d1af93fe5a0e3caf7e6a790cb1619.
+
+https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.27/master
+
+Generated by "git diff glibc-2.27..release/2.27/master".
+
+diff --git a/ChangeLog b/ChangeLog
+index f3fe2716b2..17075925fa 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,187 @@
++2018-03-16 Rafal Luzynski <digitalfreak@lingonborough.com>
++
++ [BZ #22963]
++ * localedata/locales/cs_CZ (mon): Rename to...
++ (alt_mon): This.
++ (mon): Import from CLDR (genitive case).
++
++2018-03-16 Rafal Luzynski <digitalfreak@lingonborough.com>
++
++ [BZ #22937]
++ * localedata/locales/el_CY (abmon): Rename to...
++ (ab_alt_mon): This.
++ (abmon): Import from CLDR (abbreviated genitive case).
++ * localedata/locales/el_GR (abmon): Rename to...
++ (ab_alt_mon): This.
++ (abmon): Import from CLDR (abbreviated genitive case).
++
++2018-03-16 Rafal Luzynski <digitalfreak@lingonborough.com>
++
++ [BZ #22932]
++ * localedata/locales/lt_LT (abmon): Synchronize with CLDR.
++
++2018-03-16 Robert Buj <robert.buj@gmail.com>
++
++ [BZ #22848]
++ * localedata/locales/ca_ES (abmon): Rename to...
++ (ab_alt_mon): This, then synchronize with CLDR (nominative case).
++ (mon): Rename to...
++ (alt_mon): This.
++ (abmon): Import from CLDR (genitive case, month names preceded by
++ "de" or "d’").
++ (mon): Likewise.
++ (abday): Synchronize with CLDR.
++ (d_t_fmt): Likewise.
++ (d_fmt): Likewise.
++ (am_pm): Likewise.
++
++ (LC_TIME): Improve indentation.
++ (LC_TELEPHONE): Likewise.
++ (LC_NAME): Likewise.
++ (LC_ADDRESS): Likewise.
++
++2018-03-12 Dmitry V. Levin <ldv@altlinux.org>
++
++ * po/pt_BR.po: Update translations.
++
++2018-03-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
++
++ [BZ #21269]
++ * sysdeps/unix/sysv/linux/i386/Makefile (tests): Add tst-bz21269.
++ * sysdeps/unix/sysv/linux/i386/sigaction.c (SET_SA_RESTORER): Clear
++ sa_restorer for vDSO case.
++ * sysdeps/unix/sysv/linux/i386/tst-bz21269.c: New file.
++
++2018-03-03 Andreas Schwab <schwab@linux-m68k.org>
++
++ [BZ #22918]
++ * nss/nsswitch.h (DEFINE_DATABASE): Don't define __nss_*_database.
++ * nss/nsswitch.c (DEFINE_DATABASE): Define __nss_*_database here.
++ * nscd/gai.c (__nss_hosts_database): Readd definition.
++ * posix/tst-rfc3484.c (__nss_hosts_database): Likewise.
++ * posix/tst-rfc3484-3.c (__nss_hosts_database): Likewise.
++ * posix/tst-rfc3484-2.c (__nss_hosts_database): Likewise.
++
++2018-03-01 DJ Delorie <dj@delorie.com>
++
++ [BZ #22342]
++ * nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in
++ key value.
++
++2018-02-26 Dmitry V. Levin <ldv@altlinux.org>
++
++ [BZ #22433]
++ [BZ #22807]
++ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (__ptrace_request): Add
++ PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS,
++ PTRACE_GETVRREGS, PTRACE_SETVRREGS, PTRACE_GETEVRREGS,
++ PTRACE_SETEVRREGS, PTRACE_GETREGS64, PTRACE_SETREGS64,
++ PTRACE_GET_DEBUGREG, PTRACE_SET_DEBUGREG, PTRACE_GETVSRREGS,
++ PTRACE_SETVSRREGS, and PTRACE_SINGLEBLOCK.
++
++2018-02-26 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Undefine Linux
++ macros used in __ptrace_request.
++
++2018-02-21 Mike FABIAN <mfabian@redhat.com>
++
++ [BZ #22517]
++ * localedata/locales/et_EE (LC_COLLATE): add missing “reorder-end”
++
++2018-02-21 Rical Jasan <ricaljasan@pacific.net>
++
++ * io/fcntl.h: Fix a typo in a comment.
++
++2018-02-20 Rical Jasan <ricaljasan@pacific.net>
++
++ * manual/creature.texi (_ISOC99_SOURCE): Update the dated
++ description.
++
++ [BZ #16335]
++ * manual/creature.texi (_POSIX_C_SOURCE): Document special values
++ of 199606L, 200112L, and 200809L.
++ (_XOPEN_SOURCE): Document special values of 600 and 700.
++ (_ISOC11_SOURCE): Document macro.
++ (_ATFILE_SOURCE): Likewise.
++ (_FORTIFY_SOURCE): Likewise.
++
++2018-03-09 Aurelien Jarno <aurelien@aurel32.net>
++
++ [BZ #22919]
++ * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext):
++ Add nop before __startcontext, add explaining comments.
++
++2018-03-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
++
++ [BZ #22926]
++ * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Define
++ empty for __SPE__.
++ * sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision):
++ Do not build hardware transactional code for __SPE__.
++ * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
++ (__lll_trylock_elision): Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
++ (__lll_unlock_elision): Likewise.
++
++2018-02-19 Rical Jasan <ricaljasan@pacific.net>
++
++ [BZ #6889]
++ * manual/filesys.texi (get_current_dir_name): Clarify behaviour.
++
++2018-02-16 Rical Jasan <ricaljasan@pacific.net>
++
++ * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun
++ syntax.
++
++2018-02-09 Rical Jasan <ricaljasan@pacific.net>
++
++ * manual/creature.texi: Convert references to gcc.info to gcc.
++ * manual/stdio.texi: Likewise.
++ * manual/string.texi: Likewise.
++
++2018-02-18 Aurelien Jarno <aurelien@aurel32.net>
++
++ [BZ #22818]
++ * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access
++ the GLIBC_2.1 version.
++
++2018-02-02 Sean McKean <smckean83@gmail.com>
++
++ [BZ #22735]
++ * time/time.h (clock): Reference CLOCKS_PER_SEC in comment.
++
++2018-02-10 Dmitry V. Levin <ldv@altlinux.org>
++
++ [BZ #22433]
++ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request):
++ Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS,
++ and PTRACE_SETHBPREGS.
++
++2018-02-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
++
++ * sysdeps/sh/libm-test-ulps: Update.
++
++2018-02-09 DJ Delorie <dj@redhat.com>
++
++ [BZ #22827]
++ * sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use
++ 64-bit ELF type for 64-bit ELF objects.
++
++2018-02-07 Igor Gnatenko <ignatenko@redhat.com>
++
++ [BZ #22797]
++ * sysdeps/unix/sysv/linux/bits/mman-shared.h (pkey_get): Add
++ missing second underscore to parameter name.
++
++2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
++
++ [BZ #22638]
++ * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of
++ SHARED.
++ * sysdeps/sparc/sparc64/start.S (_start): Likewise.
++
+ 2018-02-01 Dmitry V. Levin <ldv@altlinux.org>
+
+ * version.h (RELEASE): Set to "stable".
+@@ -710,7 +894,9 @@
+ 2018-01-18 Arjun Shankar <arjun@redhat.com>
+
+ [BZ #22343]
++ [BZ #22774]
+ CVE-2018-6485
++ CVE-2018-6551
+ * malloc/malloc.c (checked_request2size): call REQUEST_OUT_OF_RANGE
+ after padding.
+ (_int_memalign): check for integer overflow before calling
+diff --git a/NEWS b/NEWS
+index a71c1038a8..4749f5f432 100644
+--- a/NEWS
++++ b/NEWS
+@@ -5,6 +5,36 @@ See the end for copying conditions.
+ Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
+ using `glibc' in the "product" field.
+
++Version 2.27.1
++
++Major new features:
++
++* Nominative and genitive month names are now supported for the Catalan and
++ Czech languages. The Catalan and Greek languages now support abbreviated
++ alternative month names.
++
++The following bugs are resolved with this release:
++
++ [6889] 'PWD' mentioned but not specified
++ [16335] Feature test macro documentation incomplete and out of date
++ [21269] i386 sigaction sa_restorer handling is wrong
++ [22342] NSCD not properly caching netgroup
++ [22638] sparc: static binaries are broken if glibc is built by gcc
++ configured with --enable-default-pie
++ [22735] Misleading typo in time.h source comment regarding CLOCKS_PER_SECOND
++ [22797] Linux: use reserved name __key in pkey_get
++ [22807] PTRACE_* constants missing for powerpc
++ [22818] posix/tst-glob_lstat_compat failure on alpha
++ [22827] RISC-V ELF64 parser mis-reads flag in ldconfig
++ [22848] ca_ES: update date definitions from CLDR
++ [22918] multiple common of `__nss_shadow_database'
++ [22919] sparc32: backtrace yields infinite backtrace with makecontext
++ [22926] FTBFS on powerpcspe
++ [22932] lt_LT: Update of abbreviated month names from CLDR required
++ [22937] Greek (el_GR, el_CY) locales actually need ab_alt_mon
++ [22963] cs_CZ: Add alternative month names
++
++
+ Version 2.27
+
+ Major new features:
+@@ -262,6 +292,10 @@ Security related changes:
+ an object size near the value of SIZE_MAX, would return a pointer to a
+ buffer which is too small, instead of NULL. Reported by Jakub Wilk.
+
++ CVE-2018-6551: The malloc function, when called with an object size near
++ the value of SIZE_MAX, would return a pointer to a buffer which is too
++ small, instead of NULL.
++
+ The following bugs are resolved with this release:
+
+ [866] glob: glob should match dangling symlinks
+diff --git a/io/fcntl.h b/io/fcntl.h
+index 3d239e8f09..69a4394191 100644
+--- a/io/fcntl.h
++++ b/io/fcntl.h
+@@ -139,7 +139,7 @@ typedef __pid_t pid_t;
+ # define SEEK_END 2 /* Seek from end of file. */
+ #endif /* XPG */
+
+-/* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EASSESS
++/* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS
+ is meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to
+ unlinkat. The two functions do completely different things and therefore,
+ the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to
+diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES
+index 914c066dab..f0d744d537 100644
+--- a/localedata/locales/ca_ES
++++ b/localedata/locales/ca_ES
+@@ -106,36 +106,67 @@ grouping 0;0
+ END LC_NUMERIC
+
+ LC_TIME
+-abday "dg";"dl";"dt";"dc";"dj";"dv";"ds"
+-day "diumenge";/
+- "dilluns";/
+- "dimarts";/
+- "dimecres";/
+- "dijous";/
+- "divendres";/
+- "dissabte"
+-abmon "gen";"feb";/
+- "mar";"abr";/
+- "mai";"jun";/
+- "jul";"ago";/
+- "set";"oct";/
+- "nov";"des"
+-mon "gener";/
+- "febrer";/
+- "mar<U00E7>";/
+- "abril";/
+- "maig";/
+- "juny";/
+- "juliol";/
+- "agost";/
+- "setembre";/
+- "octubre";/
+- "novembre";/
+- "desembre"
+-d_t_fmt "%a %d %b %Y %T %Z"
+-d_fmt "%d//%m//%y"
+-t_fmt "%T"
+-am_pm "";""
++abday "dg.";"dl.";"dt.";"dc.";"dj.";"dv.";"ds."
++day "diumenge";/
++ "dilluns";/
++ "dimarts";/
++ "dimecres";/
++ "dijous";/
++ "divendres";/
++ "dissabte"
++ab_alt_mon "gen.";/
++ "febr.";/
++ "mar<U00E7>";/
++ "abr.";/
++ "maig";/
++ "juny";/
++ "jul.";/
++ "ag.";/
++ "set.";/
++ "oct.";/
++ "nov.";/
++ "des."
++abmon "de gen.";/
++ "de febr.";/
++ "de mar<U00E7>";/
++ "d<U2019>abr.";/
++ "de maig";/
++ "de juny";/
++ "de jul.";/
++ "d<U2019>ag.";/
++ "de set.";/
++ "d<U2019>oct.";/
++ "de nov.";/
++ "de des."
++alt_mon "gener";/
++ "febrer";/
++ "mar<U00E7>";/
++ "abril";/
++ "maig";/
++ "juny";/
++ "juliol";/
++ "agost";/
++ "setembre";/
++ "octubre";/
++ "novembre";/
++ "desembre"
++mon "de gener";/
++ "de febrer";/
++ "de mar<U00E7>";/
++ "d<U2019>abril";/
++ "de maig";/
++ "de juny";/
++ "de juliol";/
++ "d<U2019>agost";/
++ "de setembre";/
++ "d<U2019>octubre";/
++ "de novembre";/
++ "de desembre"
++d_t_fmt "%A, %-d %B de %Y, %T %Z"
++d_fmt "%-d//%-m//%y"
++t_fmt "%T"
++am_pm "a. m.";/
++ "p. m."
+ t_fmt_ampm ""
+ week 7;19971130;4
+ first_weekday 2
+@@ -146,9 +177,9 @@ copy "i18n"
+ END LC_PAPER
+
+ LC_TELEPHONE
+-tel_int_fmt "+%c %a %l"
+-int_prefix "34"
+-int_select "00"
++te
This message was truncated. Download the full message here.
M
M
Marius Bakke wrote on 20 Mar 2018 11:24
[PATCH core-updates 3/3] gnu: make: End phase on #t.
(address . 30873@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20180320102419.32286-3-mbakke@fastmail.com
* gnu/packages/base.scm (gnu-make)[arguments]: Add #t in 'set-default-shell' phase.
---
gnu/packages/base.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index a1aca3ae6..7b67f147b 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -405,7 +405,8 @@ functionality beyond that which is outlined in the POSIX standard.")
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
- bash)))))))))
+ bash)))
+ #t))))))
(synopsis "Remake files automatically")
(description
"Make is a program that is used to control the production of
--
2.16.2
M
M
Marius Bakke wrote on 20 Mar 2018 11:24
[PATCH core-updates 2/3] gnu: make: Fix compatibility with glibc 2.27.
(address . 30873@debbugs.gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
20180320102419.32286-2-mbakke@fastmail.com
* gnu/packages/patches/make-glibc-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (gnu-make)[source](patches): Use it.
---
gnu/local.mk | 1 +
gnu/packages/base.scm | 8 +++--
gnu/packages/patches/make-glibc-compat.patch | 52 ++++++++++++++++++++++++++++
3 files changed, 59 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/make-glibc-compat.patch

Toggle diff (96 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 2b2684a20..0055192a7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -893,6 +893,7 @@ dist_patch_DATA = \
%D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/lxsession-use-gapplication.patch \
%D%/packages/patches/mailutils-uninitialized-memory.patch \
+ %D%/packages/patches/make-glibc-compat.patch \
%D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 57c7cd514..a1aca3ae6 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -386,13 +386,17 @@ functionality beyond that which is outlined in the POSIX standard.")
(sha256
(base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))
- (patches (search-patches "make-impure-dirs.patch"))))
+ (patches (search-patches "make-impure-dirs.patch"
+ "make-glibc-compat.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile
(inputs `(("guile" ,guile-2.0)))
(outputs '("out" "debug"))
(arguments
- '(#:phases
+ '(;; Work around faulty glob detection with glibc 2.27. See
+ ;; <https://lists.nongnu.org/archive/html/bug-make/2017-11/msg00027.html>.
+ #:configure-flags '("make_cv_sys_gnu_glob=yes")
+ #:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
diff --git a/gnu/packages/patches/make-glibc-compat.patch b/gnu/packages/patches/make-glibc-compat.patch
new file mode 100644
index 000000000..9ce7f2b5b
--- /dev/null
+++ b/gnu/packages/patches/make-glibc-compat.patch
@@ -0,0 +1,52 @@
+Work with the new glob interface in glibc 2.27.
+
+Taken from this upstream commit:
+https://git.savannah.gnu.org/cgit/make.git/commit/?id=193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4
+
+diff --git a/dir.c b/dir.c
+index adbb8a9..c343e4c 100644
+--- a/dir.c
++++ b/dir.c
+@@ -1299,15 +1299,40 @@ local_stat (const char *path, struct stat *buf)
+ }
+ #endif
+
++/* Similarly for lstat. */
++#if !defined(lstat) && !defined(WINDOWS32) || defined(VMS)
++# ifndef VMS
++# ifndef HAVE_SYS_STAT_H
++int lstat (const char *path, struct stat *sbuf);
++# endif
++# else
++ /* We are done with the fake lstat. Go back to the real lstat */
++# ifdef lstat
++# undef lstat
++# endif
++# endif
++# define local_lstat lstat
++#elif defined(WINDOWS32)
++/* Windows doesn't support lstat(). */
++# define local_lstat local_stat
++#else
++static int
++local_lstat (const char *path, struct stat *buf)
++{
++ int e;
++ EINTRLOOP (e, lstat (path, buf));
++ return e;
++}
++#endif
++
+ void
+ dir_setup_glob (glob_t *gl)
+ {
+ gl->gl_opendir = open_dirstream;
+ gl->gl_readdir = read_dirstream;
+ gl->gl_closedir = free;
++ gl->gl_lstat = local_lstat;
+ gl->gl_stat = local_stat;
+- /* We don't bother setting gl_lstat, since glob never calls it.
+- The slot is only there for compatibility with 4.4 BSD. */
+ }
+
+ void
--
2.16.2
L
L
Ludovic Courtès wrote on 20 Mar 2018 14:18
Re: [bug#30873] [PATCH core-updates 1/3] gnu: glibc: Update to 2.27.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 30873@debbugs.gnu.org)
87r2oe6g36.fsf@gnu.org
Hello!

Thanks for working on this update! Crazy that it turned out to be this
difficult.

Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (9 lines)
> +++ b/gnu/packages/patches/glibc-2.27-git-fixes.patch
> @@ -0,0 +1,12765 @@
> +This patch includes all post-release fixes for version 2.27 up to commit
> +3b922526415d1af93fe5a0e3caf7e6a790cb1619.
> +
> +https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.27/master
> +
> +Generated by "git diff glibc-2.27..release/2.27/master".

In general I’d be in favor of not doing that, unless the fixes are
important (build issue, security issue, etc.), as was the case when we
packaged 2.26; and, if there are important fixes, I’d rather extract
them from the whole patch stream, and skip unrelated changes.

For example, I’m sure we can live without the locale updates that show
up in this patch set. :-)

Do you know which of these patches are really needed?

Thoughts?

Ludo’.
L
L
Ludovic Courtès wrote on 20 Mar 2018 14:19
Re: [bug#30873] [PATCH core-updates 2/3] gnu: make: Fix compatibility with glibc 2.27.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 30873@debbugs.gnu.org)
87muz26g1b.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (4 lines)
> * gnu/packages/patches/make-glibc-compat.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it.
> * gnu/packages/base.scm (gnu-make)[source](patches): Use it.

LGTM!
L
L
Ludovic Courtès wrote on 20 Mar 2018 14:19
Re: [bug#30873] [PATCH core-updates 3/3] gnu: make: End phase on #t.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 30873@debbugs.gnu.org)
87in9q6g0x.fsf@gnu.org
Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (2 lines)
> * gnu/packages/base.scm (gnu-make)[arguments]: Add #t in 'set-default-shell' phase.

Alright! :-)
M
M
Marius Bakke wrote on 20 Mar 2018 17:54
Re: [bug#30873] [PATCH core-updates 1/3] gnu: glibc: Update to 2.27.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 30873@debbugs.gnu.org)
877eq6adrn.fsf@fastmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (28 lines)
> Hello!
>
> Thanks for working on this update! Crazy that it turned out to be this
> difficult.
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> +++ b/gnu/packages/patches/glibc-2.27-git-fixes.patch
>> @@ -0,0 +1,12765 @@
>> +This patch includes all post-release fixes for version 2.27 up to commit
>> +3b922526415d1af93fe5a0e3caf7e6a790cb1619.
>> +
>> +https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.27/master
>> +
>> +Generated by "git diff glibc-2.27..release/2.27/master".
>
> In general I’d be in favor of not doing that, unless the fixes are
> important (build issue, security issue, etc.), as was the case when we
> packaged 2.26; and, if there are important fixes, I’d rather extract
> them from the whole patch stream, and skip unrelated changes.
>
> For example, I’m sure we can live without the locale updates that show
> up in this patch set. :-)
>
> Do you know which of these patches are really needed?
>
> Thoughts?

Hello!

I was hoping you'd comment on this ;-)

There are actually not a lot of high severity fixes in 2.27 yet. I
opted for this mostly as a proof-of-concept for a couple of reasons.

* Giving the GNU C Library special treatment is OK IMO.
* In 2.26, cherry-picking individual fixes was not feasible.
** However, using the same method, the 2.26 diff is "only" 27k lines/904k.

It does mean growing the Guix repository up to ~1MiB every six months,
but in the large scale of things, it doesn't seem that bad.

Yet, I'm not sure if it makes sense to do this now. There are only a
handful of "important" commits on 2.27 so far. Additionally, the 2.27
release manager has said he would do 2.27.1 once (if?) enough patches
has piled up, so maybe there is hope for the future.

The question is which do we pick? Portability fixes for arches we don't
(yet) support? Some of the locale fixes seem genuine, and not just
typos, e.g.:


Actually, now that I've scoured the history, reverting this one commit
brings the patch from 12921 to 2391 lines:

~2k isn't too bad IMO. Yet, I've attached a patch with only the
following commits, and without NEWS and ChangeLog updates. It's 547
lines, which is more palatable; but may grow longer than the unified
approach since it includes git commit logs.

56170e064e2b21ce204f0817733e92f1730541ea
516fa6080481a1433c173320b1c1432868e1e38a
f36553bf6a4f69070f99badbdab5802b43e6e211
7c6304182b9f422b782ace1cdd3efbde056aec36
78a90c2f74a2012dd3eff302189e47ff6779a757
1e52d8e65a58c49a48549053a1b89c06240e0c6c

But, we risk missing important commits this way, and may cause headaches
for people wanting to port Guix to a new architecture. And the approach
doesn't really scale for branches approaching ~100 commits.

Regardless, here is a patch with just the above commits. Let me know if
you spot others in the history that look important. WDYT?

I suppose we'll have to revisit this with every 'core-updates'. :-)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlqxPMwACgkQoqBt8qM6
VPolLQgAlfebdovG+Swfd/ALvhoYBIAWt2Jkl77PB7UvoPgnQKU4R5SZ3r2sqe7f
DErLf82FMmnQ9BsLgLC7UQWlsZrXtFubo0Ug/VHVRHqMpK8zqEIv2nJdoE7ezg/x
nKaUvYDqa2fUCvooQN4KiJ3/Svy4LwxL1/aYPliDqh+3OPeV1+EGtX7HiHvc03ix
BAwPjTA7ixRiCX5bsruGTaWmHEr+fBtw2M3FxfJ/AJZTJljIysuEh4OzlqQa1efP
gFechABJ59BmzuTVH9g5P7Xh9iGPHFNNAXDozZ9LVKfQ3bIQjg/ALWeubWJcy2mY
NUhNxAHeJOmaikH6d4yRepUgeYDCaw==
=QHCr
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 21 Mar 2018 19:26
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 30873@debbugs.gnu.org)
87bmfhgu9a.fsf@gnu.org
Heya Marius!

Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (3 lines)
> There are actually not a lot of high severity fixes in 2.27 yet. I
> opted for this mostly as a proof-of-concept for a couple of reasons.

Good. :-)

Toggle quote (7 lines)
> The question is which do we pick? Portability fixes for arches we don't
> (yet) support? Some of the locale fixes seem genuine, and not just
> typos, e.g.:
>
> * https://sourceware.org/bugzilla/show_bug.cgi?id=22517
> * https://sourceware.org/bugzilla/show_bug.cgi?id=22848

[...]

Toggle quote (7 lines)
> But, we risk missing important commits this way, and may cause headaches
> for people wanting to port Guix to a new architecture. And the approach
> doesn't really scale for branches approaching ~100 commits.
>
> Regardless, here is a patch with just the above commits. Let me know if
> you spot others in the history that look important. WDYT?

“Which ones do we pick” summarizes the problem, I think. It’s
upstream’s job to pick a set of changes and declare a new release. It
seems to me that we’re kinda doing the glibc release manager’s job here,
except we lack insight compared to them: it’s harder for us to judge
which changes are critical, which changes are just the beginning of
broader modifications/fixes, etc.

I’d be willing to just use upstream’s release. It has bugs, no doubts,
but the next release will have its own bugs too. :-) Furthermore,
SONAMEs and symbol versioning is quite critical, but it’s usually done
under the assumption that people use releases, not intermediate
snapshots.

I understand that glibc’s 2.27 branch is stable, contains nothing but
bug fixes, and in that sense is rather safe. Still…

WDYT?

BTW, what about emailing the libc people to add you to the list of
I think it could be useful.

Thanks!

Ludo’.
E
E
Efraim Flashner wrote on 22 Mar 2018 13:53
glibc-2.27 patches
(address . 30873@debbugs.gnu.org)
20180322125307.GF20703@macbook41
I mentioned it on IRC but I figured I should send it by email too. With
the update of binutils to 2.30 aarch64 needs the patch mentioned for
glibc-2.26/2.27, and everything builds (as far as I built) nicely with
it.

--
Efraim Flashner <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAlqzpzMACgkQQarn3Mo9
g1FTKxAAuXCAyH4BBiXFkeWotNN/xK6z5gvlojZrWljJ9yNQnezK0Da6CsdEvkxX
Cetlv37jNAlMB6BiiWB5jRvj+2jObJWkNPR67RkFRkDwjb/wm5czSklWtlqHImV+
Bjsrn6AD7PtoXodGzayemALtzlI/QQv1H6xecyPvli/qapnsljnRnzDONV9uESr1
nqetsrHYnTy4NqvS70oS3wFuiUypvdfnhO5HvfwxeInq5rZvLEMzuuFIBW/kDpE0
ObYoGJG3izXuebajvnoBpRSdZBjFKJslD8u8jGIrr4K9ahWX5F7EE+wFeL77H7Oe
arNFULZQrc2/BpgtyXljR3D9F+G8DC1hjPgJkGX9QDT6SdlnrH5iY2F1UD6pcr1v
ze7M5HJODdV1cj8jBhe0I25BgASQK0nUB6UNyo3HMgpzpndwzd1lFE2nRvPATuML
/Glbzp4Khiimu6qDJHEoT+N7ENHYWMKfO+Eeii93pBKwQVJMv0cuoEIpn6ex9ccD
9v1HOHGhqSwok/ZdcJWAma7gxyJIDoZCfT/NQh7frYM7Is4mFbh3GzHTsZNrYJS0
ZjfwiCYW+GMNpD2r5n9oK7c/2Y5p9ElEQaLkeo5mQZE8qMIERXjs68jhHfOfQt70
1oe/P8UAXKvHljkbkL3xar/hVdSDKWRbfj1IsU50yLZYCLHTSgE=
=h5du
-----END PGP SIGNATURE-----


M
M
Marius Bakke wrote on 22 Mar 2018 19:36
Re: [bug#30873] [PATCH core-updates 1/3] gnu: glibc: Update to 2.27.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 30873-done@debbugs.gnu.org)
87fu4sklds.fsf@fastmail.com
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (43 lines)
> Heya Marius!
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> There are actually not a lot of high severity fixes in 2.27 yet. I
>> opted for this mostly as a proof-of-concept for a couple of reasons.
>
> Good. :-)
>
>> The question is which do we pick? Portability fixes for arches we don't
>> (yet) support? Some of the locale fixes seem genuine, and not just
>> typos, e.g.:
>>
>> * https://sourceware.org/bugzilla/show_bug.cgi?id=22517
>> * https://sourceware.org/bugzilla/show_bug.cgi?id=22848
>
> [...]
>
>> But, we risk missing important commits this way, and may cause headaches
>> for people wanting to port Guix to a new architecture. And the approach
>> doesn't really scale for branches approaching ~100 commits.
>>
>> Regardless, here is a patch with just the above commits. Let me know if
>> you spot others in the history that look important. WDYT?
>
> “Which ones do we pick” summarizes the problem, I think. It’s
> upstream’s job to pick a set of changes and declare a new release. It
> seems to me that we’re kinda doing the glibc release manager’s job here,
> except we lack insight compared to them: it’s harder for us to judge
> which changes are critical, which changes are just the beginning of
> broader modifications/fixes, etc.
>
> I’d be willing to just use upstream’s release. It has bugs, no doubts,
> but the next release will have its own bugs too. :-) Furthermore,
> SONAMEs and symbol versioning is quite critical, but it’s usually done
> under the assumption that people use releases, not intermediate
> snapshots.
>
> I understand that glibc’s 2.27 branch is stable, contains nothing but
> bug fixes, and in that sense is rather safe. Still…
>
> WDYT?

I pushed the patch with the cherry-picked fixes. I'd rather not
knowingly break "date" on some locales, or introduce runtime issues on
i686. But I do agree that these things should really be upstreams job.

All the distros I've checked take the entire branch, so we are the "odd
kid out". But I guess that's nothing new. ;-)

Toggle quote (4 lines)
> BTW, what about emailing the libc people to add you to the list of
> distro maintainers at <https://sourceware.org/glibc/wiki/MAINTAINERS>?
> I think it could be useful.

That might be useful indeed. I'll look into it.

I think we're getting ready to build core-updates now. Should we try
starting the 'core' subset on Hydra? Maybe also set a 'freeze' date?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlqz978ACgkQoqBt8qM6
VPpu7wf7BtByio+Y7RPRrkIkGCAb0R2CEUADffYj4j0Lo+jSiUWmuez1cDrWQiLV
eGbIHPLHq1Gr1EKpMCwVd8olh08+yAchuQjIZvNQ1Yi1HVi21IIi+QYU4Q21k0NX
qI0JIeLK7YJgkX0VR7UGTk4b7yP0ae7+9E9oc62hlzFuU48mhLcENsaQVPwIGkbx
hhV4J93YOmstuDo9EZBrvzTdX1d0boh4Jj6jyQdtUP0m5BmWar+PFvU7o4YdK0Hp
BH4Q8F4nXZt95NKBIgNfozSKNUszThhL0c9o+8zNBP9k0jld82A/SS4TjEE9wEt+
McxZ1Xq8XpVcklSqHPSgub9iUaNGjg==
=SJKp
-----END PGP SIGNATURE-----

Closed
L
L
Ludovic Courtès wrote on 23 Mar 2018 10:20
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 30873-done@debbugs.gnu.org)
87h8p7kv15.fsf@gnu.org
Hello Marius,

Marius Bakke <mbakke@fastmail.com> skribis:

Toggle quote (2 lines)
> Ludovic Courtès <ludo@gnu.org> writes:

[...]

Toggle quote (22 lines)
>> “Which ones do we pick” summarizes the problem, I think. It’s
>> upstream’s job to pick a set of changes and declare a new release. It
>> seems to me that we’re kinda doing the glibc release manager’s job here,
>> except we lack insight compared to them: it’s harder for us to judge
>> which changes are critical, which changes are just the beginning of
>> broader modifications/fixes, etc.
>>
>> I’d be willing to just use upstream’s release. It has bugs, no doubts,
>> but the next release will have its own bugs too. :-) Furthermore,
>> SONAMEs and symbol versioning is quite critical, but it’s usually done
>> under the assumption that people use releases, not intermediate
>> snapshots.
>>
>> I understand that glibc’s 2.27 branch is stable, contains nothing but
>> bug fixes, and in that sense is rather safe. Still…
>>
>> WDYT?
>
> I pushed the patch with the cherry-picked fixes. I'd rather not
> knowingly break "date" on some locales, or introduce runtime issues on
> i686. But I do agree that these things should really be upstreams job.

Great, makes sense!

Toggle quote (3 lines)
> All the distros I've checked take the entire branch, so we are the "odd
> kid out". But I guess that's nothing new. ;-)

Heheh. :-)

Toggle quote (9 lines)
>> BTW, what about emailing the libc people to add you to the list of
>> distro maintainers at <https://sourceware.org/glibc/wiki/MAINTAINERS>?
>> I think it could be useful.
>
> That might be useful indeed. I'll look into it.
>
> I think we're getting ready to build core-updates now. Should we try
> starting the 'core' subset on Hydra? Maybe also set a 'freeze' date?

Note that berlin has been building the ‘core’ subset for a while
already. With berlin it’s harder to see what the status is, currently,
though ‘guix weather’ and “make assert-*” should help.

As for the freeze date, it could be within a couple of days if we see
that there’s no issue with the ‘core’ subset.

Thoughts? Do you want to be the time keeper or should it be someone
else? :-)

Ludo’.
Closed
?