From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50730) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eBf5W-0007Eb-IP for guix-patches@gnu.org; Mon, 06 Nov 2017 05:57:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eBf5S-0007ub-Rb for guix-patches@gnu.org; Mon, 06 Nov 2017 05:57:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:44348) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eBf5S-0007uG-MP for guix-patches@gnu.org; Mon, 06 Nov 2017 05:57:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eBf5S-0007MP-B9 for guix-patches@gnu.org; Mon, 06 Nov 2017 05:57:02 -0500 Subject: [bug#29146] [PATCH] gnu: add python-networkx2. Resent-Message-ID: MIME-Version: 1.0 In-Reply-To: <87po8wfznz.fsf@fastmail.com> References: <20171104204510.1673-1-boskovits@gmail.com> <87po8wfznz.fsf@fastmail.com> From: =?UTF-8?Q?G=C3=A1bor?= Boskovits Date: Mon, 6 Nov 2017 11:56:06 +0100 Message-ID: Content-Type: multipart/alternative; boundary="f403045d972228e42d055d4e4d77" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 29146@debbugs.gnu.org --f403045d972228e42d055d4e4d77 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Regarding the PyPi tarball I was trying like: (method url-fetch) (uri (pypi-uri "networkx" version)) with version "2.0" and got: Starting download of /gnu/store/7m7r6dj9vc4mz53a4p296nan1nf8h2d2-networkx-2.0.tar.gz >From https://pypi.io/packages/source/n/networkx/networkx-2.0.tar.gz... following redirection to ` https://pypi.org/packages/source/n/networkx/networkx-2.0.tar.gz'... following redirection to ` https://files.pythonhosted.org/packages/source/n/networkx/networkx-2.0.tar.= gz'. .. ERROR: download failed " https://files.pythonhosted.org/packages/source/n/networkx/networkx-2.0.tar.= gz" 404 "Not Found" 2017-11-05 17:39 GMT+01:00 Marius Bakke : > G=C3=A1bor Boskovits writes: > > > * gnu/packages/python.scm (python-networkx2): New variable. > > * gnu/local.mk (python-networkx2-reproducible-build.patch): New patch > registered. > > * gnu/package/patches/python-networkx2-reproducible-build.patch: New > file. > > Thanks! > > [...] > > > +++ b/gnu/packages/patches/python-networkx2-reproducible-build.patch > > @@ -0,0 +1,29 @@ > > +From c065b972ed294769a41936d6b9feb336473af5d1 Mon Sep 17 00:00:00 2001 > > +From: =3D?UTF-8?q?G=3DC3=3DA1bor=3D20Boskovits?=3D > > +Date: Sat, 4 Nov 2017 15:28:47 +0100 > > +Subject: Fix SOURCE_DATE_EPOCH ignored bug (#2735) > > + > > +* Fix SOURCE_DATE_EPOCH ignored bug > > + > > +Fix a bug in networkx/release.py that makes build > > +non-reproducible. > > +--- > > + networkx/release.py | 2 +- > > + 1 file changed, 1 insertion(+), 1 deletion(-) > > + > > +diff --git a/networkx/release.py b/networkx/release.py > > +index e81fc0c0..6322cf0d 100644 > > +--- a/networkx/release.py > > ++++ b/networkx/release.py > > +@@ -135,7 +135,7 @@ def get_revision(): > > + > > + def get_info(dynamic=3DTrue): > > + # Date information > > +- date_info =3D datetime.datetime.now() > > ++ date_info =3D datetime.datetime.utcfromtimestamp(int(os. > environ.get('SOURCE_DATE_EPOCH', time.time()))) > > + date =3D time.asctime(date_info.timetuple()) > > Good catch (and patch)! > > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > > index e8a733919..a290deec9 100644 > > --- a/gnu/packages/python.scm > > +++ b/gnu/packages/python.scm > > @@ -16871,3 +16871,38 @@ executed more than a given number of times > during a given period.") > > > > (define-public python2-ratelimiter > > (package-with-python2 python-ratelimiter)) > > + > > +(define-public python-networkx2 > > + (package (inherit python-networkx) > > Could you move this closer to the python-networkx definition, so it's > easier to find? > > I guess the reason this version is a new package is because some > dependent packages fails with the new major version? Can you add a > short comment about it? > > > + (name "python-networkx2") > > + (version "2.0") > > + (source > > + (origin > > + (method git-fetch) > > + (uri (git-reference > > + (url "https://github.com/networkx/networkx.git") > > + (commit "networkx-2.0"))) > > I think it is better to use the tarball from PyPi if possible, which > comes with a PGP signature and without a dependency on 'git'. Can you > try it? > > > + (sha256 > > + (base32 > > + "0wsfmbsqzvpb0vdz09rf6rfrkvyq56r8863nn3g4x0m7swygi1w3")) > > + (patches > > + (search-patches "python-networkx2- > reproducible-build.patch")))) > > Indentation is off here. > > > + (arguments > > + `(#:phases > > + (modify-phases %standard-phases > > + (add-before > > + 'reset-gzip-timestamps 'fix-permissions > > + (lambda _ > > + (chmod (string-append (assoc-ref %outputs "out") > "/lib/python3.5/site-packages/networkx/generators/atlas.dat.gz") #o666) > > + (chmod (string-append (assoc-ref %outputs "out") > "/share/doc/networkx-2.0/examples/drawing/knuth_miles.txt.gz") #o666) > > + (chmod (string-append (assoc-ref %outputs "out") > "/share/doc/networkx-2.0/examples/graph/roget_dat.txt.gz") #o666) > > + (chmod (string-append (assoc-ref %outputs "out") > "/share/doc/networkx-2.0/examples/graph/words_dat.txt.gz") #o666) > > + #t)) > > + (add-after > > + 'reset-gzip-timestamps 'reset-permissions > > + (lambda _ > > + (chmod (string-append (assoc-ref %outputs "out") > "/lib/python3.5/site-packages/networkx/generators/atlas.dat.gz") #o444) > > + (chmod (string-append (assoc-ref %outputs "out") > "/share/doc/networkx-2.0/examples/drawing/knuth_miles.txt.gz") #o444) > > + (chmod (string-append (assoc-ref %outputs "out") > "/share/doc/networkx-2.0/examples/graph/roget_dat.txt.gz") #o444) > > + (chmod (string-append (assoc-ref %outputs "out") > "/share/doc/networkx-2.0/examples/graph/words_dat.txt.gz") #o444) > > + #t))))))) > > This last phase is not necessary, since the files will become read-only > after they have been installed to the store anyway. > > Can you send an updated patch please? TIA! > --f403045d972228e42d055d4e4d77 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Regarding the PyPi tarball I was trying like:

(method url-fetch)
=C2=A0 =C2=A0 =C2=A0 =C2=A0(uri (p= ypi-uri "networkx" version))

with = version "2.0"

and got:
Startin= g download of /gnu/store/7m7r6dj9vc4mz53a4p296nan1nf8h2d2-networkx-2.0.tar.= gz

2017-11-05 17:39 GMT+01:00 Marius Bakke <mbakke@fastmail.com>:
G=C3=A1bor= Boskovits <boskovits@gmail.com> writes:

> * gnu/packages/python.scm (python-networkx2): New variable.
> * gnu/
local.mk (python-networkx2-reproducible-build.patch): New patch r= egistered.
> * gnu/package/patches/python-networkx2-reproducible-build.pa= tch: New file.

Thanks!

[...]

> +++ b/gnu/packages/patches/python-networkx2-reproducible-build.patch
> @@ -0,0 +1,29 @@
> +From c065b972ed294769a41936d6b9feb336473af5d1 Mon Sep 17 00:00:0= 0 2001
> +From: =3D?UTF-8?q?G=3DC3=3DA1bor=3D20Boskovits?=3D <boskovits@gmail.com>
> +Date: Sat, 4 Nov 2017 15:28:47 +0100
> +Subject: Fix SOURCE_DATE_EPOCH ignored bug (#2735)
> +
> +* Fix SOURCE_DATE_EPOCH ignored bug
> +
> +Fix a bug in networkx/release.py that makes build
> +non-reproducible.
> +---
> + networkx/release.py | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/networkx/release.py b/networkx/release.py
> +index e81fc0c0..6322cf0d 100644
> +--- a/networkx/release.py
> ++++ b/networkx/release.py
> +@@ -135,7 +135,7 @@ def get_revision():
> +
> + def get_info(dynamic=3DTrue):
> +=C2=A0 =C2=A0 =C2=A0# Date information
> +-=C2=A0 =C2=A0 date_info =3D datetime.datetime.now()
> ++=C2=A0 =C2=A0 date_info =3D datetime.datetime.utcfromtimestamp(= int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))) > +=C2=A0 =C2=A0 =C2=A0date =3D time.asctime(date_info.timetuple())=

