GNU bug report logs - #46866
[PATCH] gnu: b4: Fix setup.py version incompatibility.

Previous Next

Package: guix-patches;

Reported by: Kyle Meyer <kyle <at> kyleam.com>

Date: Tue, 2 Mar 2021 01:53:01 UTC

Severity: normal

Tags: patch

Done: Efraim Flashner <efraim <at> flashner.co.il>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 46866 in the body.
You can then email your comments to 46866 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#46866; Package guix-patches. (Tue, 02 Mar 2021 01:53:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kyle Meyer <kyle <at> kyleam.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 02 Mar 2021 01:53:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kyle Meyer <kyle <at> kyleam.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: b4: Fix setup.py version incompatibility.
Date: Mon,  1 Mar 2021 20:51:58 -0500
Following the update of python-requests to 2.25.0, b4 fails at runtime with a
pkg_resources.ContextualVersionConflict exception.  This has been addressed
upstream.  Temporarily apply the upstream fix.

* gnu/packages/patches/b4-loosen-version-identifiers.patch: New patch.
* gnu/packages/version-control.scm (b4): Apply it.
---
 .../b4-loosen-version-identifiers.patch       | 44 +++++++++++++++++++
 gnu/packages/version-control.scm              |  3 +-
 2 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/b4-loosen-version-identifiers.patch

