Gábor 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: =?UTF-8?q?G=C3=A1bor=20Boskovits?= > +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=True): > + # Date information > +- date_info = datetime.datetime.now() > ++ date_info = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))) > + date = 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!