[PATCH 0/4] Patches towards a release

  • Done
  • quality assurance status badge
Details
7 participants
  • Andreas Enge
  • Efraim Flashner
  • Ian Eure
  • Liliana Marie Prikler
  • Ludovic Courtès
  • pelzflorian (Florian Pelz)
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Efraim Flashner
Severity
normal

Debbugs page

Efraim Flashner wrote 1 months ago
(address . guix-patches@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
cover.1738851574.git.efraim@flashner.co.il
In the process toward a new release I took a look at the 'release' make
target and the release.scm manifest to start.

In the Makefile:
* Added riscv64-linux as a supported system
* switch the assert-binaries-available make target we've used previously
to make sure we have substitutes for a base set of packages to point
to the installer manifest. If the purpose of the installer is to
install and then everyone expected to run `guix pull` then we need the
packages from the installer.

release.scm:
I don't have a real good use for this manifest currently, but I've made
some changes anyway:
* %base-packages already existed in (gnu system), and that seemed like a
good list of packages that we would need.
* %system-packages: The note mentioned the installer, so I copied the
work I did on the installer.scm to this list.

installer.scm:
A manifest which only checks that we have substitutes for what can be
installed using the TUI installer (assuming no extra added items). It
differs from the GUIX_SYSTEM_INSTALLER_SYSTEM variable in the Makefile
by including aarch64 as an architecture. Ideally all the packages
should compile, which would allow someone to run the installer
successfully for x86_64-linux, i686-linux or aarch64-linux.

cross-compile.scm:
Ideally all the packages one would need to produce an OS image for
another architecture we support, or the same %base-packages for other
architectures we have. Currently it only tests from x86_64-linux.

Ideally I'd like to see the installer.scm and cross-compile.scm
manifests added to cuirass. I'd hope we could keep 100% build on
installer.scm so we can actually offer all the options in the installer,
and the cross-compile.scm manifest might need to be split so we can
focus on cross-compiling an OS config vs cross-compiling binaries for
another architecture.

Efraim Flashner (4):
Makefile.am: Add riscv64-linux as a supported-system.
etc: manifests/release: Adjust for changes in Guix.
etc: Add installer manifest.
etc: Add cross-compile manifest.

Makefile.am | 15 +--
etc/manifests/cross-compile.scm | 167 ++++++++++++++++++++++++++++++++
etc/manifests/installer.scm | 112 +++++++++++++++++++++
etc/manifests/release.scm | 51 +++++-----
4 files changed, 312 insertions(+), 33 deletions(-)
create mode 100644 etc/manifests/cross-compile.scm
create mode 100644 etc/manifests/installer.scm


base-commit: 782cc91970a795a58d10391f387cc12e4bfd1c90
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 1 months ago
[PATCH 1/4] Makefile.am: Add riscv64-linux as a supported-system.
(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
c3cdfd2fb8c176d49a125a89ab8d27e7357f44db.1738851574.git.efraim@flashner.co.il
* Makefile.am (SUPPORTED_SYSTEMS): Add riscv64-linux.

Change-Id: Ie8a18500b73b39f0702af64a5c9cb988ffd77250
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (17 lines)
diff --git a/Makefile.am b/Makefile.am
index de884548188..ad8bb907515 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1070,7 +1070,7 @@ SOURCE_TARBALLS = \
# Systems supported by Guix.
SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
- powerpc64le-linux
+ powerpc64le-linux riscv64-linux
# Guix binary tarballs.
BINARY_TARBALLS = \
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 1 months ago
[PATCH 2/4] etc: manifests/release: Adjust for changes in Guix.
(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
ea80b4f1e6eed0d2e6cab4b3fb14294dbc864fe2.1738851574.git.efraim@flashner.co.il
* etc/manifests/release.scm (%base-packages): Replace with
%base-packages from (gnu system).
(%system-packages): Adjust the packages which are depended upon by the
installer. Add a set of extra packages which we expect to have
available.
(%packages-to-cross-build): Add zstd and git-minimal.
(%cross-manifest): Add riscv64-linux-gnu as a target.

Change-Id: I5806fff6bc38d14859f6d7163719841620e28d09
---
etc/manifests/release.scm | 51 +++++++++++++++++++--------------------
1 file changed, 25 insertions(+), 26 deletions(-)

Toggle diff (135 lines)
diff --git a/etc/manifests/release.scm b/etc/manifests/release.scm
index b003f216fff..d5d86d273e7 100644
--- a/etc/manifests/release.scm
+++ b/etc/manifests/release.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2020-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@
(guix profiles)
((guix platform) #:select (targets))
((gnu services xorg) #:select (%default-xorg-modules))
+ ((gnu system) #:prefix gnu-system: #:select (%base-packages))
(guix utils)
(guix gexp)
(srfi srfi-1)
@@ -47,9 +49,9 @@ (define* (package->manifest-entry* package system
(define %base-packages
;; Packages that must be substitutable on all the platforms Guix supports.
- (map specification->package
- '("bootstrap-tarballs" "gcc-toolchain" "nss-certs"
- "openssh" "emacs" "vim" "python" "guile" "guix")))
+ ;; Use the %base-packages from (gnu system) since they are included by default
+ ;; in the packages field of the operating system configuration.
+ gnu-system:%base-packages)
(define %base-packages/armhf
;; The guix package doesn't build natively on armhf due to Guile memory
@@ -67,14 +69,17 @@ (define %base-packages/hurd
(define %system-packages
;; Key packages proposed by the Guix System installer.
(append (map specification->package
- '("xorg-server" "xfce" "gnome" "mate" "enlightenment"
- "openbox" "awesome" "i3-wm" "ratpoison"
+ '("gnome" "xfce" "mate" "enlightenment"
+ "openbox" "awesome"
+ "i3-wm" "i3status" "dmenu" "st"
+ "ratpoison" "xterm"
"emacs" "emacs-exwm" "emacs-desktop-environment"
- "xlockmore" "slock" "libreoffice"
- "connman" "network-manager" "network-manager-applet"
- "openssh" "ntp" "tor"
- "linux-libre" "grub-hybrid"
- "icecat"))
+ "openssh" "tor" "ntp" "gpm"
+ "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
+ "linux-libre" "grub-hybrid"))
+ ;; Additional key packages we want to make sure are available
+ (map specification->package
+ '("emacs" "icecat" "libreoffice" "vim"))
%default-xorg-modules))
(define %packages-to-cross-build
@@ -84,11 +89,12 @@ (define %packages-to-cross-build
(append (list (@ (gnu packages guile) guile-3.0/pinned))
(map specification->package
'("coreutils" "grep" "sed" "findutils" "diffutils" "patch"
- "gawk" "gettext" "gzip" "xz"
+ "gawk" "gettext" "gzip" "xz" "zstd" "git-minimal"
"hello" "zlib"))))
(define %packages-to-cross-build-for-mingw
- ;; Many things don't build for MinGW. Restrict to what's known to work.
+ ;; Many things don't build for MinGW. Restrict to what's known to work
+ ;; to test that the cross-compiler itself works.
(map specification->package '("hello")))
(define %cross-bootstrap-targets
@@ -107,14 +113,10 @@ (define %base-manifest
(manifest
(append-map (lambda (system)
(map (cut package->manifest-entry* <> system)
- (cond ((string=? system "i586-gnu")
+ (cond ((target-hurd? system)
%base-packages/hurd)
- ((string=? system "armhf-linux")
+ ((target-arm32? system)
%base-packages/armhf)
- ((string=? system "powerpc64le-linux")
- ;; FIXME: Drop 'bootstrap-tarballs' until
- ;; <https://bugs.gnu.org/48055> is fixed.
- (drop %base-packages 1))
(else
%base-packages))))
%cuirass-supported-systems)))
@@ -123,7 +125,7 @@ (define %system-manifest
(manifest
(append-map (lambda (system)
;; Some of %SYSTEM-PACKAGES are currently unsupported on some
- ;; systems--e.g., GNOME on non-x86_64, due to Rust. Filter
+ ;; systems--e.g., GNOME on 32-bit, due to Rust. Filter
;; them out.
(filter-map (lambda (package)
(and (supported-package? package system)
@@ -131,6 +133,8 @@ (define %system-manifest
%system-packages))
'("x86_64-linux" "i686-linux")))) ;Guix System
+;; As per the Guix Survey of 2024 we only worry about cross compiling from
+;; x86_64-linux (98% of users) and not from others (aarch64 with 19%).
(define %cross-manifest
(manifest
(append-map (lambda (target)
@@ -153,12 +157,7 @@ (define %cross-manifest
;; Ignore bare-metal targets.
"avr"
"or1k-elf"
- "xtensa-ath9k-elf"
-
- ;; XXX: Important bits like libsigsegv and libffi don't
- ;; support RISCV at the moment, so don't require RISCV
- ;; support.
- "riscv64-linux-gnu")))))
+ "xtensa-ath9k-elf")))))
(define %cross-bootstrap-manifest
(manifest
@@ -168,7 +167,7 @@ (define %cross-bootstrap-manifest
"x86_64-linux" #:target target))
%cross-bootstrap-targets)))
-;; Return the union of all three manifests.
+;; Return the union of all four manifests.
(concatenate-manifests (list %base-manifest
%system-manifest
%cross-manifest
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 1 months ago
[PATCH 3/4] etc: Add installer manifest.
(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
136a425368c9707e3097f7c57adb809d24a6689c.1738851574.git.efraim@flashner.co.il
* etc/manifests/installer.scm: New file.
* Makefile.am (GUIX_SYSTEM_SUPPORTED_SYSTEMS): Rename to
GUIX_SYSTEM_INSTALLER_SYSTEMS.
(assert-binaries-available): Check for substitutes using the installer
manifest.

Change-Id: I5c15e6916583bcd56e535733f284f3a735d7600b
---
Makefile.am | 13 +++--
etc/manifests/installer.scm | 112 ++++++++++++++++++++++++++++++++++++
2 files changed, 119 insertions(+), 6 deletions(-)
create mode 100644 etc/manifests/installer.scm

Toggle diff (165 lines)
diff --git a/Makefile.am b/Makefile.am
index ad8bb907515..f2a5bcf5f7b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1076,8 +1076,9 @@ SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
BINARY_TARBALLS = \
$(foreach system,$(SUPPORTED_SYSTEMS),guix-binary.$(system).tar.xz)
-# Systems supported by Guix System.
-GUIX_SYSTEM_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux
+# Systems supported by the Guix System installer.
+# A Hurd install happens from a Linux installer image.
+GUIX_SYSTEM_INSTALLER_SYSTEMS ?= x86_64-linux i686-linux
# Systems for which we build Guix VMs.
GUIX_SYSTEM_VM_SYSTEMS ?= x86_64-linux
@@ -1138,10 +1139,10 @@ release: dist-with-updated-version all
# Build 'current-guix' to speed things up for the next step.
$(top_builddir)/pre-inst-env guix build \
-e '((@ (gnu packages package-management) current-guix))' \
- $(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS)) \
+ $(call system_flags,$(GUIX_SYSTEM_INSTALLER_SYSTEMS)) \
-v1 --no-grafts --fallback
# Generate the ISO installation images.
- for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \
+ for system in $(GUIX_SYSTEM_INSTALLER_SYSTEMS) ; do \
GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ; \
image=`$(top_builddir)/pre-inst-env \
guix system image -t iso9660 \
@@ -1205,11 +1206,11 @@ assert-no-store-file-names:
exit 1 ; \
fi
-# Make sure important substitutes are available. Check only the primary
+# Make sure installer substitutes are available. Check only the primary
# server so that '--display-missing' doesn't print two lists.
assert-binaries-available: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env \
- guix weather -m "$(top_srcdir)/etc/manifests/release.scm" \
+ guix weather -m "$(top_srcdir)/etc/manifests/installer.scm" \
--substitute-urls="https://ci.guix.gnu.org" \
--display-missing
diff --git a/etc/manifests/installer.scm b/etc/manifests/installer.scm
new file mode 100644
index 00000000000..264cb4bab8e
--- /dev/null
+++ b/etc/manifests/installer.scm
@@ -0,0 +1,112 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+;;; This file returns a manifest containing packages which are needed by the
+;;; installer.
+
+(use-modules (gnu packages)
+ (guix packages)
+ (guix profiles)
+ ((guix platform) #:select (targets))
+ ((gnu services xorg) #:select (%default-xorg-modules))
+ ((gnu system) #:select (%base-packages %base-packages-linux))
+ (guix utils)
+ (guix gexp)
+ (srfi srfi-1)
+ (srfi srfi-26))
+
+(define* (package->manifest-entry* package system
+ #:key target)
+ "Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to
+TARGET."
+ (manifest-entry
+ (inherit (package->manifest-entry package))
+ (name (string-append (package-name package) "." system
+ (if target
+ (string-append "." target)
+ "'")))
+ (item (with-parameters ((%current-system system)
+ (%current-target-system target))
+ package))))
+
+(define %guix-system-installer-systems
+ ;; Only the systems listed in GUIX_SYSTEM_INSTALLER_SYSTEMS
+ '("x86_64-linux" "i686-linux"
+ ;; These would be installed from their Linux counterparts:
+ ;"x86_64-gnu" "i586-gnu"
+ ;; Not actually for the installer, but needs the same packages anyway.
+ "aarch64-linux"))
+
+(define %base-packages/hurd
+ ;; Remove the packages from %base-packages-linux and some of the packages
+ ;; from the other package sets.
+ (fold delete %base-packages
+ (append (map specification->package
+ '("e2fsprogs" "kbd" "iproute2" "iw" "wireless-tools"))
+ %base-packages-linux)))
+
+(define %system-packages
+ ;; Key packages proposed by the Guix System installer.
+ (append (map specification->package
+ '("gnome" "xfce" "mate" "enlightenment"
+ "openbox" "awesome"
+ "i3-wm" "i3status" "dmenu" "st"
+ "ratpoison" "xterm"
+ "emacs" "emacs-exwm" "emacs-desktop-environment"
+ "openssh" "tor" "ntp" "gpm"
+ "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
+ "linux-libre" "grub-hybrid"))
+ %default-xorg-modules))
+
+
+;;;
+;;; Manifests.
+;;;
+
+(define %base-manifest
+ (manifest
+ (append-map (lambda (system)
+ (map (cut package->manifest-entry* <> system)
+ (cond ((target-hurd? system)
+ %base-packages/hurd)
+ (else
+ %base-packages))))
+ %guix-system-installer-systems)))
+
+(define %system-manifest
+ (manifest
+ (cons
+ ;; linux-libre-arm64-generic is the commonly used kernel on aarch64-linux.
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-arm64-generic)
+ "aarch64-linux")
+ (append-map (lambda (system)
+ ;; Some of %SYSTEM-PACKAGES are currently unsupported on some
+ ;; systems--e.g., GNOME on 32-bit, due to Rust. Filter
+ ;; them out.
+ (filter-map (lambda (package)
+ (and (supported-package? package system)
+ (package->manifest-entry* package system)))
+ %system-packages))
+ %guix-system-installer-systems))))
+
+;; Return the union of all installer manifests.
+(concatenate-manifests (list %base-manifest
+ %system-manifest))
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 1 months ago
[PATCH 4/4] etc: Add cross-compile manifest.
(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
1a5c694d0b22eaf82b823d7264fae1c6c2ecfb60.1738851574.git.efraim@flashner.co.il
* etc/manifests/cross-compile.scm: New file.

Change-Id: I63ac4014617e8d716c508a04c6da553e36a99fec
---
etc/manifests/cross-compile.scm | 167 ++++++++++++++++++++++++++++++++
1 file changed, 167 insertions(+)
create mode 100644 etc/manifests/cross-compile.scm

Toggle diff (177 lines)
diff --git a/etc/manifests/cross-compile.scm b/etc/manifests/cross-compile.scm
new file mode 100644
index 00000000000..8754f325564
--- /dev/null
+++ b/etc/manifests/cross-compile.scm
@@ -0,0 +1,167 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020-2022, 2024 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+;;; This file returns a manifest containing packages which should all cross-compile.
+;;; We use the packages included by default in an OS configuration since that is
+;;; (probably) the most likely install method for some architectures.
+
+(use-modules (gnu packages)
+ (guix packages)
+ (guix profiles)
+ (guix platform)
+ ((gnu services xorg) #:select (%default-xorg-modules))
+ ((gnu system) #:prefix gnu-system:
+ #:select (%base-packages %base-packages-linux))
+ (guix utils)
+ (guix gexp)
+ (srfi srfi-1)
+ (srfi srfi-26))
+
+(define* (package->manifest-entry* package system
+ #:key target)
+ "Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to
+TARGET."
+ (manifest-entry
+ (inherit (package->manifest-entry package))
+ (name (string-append (package-name package) "." system
+ (if target
+ (string-append "." target)
+ "'")))
+ (item (with-parameters ((%current-system system)
+ (%current-target-system target))
+ package))))
+
+(define %base-packages
+ ;; Packages that must be substitutable on all the platforms Guix supports.
+ ;; Use the %base-packages from (gnu system) since they are included by default
+ ;; in the packages field of the operating system configuration.
+ gnu-system:%base-packages)
+
+(define %base-packages/hurd
+ ;; Remove the packages from %base-packages-linux and some of the packages
+ ;; from the other package sets.
+ (fold delete %base-packages
+ (append (map specification->package
+ '("e2fsprogs" "kbd" "iproute2" "iw" "wireless-tools"))
+ %base-packages-linux)))
+
+(define %system-packages
+ ;; Key packages proposed by the Guix System installer.
+ (map specification->package
+ '("guix" "openssh" "tor" "ntp" "gpm"
+ "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
+ "linux-libre" "grub-hybrid")))
+
+(define %system-gui-packages
+ ;; Key packages proposed by the Guix System installer.
+ (append (map specification->package
+ '("enlightenment"
+ ;; build system `python' does not support cross builds
+ ;"gnome" "xfce" "mate" "openbox"
+ "awesome"
+ "i3-wm" "i3status" "dmenu" "st"
+ "ratpoison" "xterm"
+ ;; build system `emacs' does not support cross builds
+ ;"emacs-exwm" "emacs-desktop-environment"
+ "emacs"))
+ %default-xorg-modules))
+
+(define %packages-to-cross-build
+ ;; Packages that must be cross-buildable from x86_64-linux.
+ ;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463>
+ ;; is fixed.
+ (append (list (@ (gnu packages guile) guile-3.0/pinned))
+ (map specification->package
+ '("coreutils" "grep" "sed" "findutils" "diffutils" "patch"
+ "gawk" "gettext" "gzip" "xz" "zstd"
+ "hello" "zlib"))))
+
+(define %packages-to-cross-build-for-mingw
+ ;; Many things don't build for MinGW. Restrict to what's known to work
+ ;; to test that the cross-compiler itself works.
+ (map specification->package '("hello")))
+
+
+;;;
+;;; Manifests.
+;;;
+
+;; As per the Guix Survey of 2024 we only worry about cross compiling from
+;; x86_64-linux (98% of users) and not from others (aarch64 with 19%).
+(define %cross-manifest
+ (manifest
+ (append-map (lambda (target)
+ (map (cut package->manifest-entry* <> "x86_64-linux"
+ #:target target)
+ (if (target-mingw? target)
+ %packages-to-cross-build-for-mingw
+ %packages-to-cross-build)))
+ (fold delete (targets)
+ '(;; Disable cross-compilation to self:
+ "x86_64-linux-gnu"
+
+ ;; mips64el commonly targets a different architecture
+ ;; revision than we targeted in Guix.
+ "mips64el-linux-gnu"
+
+ ;; Ignore bare-metal targets.
+ "avr"
+ "or1k-elf"
+ "xtensa-ath9k-elf")))))
+
+(define %cross-system
+ (manifest
+ (cons*
+ ;; Include a couple of extra kernels that are commonly used:
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-arm64-generic)
+ "x86_64-linux"
+ #:target "aarch64-linux-gnu")
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-arm-generic)
+ "x86_64-linux"
+ #:target "arm-linux-gnueabihf")
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-riscv64-generic)
+ "x86_64-linux"
+ #:target "riscv64-linux-gnu")
+ (append-map (lambda (target)
+ (map (cut package->manifest-entry* <> "x86_64-linux"
+ #:target target)
+ (cond
+ ;; With a graphical environment:
+ ((or (target-x86-32? target)
+ (target-aarch64? target))
+ (append %base-packages
+ %system-packages
+ %system-gui-packages))
+ (else (append %base-packages %system-packages)))))
+ (fold delete (map platform-system->target (systems))
+ '(;; Disable cross-compilation to self:
+ "x86_64-linux-gnu"
+
+ ;; Ignore obsolete systems, as in (gnu ci).
+ "mips64el-linux-gnu"
+ "powerpc-linux-gnu"))))))
+
+;; Return the union of all the manifests.
+(concatenate-manifests (list %cross-manifest
+ %cross-system))
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 1 months ago
The next release
(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
Z6s6qzMesCT7kuyS@3900XT
We discussed the next release during Guix Days and I volunteered to lead
the effort.

The short version:

* We need a tagged release so we can update the version in Debian and
other distros, in CI systems, etc.
* We need a newer point-in-time for the installer.
* A new release increases interest in the project.

I've opened bug #76098 with a couple of patches but I figured it would
be better if I wrote here instead.

In the process toward a new release I took a look at the 'release' make
target and the release.scm manifest to start.

In the Makefile:
* Added riscv64-linux as a supported system
* switch the assert-binaries-available make target we've used previously
to make sure we have substitutes for a base set of packages to point
to the installer manifest. If the purpose of the installer is to
install and then everyone expected to run `guix pull` then we need the
packages from the installer.

release.scm:
I don't have a real good use for this manifest currently, but I've made
some changes anyway:
* %base-packages already existed in (gnu system), and that seemed like a
good list of packages that we would need. This increased the list of
packages.
* %system-packages: The note mentioned the installer, so I copied the
work I did on the installer.scm to this list. This also increased the
list of packages.

installer.scm:
A manifest which only checks that we have substitutes for what can be
installed using the TUI installer (assuming no extra added items). It
differs from the GUIX_SYSTEM_INSTALLER_SYSTEM variable in the Makefile
by including aarch64 as an architecture. Ideally all the packages
should compile, which would allow someone to run the installer
successfully for x86_64-linux, i686-linux or aarch64-linux. Currently
everything is in one big manifest, but I think it would be better if we
didn't do that, which would allow anyone to try to build the manifest
only on architectures they are interested in/able to fix. Then we could
(using the cuirass interface) set which architectures to try to build
the manifest.

cross-compile.scm:
Ideally all the packages one would need to produce an OS image for
another architecture we support, or the same %base-packages for other
architectures we have. Currently it only tests from x86_64-linux.

Ideally I'd like to see the installer.scm and cross-compile.scm
manifests added to Cuirass. I'd hope we could keep 100% build on
installer.scm so we can actually offer all the options in the installer,
and the cross-compile.scm manifest might need to be split so we can
focus on cross-compiling an OS config vs cross-compiling binaries for
another architecture.


--
Efraim Flashner <efraim@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
From c3cdfd2fb8c176d49a125a89ab8d27e7357f44db Mon Sep 17 00:00:00 2001
Message-ID: <c3cdfd2fb8c176d49a125a89ab8d27e7357f44db.1738851574.git.efraim@flashner.co.il>
In-Reply-To: <cover.1738851574.git.efraim@flashner.co.il>
References: <cover.1738851574.git.efraim@flashner.co.il>
From: Efraim Flashner <efraim@flashner.co.il>
Date: Thu, 6 Feb 2025 16:06:27 +0200
Subject: [PATCH 1/4] Makefile.am: Add riscv64-linux as a supported-system.

* Makefile.am (SUPPORTED_SYSTEMS): Add riscv64-linux.

Change-Id: Ie8a18500b73b39f0702af64a5c9cb988ffd77250
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (17 lines)
diff --git a/Makefile.am b/Makefile.am
index de884548188..ad8bb907515 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1070,7 +1070,7 @@ SOURCE_TARBALLS = \
# Systems supported by Guix.
SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
- powerpc64le-linux
+ powerpc64le-linux riscv64-linux
# Guix binary tarballs.
BINARY_TARBALLS = \
--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmerOqcACgkQQarn3Mo9
g1EwCQ//VR1JQLrE0YvvuBSwLjK35bjlzjyxDFXUPFg5JNjCl4QESFKUlkccVHx5
LrPn2Wsuupwyz3iDFEY5DkgN1G9MXrsbQ543c0PON+Qmc06S/zzM17X4dXuDAd2G
3F3CPZKtrmXPvM0hC8F/3yjag0IYdQD9coBpJySlSTwx2wnEEnyCAqb/f4TVtl+R
ithoic89z6W2p3JdpbOKmas/cJZSjiASdxP9eBOAudZLTjprn7chs1ZtmI1VQaPo
Zpu2p4PiJtOPDn4mYJzMqjAQ6JNkb1SYjSL3zTQ90Fja0aaKoWIbkabJ1LtldYE8
ghkFW0q2OvVf1zn4bE+1Zx0PaJ8xjfwGy1uvbDywgzd6nCkZwke13BUr8ns7nui2
iCNWEMQTCsIVqeQ9jL6NCKaZBP8s4+ci69vWsT2dvkifTDJwmo9bOLrz30eH2Ft6
zhvap9rETkDbTAg1tDm8XwpT20ST/zv8yJpBGpxoOGfVs3P6g+uwaKZKRhq9lY4c
vkeyn3hpBdy/ug8ZcVFlS6LnbvOeBR7bj8Q+zDDjCXvBqTVlYuhbks7ckHnrm7c8
eg0FhrWieau8ehBO/BvYO5N1AbNHRVIxkpPzvvUn0/sm80ybVGpsoy30gFM/+UEJ
OrdQSs4cgZC1Fth03JFiYmkY7dMPYPnvOA07/PIeO8thkiEhXNE=
=IMh0
-----END PGP SIGNATURE-----


Ludovic Courtès wrote 1 months ago
Re: [bug#76098] [PATCH 0/4] Patches towards a release
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 76098@debbugs.gnu.org)
878qqb8pvl.fsf@gnu.org
Hello Efraim,

Thanks for leading this effort!

Efraim Flashner <efraim@flashner.co.il> skribis:

Toggle quote (3 lines)
> In the Makefile:
> * Added riscv64-linux as a supported system

One issue is that ci.guix, which is responsible for building release
artifacts (tarballs and ISOs), doesn’t build for riscv64-linux nor for
armhf-linux actually.

One way would be to add riscv64 and aarch64/armv7 hardware behind
ci.guix; another way would be to get bordeaux.guix to build these.

Toggle quote (6 lines)
> * switch the assert-binaries-available make target we've used previously
> to make sure we have substitutes for a base set of packages to point
> to the installer manifest. If the purpose of the installer is to
> install and then everyone expected to run `guix pull` then we need the
> packages from the installer.

That was the purpose of ‘release.scm’. Perhaps instead of having an
unused ‘release.scm’, just make it what you currently have in
‘installer.scm’?

Toggle quote (13 lines)
> installer.scm:
> A manifest which only checks that we have substitutes for what can be
> installed using the TUI installer (assuming no extra added items). It
> differs from the GUIX_SYSTEM_INSTALLER_SYSTEM variable in the Makefile
> by including aarch64 as an architecture. Ideally all the packages
> should compile, which would allow someone to run the installer
> successfully for x86_64-linux, i686-linux or aarch64-linux.
>
> cross-compile.scm:
> Ideally all the packages one would need to produce an OS image for
> another architecture we support, or the same %base-packages for other
> architectures we have. Currently it only tests from x86_64-linux.

‘release.scm’ was lumping all that together, but maybe it’s more
convenient to separate it as you did, indeed.

Toggle quote (7 lines)
> Ideally I'd like to see the installer.scm and cross-compile.scm
> manifests added to cuirass. I'd hope we could keep 100% build on
> installer.scm so we can actually offer all the options in the installer,
> and the cross-compile.scm manifest might need to be split so we can
> focus on cross-compiling an OS config vs cross-compiling binaries for
> another architecture.

We can definitely add them to Cuirass.

Thanks,
Ludo’.
Vagrant Cascadian wrote 1 months ago
Re: The next release
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
87o6z2afqb.fsf@wireframe
On 2025-02-11, Efraim Flashner wrote:
Toggle quote (3 lines)
> We discussed the next release during Guix Days and I volunteered to lead
> the effort.

Thanks for working on it!

Toggle quote (5 lines)
> The short version:
>
> * We need a tagged release so we can update the version in Debian and
> other distros, in CI systems, etc.

Unless this happens very, very quickly(e.g. a week or two?), I am not
sure we will have this in time for Debian, which is about to enter
freeze for preparing the next release of Debian...

I may just make an attempt at making a git snapshot or something, which
I did once in the distant past... any recommendations on a particular
commit to aim at? Even an alpha or release candidate or whatever tag
would be nice...

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZ7Ey3AAKCRDcUY/If5cW
qiQ/AQCHNh7SikEz1QtMZCWX2ABt1CYN5wsc9CdHS5CbSfeWKAD/aIQ9366awxkX
ROVE0Nmm9hP105pX0Xvc+62G9l9bcw0=
=AiVJ
-----END PGP SIGNATURE-----

Ludovic Courtès wrote 1 months ago
(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
874j0tvq5c.fsf@gnu.org
Hi Efraim,

Efraim Flashner <efraim@flashner.co.il> skribis:

Toggle quote (7 lines)
> The short version:
>
> * We need a tagged release so we can update the version in Debian and
> other distros, in CI systems, etc.
> * We need a newer point-in-time for the installer.
> * A new release increases interest in the project.

Thanks a lot for getting the ball rolling!

One thing we discussed in Brussels is the need for more automation so
that pretty much anyone can make a release without having special
privileges and without spending an entire day building release
artifacts.

The main blocker is the two-step process with the ‘guix’ package update.
We briefly discussed the use of ‘current-guix’ as a way to bypass that.
(gnu services install) already uses it for the installer itself; the
next step would be to use it in the installed image and thus, possibly,
unconditionally. The main reason why this is not done currently is that
it’s too expensive (equivalent to ‘guix pull’), but we could probably
address that.

I’m willing to give a hand in this area over the coming weeks.

Thanks,
Ludo’.
Andreas Enge wrote 1 months ago
(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
Z7M-S6dbrPFKYhWj@jurong
Hello,

I think something we need to do urgently is to run an ungrafting
process - grafting takes a considerable amount of time when updating my
system now, and I suppose it will also waste a bit of space. We should
not burden the installation process with it.

Did we not have a jobset on ci to automate this?

As said in Brussels, I would be happy to test a new installation image
on a further x86_64 I would like to get running Guix.

Andreas
Vagrant Cascadian wrote 1 months ago
make dist and related fun (was: The next release)
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
878qq1a8ss.fsf@wireframe
On 2025-02-15, Vagrant Cascadian wrote:
Toggle quote (3 lines)
> On 2025-02-11, Efraim Flashner wrote:
>> We discussed the next release during Guix Days and I volunteered to lead
>> the effort.
...
Toggle quote (5 lines)
> I may just make an attempt at making a git snapshot or something, which
> I did once in the distant past... any recommendations on a particular
> commit to aim at? Even an alpha or release candidate or whatever tag
> would be nice...

So, in order to try this, the first thing I needed to do was remember
how to run "make dist" to generate the tarball...

Basically from a clean git checkout:

guix git tag v1.4.0+XYZ HEAD # I used f7cd085f4a36e118aa05af5524e74830a30b3dca
guix git authenticate && \
guix shell --container --pure --development guix guix git imagemagick perl graphviz less -- ./bootstrap && \
guix shell --container --pure --development guix guix git imagemagick perl graphviz less -- ./configure && \
guix shell --container --pure --development guix guix git imagemagick perl graphviz less -- make -j1 dist

Not sure if that is the "right" way or if there is better
documentation... ?

Running "make -j5 dist" failed in various ways... so there are probably
some undefined dependencies.

graphviz was needed otherwise the bootstrap-graph.pdf failed to build
(graphviz-minimal gets pulled in by "--development guix" but does not
support .pdf generation).

The other inputs, well, they're just from the last times I tried running
"make dist"! maybe they are no longer needed, maybe the are!


The generated tarball also appears to be missing a few files, some of
which seem fine (e.g. .gitignore) but some which actually cause problems
(e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some of which
probably should be added to dist_patch_DATA in gnu/local.mk or other
relevent values:

Only in ../guix-master/build-aux: cuirass
Only in ../guix-master/build-aux: gitlog-to-changelog
Only in ../guix-master: .editorconfig
Only in ../guix-master/etc: copyright.el
Only in ../guix-master/etc: git
Only in ../guix-master/etc: snippets
Only in ../guix-master/etc: teams
Only in ../guix-master/etc: teams.scm
Only in ../guix-master: .gitattributes
Only in ../guix-master: .gitignore
Only in ../guix-master/gnu/packages/patches: cyrus-sasl-ac-try-run-fix.patch
Only in ../guix-master/gnu/packages/patches: gcc-10-tree-sra-union-handling.patch
Only in ../guix-master/gnu/packages/patches: gegl-compatibility-old-librsvg.patch
Only in ../guix-master/gnu/packages/patches: go-github-com-skip2-go-qrcode-fix-tests.patch
Only in ../guix-master/gnu/packages/patches: librewolf-neuter-locale-download.patch
Only in ../guix-master/gnu/packages/patches: openjdk-15-jtask-reproducibility.patch
Only in ../guix-master/gnu/packages/patches: python-pytorch-for-r-torch-fix-codegen.patch
Only in ../guix-master/gnu/packages/patches: python-pytorch-for-r-torch-system-libraries.patch
Only in ../guix-master/gnu/packages/patches: rdkit-unbundle-external-dependencies.patch
Only in ../guix-master/gnu/packages/patches: tinydir-fix-cbehave-test.patch
Only in ../guix-master/gnu/system/examples: bare-hurd64.tmpl
Only in ../guix-master/gnu/system/examples: devel-hurd64.tmpl
Only in ../guix-master/gnu/system/examples: devel-hurd.tmpl
Only in ../guix-master/gnu/tests: lightdm.scm
Only in ../guix-master/gnu/tests: sddm.scm
Only in ../guix-master: .mailmap
Only in ../guix-master: .mumi
Only in ../guix-master/nix: .gitignore
Only in ../guix-master/nix/libstore: .gitignore
Only in ../guix-master: .patman
Only in ../guix-master/po/doc: po4a.cfg
Only in ../guix-master/tests: hexpm.scm
Only in ../guix-master/tests: ipfs.scm


I also fixed a bunch of typos, spelling, grammar, etc. that my workflow
building Guix in Debian detects in various package
synopsis/descriptions, and seem to have inspired others to do the same!
:)


In this process I also found a bug that caused "make dist" to fail due
to embedded store paths, and pushed a fix to guix.git as
0626f567378cf549fd097f3c3372fa498000a8a3.


Also, in reviewing the copyright and license headers while packaging for
Debian, this raised a broader question about translating license headers
in files such as doc/guix.de.info:


With my limited german, it is clearly a header to declare the file is
released under the GFDL in some form, but I wonder if that is a good
idea to translate the license headers ... as at least in the US, in
order to ship that file I would maybe need to at least consult with a
lawyer (the US only recognizes English for legal documents), and I
suspect various other countries might need something similar for
arbitrary languages... having to get a lawyer involved kind of kills the
joy of free software and the goal of free distribution...

This of course touches on some awful issues around language
imperialism. :/


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZ7ZV8wAKCRDcUY/If5cW
qlI6AQCP0EKn38zBHzS6VACM8s8/xLhV8pCBvG0eCT39S5q7OAEAyE1wMfl+XPZJ
wFVLGIhz1qCkl1Jwxw6A4xm9oai7sgk=
=vl/Q
-----END PGP SIGNATURE-----

Ian Eure wrote 1 months ago
Re: make dist and related fun
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
87pljdgu49.fsf@retrospec.tv
Hi Vagrant,

Vagrant Cascadian <vagrant@debian.org> writes:

Toggle quote (16 lines)
> On 2025-02-15, Vagrant Cascadian wrote:
>
> The generated tarball also appears to be missing a few files,
> some of
> which seem fine (e.g. .gitignore) but some which actually cause
> problems
> (e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some
> of which
> probably should be added to dist_patch_DATA in gnu/local.mk or
> other
> relevent values:
>
> Only in ../guix-master/gnu/packages/patches:
> librewolf-neuter-locale-download.patch
>

135.0.1-1 released today and I’m prepping patches for it, I can
include this fix if nobody beats me to it.

Can we glob so everything in gnu/packages/patches gets pulled in?
It feels odd to maintain a separate list, presumably the patches
wouldn’t be in there if something didn’t need them.

Thanks,
-- Ian
Ian Eure wrote 1 months ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
87jz9lgt4s.fsf@retrospec.tv
Also, thank you for tackling this!

-- Ian
Efraim Flashner wrote 4 weeks ago
[PATCH v2 0/5] Patches towards a release
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
cover.1740054626.git.efraim@flashner.co.il
Changes from the previous set of patches:

The first patch is new, it fixes a longstanding bug (TODO: which one?)
where `guix build --manifest` didn't honor the `--system` flag.

Second patch is unchanged.

Third patch removes the installer.scm manifest and only makes changes to
the Makefile.am.

Fourth patch keeps the changes from the installer.scm manifest but keeps
it in release.scm. In addition it only produces a manifest for one
architecture, making it easier to test per-architecture. It also
removes a bunch of now unused code.

The fifth patch moved the 'guix' package from %system-packages to
%base-packages and redid the logic for appending lists of packages
per-architecture.

Efraim Flashner (5):
guix build: Honor '--system' with '--manifest'.
Makefile.am: Add riscv64-linux as a supported-system.
Makefile.am: Clarify the label for systems supported by the installer.
etc: manifests/release: Only check for packages needed in the
installer.
etc: Add cross-compile manifest.

Makefile.am | 13 +--
etc/manifests/cross-compile.scm | 167 ++++++++++++++++++++++++++++++++
etc/manifests/release.scm | 155 +++++++----------------------
guix/scripts/build.scm | 22 +++--
4 files changed, 220 insertions(+), 137 deletions(-)
create mode 100644 etc/manifests/cross-compile.scm


base-commit: 65efd0c33511727987c90bebaf5c50a84e0e6182
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 4 weeks ago
[PATCH v2 1/5] guix build: Honor '--system' with '--manifest'.
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
dd27306511ece011c352fbb06454674dc419e29d.1740054626.git.efraim@flashner.co.il
* guix/scripts/build.scm (options->things-to-build): Wrap the manifest
build option with the result of the '--system' option.

Change-Id: I1c3ff93af56bb659ddc00e1872c769cfc5e7a0d5
---
guix/scripts/build.scm | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)

Toggle diff (37 lines)
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index f0a637a2ef5..dfc37d01d85 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -706,15 +706,19 @@ (define-public my-package
(ensure-list (load* file (make-user-module '()))))
result))))
(('manifest . manifest)
- (loop tail 'regular
- (append (map manifest-entry-item
- (manifest-entries
- (ensure-manifest
- (load* manifest
- (make-user-module '((guix profiles)
- (gnu))))
- manifest)))
- result)))
+ ;; Otherwise '--system' is ignored.
+ ;; Wrap the loop instead of adjusting each item so that manifest
+ ;; items can individually be for different systems.
+ (parameterize ((%current-system system))
+ (loop tail 'regular
+ (append (map manifest-entry-item
+ (manifest-entries
+ (ensure-manifest
+ (load* manifest
+ (make-user-module '((guix profiles)
+ (gnu))))
+ manifest)))
+ result))))
(('expression . str)
(loop tail 'regular
(append (append-map for-type (ensure-list (read/eval str)))
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 4 weeks ago
[PATCH v2 2/5] Makefile.am: Add riscv64-linux as a supported-system.
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
a599c26342f3a33eef9a135d93e257d902252110.1740054626.git.efraim@flashner.co.il
* Makefile.am (SUPPORTED_SYSTEMS): Add riscv64-linux.

Change-Id: Ie8a18500b73b39f0702af64a5c9cb988ffd77250
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (17 lines)
diff --git a/Makefile.am b/Makefile.am
index edcc392492b..d5b33570532 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1072,7 +1072,7 @@ SOURCE_TARBALLS = \
# Systems supported by Guix.
SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
- powerpc64le-linux
+ powerpc64le-linux riscv64-linux
# Guix binary tarballs.
BINARY_TARBALLS = \
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 4 weeks ago
[PATCH v2 3/5] Makefile.am: Clarify the label for systems supported by the installer.
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
5a202e889168ca55610cae8afb8e9d95bac661be.1740054627.git.efraim@flashner.co.il
* Makefile.am (GUIX_SYSTEM_SUPPORTED_SYSTEMS): Rename to
GUIX_SYSTEM_INSTALLER_SYSTEMS.

Change-Id: I5c15e6916583bcd56e535733f284f3a735d7600b
---
Makefile.am | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Toggle diff (42 lines)
diff --git a/Makefile.am b/Makefile.am
index d5b33570532..93d40a701fe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1078,8 +1078,9 @@ SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
BINARY_TARBALLS = \
$(foreach system,$(SUPPORTED_SYSTEMS),guix-binary.$(system).tar.xz)
-# Systems supported by Guix System.
-GUIX_SYSTEM_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux
+# Systems supported by the Guix System installer.
+# A Hurd install happens from a Linux installer image.
+GUIX_SYSTEM_INSTALLER_SYSTEMS ?= x86_64-linux i686-linux
# Systems for which we build Guix VMs.
GUIX_SYSTEM_VM_SYSTEMS ?= x86_64-linux
@@ -1140,10 +1141,10 @@ release: dist-with-updated-version all
# Build 'current-guix' to speed things up for the next step.
$(top_builddir)/pre-inst-env guix build \
-e '((@ (gnu packages package-management) current-guix))' \
- $(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS)) \
+ $(call system_flags,$(GUIX_SYSTEM_INSTALLER_SYSTEMS)) \
-v1 --no-grafts --fallback
# Generate the ISO installation images.
- for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \
+ for system in $(GUIX_SYSTEM_INSTALLER_SYSTEMS) ; do \
GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ; \
image=`$(top_builddir)/pre-inst-env \
guix system image -t iso9660 \
@@ -1207,7 +1208,7 @@ assert-no-store-file-names:
exit 1 ; \
fi
-# Make sure important substitutes are available. Check only the primary
+# Make sure installer substitutes are available. Check only the primary
# server so that '--display-missing' doesn't print two lists.
assert-binaries-available: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env \
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 4 weeks ago
[PATCH v2 4/5] etc: manifests/release: Only check for packages needed in the installer.
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
eecfbed834b434db6d5edfc375df047207620aba.1740054627.git.efraim@flashner.co.il
* etc/manifests/release.scm (%system-packages): Adjust the packages
which are depended upon by the installer. Add a set of extra packages
which we expect to have available.
(%base-packages, %base-packages/armhf, %base-packages/hurd,
%packages-to-cross-build, %packages-to-cross-build-for-mingw,
%cross-bootstrap-targets, %base-manifest, %cross-manifest,
%cross-bootstrap-manifest): Remove variables.

Change-Id: I5806fff6bc38d14859f6d7163719841620e28d09
---
etc/manifests/release.scm | 155 ++++++++------------------------------
1 file changed, 33 insertions(+), 122 deletions(-)

Toggle diff (199 lines)
diff --git a/etc/manifests/release.scm b/etc/manifests/release.scm
index b003f216fff..f69ab316ca4 100644
--- a/etc/manifests/release.scm
+++ b/etc/manifests/release.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2020-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,18 +19,13 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-;;; This file returns a manifest containing release-critical bit, for all the
-;;; supported architectures and cross-compilation targets.
+;;; This file returns a manifest containing packages which are needed by the
+;;; installer.
-(use-modules (gnu packages)
- (guix packages)
- (guix profiles)
- ((guix platform) #:select (targets))
+(use-modules (guix packages)
((gnu services xorg) #:select (%default-xorg-modules))
(guix utils)
- (guix gexp)
- (srfi srfi-1)
- (srfi srfi-26))
+ (srfi srfi-1))
(define* (package->manifest-entry* package system
#:key target)
@@ -45,131 +41,46 @@ (define* (package->manifest-entry* package system
(%current-target-system target))
package))))
-(define %base-packages
- ;; Packages that must be substitutable on all the platforms Guix supports.
- (map specification->package
- '("bootstrap-tarballs" "gcc-toolchain" "nss-certs"
- "openssh" "emacs" "vim" "python" "guile" "guix")))
-
-(define %base-packages/armhf
- ;; The guix package doesn't build natively on armhf due to Guile memory
- ;; issues compiling the package modules
- (remove (lambda (package)
- (string=? (package-name package) "guix"))
- %base-packages))
-
-(define %base-packages/hurd
- ;; XXX: For now we are less demanding of "i586-gnu".
- (map specification->package
- '("coreutils" "grep" "findutils" "gawk" "make"
- #;"gcc-toolchain" "tar" "xz")))
-
(define %system-packages
;; Key packages proposed by the Guix System installer.
(append (map specification->package
- '("xorg-server" "xfce" "gnome" "mate" "enlightenment"
- "openbox" "awesome" "i3-wm" "ratpoison"
+ '("guix"
+ "gnome" "xfce" "mate" "enlightenment"
+ "openbox" "awesome"
+ "i3-wm" "i3status" "dmenu" "st"
+ "ratpoison" "xterm"
"emacs" "emacs-exwm" "emacs-desktop-environment"
- "xlockmore" "slock" "libreoffice"
- "connman" "network-manager" "network-manager-applet"
- "openssh" "ntp" "tor"
- "linux-libre" "grub-hybrid"
- "icecat"))
+ "openssh" "tor" "ntp" "gpm"
+ "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
+ "linux-libre" "grub-hybrid"))
%default-xorg-modules))
-(define %packages-to-cross-build
- ;; Packages that must be cross-buildable from x86_64-linux.
- ;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463>
- ;; is fixed.
- (append (list (@ (gnu packages guile) guile-3.0/pinned))
- (map specification->package
- '("coreutils" "grep" "sed" "findutils" "diffutils" "patch"
- "gawk" "gettext" "gzip" "xz"
- "hello" "zlib"))))
-
-(define %packages-to-cross-build-for-mingw
- ;; Many things don't build for MinGW. Restrict to what's known to work.
- (map specification->package '("hello")))
-
-(define %cross-bootstrap-targets
- ;; Cross-compilation triplets for which 'bootstrap-tarballs' must be
- ;; buildable.
- '("i586-pc-gnu"
- "arm-linux-gnueabihf"
- "aarch64-linux-gnu"))
-
;;;
;;; Manifests.
;;;
-(define %base-manifest
- (manifest
- (append-map (lambda (system)
- (map (cut package->manifest-entry* <> system)
- (cond ((string=? system "i586-gnu")
- %base-packages/hurd)
- ((string=? system "armhf-linux")
- %base-packages/armhf)
- ((string=? system "powerpc64le-linux")
- ;; FIXME: Drop 'bootstrap-tarballs' until
- ;; <https://bugs.gnu.org/48055> is fixed.
- (drop %base-packages 1))
- (else
- %base-packages))))
- %cuirass-supported-systems)))
-
(define %system-manifest
(manifest
- (append-map (lambda (system)
- ;; Some of %SYSTEM-PACKAGES are currently unsupported on some
- ;; systems--e.g., GNOME on non-x86_64, due to Rust. Filter
- ;; them out.
- (filter-map (lambda (package)
- (and (supported-package? package system)
- (package->manifest-entry* package system)))
- %system-packages))
- '("x86_64-linux" "i686-linux")))) ;Guix System
+ (append
+ ;; The linux-libre-*-generic kernel is commonly used on some architectures.
+ (cond
+ ((target-aarch64?)
+ (package->manifest-entry (@ (gnu packages linux)
+ linux-libre-arm64-generic)))
+ ((target-riscv64?)
+ (package->manifest-entry (@ (gnu packages linux)
+ linux-libre-riscv64-generic)))
+ ((target-arm32?)
+ (package->manifest-entry (@ (gnu packages linux)
+ linux-libre-arm-generic)))
+ (else '()))
-(define %cross-manifest
- (manifest
- (append-map (lambda (target)
- (map (cut package->manifest-entry* <> "x86_64-linux"
- #:target target)
- (if (target-mingw? target)
- %packages-to-cross-build-for-mingw
- %packages-to-cross-build)))
- (fold delete (targets)
- '(;; Like in (gnu ci), dismiss cross-compilation to x86:
- ;; it's pointless.
- "x86_64-linux-gnu"
- "i686-linux-gnu"
+ ;; Some of %SYSTEM-PACKAGES are currently unsupported on some
+ ;; systems--e.g., GNOME on 32-bit, due to Rust. Filter them out.
+ (filter-map (lambda (package)
+ (and (supported-package? package (%current-system))
+ (package->manifest-entry package)))
+ %system-packages))))
- ;; Ignore obsolete systems, as in (gnu ci).
- "mips64el-linux-gnu"
- "powerpc-linux-gnu"
- "powerpc64-linux-gnu"
-
- ;; Ignore bare-metal targets.
- "avr"
- "or1k-elf"
- "xtensa-ath9k-elf"
-
- ;; XXX: Important bits like libsigsegv and libffi don't
- ;; support RISCV at the moment, so don't require RISCV
- ;; support.
- "riscv64-linux-gnu")))))
-
-(define %cross-bootstrap-manifest
- (manifest
- (map (lambda (target)
- (package->manifest-entry*
- (specification->package "bootstrap-tarballs")
- "x86_64-linux" #:target target))
- %cross-bootstrap-targets)))
-
-;; Return the union of all three manifests.
-(concatenate-manifests (list %base-manifest
- %system-manifest
- %cross-manifest
- %cross-bootstrap-manifest))
+%system-manifest
--
Efraim Flashner <efraim@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
Efraim Flashner wrote 4 weeks ago
[PATCH v2 5/5] etc: Add cross-compile manifest.
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
96b2e33f638ff75460260eed579bb9f7655633ef.1740054627.git.efraim@flashner.co.il
* etc/manifests/cross-compile.scm: New file.

Change-Id: I63ac4014617e8d716c508a04c6da553e36a99fec
---
etc/manifests/cross-compile.scm | 167 ++++++++++++++++++++++++++++++++
1 file changed, 167 insertions(+)
create mode 100644 etc/manifests/cross-compile.scm

Toggle diff (177 lines)
diff --git a/etc/manifests/cross-compile.scm b/etc/manifests/cross-compile.scm
new file mode 100644
index 00000000000..280489cc19a
--- /dev/null
+++ b/etc/manifests/cross-compile.scm
@@ -0,0 +1,167 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020-2022, 2024 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+;;; This file returns a manifest containing packages which should all cross-compile.
+;;; We use the packages included by default in an OS configuration since that is
+;;; (probably) the most likely install method for some architectures.
+
+(use-modules (gnu packages)
+ (guix packages)
+ (guix profiles)
+ (guix platform)
+ ((gnu services xorg) #:select (%default-xorg-modules))
+ ((gnu system) #:prefix gnu-system:
+ #:select (%base-packages %base-packages-linux))
+ (guix utils)
+ (guix gexp)
+ (srfi srfi-1)
+ (srfi srfi-26))
+
+(define* (package->manifest-entry* package system
+ #:key target)
+ "Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to
+TARGET."
+ (manifest-entry
+ (inherit (package->manifest-entry package))
+ (name (string-append (package-name package) "." system
+ (if target
+ (string-append "." target)
+ "'")))
+ (item (with-parameters ((%current-system system)
+ (%current-target-system target))
+ package))))
+
+(define %base-packages
+ ;; Packages that must be substitutable on all the platforms Guix supports.
+ ;; Use the %base-packages from (gnu system) since they are included by default
+ ;; in the packages field of the operating system configuration.
+ (cons* (specification->package "guix")
+ gnu-system:%base-packages))
+
+(define %base-packages/hurd
+ ;; Remove the packages from %base-packages-linux and some of the packages
+ ;; from the other package sets.
+ (fold delete %base-packages
+ (append (map specification->package
+ '("e2fsprogs" "kbd" "iproute2" "iw" "wireless-tools"))
+ %base-packages-linux)))
+
+(define %system-packages
+ ;; Key packages proposed by the Guix System installer.
+ (map specification->package
+ '("openssh" "tor" "ntp" "gpm"
+ "connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
+ "linux-libre" "grub-hybrid")))
+
+(define %system-gui-packages
+ ;; Key packages proposed by the Guix System installer.
+ (append (map specification->package
+ '("enlightenment"
+ ;; build system `python' does not support cross builds
+ ;"gnome" "xfce" "mate" "openbox"
+ "awesome"
+ "i3-wm" "i3status" "dmenu" "st"
+ "ratpoison" "xterm"
+ ;; build system `emacs' does not support cross builds
+ ;"emacs-exwm" "emacs-desktop-environment"
+ "emacs"))
+ %default-xorg-modules))
+
+(define %packages-to-cross-build
+ ;; Packages that must be cross-buildable from x86_64-linux.
+ ;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463>
+ ;; is fixed.
+ (append (list (@ (gnu packages guile) guile-3.0/pinned))
+ (map specification->package
+ '("coreutils" "grep" "sed" "findutils" "diffutils" "patch"
+ "gawk" "gettext" "gzip" "xz" "zstd"
+ "hello" "zlib"))))
+
+(define %packages-to-cross-build-for-mingw
+ ;; Many things don't build for MinGW. Restrict to what's known to work
+ ;; to test that the cross-compiler itself works.
+ (map specification->package '("hello")))
+
+
+;;;
+;;; Manifests.
+;;;
+
+;; As per the Guix Survey of 2024 we only worry about cross compiling from
+;; x86_64-linux (98% of users) and not from others (aarch64 with 19%).
+(define %cross-manifest
+ (manifest
+ (append-map (lambda (target)
+ (map (cut package->manifest-entry* <> "x86_64-linux"
+ #:target target)
+ (if (target-mingw? target)
+ %packages-to-cross-build-for-mingw
+ %packages-to-cross-build)))
+ (fold delete (targets)
+ '(;; Disable cross-compilation to self:
+ "x86_64-linux-gnu"
+
+ ;; mips64el commonly targets a different architecture
+ ;; revision than we targeted in Guix.
+ "mips64el-linux-gnu"
+
+ ;; Ignore bare-metal targets.
+ "avr"
+ "or1k-elf"
+ "xtensa-ath9k-elf")))))
+
+(define %cross-system
+ (manifest
+ (cons*
+ ;; Include a couple of extra kernels that are commonly used:
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-arm64-generic)
+ "x86_64-linux"
+ #:target "aarch64-linux-gnu")
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-arm-generic)
+ "x86_64-linux"
+ #:target "arm-linux-gnueabihf")
+ (package->manifest-entry* (@ (gnu packages linux)
+ linux-libre-riscv64-generic)
+ "x86_64-linux"
+ #:target "riscv64-linux-gnu")
+ (append-map (lambda (target)
+ (map (cut package->manifest-entry* <> "x86_64-linux"
+ #:target target)
+ (append %base-packages
+ %system-packages
+ ;; With a graphical environment:
+ (if (or (target-x86-32? target)
+ (target-aarch64? target))
+ %system-gui-packages
+ '()))))
+ (fold delete (map platform-system->target (systems))
+ '(;; Disable cross-compilation to self:
+ "x86_64-linux-gnu"
+
+ ;; Ignore obsolete systems, as in (gnu ci).
+ "mips64el-linux-gnu"
+ "powerpc-linux-gnu"))))))
+
+;; Return the union of all the manifests.
+(concatenate-manifests (list %cross-manifest
+ %cross-system))
--
Efraim Flashner <efraim@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
Vagrant Cascadian wrote 4 weeks ago
Re: make dist and related fun (was: The next release)
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
871pvsa5x4.fsf@wireframe
On 2025-02-19, Vagrant Cascadian wrote:
Toggle quote (15 lines)
> Also, in reviewing the copyright and license headers while packaging for
> Debian, this raised a broader question about translating license headers
> in files such as doc/guix.de.info:
>
> https://salsa.debian.org/debian/guix/-/blob/debian/latest/doc/guix.de.info#L93
>
> With my limited german, it is clearly a header to declare the file is
> released under the GFDL in some form, but I wonder if that is a good
> idea to translate the license headers ... as at least in the US, in
> order to ship that file I would maybe need to at least consult with a
> lawyer (the US only recognizes English for legal documents), and I
> suspect various other countries might need something similar for
> arbitrary languages... having to get a lawyer involved kind of kills the
> joy of free software and the goal of free distribution...

For clarity, the US does recognize contracts and whatnot under other
languages, but requires a *certified* translation of the document into
English, which may also require getting legal counsel and in my opinion,
kind of defeats the purpose of free software at that point... as one
cannot freely share it without fear of undue legal burdens...

At least, that is my entirely not-a-lawyer concern...

Since this is only shipped in this form whe running "make dist"
... well, seems relevent for the release process. :)

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZ7dkhwAKCRDcUY/If5cW
qk2lAQC/DZ7HpL/xLlUA34pEFg//RGlI0HIerEjuFTGEobYL2QEA6xprUa+20p5g
7dPnwKKdRwfG9EWBYkQXnAufuCmtpgk=
=a5p+
-----END PGP SIGNATURE-----

Efraim Flashner wrote 4 weeks ago
Re: The next release
(name . Andreas Enge)(address . andreas@enge.fr)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
Z7glc7XRCAbZn9D9@3900XT
On Mon, Feb 17, 2025 at 02:48:59PM +0100, Andreas Enge wrote:
Toggle quote (12 lines)
> Hello,
>
> I think something we need to do urgently is to run an ungrafting
> process - grafting takes a considerable amount of time when updating my
> system now, and I suppose it will also waste a bit of space. We should
> not burden the installation process with it.
>
> Did we not have a jobset on ci to automate this?
>
> As said in Brussels, I would be happy to test a new installation image
> on a further x86_64 I would like to get running Guix.

We do have an ungrafting job, but it needs to be tweaked to exclude the
glibc graft. I agree that we need to do an ungrafting run before a
release but I'm not sure we're at the pre-release ungraft yet. An
ungraft run in general would be a good thing.

--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAme4JXMACgkQQarn3Mo9
g1HZqQ//cFwDq/W/0pmcClGkhIMGXlO2wGCmerV63R8dK/PEUDWBdKlBjMQxZvKw
dp3hJ+kH5bWIjFWum2RXrs8TJDvulvg9Jx/oTBLyPBRHcGqbfamwB4XuB6czH943
2UZpioekTyNbaYPcP0Uq/1ewCg78pwPoWNOL8qyp6ifSZeY0gpR0srLq3pHIwuJl
AYtLIR2nRXVGkaIbYKu7VEwv+x5fL+Ozr7AwYPGFkTCdUweJFG1KjcQVgwpWVZmq
L5MdtVDKJNfWicQ2oBPPfc22JLb/fiUX7C+lBOj+wsZVE1MWb52lYUUt4OW041Li
UmWx4TV6F3UNJMa5KYNeolwqYbkMH2/4jW2B/p0QlrwSMZP4rhAOryi3LrbobYuX
vFsayNqTVwp0ztzQjp1/QXcL7a392c6hlB6tyr686llMWq9yHI4qJuwKVI0M0ypI
YntuEt9dHV1DWxYrTCF3TT1yDUZZbUdMWK+T4HcX2eCfSf39WNKQllXMhvIAEkrw
K7F4ZhxPOx6UUGEZ1noS2XhKlQVf0pKq4iWx8ltm+Q+knFOVtPugslNxtJlvI91O
iV65U3XtoLRAXUgVFgRSwQTiUfOelY8tjoNFD9+guHTERhxYYuXTlETWlnZwS420
nxZXJZIuF4NjwqAuMyFchRVmMWCktVasT3OTWqD/Ga7haM8ursg=
=OsbA
-----END PGP SIGNATURE-----


Efraim Flashner wrote 4 weeks ago
Re: make dist and related fun (was: The next release)
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
Z7goQ2MWRRceTYZO@3900XT
Attachment: file
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAme4KEMACgkQQarn3Mo9
g1G9QRAAp7ouGz+2pttpeoU+OiZFI6minroqM8orXkQZWLFaWm8AF3PNrDVBAdUU
H+enPsFuhNahBY/ososP3bz0Vm0cFVOfGd4Y11Hb0Eyc2zpHdHcV1wqj6dOnG5ej
63zLHdyOXGsBVLu9Jqpyb5MAxrvDBftersrEtb0W2LaKn8+HWog+fJxGWaW2nYOB
Ub+xp+Dd0xA+X0vCFhj4bGJ2Wphem2KfBLunvzlIHBUT/oozY5wKC2GnKrtFM/E/
VvwsensXm3AOJDbVa4sTYOoudd6t1YMWkmTvkz3jnihWo9nYKMp9JDVeN3rQshCm
7XW+qYAKoLs2sMrStuyJMx0Qc30yTpa7ekhPWJ974fiLUcLDPtGQttzPOgtvaeNX
z36/RkMky3FlQIqoqOpmCAGnwOJbbXP/1FAT4uu/sY796Wqo/1HxzCXRMlijtUdn
4m1QFq0HFgmQcN8sqyEpYHXFYbXG48p60UWo/GNNuFuPJXuF1TLzeGaSI/Hel2zA
SGMnATR0+LI+Gw/hyaOh/wGmj9Sdzvy3fGSpkkRR6JV27Z5rm1si4sE/Pz2pKrIK
Ieuom1OousVLlAWpZCZSf63FkIBLous520ZIis9hl5FjWN+9PvUH+lRovXbcboUY
fBXHf89yOfjvhyzhC1QpLkNLNeFNK97LqAGlPsy1CUxoTMkbgMU=
=DP5+
-----END PGP SIGNATURE-----


Efraim Flashner wrote 4 weeks ago
Re: [PATCH v2 4/5] etc: manifests/release: Only check for packages needed in the installer.
(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)
Z7g1jjKpFB3euWes@3900XT
Attachment: file
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAme4NY0ACgkQQarn3Mo9
g1H+lA/+NpNpN4NRR+644drN3hKGBX/NZfIC+kLIzDdmWLGfatRQueoR/zTLscFM
et5/st0xj2G+hM8IJVWXiMHXcJ3qy9iU0o2RnwU4UZ5oq7tl64SQ+9ic2xej0+ZI
S9r0s1c8eVrbOahn8EAh/udGo6MkWLV2lnoMCsjU0Fcb1WpADvXh0nQSPOXQbEtS
gk2G5so8AcY0e3oiaH2frjTsKFsZkvwxLaYK1oHdeZwUAPmjaoHGnbIerIFg3FAp
1jN6yISl2Onv3mOA5nsvUbuG/Ouo+MWOp8HD6vkmQUPMyvbevg4xZUnfCH3SDFf+
EPpoKXSXz0OU52+wa5zCVmH2hEKR1g1hZdFkDUUuB+2FfwghjBvidr6U0Gjz9agm
i1i6YXV3xvNz8oTon/0OQ9nACR9NStD5XqF77UlF74i2Pr6nLjrBn/QY/TIxI/GU
YBUiZQ9qS3BpJdGqi9SvjIgnbi6TxJHLHsYSocfI6xoJTR/A6143XOr6O5C1Dd5h
l3EZgC8bUAKdpkcQ12+psJZ+Adg5Sua1op/cL1zv13pDM514wxmL3pJSJNdz1U7o
E0pp+xkYYo2PcC2nigW1ileGgbUUrIQHl+jpP4F4FpVkq0C/9mY0V5hi9mDmAsUL
VXoeBlz3ASIgdqabpx5iKDNjcxrxrkabf52n3H5YOXAMK8pVRd0=
=O5Fg
-----END PGP SIGNATURE-----


pelzflorian (Florian Pelz) wrote 4 weeks ago
Re: make dist and related fun
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
87ldtzzh15.fsf@pelzflorian.de
Hello Vagrant.

Vagrant Cascadian <vagrant@debian.org> writes:
Toggle quote (33 lines)
> Also, in reviewing the copyright and license headers while packaging for
> Debian, this raised a broader question about translating license headers
> in files such as doc/guix.de.info:
>
> https://salsa.debian.org/debian/guix/-/blob/debian/latest/doc/guix.de.info#L93
>
> With my limited german, it is clearly a header to declare the file is
> released under the GFDL in some form, but I wonder if that is a good
> idea to translate the license headers ... as at least in the US, in
> order to ship that file I would maybe need to at least consult with a
> lawyer (the US only recognizes English for legal documents), and I
> suspect various other countries might need something similar for
> arbitrary languages... having to get a lawyer involved kind of kills the
> joy of free software and the goal of free distribution...
>
> This of course touches on some awful issues around language
> imperialism. :/
>
> […]
> For clarity, the US does recognize contracts and whatnot under other
> languages, but requires a *certified* translation of the document into
> English, which may also require getting legal counsel and in my opinion,
> kind of defeats the purpose of free software at that point... as one
> cannot freely share it without fear of undue legal burdens...
>
> At least, that is my entirely not-a-lawyer concern...
>
> Since this is only shipped in this form whe running "make dist"
> ... well, seems relevent for the release process. :)
>
> live well,
> vagrant

We should translate license notices. It is harmless.

My German translation of the GFDL header is derived from unofficial
translations of older GFDL version 1.2, linked at German Wikipedia and
clearly uncertified.

IANAL neither, but my defense of the current translated license headers
in manual, website and such would be that translated manual, website are
clearly marked as a translation in the first paragraph or website
header. Clearly the original license applies and in some sentences the
translator also has copyright. More clearly, deviation from the license
text in translations is an error. The full English license is still
part of doc/guix.de.info and other languages. So the English license
would likely apply.

Generally translation seems not to be a source of dispute in court. I
believe I remember in court cases of Software Freedom Conservancy, all
parties agreed to use an unofficial German GPL translation. So
generally translation seems not to be a source of dispute. But I could
not anymore find example cases. It was not the VMWare lawsuit.

Regards,
Florian
Ludovic Courtès wrote 4 weeks ago
Re: The next release
(name . Andreas Enge)(address . andreas@enge.fr)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
877c5g3e4t.fsf@gnu.org
Efraim Flashner <efraim@flashner.co.il> skribis:

Toggle quote (16 lines)
> On Mon, Feb 17, 2025 at 02:48:59PM +0100, Andreas Enge wrote:
>> Hello,
>>
>> I think something we need to do urgently is to run an ungrafting
>> process - grafting takes a considerable amount of time when updating my
>> system now, and I suppose it will also waste a bit of space. We should
>> not burden the installation process with it.
>>
>> Did we not have a jobset on ci to automate this?
>>
>> As said in Brussels, I would be happy to test a new installation image
>> on a further x86_64 I would like to get running Guix.
>
> We do have an ungrafting job, but it needs to be tweaked to exclude the
> glibc graft.

I had to turn off that jobset shortly after activating it because the
‘glibc’ graft landed and it would have caused massive rebuilds without a
clear way to get things merged (in fact, the glibc change is not
“ungraftable” in the trivial way because it uses ‘git-fetch’, which
would cause circular dependencies on old daemons).

Toggle quote (4 lines)
> I agree that we need to do an ungrafting run before a release but I'm
> not sure we're at the pre-release ungraft yet. An ungraft run in
> general would be a good thing.

Yes. The way I see it, this can be done on ‘core-packages-team’ this
time.

Ludo’.
Ludovic Courtès wrote 4 weeks ago
Re: make dist and related fun
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
87o6ysznmn.fsf@gnu.org
Hi,

Vagrant Cascadian <vagrant@debian.org> skribis:

Toggle quote (6 lines)
> The generated tarball also appears to be missing a few files, some of
> which seem fine (e.g. .gitignore) but some which actually cause problems
> (e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some of which
> probably should be added to dist_patch_DATA in gnu/local.mk or other
> relevent values:

Do you plan to submit a patch for this?

Thanks for working on this!

Ludo’.
Vagrant Cascadian wrote 4 weeks ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
878qpw8iip.fsf@wireframe
On 2025-02-23, Ludovic Courtès wrote:
Toggle quote (12 lines)
> Vagrant Cascadian <vagrant@debian.org> skribis:
>
>> The generated tarball also appears to be missing a few files, some of
>> which seem fine (e.g. .gitignore) but some which actually cause problems
>> (e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some of which
>> probably should be added to dist_patch_DATA in gnu/local.mk or other
>> relevent values:
>
> Do you plan to submit a patch for this?
>
> Thanks for working on this!

I pushed some fixes to guix git; there are still open questions:


Here are all my outstanding questions:

build-aux/cuirass
build-aux/gitlog-to-changelog
etc/copyright.el
etc/git
etc/snippets
etc/teams
etc/teams.scm

Should these be in the tarball at all? If so, where do we add them?

gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch
gnu/packages/patches/gcc-10-tree-sra-union-handling.patch
gnu/packages/patches/gegl-compatibility-old-librsvg.patch

Probably should just be deleted, not referenced in the code
anywhere... or am I missing something?

gnu/tests/lightdm.scm
gnu/tests/sddm.scm
po/doc/po4a.cfg
tests/hexpm.scm
tests/ipfs.scm

Where to add?

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZ7uRPgAKCRDcUY/If5cW
qidUAQCNTlOCfmRq/j4gchM9IQWc9dITYhehb4QJpW20hpHpmgD/WHaYtfeDxfhX
Y1uqG4bKG7Owvjs84pZQOrDhVzLw2gk=
=pi7R
-----END PGP SIGNATURE-----

Efraim Flashner wrote 4 weeks ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)
Z7wUZpuSsf7J-VJy@3900XT
On Sun, Feb 23, 2025 at 01:21:02PM -0800, Vagrant Cascadian wrote:
Toggle quote (29 lines)
> On 2025-02-23, Ludovic Courtès wrote:
> > Vagrant Cascadian <vagrant@debian.org> skribis:
> >
> >> The generated tarball also appears to be missing a few files, some of
> >> which seem fine (e.g. .gitignore) but some which actually cause problems
> >> (e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some of which
> >> probably should be added to dist_patch_DATA in gnu/local.mk or other
> >> relevent values:
> >
> > Do you plan to submit a patch for this?
> >
> > Thanks for working on this!
>
> I pushed some fixes to guix git; there are still open questions:
>
> https://lists.gnu.org/archive/html/guix-devel/2025-02/msg00395.html
>
> Here are all my outstanding questions:
>
> build-aux/cuirass
> build-aux/gitlog-to-changelog
> etc/copyright.el
> etc/git
> etc/snippets
> etc/teams
> etc/teams.scm
>
> Should these be in the tarball at all? If so, where do we add them?

Thinking out loud, the point of the tarball from 'make dist' is to be
able to build and install the package. So I'm leaning no. Do they need
to be added to some NODIST variable?

Toggle quote (2 lines)
> gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch

git log --grep says this should be removed

Toggle quote (2 lines)
> gnu/packages/patches/gcc-10-tree-sra-union-handling.patch

git log --grep says this should be removed

Toggle quote (2 lines)
> gnu/packages/patches/gegl-compatibility-old-librsvg.patch

I think this patch was lost during a gnome-team merge. We should
probably ask the gnome-team. I believe it isn't needed, there is a
substitute for gegl for i686-linux.
Toggle quote (11 lines)
> Probably should just be deleted, not referenced in the code
> anywhere... or am I missing something?
>
> gnu/tests/lightdm.scm
> gnu/tests/sddm.scm
> po/doc/po4a.cfg
> tests/hexpm.scm
> tests/ipfs.scm
>
> Where to add?

I have a patch to add these in. I've been testing it with running 'make
dist' and then using that tarball to build guix.

Toggle quote (3 lines)
> live well,
> vagrant

Thanks for working on this!


I'm getting a test failure on "'download' built-in builder" from
tests/derivations.scm, with an incorrect hash. I'm not sure how it
could hash it twice and get different results, but here we are. Also,
the incorrect hash throws an error, which kills the test suite, so I
don't know if there are any failures after that.


--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAme8FGYACgkQQarn3Mo9
g1HuMQ/9G5ImJsBVZghs6OcfeUq4xnekVVSed+WHw58MDlKgVkFiB40RqwqQDFC6
Y1wgDuKKKEDxgXa9lNunV4rxJu3GbCf6ea5PLx9iVnyBtAjh1xs3Kv2/J+9rTwTR
VOtPZ+OQI/LB6RZtt+qj3WGqAI4WxmSFYzdCuJVgny5Sb6Os0MmJjSGu1rhrK+fQ
4iwLu8OexAFelIDb8p1oLYF9vL8eEPs8PjqcKKX/QMp5/G5YSOMpPQ0fRPtjpl7C
+22y5IbMVD9PUIVunw8iedIN7runmiLKrNqzwUPaQL51/TpBALSDAgWjLVST/Y/7
fznSqPhvgwApljrCT2Skrb1gzCCJ46YR386F/eOzTNXixF2+hTig2V6Omeob633G
j/IhoFFyr3PWzPoqdLgIRmTCFe1WpkS1W/+v1GdkZjN//hKQhsBEiGsTyVc4tZzQ
s8nWK1HdMrkt5FaWkkxx1DOxhDyAYlobHx/lV1r7hJ+m6K8X7MTg4Rr7vjSOEIMi
87Gp53oetuiQg7XkgsIaj8Ku8xbvRa9DJ9VxLBEK/mnpvxVL5pR3cKH+S18ubNTD
HyQtxx1TInpb/JCZTWJ4DvJ7y1cifFHM3iHTmiwgKFPm+Ifytbl6WKVoT9aohY+x
NjNl+MjFkmK0h/3T9zxn0j0ZG0X6/mdGJOIG2X4/NL6yvUDDJMM=
=gfWV
-----END PGP SIGNATURE-----


Efraim Flashner wrote 4 weeks ago
Re: make dist and related fun (was: The next release)
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)
Z7whJ6PTzabD0xeU@3900XT
On Wed, Feb 19, 2025 at 02:06:43PM -0800, Vagrant Cascadian wrote:
Toggle quote (25 lines)
> On 2025-02-15, Vagrant Cascadian wrote:
> > On 2025-02-11, Efraim Flashner wrote:
> >> We discussed the next release during Guix Days and I volunteered to lead
> >> the effort.
> ...
> > I may just make an attempt at making a git snapshot or something, which
> > I did once in the distant past... any recommendations on a particular
> > commit to aim at? Even an alpha or release candidate or whatever tag
> > would be nice...
>
> So, in order to try this, the first thing I needed to do was remember
> how to run "make dist" to generate the tarball...
>
> Basically from a clean git checkout:
>
> guix git tag v1.4.0+XYZ HEAD # I used f7cd085f4a36e118aa05af5524e74830a30b3dca
> guix git authenticate && \
> guix shell --container --pure --development guix guix git imagemagick perl graphviz less -- ./bootstrap && \
> guix shell --container --pure --development guix guix git imagemagick perl graphviz less -- ./configure && \
> guix shell --container --pure --development guix guix git imagemagick perl graphviz less -- make -j1 dist
>
> Not sure if that is the "right" way or if there is better
> documentation... ?
>

I was running: time guix shell --container --development guix \
graphviz imagemagick perl -- \
sh -c './bootstrap && ./configure && make dist'

I then test the tarball with:
guix build --no-grafts guix --with-source=guix=./guix-1.4.0+154701.013cc1952a8.142-dfff2.tar.gz

--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAme8IScACgkQQarn3Mo9
g1F9KQ/+KEaz3bWFHUT9fr9C1mgTS1u++7QZqafjhroP198ETubQtLfNcHJ2paZY
NUoZ/Ukj1A5mBKnjxFO7f004qecEMEAHLmJAdDqpiy5iQqPPZjMui9Q6zSBeccgc
mtxL7fAh6uMi7HTsHzoRVkjx0vpAFNj81CfoqWgXvjrWiuRITe3+V9fr9Pp6yHn2
j1jU/FQR7j4ULjEsOuuHh+akPQkgLFFQMPhvoyBWF+KF9VktxiYaLyRuz//3ja5D
lHlBFlRXNkvCINv+p4qJtYA0cMGXH2SUb+8S7hO+Wo/kFllUZrroCab4yZBQNU/z
jOj3WD1lWXptiZ8lX+mARMwAQd6DxH3mW/duP2QSmdAGjrh1fTLRRCa3AoKel9rU
F3zD9f4nFmFY5tVijI+whv8qgFOlwf/qbtQQ9EoNGZDkkF8GrMqrzl5dCOeGvHji
OVv4lwV0z4oHWRIpMvV7L0DPDaboHBfcgXrnh8aTqeWlcIRD84Uzv2o7Lp1CRm14
P1JJcqmdEXRAgkqAmzHCHr453bLu+TbiJo4x9KtQQ1ngZLf8/eKRh08GYVjxG+78
jFc1/kjQAajO7kcacwCs0sB05L2RpFYHORK7bi8Ii5PHGh12vZt3XRFg0E8HnPFq
uJCZ4G0xjr38nTWHLQoYs870AIdoPtK+iArD0UveTuS2pAnr5H4=
=pa0c
-----END PGP SIGNATURE-----


Vagrant Cascadian wrote 3 weeks ago
Re: make dist and related fun
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 76098@debbugs.gnu.org)(address . vivien@planete-kraus.eu)(address . maxim.cournoyer@gmail.com)(name . Ludovic Courtès)(address . ludo@gnu.org)(address . liliana.prikler@gmail.com)(address . guix-devel@gnu.org)
87seo07exk.fsf@wireframe
On 2025-02-24, Efraim Flashner wrote:
Toggle quote (9 lines)
> On Sun, Feb 23, 2025 at 01:21:02PM -0800, Vagrant Cascadian wrote:
>> On 2025-02-23, Ludovic Courtès wrote:
>> > Vagrant Cascadian <vagrant@debian.org> skribis:
>> >
>> >> The generated tarball also appears to be missing a few files, some of
>> >> which seem fine (e.g. .gitignore) but some which actually cause problems
>> >> (e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some of which
>> >> probably should be added to dist_patch_DATA in gnu/local.mk or other
>> >> relevent values:
...
Toggle quote (16 lines)
>> Here are all my outstanding questions:
>>
>> build-aux/cuirass
>> build-aux/gitlog-to-changelog
>> etc/copyright.el
>> etc/git
>> etc/snippets
>> etc/teams
>> etc/teams.scm
>>
>> Should these be in the tarball at all? If so, where do we add them?
>
> Thinking out loud, the point of the tarball from 'make dist' is to be
> able to build and install the package. So I'm leaning no. Do they need
> to be added to some NODIST variable?

Not sure. I guess having such a mechanism would be helpful to document
what should not be shipped, if in fact that is the case...


Toggle quote (8 lines)
>> gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch
>
> git log --grep says this should be removed
>
>> gnu/packages/patches/gcc-10-tree-sra-union-handling.patch
>
> git log --grep says this should be removed

So, should one of us be so bold and... just remove them? :)

I was leaning in that direction already, but figured I should check
before pushing, but you have come to the same conclusions!


Toggle quote (6 lines)
>> gnu/packages/patches/gegl-compatibility-old-librsvg.patch
>
> I think this patch was lost during a gnome-team merge. We should
> probably ask the gnome-team. I believe it isn't needed, there is a
> substitute for gegl for i686-linux.

Added gnome team members in CC, to help figure out the case of the
disappearing gegl patch!

It is non-obvious from git commit history where it disappeared.

It was introduced in 4beac7d95c84ea3be809030f942b8b71d155129e where gegl
0.4.46 was updated from 0.4.42, but the next commit
d6d9e65175d7e889c0d5020c949a65a396d1ca3d jumps from 0.4.42 to 0.4.48 ...

But yeah, I am inclined to remove the patch...


Toggle quote (11 lines)
>> gnu/tests/lightdm.scm
>> gnu/tests/sddm.scm
>> po/doc/po4a.cfg
>> tests/hexpm.scm
>> tests/ipfs.scm
>>
>> Where to add?
>
> I have a patch to add these in. I've been testing it with running 'make
> dist' and then using that tarball to build guix.

Mind sharing, or even better, just pushing it? :)


Toggle quote (6 lines)
> I'm getting a test failure on "'download' built-in builder" from
> tests/derivations.scm, with an incorrect hash. I'm not sure how it
> could hash it twice and get different results, but here we are. Also,
> the incorrect hash throws an error, which kills the test suite, so I
> don't know if there are any failures after that.

I have those tests patched to skip unless network is available, but in
the Debian build environment things are pretty different...


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZ79ZpwAKCRDcUY/If5cW
qlPPAP4ikLdO+dLBkSb47Gt07pK+urOW1ImVryB1/eUYDHXT5AEAxRtKYhQvrj8m
z+bTqjYgKM6LFmpbWx1ITIN969iO8A8=
=OaAk
-----END PGP SIGNATURE-----

Liliana Marie Prikler wrote 3 weeks ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . guix-devel@gnu.org)(address . 76098@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)(address . vivien@planete-kraus.eu)(address . maxim.cournoyer@gmail.com)
1949497e40e0c841a2f6f9f136d25fb963230746.camel@gmail.com
Am Mittwoch, dem 26.02.2025 um 10:12 -0800 schrieb Vagrant Cascadian:
Toggle quote (8 lines)
> > >   gnu/packages/patches/gegl-compatibility-old-librsvg.patch
> >
> > I think this patch was lost during a gnome-team merge.  We should
> > probably ask the gnome-team.  I believe it isn't needed, there is a
> > substitute for gegl for i686-linux.
>
> Added gnome team members in CC, to help figure out the case of the
> disappearing gegl patch!
It seems this was introduced in
4beac7d95c84ea3be809030f942b8b71d155129e, but no longer used after
d6d9e65175d7e889c0d5020c949a65a396d1ca3d. Probably it is still left as
result from a weird merge.

Cheers
Efraim Flashner wrote 3 weeks ago
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 76098@debbugs.gnu.org)(address . vivien@planete-kraus.eu)(address . maxim.cournoyer@gmail.com)(name . Ludovic Courtès)(address . ludo@gnu.org)(address . liliana.prikler@gmail.com)(address . guix-devel@gnu.org)
Z8BnXs8oMhkpWkiD@3900XT
On Wed, Feb 26, 2025 at 10:12:55AM -0800, Vagrant Cascadian wrote:
Toggle quote (76 lines)
> On 2025-02-24, Efraim Flashner wrote:
> > On Sun, Feb 23, 2025 at 01:21:02PM -0800, Vagrant Cascadian wrote:
> >> On 2025-02-23, Ludovic Courtès wrote:
> >> > Vagrant Cascadian <vagrant@debian.org> skribis:
> >> >
> >> >> The generated tarball also appears to be missing a few files, some of
> >> >> which seem fine (e.g. .gitignore) but some which actually cause problems
> >> >> (e.g. missing po4a.cfg, tests/*.scm, gnu/patches/*.patch), some of which
> >> >> probably should be added to dist_patch_DATA in gnu/local.mk or other
> >> >> relevent values:
> ...
> >> Here are all my outstanding questions:
> >>
> >> build-aux/cuirass
> >> build-aux/gitlog-to-changelog
> >> etc/copyright.el
> >> etc/git
> >> etc/snippets
> >> etc/teams
> >> etc/teams.scm
> >>
> >> Should these be in the tarball at all? If so, where do we add them?
> >
> > Thinking out loud, the point of the tarball from 'make dist' is to be
> > able to build and install the package. So I'm leaning no. Do they need
> > to be added to some NODIST variable?
>
> Not sure. I guess having such a mechanism would be helpful to document
> what should not be shipped, if in fact that is the case...
>
>
> >> gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch
> >
> > git log --grep says this should be removed
> >
> >> gnu/packages/patches/gcc-10-tree-sra-union-handling.patch
> >
> > git log --grep says this should be removed
>
> So, should one of us be so bold and... just remove them? :)
>
> I was leaning in that direction already, but figured I should check
> before pushing, but you have come to the same conclusions!
>
>
> >> gnu/packages/patches/gegl-compatibility-old-librsvg.patch
> >
> > I think this patch was lost during a gnome-team merge. We should
> > probably ask the gnome-team. I believe it isn't needed, there is a
> > substitute for gegl for i686-linux.
>
> Added gnome team members in CC, to help figure out the case of the
> disappearing gegl patch!
>
> It is non-obvious from git commit history where it disappeared.
>
> It was introduced in 4beac7d95c84ea3be809030f942b8b71d155129e where gegl
> 0.4.46 was updated from 0.4.42, but the next commit
> d6d9e65175d7e889c0d5020c949a65a396d1ca3d jumps from 0.4.42 to 0.4.48 ...
>
> But yeah, I am inclined to remove the patch...
>
>
> >> gnu/tests/lightdm.scm
> >> gnu/tests/sddm.scm
> >> po/doc/po4a.cfg
> >> tests/hexpm.scm
> >> tests/ipfs.scm
> >>
> >> Where to add?
> >
> > I have a patch to add these in. I've been testing it with running 'make
> > dist' and then using that tarball to build guix.
>
> Mind sharing, or even better, just pushing it? :)

I pushed it a few days ago. I also added the guix-gc.timer file
yesterday and then bumped the guix package.

Toggle quote (6 lines)
> > I'm getting a test failure on "'download' built-in builder" from
> > tests/derivations.scm, with an incorrect hash. I'm not sure how it
> > could hash it twice and get different results, but here we are. Also,
> > the incorrect hash throws an error, which kills the test suite, so I
> > don't know if there are any failures after that.

This magically fixed itself. I'm not asking any questions.

Toggle quote (3 lines)
> I have those tests patched to skip unless network is available, but in
> the Debian build environment things are pretty different...

I didn't look too closely at the test but I think it creates its own
HTTP server and serves itself a file.

Toggle quote (6 lines)
>
> live well,
> vagrant



--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmfAZ1oACgkQQarn3Mo9
g1FU7w/+OeNGTDSYR/DsWHvFa4B4fLM5Fc3ZQ/1ecQBzBPb0rgwdIViuawsMABDm
n+QrLJtGNd78SsCIkY69ZUEATJVz0DwIwdtu5W3mp1TIYih2i3e6AeMKChJ9dgdH
FzP2XLBJ8ytwafu3fwUZBEAhIb1KXG8HwGU73kUDYHv6sMEQMRVWdvv5nm9Mccos
XCL859GFeAJq9PMnvHw2oz6yQvx18hwpdZDPC5cd/NymmG/cAD9d2F9b9ruRN31q
Ie58wxfjysk7214+v4pjO5pHcjpxM75OyR8V7wX9wizjiUiv0f2TcYSJebMl8Rep
AgzpJidt5//IFflGM3LNspLCugSzFdh99f5Y5RTgCPjuBafXCoITVs4dTWeDiutK
ZQgijOLose84zUCXAXdSFmhy3kEoIXyPUzQMSBNvT4aRc+/2j4t3pChFfGu9Su4s
wFPLo2hPqvoNCAamDmZDflfyKI9q6P6v0/Sh1H9xvcUXvAnh1Y4GkGEKLkSFJei2
/MJaEB9uYRedeJg1oJ66ynFg5vjL/QlQ6By87UWrV6cpxijHgT0rv2JhWPTvnULT
zfNjzHPQ3HWpuaznVoMCEYXmCtM4KgKnuRnJi86EUu4+0Lt4kCZstVgX6G4YXrCQ
uX2odsMPuj5/J2mqh2h4UPGfTzJx6LUNT9M6k+Ab0qjDgtw3oaE=
=zc53
-----END PGP SIGNATURE-----


Efraim Flashner wrote 3 weeks ago
Re: [PATCH v2 0/5] Patches towards a release
(address . 76098-done@debbugs.gnu.org)
Z8RyKh19ouYXLFXD@3900XT
Patches pushed!

--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmfEcicACgkQQarn3Mo9
g1GJaBAAuFCTdhk4CeIJz68w/U4lOzk0UW99Uib8/EZlqpE/QWVhSMDmMeI2eM+9
Y5zaDgeAnxIHXlNTIkFRLxAzCFvnGfk6nw9yBZjPtjK9+fHlyXrOpS3P/7V/u0Aq
+WNs/sn1euEod/WOPPMNBOkEsPFIjVHl1DPiGP/kdk7aJXErgwvzTixamGQpXS14
CxGxJDg6bfY2PWsW3Im0+0GAHAH3MJt5yUWpeJ9Zb9ot/1C4t3hR/iDFc89MZPWo
LUQpZ0gbdtEqt9/KKUDOsGXChhDSVI9UAocK9EV8KhqfvWthSEguoUro/sHssdCo
ecFpHkBLsFouLws/6TyWKeOeA3PNYAmNYx+xEC7WynL9u5cKMA1ZN6mVmFWSTOiU
XKxS0ExBiqiuapFK4t/v8hsy9euGFZKzz3N4wl1xAZNORWf/ibKxQlSOhYzwdh0n
y0W+il239KTxHMS1CUNL+Q+05hxw900PIHsMHs6OTi0Q+RQgliTKcxzL9tatvNBK
xudW1DmhK1cH29pNCjzi2JJ5IEq7FxRUhDEsFcI1NVlZRScF/iwEHUjA9tcafyDP
BPQHFqeOVA/hlKZPSZ9lOEPUNIYqeK2WbGfE5LF42Qw6A4p4mT9Edxnq3z2bDCMv
gCXNionPNrsvCfdvBAAOlYY/1JkKJ8up1s+r53LCcTbSvKVkel8=
=cg/g
-----END PGP SIGNATURE-----


Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 76098@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 76098
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help