GNU bug report logs - #34358
[PATCH] gnu: python@2.7: Honor NIX_STORE.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: Caleb Ristvedt <caleb.ristvedt@HIDDEN>; Keywords: patch; dated Thu, 7 Feb 2019 00:08:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 7 Feb 2019 00:07:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 06 19:07:49 2019
Received: from localhost ([127.0.0.1]:36383 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1grXEG-0008Sh-GV
	for submit <at> debbugs.gnu.org; Wed, 06 Feb 2019 19:07:49 -0500
Received: from eggs.gnu.org ([209.51.188.92]:41729)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <caleb.ristvedt@HIDDEN>) id 1grXED-0008ST-NX
 for submit <at> debbugs.gnu.org; Wed, 06 Feb 2019 19:07:42 -0500
Received: from lists.gnu.org ([209.51.188.17]:34122)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <caleb.ristvedt@HIDDEN>)
 id 1grXE8-0004ek-FE
 for submit <at> debbugs.gnu.org; Wed, 06 Feb 2019 19:07:36 -0500
Received: from eggs.gnu.org ([209.51.188.92]:56103)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <caleb.ristvedt@HIDDEN>) id 1grXE6-00011u-NI
 for guix-patches@HIDDEN; Wed, 06 Feb 2019 19:07:36 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled
 version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <caleb.ristvedt@HIDDEN>) id 1grXE5-0004dV-3j
 for guix-patches@HIDDEN; Wed, 06 Feb 2019 19:07:34 -0500
Received: from mail-yw1-xc2b.google.com ([2607:f8b0:4864:20::c2b]:45186)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <caleb.ristvedt@HIDDEN>)
 id 1grXE4-0004cH-La
 for guix-patches@HIDDEN; Wed, 06 Feb 2019 19:07:33 -0500
Received: by mail-yw1-xc2b.google.com with SMTP id d190so3896627ywd.12
 for <guix-patches@HIDDEN>; Wed, 06 Feb 2019 16:07:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=cune-org.20150623.gappssmtp.com; s=20150623;
 h=from:to:subject:references:date:in-reply-to:message-id:user-agent
 :mime-version; bh=zaQYvufedMlPP5Qz88kHNSNWO/GZv64YT7SkUb+795o=;
 b=Q+XP8vTZdlQqdOqGTV3fphzfVxpLUzTsIHrTBMLgaMt5nYDXCm0D4YfmuVMrObHOal
 c+WvhH4uwhO43eXtEvffGisMHTM87PJ4i3k1SQ2lIRNFcuPoxKdKV3yBq7eevK0Cs5fE
 wTWj5yplN/StTNqlzza7AtWMPEydO5VkvXqPFY07K6Y/wjzUEcTaKfbSEDbi/QP3926s
 0wBduopV9CiNDyt6EUtQ4rVwMjrxp09+CJm8A13SO6DnQpMyy6kKMjx/NfkJ5ACxbQvu
 FyYr/MYmv9xvSIaqETVmj0AoHwJsqG+r9J4PpA2cgKwMsbAeRPfK0pKiNd80eITC187P
 wb3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=zaQYvufedMlPP5Qz88kHNSNWO/GZv64YT7SkUb+795o=;
 b=GNZ6i05bO9h6GH/YyUY1p2kD9GHbLcz43BouG1SWxHkO4XX0vaSHGG+I246zLan4ql
 LvIAMLfNRrkIcXGWVe4xKNmentdBojwZaDmJkoG6J22j4CT+MCc3p/eLYciqX0y3974x
 T4A1lY7lUd1m4SPdxdrzA7fuibWpkd97jpURZR/brLzDrnrxIvtzxQYKfr8UMv8tAlBj
 sxPslhoFqh3vb8MQ8G2YpY27J1c4FUgQziNwMoS/d97dt0KUQdwv8f8IwOn70p6VVJ52
 x3wXouHqjmoNhSXaZhgLdisoxdpn35LH3pvasQszW1hQJiEmiX3FPTiOaaEzYVx6xDzk
 k/uw==
X-Gm-Message-State: AHQUAuZ6Sbrqk3IW8enZuxetVko+HYW4JUJbLgtPLfURtS5M7THz4w9n
 d3ndIR0t4pQeppQ8/SD1q1s37A==
X-Google-Smtp-Source: AHgI3IYPQaCkRnLOG7SAqDk0Uo8Sj5uQ0KdnbXHS8MKOcVrgzhLPFkguc04LiHg+d+9KZ/8GmexhRg==
X-Received: by 2002:a81:a48f:: with SMTP id
 b137mr10981730ywh.120.1549498046036; 
 Wed, 06 Feb 2019 16:07:26 -0800 (PST)