diff --git a/gnu/packages/patches/b4-loosen-version-identifiers.patch b/gnu/packages/patches/b4-loosen-version-identifiers.patch
new file mode 100644
index 0000000000..5ae5865274
--- /dev/null
+++ b/gnu/packages/patches/b4-loosen-version-identifiers.patch
@@ -0,0 +1,44 @@
+From e66d514b4113fffc81e48c7c531dcf148ba8b8e8 Mon Sep 17 00:00:00 2001
+From: Kyle Meyer <kyle <at> kyleam.com>
+Date: Thu, 25 Feb 2021 23:25:57 -0500
+Subject: Loosen compatible release identifiers for install_requires
+
+The install_requires entries use a compatible release operator.  As an
+example, "requests~=2.24.0" maps to a requirement of ">= 2.24.0 and ==
+2.24.*".  With the current version of requests (2.25.1), this leads to
+a ContextualVersionConflict failure at runtime.
+
+Allowing only Z to tick in version X.Y.Z seems unnecessarily strict
+unless there are known problems with a particular release, and it
+makes it more difficult for distributions to package b4.  Drop the
+trailing digit from all of the version identifiers, allowing both Y
+and Z to increase.
+
+Signed-off-by: Kyle Meyer <kyle <at> kyleam.com>
+Signed-off-by: Konstantin Ryabitsev <konstantin <at> linuxfoundation.org>
+---
+  This patch was taken from the upstream repository and will be included in
+  the next release.
+
+  https://git.kernel.org/pub/scm/utils/b4/b4.git/patch/?id=e66d514b4113fffc81e48c7c531dcf148ba8b8e8
+
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 358e6a7..a21ec76 100644
+--- a/setup.py
++++ b/setup.py
+@@ -41,9 +41,9 @@ setup(
+     data_files = [('share/man/man5', ['man/b4.5'])],
+     keywords=['git', 'lore.kernel.org', 'patches'],
+     install_requires=[
+-        'requests~=2.24.0',
+-        'dkimpy~=1.0.5',
+-        'dnspython~=2.0.0',
++        'requests~=2.24',
++        'dkimpy~=1.0',
++        'dnspython~=2.0',
+     ],
+     python_requires='>=3.6',
+     entry_points={
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3afb06ca79..2fb8fa821f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2347,7 +2347,8 @@ (define-public b4
        (method url-fetch)
        (uri (pypi-uri "b4" version))
        (sha256
-        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))))
+        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))
+       (patches (search-patches "b4-loosen-version-identifiers.patch"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; No tests.
     (inputs

base-commit: 4bc9a1f4e3bd39302b4ceaab8589a2e6ef82c4bd
-- 
2.31.0.rc0.254.gbdcc3b1a9d





Information forwarded to guix-patches <at> gnu.org:
bug#46866; Package guix-patches. (Tue, 09 Mar 2021 08:11:01 GMT) Full text and rfc822 format available.

Message #8 received at 46866 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Kyle Meyer <kyle <at> kyleam.com>
Cc: 46866 <at> debbugs.gnu.org
Subject: Re: [bug#46866] [PATCH] gnu: b4: Fix setup.py version incompatibility.
Date: Tue, 9 Mar 2021 10:09:35 +0200
[Message part 1 (text/plain, inline)]
Indeed, it does fail at startup. Two things about your patch, you've
added a patch file but didn't register it in gnu/local.mk. This means
it'll get dropped during a 'make dist' which would be a problem. The
second is that it's a lot of patch for a small amount of code change.
With your permission I'd like to commit the attached patch instead.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[0001-gnu-b4-Fix-setup.py-version-incompatibility.patch (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#46866; Package guix-patches. (Tue, 09 Mar 2021 22:55:02 GMT) Full text and rfc822 format available.

Message #11 received at 46866 <at> debbugs.gnu.org (full text, mbox):

From: Kyle Meyer <kyle <at> kyleam.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 46866 <at> debbugs.gnu.org
Subject: Re: [bug#46866] [PATCH] gnu: b4: Fix setup.py version incompatibility.
Date: Tue, 09 Mar 2021 17:54:04 -0500
Efraim Flashner writes:

> Indeed, it does fail at startup. Two things about your patch, you've
> added a patch file but didn't register it in gnu/local.mk. This means
> it'll get dropped during a 'make dist' which would be a problem.

Doh, thanks for catching that.

> The second is that it's a lot of patch for a small amount of code
> change.

I like that a patch fails loudly once it's no longer valid, but I'm
happy to defer to your opinion that it's an overkill here (and will try
to recalibrate for future patches).

> With your permission I'd like to commit the attached patch instead.
[...]
> From: Kyle Meyer <kyle <at> kyleam.com>
> Date: Tue, 9 Mar 2021 10:06:13 +0200
> Subject: [PATCH] gnu: b4: Fix setup.py version incompatibility.
>
> * gnu/packages/version-control.scm (b4)[source]: Add snippet to not
> require too specific of a version.
>
> Co-authored with Efraim Flashner <efraim <at> flashner.co.il>
>
> Signed-off-by: Efraim Flashner <efraim <at> flashner.co.il>

Sounds fine to me.  I have a slight preference that you put yourself as
the author and put a

  Noticed-by: Kyle Meyer <kyle <at> kyleam.com>

or

  Reported-by: Kyle Meyer <kyle <at> kyleam.com>

trailer for me, but either way is okay.

> @@ -2347,7 +2347,15 @@ based on a manifest file published by servers.")
>         (method url-fetch)
>         (uri (pypi-uri "b4" version))
>         (sha256
> -        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))))
> +        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))
> +       (modules '((guix build utils)))
> +       (snippet
> +        '(begin
> +           ;; Fixes issue with dependency requirements being too strict. See upstream commit:
> +           ;; https://git.kernel.org/pub/scm/utils/b4/b4.git/commit/?id=31348a14afdb1d39e7faf9576eaddea1ced76e19
> +           (substitute* "setup.py"
> +             (("\\.0'") "'"))

Just a note: This won't catch a similar problem if dkimpy (1.0.5) is
upgraded before b4, though perhaps that's unlikely and not worth
worrying about.

Thank you for the review.




Reply sent to Efraim Flashner <efraim <at> flashner.co.il>:
You have taken responsibility. (Tue, 16 Mar 2021 12:32:02 GMT) Full text and rfc822 format available.

Notification sent to Kyle Meyer <kyle <at> kyleam.com>:
bug acknowledged by developer. (Tue, 16 Mar 2021 12:32:03 GMT) Full text and rfc822 format available.

Message #16 received at 46866-done <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Kyle Meyer <kyle <at> kyleam.com>
Cc: 46866-done <at> debbugs.gnu.org
Subject: Re: [bug#46866] [PATCH] gnu: b4: Fix setup.py version incompatibility.
Date: Tue, 16 Mar 2021 14:29:49 +0200
[Message part 1 (text/plain, inline)]
On Tue, Mar 09, 2021 at 05:54:04PM -0500, Kyle Meyer wrote:
> Efraim Flashner writes:
> 
> > Indeed, it does fail at startup. Two things about your patch, you've
> > added a patch file but didn't register it in gnu/local.mk. This means
> > it'll get dropped during a 'make dist' which would be a problem.
> 
> Doh, thanks for catching that.
> 
> > The second is that it's a lot of patch for a small amount of code
> > change.
> 
> I like that a patch fails loudly once it's no longer valid, but I'm
> happy to defer to your opinion that it's an overkill here (and will try
> to recalibrate for future patches).
> 
> > With your permission I'd like to commit the attached patch instead.
> [...]
> > From: Kyle Meyer <kyle <at> kyleam.com>
> > Date: Tue, 9 Mar 2021 10:06:13 +0200
> > Subject: [PATCH] gnu: b4: Fix setup.py version incompatibility.
> >
> > * gnu/packages/version-control.scm (b4)[source]: Add snippet to not
> > require too specific of a version.
> >
> > Co-authored with Efraim Flashner <efraim <at> flashner.co.il>
> >
> > Signed-off-by: Efraim Flashner <efraim <at> flashner.co.il>
> 
> Sounds fine to me.  I have a slight preference that you put yourself as
> the author and put a
> 
>   Noticed-by: Kyle Meyer <kyle <at> kyleam.com>
> 
> or
> 
>   Reported-by: Kyle Meyer <kyle <at> kyleam.com>
> 
> trailer for me, but either way is okay.
> 
> > @@ -2347,7 +2347,15 @@ based on a manifest file published by servers.")
> >         (method url-fetch)
> >         (uri (pypi-uri "b4" version))
> >         (sha256
> > -        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))))
> > +        (base32 "1j904dy9cwxl85k2ngc498q5cdnqwsmw3jibjr1m55w8aqdck68z"))
> > +       (modules '((guix build utils)))
> > +       (snippet
> > +        '(begin
> > +           ;; Fixes issue with dependency requirements being too strict. See upstream commit:
> > +           ;; https://git.kernel.org/pub/scm/utils/b4/b4.git/commit/?id=31348a14afdb1d39e7faf9576eaddea1ced76e19
> > +           (substitute* "setup.py"
> > +             (("\\.0'") "'"))
> 
> Just a note: This won't catch a similar problem if dkimpy (1.0.5) is
> upgraded before b4, though perhaps that's unlikely and not worth
> worrying about.
> 
> Thank you for the review.

Not sure how I forgot I had this waiting for me. I changed the
substitution from "\\.0'" to change the ~= to >= and pushed it.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 14 Apr 2021 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 349 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.