From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: [PATCH 1/4] build/python-build-system: Fix easy-install.pth collisions. Date: Mon, 15 Dec 2014 21:36:27 +0100 Message-ID: References: <87y4qaugb1.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11335e765fa44f050a47329d Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33764) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y0cNb-0000f7-CN for guix-devel@gnu.org; Mon, 15 Dec 2014 15:36:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y0cNZ-0003dv-Tn for guix-devel@gnu.org; Mon, 15 Dec 2014 15:36:31 -0500 In-Reply-To: <87y4qaugb1.fsf@gnu.org> 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-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: =?UTF-8?Q?Ludovic_Court=C3=A8s?= Cc: Guix-devel --001a11335e765fa44f050a47329d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sun, Dec 14, 2014 at 9:28 PM, Ludovic Court=C3=A8s wrote: >> +(define* (fix-pth #:key name inputs outputs #:allow-other-keys) > > What about calling it =E2=80=98rename-pth-file=E2=80=99, which should be = more > descriptive? Also please add a docstring. Agreed. >> + (let* ((out (assoc-ref outputs "out")) >> + (python (assoc-ref inputs "python")) >> + (site-packages (string-append out "/lib/python" >> + (get-python-version python) >> + "/site-packages")) >> + (easy-install-pth (string-append site-packages "/easy-install.= pth")) >> + (new-pth (string-append site-packages "/" name ".pth"))) >> + (if (file-exists? easy-install-pth) >> + (rename-file easy-install-pth new-pth)))) > > Please use =E2=80=98when=E2=80=99 instead of =E2=80=98if=E2=80=99, and ad= d a trailing #t, to make it > clear that the phase succeeds. OK > Is PACKAGE.pth a common convention? I mean, does Python (or > setuptools?) actually use files called PYTHON.pth? Yes, the basename of path configuration files with extension .pth does not matter. The site module will load them all. Setuptools, on top of easy-install.pth, installs a site.py file. This program adds (with site.addsitedir) all directories in PYTHONPATH to the list of directories to be processed by the site module. https://docs.python.org/2/library/site.html Before writing the path I had conflicts, e.g., between matplotlib and cairocffi resulting in import failures. After the patch they work nicely together. Using NAME.pth instead of easy-install.pth should guarantee that no package configuration file collisions occurs between different packages installed with setuptools, nor between two versions of the same library. Attached the amended patch. Regards, Fede --001a11335e765fa44f050a47329d Content-Type: text/x-patch; charset=US-ASCII; name="0001-build-python-build-system-Fix-easy-install.pth-colli.patch" Content-Disposition: attachment; filename="0001-build-python-build-system-Fix-easy-install.pth-colli.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i3qaq0sw0 RnJvbSBkMzJjNmI1YjUxYzRkNjFhMmFlZjc0Njc3MDUwNzNkYWZjMTA4N2Q1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogU2F0LCAxMyBEZWMgMjAxNCAyMjoxOTowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MS80XSBidWlsZC9weXRob24tYnVpbGQtc3lzdGVtOiBGaXggZWFzeS1pbnN0YWxsLnB0aAogY29s bGlzaW9ucy4KCiogZ3VpeC9idWlsZC9weXRob24tYnVpbGQtc3lzdGVtLnNjbSAocmVuYW1lLXB0 aC1maWxlKTogTmV3IHJlbmFtZS1wdGgtZmlsZQogIHBoYXNlIGFuZCBjb3JyZXNwb25kaW5nIGZ1 bmN0aW9uLgotLS0KIGd1aXgvYnVpbGQvcHl0aG9uLWJ1aWxkLXN5c3RlbS5zY20gfCAzNSArKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC9weXRob24t YnVpbGQtc3lzdGVtLnNjbSBiL2d1aXgvYnVpbGQvcHl0aG9uLWJ1aWxkLXN5c3RlbS5zY20KaW5k ZXggMmYzZDA0YS4uNzRiYTBjNyAxMDA2NDQKLS0tIGEvZ3VpeC9idWlsZC9weXRob24tYnVpbGQt c3lzdGVtLnNjbQorKysgYi9ndWl4L2J1aWxkL3B5dGhvbi1idWlsZC1zeXN0ZW0uc2NtCkBAIC0x MDUsMTkgKzEwNSwzNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzKSkpCiAg ICAgICAgICAgICAgIGJpbmRpcnMpKSkKIAorKGRlZmluZSogKHJlbmFtZS1wdGgtZmlsZSAjOmtl eSBuYW1lIGlucHV0cyBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIlJlbmFtZSBlYXN5 LWluc3RhbGwucHRoIHRvIE5BTUUucHRoIHRvIGF2b2lkIGNvbmZsaWN0cyBiZXR3ZWVuIHBhY2th Z2VzCitpbnN0YWxsZWQgd2l0aCBzZXR1cHRvb2xzLiIKKyAgKGxldCogKChvdXQgKGFzc29jLXJl ZiBvdXRwdXRzICJvdXQiKSkKKyAgICAgICAgIChweXRob24gKGFzc29jLXJlZiBpbnB1dHMgInB5 dGhvbiIpKQorICAgICAgICAgKHNpdGUtcGFja2FnZXMgKHN0cmluZy1hcHBlbmQgb3V0ICIvbGli L3B5dGhvbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXQtcHl0 aG9uLXZlcnNpb24gcHl0aG9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIi9zaXRlLXBhY2thZ2VzIikpCisgICAgICAgICAoZWFzeS1pbnN0YWxsLXB0aCAoc3RyaW5n LWFwcGVuZCBzaXRlLXBhY2thZ2VzICIvZWFzeS1pbnN0YWxsLnB0aCIpKQorICAgICAgICAgKG5l dy1wdGggKHN0cmluZy1hcHBlbmQgc2l0ZS1wYWNrYWdlcyAiLyIgbmFtZSAiLnB0aCIpKSkKKyAg ICAod2hlbiAoZmlsZS1leGlzdHM/IGVhc3ktaW5zdGFsbC1wdGgpCisgICAgICAocmVuYW1lLWZp bGUgZWFzeS1pbnN0YWxsLXB0aCBuZXctcHRoKSkKKyAgICAjdCkpCisKIChkZWZpbmUgJXN0YW5k YXJkLXBoYXNlcwogICA7OyAnY29uZmlndXJlJyBhbmQgJ2J1aWxkJyBwaGFzZXMgYXJlIG5vdCBu ZWVkZWQuICBFdmVyeXRoaW5nIGlzIGRvbmUgZHVyaW5nCiAgIDs7ICdpbnN0YWxsJy4KLSAgKGFs aXN0LWNvbnMtYWZ0ZXIKLSAgICdpbnN0YWxsICd3cmFwCi0gICB3cmFwCi0gICAoYWxpc3QtcmVw bGFjZQotICAgICdidWlsZCBidWlsZAorICAoYWxpc3QtY29ucy1iZWZvcmUKKyAgICdzdHJpcCAn cmVuYW1lLXB0aC1maWxlCisgICByZW5hbWUtcHRoLWZpbGUKKyAgIChhbGlzdC1jb25zLWFmdGVy CisgICAgJ2luc3RhbGwgJ3dyYXAKKyAgICB3cmFwCiAgICAgKGFsaXN0LXJlcGxhY2UKLSAgICAg J2NoZWNrIGNoZWNrCi0gICAgIChhbGlzdC1yZXBsYWNlICdpbnN0YWxsIGluc3RhbGwKLSAgICAg ICAgICAgICAgICAgICAgKGFsaXN0LWRlbGV0ZSAnY29uZmlndXJlCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdudTolc3RhbmRhcmQtcGhhc2VzKSkpKSkp CisgICAgICdidWlsZCBidWlsZAorICAgICAoYWxpc3QtcmVwbGFjZQorICAgICAgJ2NoZWNrIGNo ZWNrCisgICAgICAoYWxpc3QtcmVwbGFjZSAnaW5zdGFsbCBpbnN0YWxsCisgICAgICAgICAgICAg ICAgICAgICAoYWxpc3QtZGVsZXRlICdjb25maWd1cmUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ251OiVzdGFuZGFyZC1waGFzZXMpKSkpKSkpCiAKIChkZWZpbmUqIChweXRo b24tYnVpbGQgIzprZXkgaW5wdXRzIChwaGFzZXMgJXN0YW5kYXJkLXBoYXNlcykKICAgICAgICAg ICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzICM6cmVzdCBhcmdzKQotLSAKMS44LjQK Cg== --001a11335e765fa44f050a47329d--