Received: from GuixPotato ([208.89.170.37])
 by smtp.gmail.com with ESMTPSA id w70sm7132838yww.76.2019.02.06.16.07.24
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Wed, 06 Feb 2019 16:07:25 -0800 (PST)
From: Caleb Ristvedt <caleb.ristvedt@HIDDEN>
To: guix-patches@HIDDEN, ludo@HIDDEN
Subject: [PATCH] gnu: python@HIDDEN: Honor NIX_STORE.
References: <20190204192241.15758.66035@HIDDEN>
 <20190204192243.A58BA20B45@HIDDEN>
 <87y36vjgee.fsf@HIDDEN>
Date: Wed, 06 Feb 2019 18:07:21 -0600
In-Reply-To: <87y36vjgee.fsf@HIDDEN> ("Ludovic
 \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\=
 \=\?utf-8\?Q\?s\?\= message of "Tue, 05 Feb 2019 00:14:01 +0100")
Message-ID: <87sgx0cvgm.fsf_-_@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-Received-From: 2607:f8b0:4864:20::c2b
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Spam-Score: 0.9 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.1 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> Perhaps in the future you could email guix-patches@HIDDEN for specific
> commits like this one, especially when it=E2=80=99s not strictly related =
to the
> daemon?

...

> Could you send an updated version of the patch?

Here it is!

> ./configure does not generate any patch files based on patch templates,
> and that=E2=80=99s on purpose.  Instead, when we need something like this=
, we
> handle it the way ld-wrapper.in is handled: by doing the substitution
> when creating the derivation.

"When creating the derivation" sounds like it's when the package is lowered
to a derivation, but from what I can see of ld-wrapper in (gnu packages
base) the actual substitution is done when the derivation is built. I
am curious how one would go about doing the substitution when the
package is lowered to a derivation, though. Anyway, for now I'm doing
the substitution at derivation-build-time.

> Last, the patch would need to go to =E2=80=98core-updates=E2=80=99 becaus=
e of the number
> of rebuilds it entails.

Should I mention this somewhere?

Also, I should add that "guix lint" and indent-code.el both want changes
to gnu/packages/python.scm, but not due to changes I made. Should a
separate patch address those?

- reepca


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-gnu-python-2.7-Honor-NIX_STORE.patch
Content-Description: gnu: python@HIDDEN: Honor NIX_STORE.

From 62e9e9a336ab5608405df8114f78c3cbb9dc3a39 Mon Sep 17 00:00:00 2001
From: Caleb Ristvedt <caleb.ristvedt@HIDDEN>
Date: Wed, 30 Jan 2019 17:00:32 -0600
Subject: [PATCH] gnu: python@HIDDEN: Honor NIX_STORE.

Previously various python packages would fail to work unless the store they
were kept in was /gnu/store. This fixes that.

* gnu/packages/patches/python-2.7-site-prefixes.patch.in: New file that causes
  python@HIDDEN to honor NIX_STORE at runtime or, if it isn't set, to use the
  NIX_STORE available when it was built.

* gnu/packages/patches/python-2.7-site-prefixes.patch: Removed.

* gnu/packages/python.scm (python-2.7): generates a patch from
  python-2.7-site-prefixes.patch.in at build-time and applies it.
  (python-3.7): don't apply that patch.
  (python2-minimal): inputs still need to include the patch utility and the
  patch.

* gnu/local.mk: adjust patch name since it's been suffixed with ".in".
---
 gnu/local.mk                                  |  2 +-
 ...atch => python-2.7-site-prefixes.patch.in} |  9 ++++--
 gnu/packages/python.scm                       | 29 ++++++++++++++++---
 3 files changed, 32 insertions(+), 8 deletions(-)
 rename gnu/packages/patches/{python-2.7-site-prefixes.patch => python-2.7-site-prefixes.patch.in} (81%)

diff --git a/gnu/local.mk b/gnu/local.mk
index 57595721cd..af18741a55 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1164,7 +1164,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-2-deterministic-build-info.patch	\
   %D%/packages/patches/python-2.7-adjust-tests.patch		\
   %D%/packages/patches/python-2.7-search-paths.patch		\
-  %D%/packages/patches/python-2.7-site-prefixes.patch		\
+  %D%/packages/patches/python-2.7-site-prefixes.patch.in	\
   %D%/packages/patches/python-2.7-source-date-epoch.patch	\
   %D%/packages/patches/python-3-deterministic-build-info.patch	\
   %D%/packages/patches/python-3-search-paths.patch		\
