summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-12-05 15:51:04 +0100
committerLudovic Courtès <ludo@gnu.org>2022-12-05 15:51:04 +0100
commit7fde16671523f3fc3bda0c07a47a1fa33f8675b1 (patch)
treeeb4de00690836b426870ddf162d8ddd16502cb81
parentbcbf9713dae06e01d97ff61bc87a9f4d91571bac (diff)
parent241772d5c068fb7c4fa69d4673174254742eb410 (diff)
downloadguix-7fde16671523f3fc3bda0c07a47a1fa33f8675b1.tar.gz
Merge branch 'version-1.4.0'
-rw-r--r--Makefile.am34
-rw-r--r--NEWS13
-rw-r--r--etc/release-manifest.scm2
-rw-r--r--gnu/installer.scm25
-rw-r--r--gnu/packages/package-management.scm8
-rw-r--r--guix/build/syscalls.scm7
6 files changed, 69 insertions, 20 deletions
diff --git a/Makefile.am b/Makefile.am
index c0b2a3ee80..b54288c0fc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -427,6 +427,7 @@ AUX_FILES =						\
   gnu/packages/aux-files/linux-libre/4.9-x86_64.conf	\
   gnu/packages/aux-files/pack-audit.c			\
   gnu/packages/aux-files/python/sanity-check.py		\
+  gnu/packages/aux-files/python/sanity-check-next.py	\
   gnu/packages/aux-files/python/sitecustomize.py	\
   gnu/packages/aux-files/renpy/renpy.in	\
   gnu/packages/aux-files/run-in-namespace.c
@@ -754,20 +755,35 @@ endef
 # in <https://issues.guix.gnu.org/48963>.  Each 'eval' call below creates a
 # 'make-*-go' phony target that builds the corresponding subset.
 
-MODULES_CORE     = guix.scm $(filter-out guix/scripts/%,$(filter guix/%,$(MODULES)))
-MODULES_PACKAGES = $(filter gnu/packages/%,$(MODULES))
-MODULES_SYSTEM   = gnu.scm $(filter-out gnu/packages/%,$(filter gnu/%,$(MODULES)))
-MODULES_CLI      = $(filter guix/scripts/%,$(MODULES))
-MODULES_PO       = guix/build/po.scm
+first_half :=								\
+  gnu/packages/a% gnu/packages/b% gnu/packages/c% gnu/packages/d%	\
+  gnu/packages/e% gnu/packages/f% gnu/packages/g% gnu/packages/h%	\
+  gnu/packages/i% gnu/packages/j% gnu/packages/k% gnu/packages/l%
+
+MODULES_CORE      := guix.scm $(filter-out guix/scripts/%,$(filter guix/%,$(MODULES)))
+MODULES_PACKAGES1 := $(filter $(first_half),$(MODULES))
+MODULES_PACKAGES2 := $(filter-out $(first_half),$(filter gnu/packages/%,$(MODULES)))
+MODULES_PACKAGES  := $(MODULES_PACKAGES1) $(MODULES_PACKAGES2)
+MODULES_SYSTEM    := gnu.scm $(filter-out gnu/packages/%,$(filter gnu/%,$(MODULES)))
+MODULES_CLI       := $(filter guix/scripts/%,$(MODULES))
+MODULES_PO        := guix/build/po.scm
 
 $(eval $(call guile-compilation-rule,make-core-go,	\
   $(MODULES_CORE) guix/config.scm $(dist_noinst_DATA),	\
   0))
 .PHONY: make-core-go
 
