From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: glibc 2.29 needs Python Date: Thu, 30 May 2019 12:39:28 +0200 Message-ID: <87ftowrztr.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:34656) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hWIT7-0003nY-1f for guix-devel@gnu.org; Thu, 30 May 2019 06:39:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39819) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hWIT6-0008Mm-Tr for guix-devel@gnu.org; Thu, 30 May 2019 06:39:33 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=34826 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hWIT6-0001bL-4G for guix-devel@gnu.org; Thu, 30 May 2019 06:39:32 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Guix-devel --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello! I started looking at what it would take to upgrade glibc to 2.29 on =E2=80=98core-updates=E2=80=99. Bad news: it depends on Python. I came up with the WIP patch below, but Python eventually fails to build with: --8<---------------cut here---------------start------------->8--- In file included from /tmp/guix-build-python-minimal-3.7.3.drv-0/Python-3.7= .3/Modules/ossaudiodev.c:37:0: /gnu/store/q4i9kq2py260y9ysq1qkjjhpgsmbdcbh-glibc-mesboot-2.16.0/include/sy= s/soundcard.h:1:29: fatal error: linux/soundcard.h: No such file or directo= ry #include ^ compilation terminated. --8<---------------cut here---------------end--------------->8--- Maybe we shouldn=E2=80=99t upgrade glibc in this =E2=80=98core-updates=E2= =80=99 cycle. We need this reduced bootstrap merged! Thoughts? Also, it would be nice to use =E2=80=98python-on-guile=E2=80=99 here, but i= t doesn=E2=80=99t provide a =E2=80=98python=E2=80=99 executable and I don=E2=80=99t know if i= t implements enough to run these scripts. Thanks, Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 9df0dc98d6..ab5bde793b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright =C2=A9 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Cour= t=C3=A8s +;;; Copyright =C2=A9 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovi= c Court=C3=A8s ;;; Copyright =C2=A9 2014, 2019 Andreas Enge ;;; Copyright =C2=A9 2012 Nikita Karetnikov ;;; Copyright =C2=A9 2014, 2015, 2016, 2018 Mark H Weaver @@ -49,6 +49,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages hurd) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages gettext) #:use-module (guix utils) #:use-module (guix packages) @@ -566,15 +567,13 @@ the store.") ;; version 2.28, GNU/Hurd used a different glibc branch. (package (name "glibc") - ;; 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.28") + (version "2.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.= xz")) (sha256 (base32 - "10iha5ynvdj5m62vgpgqbq4cwvc2yhyl2w9yyyjgfxmdmx8h145i")) + "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc= .so @@ -586,13 +585,13 @@ the store.") #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" - "glibc-2.28-git-fixes.patch" "glibc-hidden-visibility-ldconfig.pat= ch" "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch" "glibc-reinstate-prlimit64-fallback.p= atch" - "glibc-hurd-magic-pid.patch" - "glibc-supported-locales.patch")))) + ;; "glibc-hurd-magic-pid.patch" + ;; "glibc-supported-locales.patch" + )))) (build-system gnu-build-system) =20 ;; Glibc's refers to , for instance, so glibc @@ -789,6 +788,7 @@ the store.") ("perl" ,perl) ("bison" ,bison) ("gettext" ,gettext-minimal) + ("python" ,python-minimal) =20 ,@(if (hurd-target?) `(("mig" ,mig) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 8f59087ff4..4395e3dc5f 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright =C2=A9 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Cour= t=C3=A8s +;;; Copyright =C2=A9 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovi= c Court=C3=A8s ;;; Copyright =C2=A9 2014 Andreas Enge ;;; Copyright =C2=A9 2012 Nikita Karetnikov ;;; Copyright =C2=A9 2014, 2015, 2017 Mark H Weaver @@ -44,10 +44,12 @@ #:use-module (gnu packages compression) #:use-module (gnu packages mes) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages linux) #:use-module (gnu packages hurd) #:use-module (gnu packages texinfo) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -1841,6 +1843,36 @@ the bootstrap environment." (current-source-location) #:guile %bootstrap-guile)))) =20 +(define expat-sans-tests + (package + (inherit expat) + (arguments + ;; XXX: Linking 'runtestscpp' fails with things like: + ;; + ;; ld: Dwarf Error: found dwarf version '3789', this reader only ha= ndles version 2 and 3 information. + ;; + ;; Skip tests altogether. + (substitute-keyword-arguments (package-arguments expat) + ((#:configure-flags flags ''()) + ;; Since we're not passing the right -Wl,-rpath flags, build the + ;; static library to avoid RUNPATH validation failure. + `(cons "--disable-shared" ,flags)) + ((#:tests? _ #f) #f))))) + +(define python-boot0 + (let ((python (package + (inherit python-minimal) + (inputs + `(("expat" ,expat-sans-tests))) ;remove OpenSSL, zl= ib, etc. + (arguments + (substitute-keyword-arguments (package-arguments + python-minimal) + ((#:tests? _ #f) #f)))))) + (package-with-bootstrap-guile + (package-with-explicit-inputs python %boot0-inputs + (current-source-location) + #:guile %bootstrap-guile)))) + (define (ld-wrapper-boot0) ;; We need this so binaries on Hurd will have libmachuser and libhurduser ;; in their RUNPATH, otherwise validate-runpath will fail. @@ -1904,7 +1936,8 @@ the bootstrap environment." (native-inputs `(("bison" ,bison-boot0) ("texinfo" ,texinfo-boot0) - ("perl" ,perl-boot0))) + ("perl" ,perl-boot0) + ("python" ,python-boot0))) (inputs `(;; The boot inputs. That includes the bootstrap libc. We don't w= ant ;; it in $CPATH, hence the 'pre-configure' phase above. --=-=-=--