Good catch (and patch)!

> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index e8a733919..a290deec9 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -16871,3 +16871,38 @@ executed more than a given number of times du= ring a given period.")
>
>=C2=A0 (define-public python2-ratelimiter
>=C2=A0 =C2=A0 (package-with-python2 python-ratelimiter))
> +
> +(define-public python-networkx2
> +=C2=A0 (package (inherit python-networkx)

Could you move this closer to the python-networkx definition, so it&= #39;s
easier to find?

I guess the reason this version is a new package is because some
dependent packages fails with the new major version?=C2=A0 Can you add a short comment about it?

> +=C2=A0 =C2=A0 (name "python-networkx2")
> +=C2=A0 =C2=A0 (version "2.0")
> +=C2=A0 =C2=A0 (source
> +=C2=A0 =C2=A0 =C2=A0(origin
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0(method git-fetch)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0(uri (git-reference
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(url &q= uot;https://github.com/networkx/networkx.git")=
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(commit= "networkx-2.0")))

I think it is better to use the tarball from PyPi if possible, which=
comes with a PGP signature and without a dependency on 'git'.=C2=A0= Can you
try it?

> +=C2=A0 =C2=A0 =C2=A0 =C2=A0(sha256
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 (base32
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"0wsfmbsqzvpb0vdz09rf6rfr= kvyq56r8863nn3g4x0m7swygi1w3"))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0(patches
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(search-patche= s "python-networkx2-reproducible-build.patch"))))

Indentation is off here.

> +=C2=A0 =C2=A0 (arguments
> +=C2=A0 =C2=A0 =C2=A0`(#:phases
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0(modify-phases %standard-phases
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(add-before
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'reset-gzip-timestamps 'fi= x-permissions
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda _
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/lib/python3.5/site-packages/networkx/generators/atlas.dat.gz") #o666)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/share/doc/networkx-2.0/ex= amples/drawing/knuth_miles.txt.gz") #o666)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/share/doc/networkx-2.0/ex= amples/graph/roget_dat.txt.gz") #o666)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/share/doc/networkx-2.0/ex= amples/graph/words_dat.txt.gz") #o666)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#t))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(add-after
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'reset-gzip-timestamps 're= set-permissions
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda _
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/lib/python3.5/site-packages/networkx/generators/atlas.dat.gz") #o444)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/share/doc/networkx-2.0/ex= amples/drawing/knuth_miles.txt.gz") #o444)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/share/doc/networkx-2.0/ex= amples/graph/roget_dat.txt.gz") #o444)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(chmod (string-append= (assoc-ref %outputs "out") "/share/doc/networkx-2.0/ex= amples/graph/words_dat.txt.gz") #o444)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#t)))))))

This last phase is not necessary, since the files will become read-o= nly
after they have been installed to the store anyway.

Can you send an updated patch please?=C2=A0 TIA!

--f403045d972228e42d055d4e4d77--