-$(eval $(call guile-compilation-rule,make-packages-go,	\
-  $(MODULES_PACKAGES) make-core-go,			\
+$(eval $(call guile-compilation-rule,make-packages1-go,	\
+  $(MODULES_PACKAGES1) make-core-go,			\
   $(words $(MODULES_CORE))))
+.PHONY: make-packages1-go
+
+$(eval $(call guile-compilation-rule,make-packages2-go,	\
+  $(MODULES_PACKAGES2) make-core-go make-packages1-go,	\
+  $(words $(MODULES_CORE) $(MODULES_PACKAGES1))))
+.PHONY: make-packages2-go
+
+make-packages-go: make-packages1-go make-packages2-go
 .PHONY: make-packages-go
 
 $(eval $(call guile-compilation-rule,make-system-go,	\
@@ -990,7 +1006,7 @@ release: dist-with-updated-version all
 	      -v1 --no-grafts --fallback
 # Generate the ISO installation images.
 	for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do				\
-	  GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//v'`" ;	\
+	  GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ;		\
 	  image=`$(top_builddir)/pre-inst-env						\
 	    guix system image -t iso9660						\
 	    --label="GUIX_$${system}_$(VERSION)"					\
@@ -1006,7 +1022,7 @@ release: dist-with-updated-version all
 	done
 # Generate the VM images.
 	for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do					\
-	  GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//v'`" ;	\
+	  GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ;		\
 	  image=`$(top_builddir)/pre-inst-env						\
 	    guix system image -t qcow2 $(GUIX_SYSTEM_VM_IMAGE_FLAGS)			\
 	    --save-provenance								\
diff --git a/NEWS b/NEWS
index 27ac11c13a..c35f1266cf 100644
--- a/NEWS
+++ b/NEWS
@@ -34,6 +34,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
 *** ‘guix shell’ has a new ‘--emulate-fhs’ option
 *** ‘guix shell’ has a new ‘--symlink’ option
 *** ‘--with-commit’ option now accepts strings returned by ‘git describe’
+*** ‘--with-source’ option now applied recursively
 *** Align tabular data output by commands like ‘guix package --list-available’
 *** Improved ‘guix import go’ importer via a new PEG parser
 *** Improved Software Heritage downloader
@@ -52,6 +53,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
 *** GNOME is now at version 42
 *** TeX Live is now at version 2021
 *** Multiple TeX Live trees can now be used via GUIX_TEXMF
+*** Python modules are searched in GUIX_PYTHONPATH instead of PYTHONPATH
 *** Python is now faster thanks to being built with optimizations
 *** The Rust bootstrap now starts from 1.54 instead of 1.19
 *** Most Python 2 packages have been removed
@@ -120,7 +122,6 @@ nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
     (<https://issues.guix.gnu.org/51425>)
 *** Fonts can now be discovered in any profile via XDG_DATA_DIRS
     (<https://issues.guix.gnu.org/31403>)
-*** Python modules are searched in GUIX_PYTHONPATH instead of PYTHONPATH
 *** Various Python reproducibility fixes
 *** The installer now supports MSDOS disk labels on UEFI systems
     (<https://issues.guix.gnu.org/47889>)
@@ -128,10 +129,10 @@ nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
     (<https://issues.guix.gnu.org/48419>)
 *** The installer no longer crashes when deleting a free space partition
 *** Emacs handles major upgrades better without a re-login
-    (<https://bugs.gnu.org/47458>)
+    (<https://issues.guix.gnu.org/47458>)
 *** The bootloader configuration now accepts multiple targets
-    (<https://issues.guix.gnu.org/40997>.)
-*** A file system mount point is always created when ‘create?’ is true
+    (<https://issues.guix.gnu.org/40997>)
+*** File system mount point is always created when ‘create?’ is true
     (<https://issues.guix.gnu.org/40158>)
 *** Build the man database only if ‘man-db’ is in the profile
 *** gdk-pixbuf now discovers pixbuf loaders via a search path
@@ -142,10 +143,12 @@ nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
     (https://issues.guix.gnu.org/38838)
 *** ‘chfn’ can now change the user's full name
     (https://issues.guix.gnu.org/52539)
-*** Gnome settings Bluetooth panel is now working
+*** GNOME Settings Bluetooth panel is now working
     (https://issues.guix.gnu.org/32166)
 *** Inferiors are now caching store connections
     (https://issues.guix.gnu.org/48007)
+*** Retry downloads when a substitute has become unavailable
+    (https://issues.guix.gnu.org/57978)
 *** The installer doesn't segfault when removing an extended partition
 *** The installer doesn't ship an older Guix revision
     (https://issues.guix.gnu.org/53210)
diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm
index 8ce8b7fce6..3ef3483300 100644
--- a/etc/release-manifest.scm
+++ b/etc/release-manifest.scm
@@ -61,7 +61,7 @@ TARGET."
   ;; XXX: For now we are less demanding of "i586-gnu".
   (map specification->package
        '("coreutils" "grep" "findutils" "gawk" "make"
-         "gcc-toolchain" "tar" "xz")))
+         #;"gcc-toolchain" "tar" "xz")))
 
 (define %system-packages
   ;; Key packages proposed by the Guix System installer.
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 0e40b81224..d9b71e2ca8 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -27,6 +27,8 @@
   #:use-module (guix utils)
   #:use-module (guix ui)
   #:use-module ((guix self) #:select (make-config.scm))
+  #:use-module (guix describe)
+  #:use-module (guix channels)
   #:use-module (guix packages)
   #:use-module (guix git-download)
   #:use-module (gnu installer utils)
@@ -52,6 +54,7 @@
   #:use-module (gnu system locale)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
+  #:use-module (web uri)
   #:export (installer-program))
 
 (define module-to-import?
@@ -315,6 +318,25 @@ selected keymap."
              ((installer-final-page current-installer)
               result prev-steps))))))))
 
+(define (provenance-sexp)
+  "Return an sexp representing the currently-used channels, for logging
+purposes."
+  (match (match (current-channels)
+           (() (and=> (repository->guix-channel (dirname (current-filename)))
+                      list))
+           (channels channels))
+    (#f
+     (warning (G_ "cannot determine installer provenance~%"))
+     'unknown)
+    ((channels ...)
+     (map (lambda (channel)
+            (let* ((uri (string->uri (channel-url channel)))
+                   (url (if (or (not uri) (eq? 'file (uri-scheme uri)))
+                            "local checkout"
+                            (channel-url channel))))
+             `(channel ,(channel-name channel) ,url ,(channel-commit channel))))
+          channels))))
+
 (define (installer-program)
   "Return a file-like object that runs the given INSTALLER."
   (define init-gettext
@@ -429,6 +451,9 @@ selected keymap."
             (define current-installer newt-installer)
             (define steps (#$steps current-installer))
 
+            (installer-log-line "installer provenance: ~s"
+                                '#$(provenance-sexp))
+
             (dynamic-wind
               (installer-init current-installer)
               (lambda ()
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index d25e4b999c..b5b6b3875c 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -164,9 +164,9 @@
   ;; Latest version of Guix, which may or may not correspond to a release.
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
-  (let ((version "1.3.0")
-        (commit "682639c107908426fe6bf0a1b8404b98b7820290")
-        (revision 32))
+  (let ((version "1.4.0rc1")
+        (commit "020184fd39c6244e0336db3c608d3946b8d20490")
+        (revision 0))
     (package
       (name "guix")
 
@@ -182,7 +182,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "1ap8hfq46ncp7azhdvc9s64a9q9y74xfqpgfwlcgz6sw82a09yh0"))
+                  "1489fdxdb86shx6bnfs8kihhvw44xqiv6fkx3b67cyw1dakxh1m4"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 2a12567b15..0358960ff5 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -447,9 +447,14 @@ If an error occurs while creating the binding, defer the error report until
 the returned procedure is called."
   (catch #t
     (lambda ()
+      ;; Note: When #:library is set, try it first and fall back to libc
+      ;; proper.  This is because libraries like libutil.so have been subsumed
+      ;; by libc.so with glibc >= 2.34.
       (let ((ptr (dynamic-func name
                                (if library
-                                   (dynamic-link library)
+                                   (or (false-if-exception
+                                        (dynamic-link library))
+                                       (dynamic-link))
                                    (dynamic-link)))))
         ;; The #:return-errno? facility was introduced in Guile 2.0.12.
         (pointer->procedure return-type ptr argument-types