From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: 55854@debbugs.gnu.org
Cc: Kaelyn <kaelyn.alexi@protonmail.com>
Subject: bug#55854: [PATCH 2/2] gnu: Restrict gtk+ updaters to their major versions.
Date: Fri, 17 Jun 2022 15:46:29 +0200 [thread overview]
Message-ID: <8d1df21d42539c5a0690be407e60e90c7335697a.camel@gmail.com> (raw)
In-Reply-To: <bpII8BMbxEJbaiPdFNKwLKOzgKF3fpl3t_Fl8yesV6QnyKVgD_Wl2z5Ip8rT8KIOHULjf9wIi_qbDshR2aC2gxdwwAUARVmWQxZ9H8JIiRg=@protonmail.com>
* 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
prev parent reply other threads:[~2022-06-17 13:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-08 17:18 bug#55854: "guix refresh" doesn't handle older versions like gtk+@2 Kaelyn via Bug reports for GNU Guix
2022-06-17 13:44 ` bug#55854: [PATCH 1/2] import: Check that GNOME minor version is not a semver prerelease Liliana Marie Prikler
2022-06-17 13:46 ` Liliana Marie Prikler [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8d1df21d42539c5a0690be407e60e90c7335697a.camel@gmail.com \
--to=liliana.prikler@gmail.com \
--cc=55854@debbugs.gnu.org \
--cc=kaelyn.alexi@protonmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).