Merge branch 'version-1.1.0'

This commit is contained in:
Ludovic Courtès 2020-04-15 16:09:18 +02:00
commit b4440de133
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
23 changed files with 36574 additions and 28883 deletions

View file

@ -662,11 +662,16 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
--enable-daemon \ --enable-daemon \
ac_cv_guix_test_root="$(GUIX_TEST_ROOT)" ac_cv_guix_test_root="$(GUIX_TEST_ROOT)"
# Name of the 'guix' package shipped in the binary tarball.
GUIX_FOR_BINARY_TARBALL = guile3.0-guix
# The self-contained tarball. # The self-contained tarball.
guix-binary.%.tar.xz: guix-binary.%.tar.xz:
$(AM_V_GEN)GUIX_PACKAGE_PATH= \ $(AM_V_GEN)GUIX_PACKAGE_PATH= \
tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \ tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \
-s "$*" --localstatedir --profile-name=current-guix guix` ; \ --fallback \
-s "$*" --localstatedir --profile-name=current-guix \
$(GUIX_FOR_BINARY_TARBALL)` ; \
cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@" cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
@ -700,6 +705,16 @@ gen-AUTHORS:
"$(top_srcdir)" "$(distdir)/AUTHORS"; \ "$(top_srcdir)" "$(distdir)/AUTHORS"; \
fi fi
# Like 'dist', but regenerate 'configure' so we get an up-to-date
# 'PACKAGE_VERSION' string. (In Gnulib, 'GNUmakefile' has a special trick to
# do that whenever a 'dist' target is used.)
dist-with-updated-version:
@echo "Running './bootstrap' for new version string..."
$(top_srcdir)/bootstrap
$(MAKE) $(AM_MAKEFLAGS) $(top_srcdir)/.version dist
.PHONY: dist-with-updated-version
# #
# Release management. # Release management.
@ -755,7 +770,7 @@ system_flags = $(foreach system,$(1),-s $(system))
# #
# XXX: Depend on 'dist' rather than 'distcheck' to work around the Gettext # XXX: Depend on 'dist' rather than 'distcheck' to work around the Gettext
# issue described at <https://savannah.gnu.org/bugs/index.php?51027>. # issue described at <https://savannah.gnu.org/bugs/index.php?51027>.
release: dist release: dist-with-updated-version
cd po; git checkout . cd po; git checkout .
@if ! git diff-index --quiet HEAD; then \ @if ! git diff-index --quiet HEAD; then \
echo "There are uncommitted changes; stopping." >&2 ; \ echo "There are uncommitted changes; stopping." >&2 ; \
@ -769,9 +784,9 @@ release: dist
"`git rev-parse HEAD`" "$(PACKAGE_VERSION)" "`git rev-parse HEAD`" "$(PACKAGE_VERSION)"
git add $(top_srcdir)/gnu/packages/package-management.scm git add $(top_srcdir)/gnu/packages/package-management.scm
git commit -m "gnu: guix: Update to $(PACKAGE_VERSION)." git commit -m "gnu: guix: Update to $(PACKAGE_VERSION)."
$(top_builddir)/pre-inst-env guix build guix \ $(top_builddir)/pre-inst-env guix build $(GUIX_FOR_BINARY_TARBALL) \
$(call system_flags,$(SUPPORTED_SYSTEMS)) \ $(call system_flags,$(SUPPORTED_SYSTEMS)) \
-v1 --no-grafts -K -v1 --no-grafts --fallback
rm -f $(BINARY_TARBALLS) rm -f $(BINARY_TARBALLS)
$(MAKE) $(BINARY_TARBALLS) $(MAKE) $(BINARY_TARBALLS)
for system in $(SUPPORTED_SYSTEMS) ; do \ for system in $(SUPPORTED_SYSTEMS) ; do \
@ -785,12 +800,12 @@ release: dist
git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`." git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`."
$(top_builddir)/pre-inst-env guix build guix \ $(top_builddir)/pre-inst-env guix build guix \
$(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS)) \ $(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS)) \
-v1 --no-grafts -K -v1 --no-grafts --fallback
for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \ for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \
image=`$(top_builddir)/pre-inst-env \ image=`$(top_builddir)/pre-inst-env \
guix system disk-image \ guix system disk-image \
--file-system-type=iso9660 \ --file-system-type=iso9660 \
--system=$$system \ --system=$$system --fallback \
gnu/system/install.scm` ; \ gnu/system/install.scm` ; \
if [ ! -f "$$image" ] ; then \ if [ ! -f "$$image" ] ; then \
echo "failed to produced Guix installation image for $$system" >&2 ; \ echo "failed to produced Guix installation image for $$system" >&2 ; \
@ -803,7 +818,7 @@ release: dist
for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \ for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
image=`$(top_builddir)/pre-inst-env \ image=`$(top_builddir)/pre-inst-env \
guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \ guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \
--system=$$system \ --system=$$system --fallback \
gnu/system/examples/vm-image.tmpl` ; \ gnu/system/examples/vm-image.tmpl` ; \
if [ ! -f "$$image" ] ; then \ if [ ! -f "$$image" ] ; then \
echo "failed to produced Guix VM image for $$system" >&2 ; \ echo "failed to produced Guix VM image for $$system" >&2 ; \

