GNU bug report logs - #22693
`guix refresh -u` updates other packages with same version

Previous Next

Package: guix;

Reported by: Leo Famulari <leo <at> famulari.name>

Date: Tue, 16 Feb 2016 09:28:02 UTC

Severity: normal

Done: iyzsong <at> member.fsf.org (宋文武)

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 22693 in the body.
You can then email your comments to 22693 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 bug-guix <at> gnu.org:
bug#22693; Package guix. (Tue, 16 Feb 2016 09:28:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Leo Famulari <leo <at> famulari.name>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 16 Feb 2016 09:28:02 GMT) Full text and rfc822 format available.

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

From: Leo Famulari <leo <at> famulari.name>
To: bug-guix <at> gnu.org
Subject: `guix refresh -u` updates other packages with same version
Date: Tue, 16 Feb 2016 04:27:24 -0500
I've noticed that `guix refresh -u` will update extraneous packages if
they happen to have the same version and be in the same module.

For example, from commit d694230ab, you can reproduce the bug:

$ ./pre-inst-env guix environment guix -- ./pre-inst-env guix refresh -u python-pytest
$ git diff
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3dd3862..ae14404 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -796,7 +796,7 @@ Python 3 support.")
 (define-public python-pycrypto
   (package
     (name "python-pycrypto")
-    (version "2.6.1")
+    (version "2.8.7")
     (source
      (origin
       (method url-fetch)
@@ -1565,7 +1565,7 @@ code introspection, and logging.")
 (define-public python-pytest
   (package
     (name "python-pytest")
-    (version "2.6.1")
+    (version "2.8.7")
     (source
      (origin
        (method url-fetch)
@@ -1574,7 +1574,7 @@ code introspection, and logging.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0g2w4p0n42wvz8rq4k6gnzpkakgz3g8sfanxk8jrsra9675snkcr"))
+         "1bwb06g64x2gky8x5hcrfpg6r351xwvafimnhm5qxq7wajz8ck7w"))
        (modules '((guix build utils)))
        (snippet
         ;; One of the tests involves the /usr directory, so it fails.




Information forwarded to bug-guix <at> gnu.org:
bug#22693; Package guix. (Mon, 22 Feb 2016 21:34:02 GMT) Full text and rfc822 format available.

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

From: Andreas Enge <andreas <at> enge.fr>
To: Leo Famulari <leo <at> famulari.name>
Cc: 22693 <at> debbugs.gnu.org
Subject: Re: bug#22693: `guix refresh -u` updates other packages with same
 version
Date: Mon, 22 Feb 2016 22:33:12 +0100
On Tue, Feb 16, 2016 at 04:27:24AM -0500, Leo Famulari wrote:
> I've noticed that `guix refresh -u` will update extraneous packages if
> they happen to have the same version and be in the same module.
> 
> For example, from commit d694230ab, you can reproduce the bug:
> 
> $ ./pre-inst-env guix environment guix -- ./pre-inst-env guix refresh -u python-pytest
> $ git diff
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> @@ -796,7 +796,7 @@ Python 3 support.")
>  (define-public python-pycrypto
>    (package
>      (name "python-pycrypto")
> -    (version "2.6.1")
> +    (version "2.8.7")
>  (define-public python-pytest
>    (package
>      (name "python-pytest")
> -    (version "2.6.1")
> +    (version "2.8.7")

I wondered about the "./pre-inst-env guix environment guix", but I tried it
without, and I confirm the problem.

Andreas





Information forwarded to bug-guix <at> gnu.org:
bug#22693; Package guix. (Mon, 22 Feb 2016 22:38:01 GMT) Full text and rfc822 format available.

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

From: Leo Famulari <leo <at> famulari.name>
To: Andreas Enge <andreas <at> enge.fr>
Cc: 22693 <at> debbugs.gnu.org
Subject: Re: bug#22693: `guix refresh -u` updates other packages with same
 version
Date: Mon, 22 Feb 2016 17:37:46 -0500
On Mon, Feb 22, 2016 at 10:33:12PM +0100, Andreas Enge wrote:
> On Tue, Feb 16, 2016 at 04:27:24AM -0500, Leo Famulari wrote:
> > I've noticed that `guix refresh -u` will update extraneous packages if
> > they happen to have the same version and be in the same module.
> > 
> > For example, from commit d694230ab, you can reproduce the bug:
> > 
> > $ ./pre-inst-env guix environment guix -- ./pre-inst-env guix refresh -u python-pytest
> > $ git diff
> > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> > @@ -796,7 +796,7 @@ Python 3 support.")
> >  (define-public python-pycrypto
> >    (package
> >      (name "python-pycrypto")
> > -    (version "2.6.1")
> > +    (version "2.8.7")
> >  (define-public python-pytest
> >    (package
> >      (name "python-pytest")
> > -    (version "2.6.1")
> > +    (version "2.8.7")
> 
> I wondered about the "./pre-inst-env guix environment guix", but I tried it
> without, and I confirm the problem.

I like to offer my bug reports with './pre-inst-env' and a commit, to
increase the number of factors that are deterministic.

> 
> Andreas
> 




Information forwarded to bug-guix <at> gnu.org:
bug#22693; Package guix. (Mon, 04 Apr 2016 10:23:01 GMT) Full text and rfc822 format available.

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

From: iyzsong <at> member.fsf.org (宋文武)
To: guix-devel <at> gnu.org
Cc: 22693 <at> debbugs.gnu.org
Subject: Re: bug#22693: `guix refresh -u` updates other packages with same
 version
Date: Mon, 04 Apr 2016 18:20:45 +0800
Leo Famulari <leo <at> famulari.name> writes:

> I've noticed that `guix refresh -u` will update extraneous packages if
> they happen to have the same version and be in the same module.
>
> For example, from commit d694230ab, you can reproduce the bug:
>
> $ ./pre-inst-env guix environment guix -- ./pre-inst-env guix refresh -u python-pytest
> $ git diff
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 3dd3862..ae14404 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -796,7 +796,7 @@ Python 3 support.")
>  (define-public python-pycrypto
>    (package
>      (name "python-pycrypto")
> -    (version "2.6.1")
> +    (version "2.8.7")
>      (source
>       (origin
>        (method url-fetch)
> @@ -1565,7 +1565,7 @@ code introspection, and logging.")
>  (define-public python-pytest
>    (package
>      (name "python-pytest")
> -    (version "2.6.1")
> +    (version "2.8.7")
>      (source
>       (origin
>         (method url-fetch)
> @@ -1574,7 +1574,7 @@ code introspection, and logging.")
>               version ".tar.gz"))
>         (sha256
>          (base32
> -         "0g2w4p0n42wvz8rq4k6gnzpkakgz3g8sfanxk8jrsra9675snkcr"))
> +         "1bwb06g64x2gky8x5hcrfpg6r351xwvafimnhm5qxq7wajz8ck7w"))
>         (modules '((guix build utils)))
>         (snippet
>          ;; One of the tests involves the /usr directory, so it fails.
How to fix this?

The procedure is ‘update-package-source’ in (guix upstream).
it find the file, then use ‘substitute’ to replace the version and
hash.  ‘substitute’ works line-by-line, it can’t match mutiple lines.

I try:
 - use ‘package-location’ and ‘read’ to get the package object,
   but it lost all format and comments.
 - use ‘string-match’, but I have no idea how to match the whole
   package sexp.




Information forwarded to bug-guix <at> gnu.org:
bug#22693; Package guix. (Mon, 04 Apr 2016 11:54:01 GMT) Full text and rfc822 format available.

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

From: Andy Wingo <wingo <at> igalia.com>
To: iyzsong <at> member.fsf.org (宋文武)
Cc: guix-devel <at> gnu.org, 22693 <at> debbugs.gnu.org
Subject: Re: bug#22693: `guix refresh -u` updates other packages with same
 version
Date: Mon, 04 Apr 2016 13:53:38 +0200
On Mon 04 Apr 2016 12:20, iyzsong <at> member.fsf.org (宋文武) writes:

> How to fix this?
>
> The procedure is ‘update-package-source’ in (guix upstream).
> it find the file, then use ‘substitute’ to replace the version and
> hash.  ‘substitute’ works line-by-line, it can’t match mutiple lines.
>
> I try:
>  - use ‘package-location’ and ‘read’ to get the package object,
>    but it lost all format and comments.

One option:

  1. open the source file for the package
  2. Call (read) until port-line / port-column are beyond the
     package-location of the package
  3. At that point you have the ending location of the package.

Then limit your substitute* to work within those lines.

Another option would be to extend substitute* to start on a certain
line, and to limit the number of substitutions.  That way if you start
on package-location and limit to one substitution you are likely to
update the correct version.

Andy




Information forwarded to bug-guix <at> gnu.org:
bug#22693; Package guix. (Mon, 04 Apr 2016 20:58:02 GMT) Full text and rfc822 format available.

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

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andy Wingo <wingo <at> igalia.com>
Cc: guix-devel <at> gnu.org, 22693 <at> debbugs.gnu.org,
 宋文武 <iyzsong <at> member.fsf.org>
Subject: Re: bug#22693: `guix refresh -u` updates other packages with same
 version
Date: Mon, 04 Apr 2016 22:57:09 +0200
Andy Wingo <wingo <at> igalia.com> skribis:

> On Mon 04 Apr 2016 12:20, iyzsong <at> member.fsf.org (宋文武) writes:
>
>> How to fix this?
>>
>> The procedure is ‘update-package-source’ in (guix upstream).
>> it find the file, then use ‘substitute’ to replace the version and
>> hash.  ‘substitute’ works line-by-line, it can’t match mutiple lines.
>>
>> I try:
>>  - use ‘package-location’ and ‘read’ to get the package object,
>>    but it lost all format and comments.
>
> One option:
>
>   1. open the source file for the package
>   2. Call (read) until port-line / port-column are beyond the
>      package-location of the package
>   3. At that point you have the ending location of the package.

Right.  ‘package-field-location’ does something along these lines.

> Then limit your substitute* to work within those lines.

A simpler yet less elegant trick used in ‘report-formatting-issues’ in
(guix scripts lint) is to have a maximum number of lines assumed to be
part of the ‘package’ form following its starting line.

Thanks,
Ludo’.




Reply sent to iyzsong <at> member.fsf.org (宋文武):
You have taken responsibility. (Wed, 13 Apr 2016 01:30:02 GMT) Full text and rfc822 format available.

Notification sent to Leo Famulari <leo <at> famulari.name>:
bug acknowledged by developer. (Wed, 13 Apr 2016 01:30:02 GMT) Full text and rfc822 format available.

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

From: iyzsong <at> member.fsf.org (宋文武)
To: 22693-done <at> debbugs.gnu.org
Subject: close
Date: Wed, 13 Apr 2016 09:29:11 +0800
fixed in commit 2b8e9d9ed.




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

This bug report was last modified 7 years and 345 days ago.

Previous Next


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