gnu: python-versioneer: Add support for Guix build directories.
* gnu/packages/patches/python-versioneer-guix-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/python-xyz.scm (python-versioneer)[source](patches): New field.master
parent
5940d4cfed
commit
99e0c4bc74
|
@ -1691,6 +1691,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
|
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
|
||||||
%D%/packages/patches/python-unittest2-python3-compat.patch \
|
%D%/packages/patches/python-unittest2-python3-compat.patch \
|
||||||
%D%/packages/patches/python-unittest2-remove-argparse.patch \
|
%D%/packages/patches/python-unittest2-remove-argparse.patch \
|
||||||
|
%D%/packages/patches/python-versioneer-guix-support.patch \
|
||||||
%D%/packages/patches/python-waitress-fix-tests.patch \
|
%D%/packages/patches/python-waitress-fix-tests.patch \
|
||||||
%D%/packages/patches/python-werkzeug-tests.patch \
|
%D%/packages/patches/python-werkzeug-tests.patch \
|
||||||
%D%/packages/patches/qemu-build-info-manual.patch \
|
%D%/packages/patches/qemu-build-info-manual.patch \
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
Versioneer does not work in the Guix build container because:
|
||||||
|
|
||||||
|
* VCS information is unavailable
|
||||||
|
* the build directory does not have the supported "$name-$version" format
|
||||||
|
* as of 0.21, versioneer has no way to override the discovered values
|
||||||
|
|
||||||
|
This patch adds support for extracting version from the
|
||||||
|
'/tmp/guix-build-foo-0.1.drv-0' style directories created by the daemon.
|
||||||
|
|
||||||
|
diff --git a/src/from_parentdir.py b/src/from_parentdir.py
|
||||||
|
index 69ada9a..e0fac8f 100644
|
||||||
|
--- a/src/from_parentdir.py
|
||||||
|
+++ b/src/from_parentdir.py
|
||||||
|
@@ -15,6 +15,21 @@ def versions_from_parentdir(parentdir_prefix, root, verbose):
|
||||||
|
return {"version": dirname[len(parentdir_prefix):],
|
||||||
|
"full-revisionid": None,
|
||||||
|
"dirty": False, "error": None, "date": None}
|
||||||
|
+ # Guix specific patch: try extracting the version from the build
|
||||||
|
+ # directory.
|
||||||
|
+ elif dirname.startswith("guix-build-"):
|
||||||
|
+ delimiter = dirname.rindex(".drv-")
|
||||||
|
+ name_and_version = dirname[11:delimiter]
|
||||||
|
+ if name_and_version.startswith(parentdir_prefix):
|
||||||
|
+ guix_version = name_and_version[len(parentdir_prefix):]
|
||||||
|
+ elif name_and_version.startswith("python-{}".format(parentdir_prefix)):
|
||||||
|
+ guix_version = name_and_version[(7 + len(parentdir_prefix)):]
|
||||||
|
+ else:
|
||||||
|
+ break
|
||||||
|
+ return {"version": guix_version,
|
||||||
|
+ "full-revisionid": None,
|
||||||
|
+ "dirty": False, "error": None, "date": None}
|
||||||
|
+
|
||||||
|
rootdirs.append(root)
|
||||||
|
root = os.path.dirname(root) # up a level
|
||||||
|
|
|
@ -26014,7 +26014,8 @@ applications with variable CPU loads).")
|
||||||
(uri (pypi-uri "versioneer" version))
|
(uri (pypi-uri "versioneer" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"084fglxafbzvf1vbkzfajvs9qwnvjwwn8pxql9nrlpyipv5xpwk4"))))
|
"084fglxafbzvf1vbkzfajvs9qwnvjwwn8pxql9nrlpyipv5xpwk4"))
|
||||||
|
(patches (search-patches "python-versioneer-guix-support.patch"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/python-versioneer/python-versioneer")
|
"https://github.com/python-versioneer/python-versioneer")
|
||||||
|
|
Reference in New Issue