146
NEWS
View file

@ -2,7 +2,7 @@
#+TITLE: Guix NEWS history of user-visible changes #+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars #+STARTUP: content hidestars
Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Copying and distribution of this file, with or without modification, Copying and distribution of this file, with or without modification,
@ -11,6 +11,150 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Please send Guix bug reports to bug-guix@gnu.org. Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 1.1.0 (since 1.0.1)
** Package management
*** New guix deploy command to deploy several machines at once
*** Channels can now provide news, viewed with guix pull --news
*** guix system reconfigure saves provenance data
*** New guix system describe command to view system provenance info
*** New /run/current-system/{channels,configuration}.scm files
*** New guix time-machine command
*** guix pack has a new --entry-point option
*** guix pack saves environment variables for docker and singularity
*** guix pack provides a meaningful repository name for docker
*** New --target option for guix system
*** --no-build-hook was renamed to --no-offload
*** --keep-failed now implies --no-offload
*** --dry-run no longer implies --no-grafts
*** guix import crate has a new --recursive option
*** guix import crate can import a specific package version
*** guix pull returns Guix on Guile 3.0
*** guix pull and --with-git-url can clone repositories over SSH
*** --with-commit now accepts tags
*** guix challenge has a new --diff option to show differences
*** guix weather has a new --display-missing option
*** Guix can now fetch lzip-compressed substitutes in addition to gzip
*** guix publish supports lzip compression via -C
*** guix lint -c archival queries Software Heritage
*** guix archive has a new -t option to list archive contents
*** guix describe and similar commands emit terminal hyperlinks
*** guix build now attempts to substitute missing .drv files
*** guix package etc. now lock the profile they operate on
*** guix pull honors /etc/guix/channels.scm when it exists
*** New guix show command, synonymous with guix package --show
*** The --manifest option can be repeated to combine manifests
*** Some commands previously lacking --load-path now support it
** Distribution
*** The set of pre-built bootstrap “binary seeds” has been halved
*** Graphical installer has better support for non-Latin keyboard layouts
*** Graphical installer allows users to choose an HTTP/HTTPS proxy
*** Graphical installer allows users to edit the system configuration
*** New kernel-loadable-modules field in operating-system
*** rottlog service is now part of %base-services
*** %base-services now includes /usr/bin/env as a “special file”
*** herd set-http-proxy guix-daemon URL can be used to set a proxy
*** qemu-binfmt service now supports riscv32 and riscv64
*** File system UUIDs and labels are now supported for JFS
*** New services
auditd, fontconfig-file-system, getmail, gnome-keyring, kernel-module-loader,
knot-resolver, mumi, nfs, nftables, nix, pagekite, pam-mount, patchwork,
polkit-wheel, provenance, pulseaudio, sane, singularity, usb-modeswitch
*** 3514 new packages
*** 3368 package updates
Noteworthy updates:
bash 5.0.7, binutils 2.32, cups 2.3.1, emacs 26.3, enlightenment 0.23.1,
gcc-toolchain 9.3.0, gdb 9.1, ghc 8.6.5, gimp 2.10.18, glibc 2.29,
gnome 3.32.2, gnupg 2.2.20, go 1.13.9, guile 2.2.7,
icecat 68.7.0-guix0-preview1, icedtea 3.7.0, julia 1.3.1,
libreoffice 6.4.2.2, linux-libre 5.4.31, mate 1.24.0, ocaml 4.09.0,
octave 5.2.0, openjdk 12.33, perl 5.30.0, python2 2.7.16, python 3.7.4,
racket 7.6, rust 1.39.0, r 3.6.3, sbcl 2.0.3, shepherd 0.7.0, xfce 4.14.0,
xorg-server 1.20.7
** Programming interfaces
*** New build systems
copy-build-system, julia-build-system, node-build-system, qt-build-system
*** New with-build-handler and map/accumulate-builds in (guix store)
*** (guix gexp) has a new with-parameters form
*** New (guix remote) module for remote evaluation of gexps
*** New eval/container procedure in (gnu system linux-container)
*** (guix inferior) now reifies exceptions as &inferior-exception
*** (guix cve) uses the new NIST-provided JSON files instead of XML
*** New (guix json) module to map JSON objects to Scheme records
*** New (gnu installer tests) module to drive the graphical installer
*** New (guix diagnostics) module for consistent diagnostic messages
*** “Checkers” now live in (guix lint)
** Notewothy bug fixes
*** Grafts leads to inefficient substitute info retrieval
(<https://issues.guix.gnu.org/issue/22990>)
*** Grafting prevents build plan from being displayed upfront
(https://issues.guix.gnu.org/issue/28310)
*** Changing the HTTP/FTP proxy used by the daemon is inconvenient
(<https://issues.guix.gnu.org/issue/25569>)
*** guix system disk-image successfully builds a bad image
(<https://issues.guix.gnu.org/issue/34276>)
*** Installer cannot be restarted after a failed install
(<https://issues.guix.gnu.org/issue/35543>)
*** Null pointer error when partitioning with the graphical installer
(<https://issues.guix.gnu.org/issue/35858>)
*** 'guix upgrade' misdiagnoses upgrades in the presence of propagated inputs
(<https://issues.guix.gnu.org/issue/35872>)
*** mcron randomly stops running jobs
(<https://issues.guix.gnu.org/issue/37237>)
*** Mistaken warning "guix pull was never run"
(<https://issues.guix.gnu.org/issue/38196>)
*** `guix pack --format=squashfs` fails on CentOS7
(<https://issues.guix.gnu.org/issue/40043>)
*** installer: No way to input Latin characters with non-Latin keyboard layouts
(<https://issues.guix.gnu.org/issue/40273>)
*** installer: Always add '%base-initrd-modules' to 'initrd-modules'
(<https://issues.guix.gnu.org/issue/36099>)
*** [MATE] shutdown and reboot not possible from UI
(<https://issues.guix.gnu.org/issue/40327>)
*** 'guix-daemon' honors %localstatedir, %sysconfdir, and %storedir
(<https://issues.guix.gnu.org/issue/35874>)
*** Fix GUIX_LOCPATH quoting in guix-daemon.service (systemd)
(<https://issues.guix.gnu.org/issue/36074>)
*** Include USB_ModeSwitch in %desktop-services
(<https://issues.guix.gnu.org/issue/35640>)
*** linux-container: Mount a new /dev/pts instance in the container
(<https://issues.guix.gnu.org/issue/36463>)
*** system: Write the timezone to /etc/timezone
(<https://issues.guix.gnu.org/issue/35746>)
*** linux-modules: Define and use a module name database
(<https://issues.guix.gnu.org/issue/34902>)
*** pack: Create /tmp in Docker images
(<https://issues.guix.gnu.org/issue/37161>)
*** guix system: Reinstalling the bootloader preserves extra menu entries
(<https://issues.guix.gnu.org/issue/36876>)
*** system: Add 'mount' and 'umount' to '%setuid-programs'
(<https://issues.guix.gnu.org/issue/37569>)
*** linux-libre: Try to aggressively gather entropy during boot
(<https://issues.guix.gnu.org/issue/37501>)
*** daemon: Make 'profiles/per-user' non-world-writable
(<https://issues.guix.gnu.org/issue/37744>)
*** linux-boot: Don't ignore options when mounting root file system
(<https://issues.guix.gnu.org/issue/37977>)
*** Files produced by syslogd are no longer world-readable
(<https://issues.guix.gnu.org/issue/40405>)
** Native language support
*** Updated translations of the manual
The manual is fully translated into Spanish, more than 85% complete in French
and German, and has preliminary translations into Russian and Chinese.
*** Updated translations of messages
This version of Guix is fully translated in Brazilian Portuguese, French,
German, and Spanish, and partially translated in 10 other languages.
* Changes in 1.0.1 (since 1.0.0) * Changes in 1.0.1 (since 1.0.0)
** Package management ** Package management
*** The https_proxy environment variable is now honored *** The https_proxy environment variable is now honored

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -79,6 +79,14 @@ (define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
(current-processor-count)))) (current-processor-count))))
(loop tail))))))))) (loop tail)))))))))
(define (parallel-job-count*)
;; XXX: Work around memory requirements not sustainable on i686 above '-j4'
;; or so: <https://bugs.gnu.org/40522>.
(let ((count (parallel-job-count)))
(if (string-prefix? "i686" %host-type)
(min count 4)
count)))
(define (% completed total) (define (% completed total)
"Return the completion percentage of COMPLETED over TOTAL as an integer." "Return the completion percentage of COMPLETED over TOTAL as an integer."
(inexact->exact (round (* 100. (/ completed total))))) (inexact->exact (round (* 100. (/ completed total)))))
@ -95,7 +103,7 @@ (define (% completed total)
(lambda () (lambda ()
(compile-files srcdir (getcwd) (compile-files srcdir (getcwd)
(filter file-needs-compilation? files) (filter file-needs-compilation? files)
#:workers (parallel-job-count) #:workers (parallel-job-count*)
#:host host #:host host
#:report-load (lambda (file total completed) #:report-load (lambda (file total completed)
(when file (when file

View file

@ -23,6 +23,7 @@
(guix packages) (guix packages)
(guix profiles) (guix profiles)
((gnu ci) #:select (%cross-targets)) ((gnu ci) #:select (%cross-targets))
((gnu services xorg) #:select (%default-xorg-modules))
(guix utils) (guix utils)
(srfi srfi-1) (srfi srfi-1)
(srfi srfi-26)) (srfi srfi-26))
@ -49,7 +50,7 @@ (define %base-packages
(define %system-packages (define %system-packages
;; Key packages proposed by the Guix System installer. ;; Key packages proposed by the Guix System installer.
(map specification->package (append (map specification->package
'("xorg-server" "xfce" "gnome" "mate" "enlightenment" '("xorg-server" "xfce" "gnome" "mate" "enlightenment"
"openbox" "awesome" "i3-wm" "ratpoison" "openbox" "awesome" "i3-wm" "ratpoison"
"xlockmore" "slock" "libreoffice" "xlockmore" "slock" "libreoffice"
@ -58,7 +59,8 @@ (define %system-packages
"linux-libre" "grub-hybrid" "linux-libre" "grub-hybrid"
;; FIXME: Add IceCat when Rust is available on i686. ;; FIXME: Add IceCat when Rust is available on i686.
;;"icecat" ;;"icecat"
))) ))
%default-xorg-modules))
(define %packages-to-cross-build (define %packages-to-cross-build
;; Packages that must be cross-buildable from x86_64-linux. ;; Packages that must be cross-buildable from x86_64-linux.
@ -93,6 +95,13 @@ (define %base-manifest
%base-packages)) %base-packages))
%hydra-supported-systems))) %hydra-supported-systems)))
(define %system-manifest
(manifest
(append-map (lambda (system)
(map (cut package->manifest-entry* <> system)
%system-packages))
'("x86_64-linux" "i686-linux")))) ;Guix System
(define %cross-manifest (define %cross-manifest
(manifest (manifest
(append-map (lambda (target) (append-map (lambda (target)
@ -115,5 +124,6 @@ (define %cross-bootstrap-manifest
;; Return the union of all three manifests. ;; Return the union of all three manifests.
(concatenate-manifests (list %base-manifest (concatenate-manifests (list %base-manifest
%system-manifest
%cross-manifest %cross-manifest
%cross-bootstrap-manifest)) %cross-bootstrap-manifest))

View file

@ -118,9 +118,8 @@ (define apply-locale
;; printed on the console. ;; printed on the console.
(parameterize ((shepherd-message-port (parameterize ((shepherd-message-port
(%make-void-port "w"))) (%make-void-port "w")))
(lambda ()
(stop-service 'term-tty2) (stop-service 'term-tty2)
(start-service 'term-tty2 (list locale))))))) (start-service 'term-tty2 (list locale))))))
(define* (compute-locale-step #:key (define* (compute-locale-step #:key
locales-name locales-name

View file

@ -932,6 +932,7 @@ dist_patch_DATA = \
%D%/packages/patches/gd-CVE-2019-6978.patch \ %D%/packages/patches/gd-CVE-2019-6978.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-freetype-test-failure.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \
%D%/packages/patches/gdm-default-session.patch \
%D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-diff-swap-cover-args.patch \ %D%/packages/patches/ghc-diff-swap-cover-args.patch \

View file

@ -6776,7 +6776,8 @@ (define-public gdm
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4")))) "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))
(patches (search-patches "gdm-default-session.patch"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags

View file

@ -109,9 +109,9 @@ (define-public guix
;; Latest version of Guix, which may or may not correspond to a release. ;; Latest version of Guix, which may or may not correspond to a release.
;; Note: the 'update-guix-package.scm' script expects this definition to ;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this. ;; start precisely like this.
(let ((version "1.0.1") (let ((version "1.1.0")
(commit "09844816c77caaa60f4149f99a34733966724627") (commit "d62c9b2671be55ae0305bebfda17b595f33797f2")
(revision 15)) (revision 0))
(package (package
(name "guix") (name "guix")
@ -127,7 +127,7 @@ (define-public guix
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"1fciffls6cw9zz13vig5x37r73qxc0irzyh0caimciddlksvabf7")) "0v76hb0pidfgvxa22gq6hqf5yc3m527gl7hpzykazgjh881g2vmy"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View file

@ -0,0 +1,91 @@
This patch ensures '.desktop' files are picked up in the system profile
and not in the directories listed in $XDG_DATA_DIRS. The latter includes
'gnome-session.desktop', which should be used if it's in
/run/current-system/profile, and only then.
Fixes <https://bugs.gnu.org/37831>.
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 6a116a8..02c1458 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -348,24 +348,18 @@ get_system_session_dirs (GdmSession *self)
GArray *search_array = NULL;
char **search_dirs;
int i;
- const gchar * const *system_data_dirs = g_get_system_data_dirs ();
static const char *x_search_dirs[] = {
"/etc/X11/sessions/",
DMCONFDIR "/Sessions/",
DATADIR "/gdm/BuiltInSessions/",
- DATADIR "/xsessions/",
+ "/run/current-system/profile/share/xsessions/"
};
static const char *wayland_search_dir = DATADIR "/wayland-sessions/";
search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- for (i = 0; system_data_dirs[i]; i++) {
- gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
- g_array_append_val (search_array, dir);
- }
-
g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
#ifdef ENABLE_WAYLAND_SUPPORT
@@ -373,16 +367,7 @@ get_system_session_dirs (GdmSession *self)
#ifdef ENABLE_USER_DISPLAY_SERVER
g_array_prepend_val (search_array, wayland_search_dir);
- for (i = 0; system_data_dirs[i]; i++) {
- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
- g_array_insert_val (search_array, i, dir);
- }
#else
- for (i = 0; system_data_dirs[i]; i++) {
- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
- g_array_append_val (search_array, dir);
- }
-
g_array_append_val (search_array, wayland_search_dir);
#endif
}
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
index afbc5c0..bb5e3e6 100644
--- a/libgdm/gdm-sessions.c
+++ b/libgdm/gdm-sessions.c
@@ -238,19 +238,11 @@ collect_sessions (void)
"/etc/X11/sessions/",
DMCONFDIR "/Sessions/",
DATADIR "/gdm/BuiltInSessions/",
- DATADIR "/xsessions/",
- NULL
+ "/run/current-system/profile/share/xsessions/"
};
xorg_search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- const gchar * const *system_data_dirs = g_get_system_data_dirs ();
-
- for (i = 0; system_data_dirs[i]; i++) {
- session_dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
- g_array_append_val (xorg_search_array, session_dir);
- }
-
g_array_append_vals (xorg_search_array, xorg_search_dirs, G_N_ELEMENTS (xorg_search_dirs));
#ifdef ENABLE_WAYLAND_SUPPORT
@@ -261,11 +253,6 @@ collect_sessions (void)
wayland_search_array = g_array_new (TRUE, TRUE, sizeof (char *));
- for (i = 0; system_data_dirs[i]; i++) {
- session_dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
- g_array_append_val (wayland_search_array, session_dir);
- }
-
g_array_append_vals (wayland_search_array, wayland_search_dirs, G_N_ELEMENTS (wayland_search_dirs));
#endif

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018. 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018. 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
@ -129,9 +129,15 @@ (define-public qemu
"1w38hzlw7xp05gcq1nhga7hxvndxy6dfcnzi7q2il8ff110isj6k")))) "1w38hzlw7xp05gcq1nhga7hxvndxy6dfcnzi7q2il8ff110isj6k"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(;; Running tests in parallel can occasionally lead to failures, like: `(;; Running tests in parallel can occasionally lead to failures, like:
;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead) ;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
#:parallel-tests? #f #:parallel-tests? #f
;; FIXME: Disable tests on i686 to work around
;; <https://bugs.gnu.org/40527>.
#:tests? ,(or (%current-target-system)
(not (string=? "i686-linux" (%current-system))))
#:configure-flags (list "--enable-usb-redir" "--enable-opengl" #:configure-flags (list "--enable-usb-redir" "--enable-opengl"
"--enable-docs" "--enable-docs"
(string-append "--smbd=" (string-append "--smbd="

View file

@ -142,7 +142,6 @@ (define kernel-module-loader-shepherd-service
(documentation "Load kernel modules.") (documentation "Load kernel modules.")
(provision '(kernel-module-loader)) (provision '(kernel-module-loader))
(requirement '(file-systems)) (requirement '(file-systems))
(respawn? #f)
(one-shot? #t) (one-shot? #t)
(modules `((srfi srfi-1) (modules `((srfi srfi-1)
(srfi srfi-34) (srfi srfi-34)

View file

@ -291,6 +291,13 @@ (define config
(default-environment-variables (default-environment-variables
'("PATH=/run/current-system/profile/bin")) '("PATH=/run/current-system/profile/bin"))
;; Booting off a DVD, especially on a slow machine, can make
;; everything slow. Thus, increase the timeout compared to the
;; default 5s in the Shepherd 0.7.0. See
;; <https://bugs.gnu.org/40572>.
;; XXX: Use something better when the next Shepherd is out.
(set! (@@ (shepherd service) %pid-file-timeout) 30)
;; Arrange to spawn a REPL if something goes wrong. This is better ;; Arrange to spawn a REPL if something goes wrong. This is better
;; than a kernel panic. ;; than a kernel panic.
(call-with-error-handling (call-with-error-handling

View file

@ -4,6 +4,7 @@
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,6 +28,7 @@ (define-module (gnu system install)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix modules)
#:use-module ((guix packages) #:select (package-version)) #:use-module ((guix packages) #:select (package-version))
#:use-module ((guix store) #:select (%store-prefix)) #:use-module ((guix store) #:select (%store-prefix))
#:use-module (gnu installer) #:use-module (gnu installer)
@ -50,6 +52,7 @@ (define-module (gnu system install)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages nvi) #:use-module (gnu packages nvi)
#:use-module (gnu packages xorg)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:export (installation-os #:export (installation-os
@ -287,6 +290,38 @@ (define %nscd-minimal-caches
(persistent? #f) (persistent? #f)
(max-database-size (* 5 (expt 2 20)))))) ;5 MiB (max-database-size (* 5 (expt 2 20)))))) ;5 MiB
;; These define a service to load the uvesafb kernel module with the
;; appropriate options. The GUI installer needs it when the machine does not
;; support Kernel Mode Setting. Otherwise kmscon is missing /dev/fb0.
(define (uvesafb-shepherd-service _)
(list (shepherd-service
(documentation "Load the uvesafb kernel module.")
(provision '(uvesafb))
(requirement '(file-systems))
(start #~(lambda ()
;; uvesafb is only supported on x86 and x86_64.
(or (not (and (string-suffix? "linux-gnu" %host-type)
(or (string-prefix? "x86_64" %host-type)
(string-prefix? "i686" %host-type))))
(file-exists? "/dev/fb0")
(invoke #+(file-append kmod "/bin/modprobe")
"uvesafb"
(string-append "v86d=" #$v86d "/sbin/v86d")
"mode_option=1024x768"))))
(respawn? #f)
(one-shot? #t))))
(define uvesafb-service-type
(service-type
(name 'uvesafb)
(extensions
(list (service-extension shepherd-root-service-type
uvesafb-shepherd-service)))
(description
"Load the @code{uvesafb} kernel module with the right options.")
(default-value #t)))
(define %installation-services (define %installation-services
;; List of services of the installation system. ;; List of services of the installation system.
(let ((motd (plain-file "motd" " (let ((motd (plain-file "motd" "
@ -408,7 +443,13 @@ (define bare-bones-os
(list bare-bones-os (list bare-bones-os
glibc-utf8-locales glibc-utf8-locales
texinfo texinfo
(canonical-package guile-2.2)))))) (canonical-package guile-2.2)))
;; Machines without Kernel Mode Setting (those with many old and
;; current AMD GPUs, SiS GPUs, ...) need uvesafb to show the GUI
;; installer. Some may also need a kernel parameter like nomodeset
;; or vga=793, but we leave that for the user to specify in GRUB.
(service uvesafb-service-type))))
(define %issue (define %issue
;; Greeting. ;; Greeting.

View file

@ -339,8 +339,9 @@ (define (load-manifest file)
"Load the manifest from FILE and return the list of packages it refers to." "Load the manifest from FILE and return the list of packages it refers to."
(let* ((user-module (make-user-module '((guix profiles) (gnu)))) (let* ((user-module (make-user-module '((guix profiles) (gnu))))
(manifest (load* file user-module))) (manifest (load* file user-module)))
(map manifest-entry-item (delete-duplicates (map manifest-entry-item
(manifest-transitive-entries manifest)))) (manifest-transitive-entries manifest))
eq?)))
;;; ;;;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff