GNU bug report logs - #30537
glibc 2.26 refuses to run on CentOS 6.8

Previous Next

Package: guix;

Reported by: Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>

Date: Mon, 19 Feb 2018 18:47:02 UTC

Severity: serious

Tags: fixed

Done: Ricardo Wurmus <rekado <at> elephly.net>

Bug is archived. No further changes may be made.

Full log


Message #41 received at 30537 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>
Cc: guix-devel <at> gnu.org, 30537 <at> debbugs.gnu.org
Subject: Re: bug#30537: glibc 2.26 refuses to run on CentOS 6.8
Date: Wed, 21 Feb 2018 18:12:31 -0500
Hi Ricardo,

Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de> writes:

> Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de> writes:
>
>> Here’s a patch to graft the glibc to apply the patch to allow the 2.6.32
>> kernel.  I’m going to apply this at work now.
>
> That patch had a couple of problems.  Here’s a new version.

[...]

> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> index b2c1d232f..111bbbcec 100644
> --- a/gnu/packages/base.scm
> +++ b/gnu/packages/base.scm
> @@ -12,6 +12,7 @@
>  ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe <at> gmail.com>
>  ;;; Copyright © 2017 Marius Bakke <mbakke <at> fastmail.com>
>  ;;; Copyright © 2017 Eric Bavier <bavier <at> member.fsf.org>
> +;;; Copyright © 2018 Ricardo Wurmus <rekado <at> elephly.net>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -537,6 +538,7 @@ store.")
>     ;; 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")
> +   (replacement glibc-2.26-patched)
>     (source (origin
>              (method url-fetch)
>              (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
> @@ -839,10 +841,20 @@ 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 glibc-2.26-patched
> +  (package
> +    (inherit glibc)
> +    (replacement #f)
> +    (source (origin
> +              (inherit (package-source glibc))
> +              (patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch")
> +                             (origin-patches (package-source glibc))))))))
> +
>  (define-public glibc-2.25
>    (package
>      (inherit glibc)
>      (version "2.25")
> +    (replacement #f)
>      (source (origin
>                (inherit (package-source glibc))
>                (uri (string-append "mirror://gnu/glibc/glibc-"
> @@ -862,6 +874,7 @@ GLIBC/HURD for a Hurd host"
>    (package
>      (inherit glibc)
>      (version "2.24")
> +    (replacement #f)
>      (source (origin
>                (inherit (package-source glibc))
>                (uri (string-append "mirror://gnu/glibc/glibc-"
> @@ -882,6 +895,7 @@ GLIBC/HURD for a Hurd host"
>    (package
>      (inherit glibc)
>      (version "2.23")
> +    (replacement #f)
>      (source (origin
>                (inherit (package-source glibc))
>                (uri (string-append "mirror://gnu/glibc/glibc-"
> @@ -905,6 +919,7 @@ GLIBC/HURD for a Hurd host"
>    (package
>      (inherit glibc)
>      (version "2.22")
> +    (replacement #f)
>      (source (origin
>                (inherit (package-source glibc))
>                (uri (string-append "mirror://gnu/glibc/glibc-"

These (replacement #f) fields should not be needed.  'replacement' is
now an 'innate' field of the package record type, which means that it is
not inherited.

> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index 7286e954c..db43691fd 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -4,6 +4,7 @@
>  ;;; Copyright © 2012 Nikita Karetnikov <nikita <at> karetnikov.org>
>  ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw <at> netris.org>
>  ;;; Copyright © 2017, 2018 Efraim Flashner <efraim <at> flashner.co.il>
> +;;; Copyright © 2018 Ricardo Wurmus <rekado <at> elephly.net>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -486,7 +487,7 @@ the bootstrap environment."
>    ;; built just below; the only difference is that this one uses the
>    ;; bootstrap Bash.
>    (package-with-bootstrap-guile
> -   (package (inherit glibc)
> +   (package/inherit glibc
>       (name "glibc-intermediate")
>       (arguments
>        `(#:guile ,%bootstrap-guile
> @@ -664,7 +665,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
>  
>  (define glibc-final
>    ;; The final glibc, which embeds the statically-linked Bash built above.
> -  (package (inherit glibc-final-with-bootstrap-bash)
> +  (package/inherit glibc-final-with-bootstrap-bash
>      (name "glibc")
>      (inputs `(("static-bash" ,static-bash-for-glibc)
>                ,@(alist-delete

We seem to be oscillating on the question of whether to graft these
early GLIBCs.  In June 2017, I switched to using 'package/inherit' here
in commit 13f7f2fd2b208c29361ef2290f55911879a6adf2, and in October those
changes were reverted in commit 848f550f2c105326dc3be4033c8aaf35ec21cde4
by Efraim, although I'm not sure why.

It'll be painful to have *everything* grafted until the next
core-updates cycle, but I suppose it's necessary.

      Thanks,
        Mark




This bug report was last modified 7 years and 71 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.