diff --git a/gnu/packages/patches/python-2.7-site-prefixes.patch b/gnu/packages/patches/python-2.7-site-prefixes.patch.in
similarity index 81%
rename from gnu/packages/patches/python-2.7-site-prefixes.patch
rename to gnu/packages/patches/python-2.7-site-prefixes.patch.in
index 9e3066508f..0ac0da46ce 100644
--- a/gnu/packages/patches/python-2.7-site-prefixes.patch
+++ b/gnu/packages/patches/python-2.7-site-prefixes.patch.in
@@ -5,7 +5,7 @@ site-packages (and .pth files) are searched.
 --- Python-2.7.11/Lib/site.py	2016-10-17 23:44:51.930871644 +0200
 ***************
 *** 65,70 ****
---- 65,82 ----
+--- 65,85 ----
   
   # Prefixes for site-packages; add additional prefixes like /usr/local here
   PREFIXES = [sys.prefix, sys.exec_prefix]
@@ -16,9 +16,12 @@ site-packages (and .pth files) are searched.
 + # This is necessary if the packages are not merged into a single
 + # `site-packages` directory (like when using `guix environment`) but
 + # listed in PYTHONPATH (like when running `guix build`).
++ guix_store = os.getenv("NIX_STORE")
++ if not guix_store:
++     guix_store = '@storedir@'
 + for p in sys.path:
-+     if p.startswith('/gnu/store/'):
-+         PREFIXES.append(p[:p.find('/', 44)]) # find first pathsep after hash
++     if p.startswith(guix_store):
++         PREFIXES.append(p[:p.find('/', 34 + len(guix_store))]) # find first pathsep after hash
 + del p
 + 
   # Enable per user site-packages directory
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 1c4ea720f1..7c53e6a4ef 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -76,6 +76,7 @@
 (define-module (gnu packages python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages dbm)
@@ -106,7 +107,6 @@
         "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92"))
       (patches (search-patches "python-2.7-search-paths.patch"
                                "python-2-deterministic-build-info.patch"
-                               "python-2.7-site-prefixes.patch"
                                "python-2.7-source-date-epoch.patch"
                                "python-2.7-adjust-tests.patch"))
       (modules '((guix build utils)))
@@ -138,7 +138,10 @@
                             (assoc-ref %outputs "out") "/lib"))
 
         #:modules ((ice-9 ftw) (ice-9 match)
-                   (guix build utils) (guix build gnu-build-system))
+                   (guix build utils) (guix build gnu-build-system)
+                   (guix config))
+        #:imported-modules ,(cons '(guix config)
+                                    %gnu-build-system-modules)
         #:phases
         (modify-phases %standard-phases
           (add-before
@@ -188,6 +191,19 @@
                           (utime file circa-1980 circa-1980)
                           #t))
                #t)))
+          (add-after 'unpack 'apply-templated-patch
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((patch-template (assoc-ref inputs "site-patch"))
+                   (patch "python-2.7-site-prefixes.patch"))
+               ;; generate actual patch
+               (copy-file patch-template patch)
+               (substitute* patch
+                 (("@storedir@")
+                  %store-directory))
+               ;; apply it (taken from (guix packages))
+               (invoke (string-append (assoc-ref inputs "patch") "/bin/patch")
+                       "--force" "--no-backup-if-mismatch"
+                       "-p1" "--input" patch))))
           (add-after 'install 'remove-tests
             ;; Remove 25 MiB of unneeded unit tests.  Keep test_support.*
             ;; because these files are used by some libraries out there.
@@ -244,7 +260,9 @@
        ("readline" ,readline)
        ("zlib" ,zlib)
        ("tcl" ,tcl)
-       ("tk" ,tk)))                               ; for tkinter
+       ("tk" ,tk)                                 ; for tkinter
+       ("site-patch" ,(search-patch "python-2.7-site-prefixes.patch.in"))
+       ("patch" ,patch)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (native-search-paths
@@ -320,6 +338,7 @@ data types.")
      (substitute-keyword-arguments (package-arguments python-2)
        ((#:phases phases)
        `(modify-phases ,phases
+          (delete 'apply-templated-patch)
           ;; Unset SOURCE_DATE_EPOCH while running the test-suite and set it
           ;; again afterwards.  See <https://bugs.python.org/issue34022>.
           (add-before 'check 'unset-SOURCE_DATE_EPOCH
@@ -384,7 +403,9 @@ data types.")
     ;; is invoked upon 'make install'.  'pip' also expects 'ctypes' and thus
     ;; libffi.
     (inputs `(("libffi" ,libffi)
-              ("zlib" ,zlib)))))
+              ("zlib" ,zlib)
+              ("site-patch" ,(search-patch "python-2.7-site-prefixes.patch.in"))
+              ("patch" ,patch)))))
 
 (define-public python-minimal
   (package/inherit python
-- 
2.20.0


--=-=-=--




Acknowledgement sent to Caleb Ristvedt <caleb.ristvedt@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#34358; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 25 Nov 2019 12:00:02 UTC

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