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