--- Begin Message ---
Subject: |
[PATCH] gnu: add python-networkx2. |
Date: |
Sat, 4 Nov 2017 21:45:10 +0100 |
* 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.
---
gnu/local.mk | 1 +
.../python-networkx2-reproducible-build.patch | 29 ++++++++++++++++++
gnu/packages/python.scm | 35 ++++++++++++++++++++++
3 files changed, 65 insertions(+)
create mode 100644
gnu/packages/patches/python-networkx2-reproducible-build.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 90dc7aec1..b23bfb116 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -990,6 +990,7 @@ dist_patch_DATA =
\
%D%/packages/patches/python-genshi-isstring-helper.patch \
%D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch
\
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
+ %D%/packages/pathces/python-networkx2-reproducible-build.patch \
%D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-parse-too-many-fields.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
diff --git a/gnu/packages/patches/python-networkx2-reproducible-build.patch
b/gnu/packages/patches/python-networkx2-reproducible-build.patch
new file mode 100644
index 000000000..8274767ab
--- /dev/null
+++ 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?= <address@hidden>
+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())
+
+ revision, version, version_info, vcs_info = None, None, None, None
+--
+2.14.2
+
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)
+ (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")))
+ (sha256
+ (base32
+ "0wsfmbsqzvpb0vdz09rf6rfrkvyq56r8863nn3g4x0m7swygi1w3"))
+ (patches
+ (search-patches "python-networkx2-reproducible-build.patch"))))
+ (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)))))))
--
2.14.2
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#29146] [PATCH] gnu: add python-networkx2. |
Date: |
Tue, 07 Nov 2017 21:23:33 +0100 |
User-agent: |
Notmuch/0.25.1 (https://notmuchmail.org) Emacs/25.3.1 (x86_64-pc-linux-gnu) |
Gábor Boskovits <address@hidden> writes:
> 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"
This is because the PyPi archive is only available as a "zipball".
"pypi-uri" takes an optional argument for specifying file extension.
I went ahead and changed the source URI and added a Python2 variant --
not using git-fetch allowed us to also remove the 'reset-permissions'
phase. Changes below. Thank you!
diff --git a/gnu/local.mk b/gnu/local.mk
index 66df81d95..9b01b05b6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -996,7 +996,7 @@ dist_patch_DATA =
\
%D%/packages/patches/python-genshi-isstring-helper.patch \
%D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch
\
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
- %D%/packages/pathces/python-networkx2-reproducible-build.patch \
+ %D%/packages/patches/python-networkx2-reproducible-build.patch \
%D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-parse-too-many-fields.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index be942c13a..370c9ef11 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6624,32 +6624,24 @@ of the structure, dynamics, and functions of complex
networks.")
(define-public python2-networkx
(package-with-python2 python-networkx))
-;define new package, because current version of python-colormath does not
compile
+;; Define new package, because the current version of python-colormath does
+;; not build against 2.0.
(define-public python-networkx2
(package (inherit python-networkx)
(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")))
+ (method url-fetch)
+ (uri (pypi-uri "networkx" version ".zip"))
(sha256
(base32
- "0wsfmbsqzvpb0vdz09rf6rfrkvyq56r8863nn3g4x0m7swygi1w3"))
+ "1ajl2jp8qry9nyjzzkqpy0vmsr14d23z1qk7y0vr5iwjbpvzhpyd"))
(patches
- (search-patches "python-networkx2-reproducible-build.patch"))))
- (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)))))))
+ (search-patches "python-networkx2-reproducible-build.patch"))))))
+
+(define-public python2-networkx2
+ (package-with-python2 python-networkx2))
(define-public snakemake
(package
signature.asc
Description: PGP signature
--- End Message ---