From 0b994bb9b10b381376f1dfd8bd2bc9173ede2a66 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 11 Aug 2023 17:49:18 -0400 Subject: [PATCH] etc: Add Qt manifests for Qt maintenance. * etc/teams/qt/common.scm: New file. * etc/teams/qt/qt-manifest.scm: Likewise. * etc/teams/qt/qt5-manifest.scm: Likewise. --- etc/teams/qt/common.scm | 50 +++++++++++++++++++++++++++++++++++ etc/teams/qt/qt-manifest.scm | 34 ++++++++++++++++++++++++ etc/teams/qt/qt5-manifest.scm | 34 ++++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 etc/teams/qt/common.scm create mode 100644 etc/teams/qt/qt-manifest.scm create mode 100644 etc/teams/qt/qt5-manifest.scm diff --git a/etc/teams/qt/common.scm b/etc/teams/qt/common.scm new file mode 100644 index 0000000000..8e11ac220b --- /dev/null +++ b/etc/teams/qt/common.scm @@ -0,0 +1,50 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Maxim Cournoyer +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest of packages related to linux-libre. +;;; Simplistically, it selects packages whose names begin with "linux-libre". +;;; It is used to assist continuous integration of the kernel packages. + +(use-modules (guix packages) + (guix profiles) + (guix utils) + (gnu packages)) + +(define* (qt-packages-manifest #:key major-version negate-version-test?) + "Return a manifest of Qt packages for MAJOR-VERSION, or any version if left +unspecified. If NEGATE-VERSION-TEST? is true, select all the Qt packages +*not* matching MAJOR-VERSION." + (manifest + (map package->manifest-entry + (fold-packages + (lambda (package lst) + (let ((uri (and=> (package-source package) + (lambda (x) + (and (origin? x) + (origin-uri x)))))) + (if (and uri + (string? uri) + (string-prefix? "mirror://qt/" uri) + (if major-version + ((if negate-version-test? not identity) + (string=? major-version (version-major + (package-version package)))) + #t)) + (cons package lst) + lst))) + '())))) diff --git a/etc/teams/qt/qt-manifest.scm b/etc/teams/qt/qt-manifest.scm new file mode 100644 index 0000000000..0d8fa95bfe --- /dev/null +++ b/etc/teams/qt/qt-manifest.scm @@ -0,0 +1,34 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Maxim Cournoyer +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest of packages related to linux-libre. +;;; Simplistically, it selects packages whose names begin with "linux-libre". +;;; It is used to assist continuous integration of the kernel packages. + +(load "common.scm") + +;;; Commentary: +;;; +;;; This manifest can be used to update the latest Qt packages collection, via +;;; e.g.: +;;; +;;; ./pre-inst-env guix refresh -u -m etc/teams/qt/qt-manifest.scm +;;; +;;; Code: + +(qt-packages-manifest #:major-version "5" #:negate-version-test? #t) diff --git a/etc/teams/qt/qt5-manifest.scm b/etc/teams/qt/qt5-manifest.scm new file mode 100644 index 0000000000..34fdf479bf --- /dev/null +++ b/etc/teams/qt/qt5-manifest.scm @@ -0,0 +1,34 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Maxim Cournoyer +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest of packages related to linux-libre. +;;; Simplistically, it selects packages whose names begin with "linux-libre". +;;; It is used to assist continuous integration of the kernel packages. + +(load "common.scm") + +;;; Commentary: +;;; +;;; This manifest can be used to update the Qt 5 packages collection, via +;;; e.g.: +;;; +;;; ./pre-inst-env guix refresh -u -m etc/teams/qt/qt5-manifest.scm --target-version=5.15.10 +;;; +;;; Code: + +(qt-packages-manifest #:major-version "5")