GNU bug report logs -
#55854
"guix refresh" doesn't handle older versions like gtk+@2
Previous Next
To reply to this bug, email your comments to 55854 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#55854
; Package
guix
.
(Wed, 08 Jun 2022 17:20:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Kaelyn <kaelyn.alexi <at> protonmail.com>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Wed, 08 Jun 2022 17:20:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
When attempting a mass "guix refresh -ru" of system and home profile packages, some bogus updates were encountered. One category of those is older/multiple versions of a package all being updated to the latest, as was seen with gtk+@2, libsigc++@2, and the gtkmm packages. For example:
$ guix refresh gtk+@2
gnu/packages/gtk.scm:851:13: gtk+ would be upgraded from 2.24.33 to 3.94.0
Per the IRC discussion at https://logs.guix.gnu.org/guix/2022-06-08.log#185744, those packages should only be upgraded within the same major version. Maxime suggested adding a REQUIRED-MAJOR-VERSION field to such packages so they are updated correctly: https://logs.guix.gnu.org/guix/2022-06-08.log#185842
(Side note: I believe gtk+ uses a numbering scheme of x.9y.0 for pre-releases of the (x+1).0.0 release; i.e. gtk+ 3.94.0 is a pre-release of gtk 4.)
Information forwarded
to
bug-guix <at> gnu.org
:
bug#55854
; Package
guix
.
(Fri, 17 Jun 2022 13:53:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 55854 <at> debbugs.gnu.org (full text, mbox):
* guix/import/gnome.scm (latest-gnome-release)[even-minor-version]: Rename
to...
[stable-minor-version?]: ... this. Also check that minor < 90.
---
guix/import/gnome.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm
index 43966c1028..1a0786ab8d 100644
--- a/guix/import/gnome.scm
+++ b/guix/import/gnome.scm
@@ -60,10 +60,10 @@ (define (latest-gnome-release package)
(define %not-dot
(char-set-complement (char-set #\.)))
- (define (even-minor-version? version)
+ (define (stable-minor-version? version)
(match (string-tokenize version %not-dot)
(((= string->number major) (= string->number minor) . rest)
- (and minor (even? minor)))
+ (and minor (even? minor) (< minor 90)))
(((= string->number major) . _)
;; It should at last start with a digit.
major)))
@@ -94,7 +94,7 @@ (define upstream-name
(let* ((releases (assoc-ref releases upstream-name))
(latest (fold (match-lambda*
(((key . value) result)
- (cond ((even-minor-version? key)
+ (cond ((stable-minor-version? key)
(match result
(#f
(cons key value))
--
2.36.1
Information forwarded
to
bug-guix <at> gnu.org
:
bug#55854
; Package
guix
.
(Fri, 17 Jun 2022 13:53:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 55854 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/gtk.scm (gtk+-2, gtk+)[properties]: Add update-major-version.
* guix/import/gnome.scm (lastest-gnome-release): Add ‘allowed-major-version?’
and use it to filter latest releases.
---
gnu/packages/gtk.scm | 6 ++++--
guix/import/gnome.scm | 33 +++++++++++++++++++++++----------
2 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 4d6a690fbb..73b313520f 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -939,7 +939,8 @@ (define-public gtk+-2
suitable for projects ranging from small one-off tools to complete
application suites.")
(license license:lgpl2.0+)
- (home-page "https://www.gtk.org/")))
+ (home-page "https://www.gtk.org/")
+ (properties `((update-major-version . 2)))))
(define-public gtk+
(package
@@ -1073,7 +1074,8 @@ (define-public gtk+
(native-search-paths
(list (search-path-specification
(variable "GUIX_GTK3_PATH")
- (files '("lib/gtk-3.0")))))))
+ (files '("lib/gtk-3.0")))))
+ (properties `((update-major-version . 3)))))
(define-public gtk
(package
diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm
index 1a0786ab8d..94a2598ab2 100644
--- a/guix/import/gnome.scm
+++ b/guix/import/gnome.scm
@@ -68,6 +68,17 @@ (define (stable-minor-version? version)
;; It should at last start with a digit.
major)))
+ (define allowed-major-version?
+ (let ((fixed-major (assoc-ref (package-properties package)
+ 'update-major-version)))
+ (if fixed-major
+ (lambda (version)
+ (match (string-tokenize version %not-dot)
+ (((= string->number major) . _)
+ (= major fixed-major))
+ (_ #f)))
+ (const #t))))
+
(define upstream-name
;; Some packages like "NetworkManager" have camel-case names.
(package-upstream-name package))
@@ -94,16 +105,18 @@ (define upstream-name
(let* ((releases (assoc-ref releases upstream-name))
(latest (fold (match-lambda*
(((key . value) result)
- (cond ((stable-minor-version? key)
- (match result
- (#f
- (cons key value))
- ((newest . _)
- (if (version>? key newest)
- (cons key value)
- result))))
- (else
- result))))
+ (cond
+ ((not (allowed-major-version? key))
+ result)
+ ((stable-minor-version? key)
+ (match result
+ (#f
+ (cons key value))
+ ((newest . _)
+ (if (version>? key newest)
+ (cons key value)
+ result))))
+ (else result))))
#f
releases)))
(and latest
--
2.36.1
This bug report was last modified 3 years ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.