From 4fc2132741aee4d6efed1545757b042c2c67acb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 9 Apr 2020 22:26:29 +0200 Subject: gnu: qemu: Skip tests on i686-linux. * gnu/packages/virtualization.scm (qemu)[arguments]: Add #:tests?. --- gnu/packages/virtualization.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 5bee79cbb4..bfaf462e24 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2016, 2017, 2018. 2019 Efraim Flashner ;;; Copyright © 2016, 2017 Ricardo Wurmus @@ -129,9 +129,15 @@ "1w38hzlw7xp05gcq1nhga7hxvndxy6dfcnzi7q2il8ff110isj6k")))) (build-system gnu-build-system) (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) #:parallel-tests? #f + + ;; FIXME: Disable tests on i686 to work around + ;; . + #:tests? ,(or (%current-target-system) + (not (string=? "i686-linux" (%current-system)))) + #:configure-flags (list "--enable-usb-redir" "--enable-opengl" "--enable-docs" (string-append "--smbd=" -- cgit v1.2.3 From eb0352e5b075385baebd907081682f14703ef5e0 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Thu, 9 Apr 2020 20:48:09 -0700 Subject: Add missing services/linux.scm to gnu/local.mk. * gnu/local.mk (GNU_SYSTEM_MODULES): Add linux.scm. --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index eefcdf501a..f401ef173b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -569,6 +569,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/getmail.scm \ %D%/services/guix.scm \ %D%/services/kerberos.scm \ + %D%/services/linux.scm \ %D%/services/lirc.scm \ %D%/services/virtualization.scm \ %D%/services/mail.scm \ -- cgit v1.2.3 From e830c2a8de0a4b6fbc334c648d976872034b5997 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 6 Apr 2020 17:48:21 +0200 Subject: vm: Transparently compress iso9660 images. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/build/vm.scm (make-iso9660-image): Use the ‘--zisofs’ xorriso filter at the highest compression settings for supported directories. --- gnu/build/vm.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 79eed48c1f..9caa110463 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2018 Chris Marusich +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -533,6 +534,24 @@ GRUB configuration and OS-DRV as the stuff in it." ;; Set all timestamps to 1. "-volume_date" "all_file_dates" "=1" + ;; ‘zisofs’ compression reduces the total image size by ~60%. + "-zisofs" "level=9:block_size=128k" ; highest compression + ;; It's transparent to our Linux-Libre kernel but not to GRUB. + ;; Don't compress the kernel, initrd, and other files read by + ;; grub.cfg, as well as common already-compressed file names. + "-find" "/" "-type" "f" + ;; XXX Even after "--" above, and despite documentation claiming + ;; otherwise, "-or" is stolen by grub-mkrescue which then chokes + ;; on it (as ‘-o …’) and dies. Don't use "-or". + "-not" "-wholename" "/boot/*" + "-not" "-wholename" "/System/*" + "-not" "-name" "unicode.pf2" + "-not" "-name" "bzImage" + "-not" "-name" "*.gz" ; initrd & all man pages + "-not" "-name" "*.png" ; includes grub-image.png + "-exec" "set_filter" "--zisofs" + "--" + "-volid" (string-upcase volume-id) (if volume-uuid `("-volume_date" "uuid" -- cgit v1.2.3 From 325707fabe03a352eeb27fc8164819e6fac1dd34 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 9 Apr 2020 18:39:19 +0200 Subject: =?UTF-8?q?services:=20gnome:=20Fix=20=E2=80=98gnome=E2=80=99=20fi?= =?UTF-8?q?eld=20name.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To match its own documentation & other similar services. * gnu/services/desktop.scm (gnome-desktop-configuration)[gnome-package]: Rename to… [gnome]: …this. --- gnu/services/desktop.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 7300ff5f4a..8663243256 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2019 Christopher Baines ;;; Copyright © 2019 Tim Gesthuizen ;;; Copyright © 2019 David Wilson +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -892,7 +893,7 @@ rules.") (define-record-type* gnome-desktop-configuration make-gnome-desktop-configuration gnome-desktop-configuration? - (gnome-package gnome-package (default gnome))) + (gnome gnome-package (default gnome))) (define (gnome-polkit-settings config) "Return the list of GNOME dependencies that provide polkit actions and -- cgit v1.2.3 From 2281a77a3ca9b30308b16e79295ac6e3001879f8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 9 Apr 2020 18:35:19 +0200 Subject: gnu: xfce: Fix typo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xfce.scm (xfce)[inputs]: Re-spell ‘tumlber’. --- gnu/packages/xfce.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 0628b03207..ae2f0f2dab 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -854,7 +854,7 @@ on your desktop.") ("shared-mime-info" ,shared-mime-info) ("thunar" ,thunar) ("thunar-volman" ,thunar-volman) - ("tumlber" ,tumbler) + ("tumbler" ,tumbler) ("xfce4-appfinder" ,xfce4-appfinder) ("xfce4-panel" ,xfce4-panel) ("xfce4-power-manager" ,xfce4-power-manager) @@ -868,7 +868,7 @@ on your desktop.") ("xfce4-battery-plugin" ,xfce4-battery-plugin) ("xfce4-clipman-plugin" ,xfce4-clipman-plugin) ("xfce4-pulseaudio-plugin" ,xfce4-pulseaudio-plugin) - ("xfce4-xkb-plugin" ,xfce4-xkb-plugin))) + ("xfce4-xkb-plugin" ,xfce4-xkb-plugin))) (native-search-paths ;; For finding panel plugins. (package-native-search-paths xfce4-panel)) -- cgit v1.2.3 From 0bd7a6bad9af06e1149e7019a3102edbbeac6b76 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 10 Apr 2020 15:44:38 +0200 Subject: gnu: installer: Fix issue with "Esperanto" locale. According to glibc manual, locale are under the following form: language[_territory[.codeset]][@modifier] The esperanto locale "epo" does not have a territory. Modify run-command to take this into account. Reported by Alex Sassmannshausen here: https://lists.gnu.org/archive/html/guix-devel/2020-04/msg00192.html. * gnu/installer/utils.scm (run-command): Handle locale without territory such as "epo". --- gnu/installer/utils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index 0a91ae1e4a..5f8fe8ca01 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. @@ -93,7 +93,8 @@ COMMAND exited successfully, #f otherwise." (setenv "LC_ALL" locale) (setenv "LANGUAGE" (string-take locale - (string-index locale #\_)))))) + (or (string-index locale #\_) + (string-length locale))))))) (guard (c ((invoke-error? c) (newline) -- cgit v1.2.3 From 18ffd2f9687a7c8af0041c129c47db31b7e810c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Apr 2020 14:48:02 +0200 Subject: gnu: binutils: Shorten file names of MinGW patches. This ensures we stay below the POSIX tar file name length limit. * gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch: Rename to... * gnu/packages/patches/binutils-mingw-w64-deterministic.patch: ... this. * gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch: Rename to... * gnu/packages/patches/binutils-mingw-w64-timestamp.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/cross-base.scm (cross-binutils): Likewise. --- gnu/local.mk | 4 +- gnu/packages/cross-base.scm | 5 +- .../patches/binutils-mingw-w64-deterministic.patch | 22 ++++ ...s-mingw-w64-reproducible-import-libraries.patch | 22 ---- .../binutils-mingw-w64-specify-timestamp.patch | 137 --------------------- .../patches/binutils-mingw-w64-timestamp.patch | 137 +++++++++++++++++++++ 6 files changed, 163 insertions(+), 164 deletions(-) create mode 100644 gnu/packages/patches/binutils-mingw-w64-deterministic.patch delete mode 100644 gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch delete mode 100644 gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch create mode 100644 gnu/packages/patches/binutils-mingw-w64-timestamp.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index f401ef173b..a9dda84a81 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -776,8 +776,8 @@ dist_patch_DATA = \ %D%/packages/patches/bidiv-update-fribidi.patch \ %D%/packages/patches/binutils-boot-2.20.1a.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ - %D%/packages/patches/binutils-mingw-w64-specify-timestamp.patch \ - %D%/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch \ + %D%/packages/patches/binutils-mingw-w64-timestamp.patch \ + %D%/packages/patches/binutils-mingw-w64-deterministic.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/bluez-CVE-2020-0556.patch \ diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index b0eb7ab4ed..b07014da6c 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -98,9 +98,8 @@ ((target-mingw? target) (package-with-extra-patches binutils - (search-patches - "binutils-mingw-w64-specify-timestamp.patch" - "binutils-mingw-w64-reproducible-import-libraries.patch"))) + (search-patches "binutils-mingw-w64-timestamp.patch" + "binutils-mingw-w64-deterministic.patch"))) (else binutils)) target))) diff --git a/gnu/packages/patches/binutils-mingw-w64-deterministic.patch b/gnu/packages/patches/binutils-mingw-w64-deterministic.patch new file mode 100644 index 0000000000..3e48b87935 --- /dev/null +++ b/gnu/packages/patches/binutils-mingw-w64-deterministic.patch @@ -0,0 +1,22 @@ +This following patch was originally found at the debian mingw-w64 team's +binutils repo located here: +https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show da63f6b:debian/patches/reproducible-import-libraries.patch + +Description: Make DLL import libraries reproducible +Author: Benjamin Moody +Bug-Debian: https://bugs.debian.org/915055 + +--- a/ld/pe-dll.c ++++ b/ld/pe-dll.c +@@ -2844,6 +2844,7 @@ + + bfd_set_format (outarch, bfd_archive); + outarch->has_armap = 1; ++ outarch->flags |= BFD_DETERMINISTIC_OUTPUT; + + /* Work out a reasonable size of things to put onto one line. */ + ar_head = make_head (outarch); diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch deleted file mode 100644 index 3e48b87935..0000000000 --- a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch +++ /dev/null @@ -1,22 +0,0 @@ -This following patch was originally found at the debian mingw-w64 team's -binutils repo located here: -https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git - -Invoke the following in the aforementioned repo to see the original patch: - - $ git show da63f6b:debian/patches/reproducible-import-libraries.patch - -Description: Make DLL import libraries reproducible -Author: Benjamin Moody -Bug-Debian: https://bugs.debian.org/915055 - ---- a/ld/pe-dll.c -+++ b/ld/pe-dll.c -@@ -2844,6 +2844,7 @@ - - bfd_set_format (outarch, bfd_archive); - outarch->has_armap = 1; -+ outarch->flags |= BFD_DETERMINISTIC_OUTPUT; - - /* Work out a reasonable size of things to put onto one line. */ - ar_head = make_head (outarch); diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch deleted file mode 100644 index b785043b62..0000000000 --- a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch +++ /dev/null @@ -1,137 +0,0 @@ -This following patch was originally found at the debian mingw-w64 team's -binutils repo located here: -https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git - -Invoke the following in the aforementioned repo to see the original patch: - - $ git show da63f6b:debian/patches/specify-timestamp.patch - -Description: Allow the PE timestamp to be specified -Author: Stephen Kitt - ---- a/bfd/peXXigen.c -+++ b/bfd/peXXigen.c -@@ -70,6 +70,9 @@ - #include - #endif - -+#include -+#include -+ - /* NOTE: it's strange to be including an architecture specific header - in what's supposed to be general (to PE/PEI) code. However, that's - where the definitions are, and they don't vary per architecture -@@ -879,10 +882,38 @@ - - /* Use a real timestamp by default, unless the no-insert-timestamp - option was chosen. */ -- if ((pe_data (abfd)->insert_timestamp)) -- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat); -- else -+ if (pe_data (abfd)->insert_timestamp) { -+ time_t now; -+ char *source_date_epoch; -+ unsigned long long epoch; -+ char *endptr; -+ -+ now = time(NULL); -+ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); -+ if (source_date_epoch) { -+ errno = 0; -+ epoch = strtoull(source_date_epoch, &endptr, 10); -+ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) -+ || (errno != 0 && epoch == 0)) { -+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", -+ strerror(errno)); -+ } else if (endptr == source_date_epoch) { -+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", -+ endptr); -+ } else if (*endptr != '\0') { -+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", -+ endptr); -+ } else if (epoch > ULONG_MAX) { -+ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", -+ ULONG_MAX, epoch); -+ } else { -+ now = epoch; -+ } -+ } -+ H_PUT_32 (abfd, now, filehdr_out->f_timdat); -+ } else { - H_PUT_32 (abfd, 0, filehdr_out->f_timdat); -+ } - - PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, - filehdr_out->f_symptr); ---- a/ld/pe-dll.c -+++ b/ld/pe-dll.c -@@ -26,6 +26,8 @@ - #include "filenames.h" - #include "safe-ctype.h" - -+#include -+#include - #include - - #include "ld.h" -@@ -1202,8 +1204,36 @@ - - memset (edata_d, 0, edata_sz); - -- if (pe_data (abfd)->insert_timestamp) -- H_PUT_32 (abfd, time (0), edata_d + 4); -+ if (pe_data (abfd)->insert_timestamp) { -+ time_t now; -+ char *source_date_epoch; -+ unsigned long long epoch; -+ char *endptr; -+ -+ now = time(NULL); -+ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); -+ if (source_date_epoch) { -+ errno = 0; -+ epoch = strtoull(source_date_epoch, &endptr, 10); -+ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) -+ || (errno != 0 && epoch == 0)) { -+ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", -+ strerror(errno)); -+ } else if (endptr == source_date_epoch) { -+ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", -+ endptr); -+ } else if (*endptr != '\0') { -+ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", -+ endptr); -+ } else if (epoch > ULONG_MAX) { -+ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", -+ ULONG_MAX, epoch); -+ } else { -+ now = epoch; -+ } -+ } -+ H_PUT_32 (abfd, now, edata_d + 4); -+ } - - if (pe_def_file->version_major != -1) - { ---- a/ld/emultempl/pe.em -+++ b/ld/emultempl/pe.em -@@ -303,7 +303,7 @@ - OPTION_USE_NUL_PREFIXED_IMPORT_TABLES}, - {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE}, - {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE}, -- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, -+ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, - {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, - #ifdef DLL_SUPPORT - /* getopt allows abbreviations, so we do this to stop it ---- a/ld/emultempl/pep.em -+++ b/ld/emultempl/pep.em -@@ -321,7 +321,7 @@ - {"no-bind", no_argument, NULL, OPTION_NO_BIND}, - {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER}, - {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE}, -- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, -+ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, - {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, - {"build-id", optional_argument, NULL, OPTION_BUILD_ID}, - {NULL, no_argument, NULL, 0} diff --git a/gnu/packages/patches/binutils-mingw-w64-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-timestamp.patch new file mode 100644 index 0000000000..b785043b62 --- /dev/null +++ b/gnu/packages/patches/binutils-mingw-w64-timestamp.patch @@ -0,0 +1,137 @@ +This following patch was originally found at the debian mingw-w64 team's +binutils repo located here: +https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show da63f6b:debian/patches/specify-timestamp.patch + +Description: Allow the PE timestamp to be specified +Author: Stephen Kitt + +--- a/bfd/peXXigen.c ++++ b/bfd/peXXigen.c +@@ -70,6 +70,9 @@ + #include + #endif + ++#include ++#include ++ + /* NOTE: it's strange to be including an architecture specific header + in what's supposed to be general (to PE/PEI) code. However, that's + where the definitions are, and they don't vary per architecture +@@ -879,10 +882,38 @@ + + /* Use a real timestamp by default, unless the no-insert-timestamp + option was chosen. */ +- if ((pe_data (abfd)->insert_timestamp)) +- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat); +- else ++ if (pe_data (abfd)->insert_timestamp) { ++ time_t now; ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ ++ now = time(NULL); ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ } else if (endptr == source_date_epoch) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ } else if (*endptr != '\0') { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ } else if (epoch > ULONG_MAX) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", ++ ULONG_MAX, epoch); ++ } else { ++ now = epoch; ++ } ++ } ++ H_PUT_32 (abfd, now, filehdr_out->f_timdat); ++ } else { + H_PUT_32 (abfd, 0, filehdr_out->f_timdat); ++ } + + PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, + filehdr_out->f_symptr); +--- a/ld/pe-dll.c ++++ b/ld/pe-dll.c +@@ -26,6 +26,8 @@ + #include "filenames.h" + #include "safe-ctype.h" + ++#include ++#include + #include + + #include "ld.h" +@@ -1202,8 +1204,36 @@ + + memset (edata_d, 0, edata_sz); + +- if (pe_data (abfd)->insert_timestamp) +- H_PUT_32 (abfd, time (0), edata_d + 4); ++ if (pe_data (abfd)->insert_timestamp) { ++ time_t now; ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ ++ now = time(NULL); ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ } else if (endptr == source_date_epoch) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ } else if (*endptr != '\0') { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ } else if (epoch > ULONG_MAX) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", ++ ULONG_MAX, epoch); ++ } else { ++ now = epoch; ++ } ++ } ++ H_PUT_32 (abfd, now, edata_d + 4); ++ } + + if (pe_def_file->version_major != -1) + { +--- a/ld/emultempl/pe.em ++++ b/ld/emultempl/pe.em +@@ -303,7 +303,7 @@ + OPTION_USE_NUL_PREFIXED_IMPORT_TABLES}, + {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE}, + {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE}, +- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, ++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, + {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, + #ifdef DLL_SUPPORT + /* getopt allows abbreviations, so we do this to stop it +--- a/ld/emultempl/pep.em ++++ b/ld/emultempl/pep.em +@@ -321,7 +321,7 @@ + {"no-bind", no_argument, NULL, OPTION_NO_BIND}, + {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER}, + {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE}, +- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, ++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, + {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, + {"build-id", optional_argument, NULL, OPTION_BUILD_ID}, + {NULL, no_argument, NULL, 0} -- cgit v1.2.3 From 17edf577d5d377923d8f32c563092d80a48e9515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Apr 2020 14:55:31 +0200 Subject: gnu: akonadi: Shorten file name of patch. This ensures we stay below the POSIX tar file name length limit. * gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch: Rename to... * gnu/packages/patches/akonadi-not-relocatable.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/kde-pim.scm (akonadi): Likewise. --- gnu/local.mk | 2 +- gnu/packages/kde-pim.scm | 2 +- ...di-Revert-Make-installation-properly-relo.patch | 49 ---------------------- gnu/packages/patches/akonadi-not-relocatable.patch | 49 ++++++++++++++++++++++ 4 files changed, 51 insertions(+), 51 deletions(-) delete mode 100644 gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch create mode 100644 gnu/packages/patches/akonadi-not-relocatable.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index a9dda84a81..ba9bd98fb9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -726,7 +726,7 @@ dist_patch_DATA = \ %D%/packages/patches/aegisub-boost68.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/akonadi-paths.patch \ - %D%/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch \ + %D%/packages/patches/akonadi-not-relocatable.patch \ %D%/packages/patches/akonadi-timestamps.patch \ %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \ %D%/packages/patches/amule-crypto-6.patch \ diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm index 1b99ae1de4..fea6dd3068 100644 --- a/gnu/packages/kde-pim.scm +++ b/gnu/packages/kde-pim.scm @@ -53,7 +53,7 @@ (patches (search-patches "akonadi-paths.patch" "akonadi-timestamps.patch" - "akonadi-Revert-Make-installation-properly-relo.patch")))) + "akonadi-not-relocatable.patch")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch b/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch deleted file mode 100644 index c3964c5c05..0000000000 --- a/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch +++ /dev/null @@ -1,49 +0,0 @@ -From bc018b4bc816a3b51deb9739bedbf8a2268d0684 Mon Sep 17 00:00:00 2001 -From: gnidorah -Date: Fri, 22 Dec 2017 17:36:03 +0300 -Subject: [PATCH] Revert "Make Akonadi installation properly relocatable" - -This reverts commit b2bb55f13f2ac783f89cc414de8c39f62fa2096a. ---- - CMakeLists.txt | 3 --- - KF5AkonadiConfig.cmake.in | 6 +++--- - 2 files changed, 3 insertions(+), 6 deletions(-) - -Index: akonadi-19.08.0/CMakeLists.txt -=================================================================== ---- akonadi-19.08.0.orig/CMakeLists.txt -+++ akonadi-19.08.0/CMakeLists.txt -@@ -306,9 +306,6 @@ configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake" - INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} -- PATH_VARS AKONADI_DBUS_INTERFACES_INSTALL_DIR -- AKONADI_INCLUDE_DIR -- KF5Akonadi_DATA_DIR - ) - - install(FILES -Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in -=================================================================== ---- akonadi-19.08.0.orig/KF5AkonadiConfig.cmake.in -+++ akonadi-19.08.0/KF5AkonadiConfig.cmake.in -@@ -26,8 +26,8 @@ if(BUILD_TESTING) - find_dependency(Qt5Test "@QT_REQUIRED_VERSION@") - endif() - --set_and_check(AKONADI_DBUS_INTERFACES_DIR "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@") --set_and_check(AKONADI_INCLUDE_DIR "@PACKAGE_AKONADI_INCLUDE_DIR@") -+set_and_check(AKONADI_DBUS_INTERFACES_DIR "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@") -+set_and_check(AKONADI_INCLUDE_DIR "@AKONADI_INCLUDE_DIR@") - - find_dependency(Boost "@Boost_MINIMUM_VERSION@") - -@@ -35,7 +35,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5Ako - include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake) - - # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed --set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@") -+set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@") - - #################################################################################### - # CMAKE_AUTOMOC diff --git a/gnu/packages/patches/akonadi-not-relocatable.patch b/gnu/packages/patches/akonadi-not-relocatable.patch new file mode 100644 index 0000000000..c3964c5c05 --- /dev/null +++ b/gnu/packages/patches/akonadi-not-relocatable.patch @@ -0,0 +1,49 @@ +From bc018b4bc816a3b51deb9739bedbf8a2268d0684 Mon Sep 17 00:00:00 2001 +From: gnidorah +Date: Fri, 22 Dec 2017 17:36:03 +0300 +Subject: [PATCH] Revert "Make Akonadi installation properly relocatable" + +This reverts commit b2bb55f13f2ac783f89cc414de8c39f62fa2096a. +--- + CMakeLists.txt | 3 --- + KF5AkonadiConfig.cmake.in | 6 +++--- + 2 files changed, 3 insertions(+), 6 deletions(-) + +Index: akonadi-19.08.0/CMakeLists.txt +=================================================================== +--- akonadi-19.08.0.orig/CMakeLists.txt ++++ akonadi-19.08.0/CMakeLists.txt +@@ -306,9 +306,6 @@ configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake" + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} +- PATH_VARS AKONADI_DBUS_INTERFACES_INSTALL_DIR +- AKONADI_INCLUDE_DIR +- KF5Akonadi_DATA_DIR + ) + + install(FILES +Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in +=================================================================== +--- akonadi-19.08.0.orig/KF5AkonadiConfig.cmake.in ++++ akonadi-19.08.0/KF5AkonadiConfig.cmake.in +@@ -26,8 +26,8 @@ if(BUILD_TESTING) + find_dependency(Qt5Test "@QT_REQUIRED_VERSION@") + endif() + +-set_and_check(AKONADI_DBUS_INTERFACES_DIR "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@") +-set_and_check(AKONADI_INCLUDE_DIR "@PACKAGE_AKONADI_INCLUDE_DIR@") ++set_and_check(AKONADI_DBUS_INTERFACES_DIR "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@") ++set_and_check(AKONADI_INCLUDE_DIR "@AKONADI_INCLUDE_DIR@") + + find_dependency(Boost "@Boost_MINIMUM_VERSION@") + +@@ -35,7 +35,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5Ako + include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake) + + # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed +-set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@") ++set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@") + + #################################################################################### + # CMAKE_AUTOMOC -- cgit v1.2.3 From abc33218f167de366712feafde94441cf2216d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Apr 2020 15:54:10 +0200 Subject: gnu: sdl-pango: Shorten file name of patch. * gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch: Rename to... * gnu/packages/patches/sdl-pango-header-guard.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/sdl.scm (sdl-pango): Likewise. --- gnu/local.mk | 2 +- ...-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch | 20 -------------------- gnu/packages/patches/sdl-pango-header-guard.patch | 20 ++++++++++++++++++++ gnu/packages/sdl.scm | 14 ++++++-------- 4 files changed, 27 insertions(+), 29 deletions(-) delete mode 100644 gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch create mode 100644 gnu/packages/patches/sdl-pango-header-guard.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index ba9bd98fb9..73f9d5d69c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1288,7 +1288,7 @@ dist_patch_DATA = \ %D%/packages/patches/sdl-pango-api_additions.patch \ %D%/packages/patches/sdl-pango-blit_overflow.patch \ %D%/packages/patches/sdl-pango-fillrect_crash.patch \ - %D%/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch \ + %D%/packages/patches/sdl-pango-header-guard.patch \ %D%/packages/patches/sdl-pango-matrix_declarations.patch \ %D%/packages/patches/sdl-pango-sans-serif.patch \ %D%/packages/patches/patchutils-test-perms.patch \ diff --git a/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch b/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch deleted file mode 100644 index 3d4b10cc10..0000000000 --- a/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/src/SDL_Pango.h -+++ b/src/SDL_Pango.h -@@ -171,7 +171,7 @@ - SDLPango_Direction direction); - - --#ifdef __FT2_BUILD_UNIX_H__ -+#ifdef FT2BUILD_H_ - - extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface( - const FT_Bitmap *bitmap, -@@ -179,7 +179,7 @@ - const SDLPango_Matrix *matrix, - SDL_Rect *rect); - --#endif /* __FT2_BUILD_UNIX_H__ */ -+#endif - - - #ifdef __PANGO_H__ diff --git a/gnu/packages/patches/sdl-pango-header-guard.patch b/gnu/packages/patches/sdl-pango-header-guard.patch new file mode 100644 index 0000000000..3d4b10cc10 --- /dev/null +++ b/gnu/packages/patches/sdl-pango-header-guard.patch @@ -0,0 +1,20 @@ +--- a/src/SDL_Pango.h ++++ b/src/SDL_Pango.h +@@ -171,7 +171,7 @@ + SDLPango_Direction direction); + + +-#ifdef __FT2_BUILD_UNIX_H__ ++#ifdef FT2BUILD_H_ + + extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface( + const FT_Bitmap *bitmap, +@@ -179,7 +179,7 @@ + const SDLPango_Matrix *matrix, + SDL_Rect *rect); + +-#endif /* __FT2_BUILD_UNIX_H__ */ ++#endif + + + #ifdef __PANGO_H__ diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 7b36d5509c..105296cd0f 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -345,14 +345,12 @@ SDL.") "SDL_Pango-" version ".tar.gz")) (sha256 (base32 "197baw1dsg0p4pljs5k0fshbyki00r4l49m1drlpqw6ggawx6xbz")) - (patches - (search-patches - "sdl-pango-api_additions.patch" - "sdl-pango-blit_overflow.patch" - "sdl-pango-fillrect_crash.patch" - "sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch" - "sdl-pango-matrix_declarations.patch" - "sdl-pango-sans-serif.patch")))) + (patches (search-patches "sdl-pango-api_additions.patch" + "sdl-pango-blit_overflow.patch" + "sdl-pango-fillrect_crash.patch" + "sdl-pango-header-guard.patch" + "sdl-pango-matrix_declarations.patch" + "sdl-pango-sans-serif.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-static") -- cgit v1.2.3 From 74f01059cb30827de92f75e99a3bb4ee31c19118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Apr 2020 15:43:03 +0200 Subject: vm: 'system-disk-image' honors #:substitutable? for ISO9660 images. This is a followup to a328f66a9e16d7bae765d8bc088e4a97037e6e2b. * gnu/system/vm.scm (iso9660-image): Add #:substitutable? and pass it to 'expression->derivation-in-linux-vm'. (system-disk-image): Pass #:substitutable? to 'iso9660-image'. --- gnu/system/vm.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 60a41584d0..00c6f0fe38 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -283,7 +283,8 @@ substitutable." bootloader (register-closures? (has-guix-service-type? os)) (inputs '()) - (grub-mkrescue-environment '())) + (grub-mkrescue-environment '()) + (substitutable? #t)) "Return a bootable, stand-alone iso9660 image. INPUTS is a list of inputs (as for packages)." @@ -354,6 +355,7 @@ INPUTS is a list of inputs (as for packages)." #:make-disk-image? #f #:single-file-output? #t #:references-graphs inputs + #:substitutable? substitutable? ;; Xorriso seems to be quite memory-hungry, so increase the VM's RAM size. #:memory-size 512)) @@ -735,7 +737,8 @@ substitutable." #:inputs `(("system" ,os) ("bootcfg" ,bootcfg)) #:grub-mkrescue-environment - '(("MKRESCUE_SED_MODE" . "mbr_hfs"))) + '(("MKRESCUE_SED_MODE" . "mbr_hfs")) + #:substitutable? substitutable?) (qemu-image #:name name #:os os #:bootcfg-drv bootcfg -- cgit v1.2.3 From 66b53c2c72b4aad4e6621273b9a5ca8c6f632c63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Apr 2020 15:44:30 +0200 Subject: installer: tests: Don't install to a CD/DVD. * gnu/installer/tests.scm (choose-partitioning): Use 'find' to select the disk. --- gnu/installer/tests.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm index 8ae80e4d7e..58bf0a2700 100644 --- a/gnu/installer/tests.scm +++ b/gnu/installer/tests.scm @@ -296,8 +296,13 @@ file, actually starting the installation process." encrypted not-encrypted)) ((list-selection (title "Disk") (multiple-choices? #f) - (items (,disk _ ...))) - disk) + (items (,disks ...))) + ;; When running the installation from an ISO image, the CD/DVD drive + ;; shows up in the list. Avoid it. + (find (lambda (disk) + (not (or (string-contains disk "DVD") + (string-contains disk "CD-ROM")))) + disks)) ;; The "Partition table" dialog pops up only if there's not already a ;; partition table. -- cgit v1.2.3 From c635610bc6c89dd7feb1e81ff7803600027e0092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 10 Apr 2020 15:46:16 +0200 Subject: tests: Run guided installation tests from an ISO image. * gnu/tests/install.scm (guided-installation-test): Pass #:installation-disk-image-file-system-type to 'run-install'. --- gnu/tests/install.scm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gnu') diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 799a65907b..713e03194b 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -1125,6 +1125,8 @@ build (current-guix) and then store a couple of full system images.") #:os installation-os-for-gui-tests #:install-size install-size #:target-size target-size + #:installation-disk-image-file-system-type + "iso9660" #:gui-test (lambda (marionette) (gui-test-program -- cgit v1.2.3 From 557e6820a77b24f8f3f03f28ee473137b1caeb64 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Sat, 11 Apr 2020 18:56:37 +0200 Subject: installer: Load uvesafb kernel module. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . 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. * gnu/system/install.scm (uvesafb-shepherd-service): New procedure. (uvesafb-service-type): New variable. (%installation-services): Add it. Co-authored-by: Ludovic Courtès --- gnu/system/install.scm | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/install.scm b/gnu/system/install.scm index c15c2c7814..203a085bcd 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2020 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix monads) + #:use-module (guix modules) #:use-module ((guix packages) #:select (package-version)) #:use-module ((guix store) #:select (%store-prefix)) #:use-module (gnu installer) @@ -50,6 +52,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages compression) #:use-module (gnu packages nvi) + #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-26) #:export (installation-os @@ -287,6 +290,37 @@ the user's target storage device rather than on the RAM disk." (persistent? #f) (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)))) + (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 ;; List of services of the installation system. (let ((motd (plain-file "motd" " @@ -408,7 +442,13 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m (list bare-bones-os glibc-utf8-locales 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 ;; Greeting. -- cgit v1.2.3 From f4ec5e1a9823a66c27fe2bc033db7b58b29edfef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 11 Apr 2020 23:58:49 +0200 Subject: gnu: gdm: Don't offer GNOME when it's not in the system profile. Fixes . Reported by Pierre Neidhardt . * gnu/packages/patches/gdm-default-session.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gnome.scm (gdm)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 3 +- gnu/packages/patches/gdm-default-session.patch | 91 ++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gdm-default-session.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 73f9d5d69c..0117a43ae2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -932,6 +932,7 @@ dist_patch_DATA = \ %D%/packages/patches/gd-CVE-2019-6978.patch \ %D%/packages/patches/gd-fix-tests-on-i686.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/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-diff-swap-cover-args.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 088de7dd4c..63dd8dc4c6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6776,7 +6776,8 @@ libxml2.") name "-" version ".tar.xz")) (sha256 (base32 - "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4")))) + "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4")) + (patches (search-patches "gdm-default-session.patch")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch new file mode 100644 index 0000000000..4839a04de4 --- /dev/null +++ b/gnu/packages/patches/gdm-default-session.patch @@ -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 . + +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 + -- cgit v1.2.3 From 9d0d27fd8841a923bb6109d3758d925fbd737b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 12 Apr 2020 00:38:43 +0200 Subject: gnu: guix: Update to 1.1.0rc2. --- gnu/packages/package-management.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 77afc8f749..0dfca58f9a 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -109,9 +109,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.0.1") - (commit "09844816c77caaa60f4149f99a34733966724627") - (revision 15)) + (let ((version "1.1.0rc2") + (commit "935ef44b398353b5b6af94e185d7b0c3d833db0b") + (revision 0)) (package (name "guix") @@ -127,7 +127,7 @@ (commit commit))) (sha256 (base32 - "1fciffls6cw9zz13vig5x37r73qxc0irzyh0caimciddlksvabf7")) + "1kag3k0k2apidx5nhravsa0f7if9dzhzxpam3yv1832m8zd8k9al")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 2033cf19e6ecb7a06260865ffd6e8512eb812de8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 12 Apr 2020 03:33:13 +0200 Subject: gnu: guix: Update to 9d0d27f. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 0dfca58f9a..8e8ce3ab2f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -110,8 +110,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.1.0rc2") - (commit "935ef44b398353b5b6af94e185d7b0c3d833db0b") - (revision 0)) + (commit "9d0d27fd8841a923bb6109d3758d925fbd737b65") + (revision 1)) (package (name "guix") @@ -127,7 +127,7 @@ (commit commit))) (sha256 (base32 - "1kag3k0k2apidx5nhravsa0f7if9dzhzxpam3yv1832m8zd8k9al")) + "0m1mgha9ia22961pr29kvwalza734yhnaibah3d0k42mw826v7h1")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 8e4d1493f1d56e29252eb7a36b3eee2a0e073ee4 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Sun, 12 Apr 2020 11:08:28 +0200 Subject: services: kernel-module-loader: Clean up. Suggested by Efraim Flashner . See . * gnu/services/linux.scm (kernel-module-loader-shepherd-service): Remove unneeded 'respawn?' field. --- gnu/services/linux.scm | 1 - 1 file changed, 1 deletion(-) (limited to 'gnu') diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index 781a61973c..12934c2084 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -142,7 +142,6 @@ representation." (documentation "Load kernel modules.") (provision '(kernel-module-loader)) (requirement '(file-systems)) - (respawn? #f) (one-shot? #t) (modules `((srfi srfi-1) (srfi srfi-34) -- cgit v1.2.3 From 893651af3ec8ea003404cfefbbaa4fcd56dad3d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 14 Apr 2020 12:56:44 +0200 Subject: installer: Open manual in the selected language on tty2. Fixes . Reported by Florian Pelz . Regression introduced in b5c2d93d7a223155898dd0ed6932f6acf78ac454. * gnu/installer.scm (apply-locale): Remove 'lambda' around 'stop-service' and 'start-service' calls. --- gnu/installer.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/installer.scm b/gnu/installer.scm index d2b7fc327d..1051ee1e5f 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -118,9 +118,8 @@ version of this file." ;; printed on the console. (parameterize ((shepherd-message-port (%make-void-port "w"))) - (lambda () - (stop-service 'term-tty2) - (start-service 'term-tty2 (list locale))))))) + (stop-service 'term-tty2) + (start-service 'term-tty2 (list locale)))))) (define* (compute-locale-step #:key locales-name -- cgit v1.2.3 From 0ad60b2a89d6d387236466e0bcdd61ac489fca37 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Tue, 14 Apr 2020 14:49:25 +0200 Subject: installer: Only load uvesafb kernel module when needed. This is a follow-up to commit 557e6820a77b24f8f3f03f28ee473137b1caeb64. * gnu/system/install.scm (uvesafb-shepherd-service): Check that /dev/fb0 is not already present. --- gnu/system/install.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu') diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 203a085bcd..0965c4d237 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -304,6 +304,7 @@ the user's target storage device rather than on the RAM disk." (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") -- cgit v1.2.3 From 8aa752ba222c3d7ec094bb7947359f75f2a6bb2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 14 Apr 2020 23:58:55 +0200 Subject: services: shepherd: Increase the PID file timeout to 30s. When running the installation image off a DVD, early I/O operations are extremely slow, to the point that something like dbus-daemon would need ~20s to start. This change works around the issue. Fixes . Reported by Florian Pelz . * gnu/services/shepherd.scm (shepherd-configuration-file): Set %pid-file-timeout to 30. --- gnu/services/shepherd.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu') diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index bad089844d..9906ae43c4 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -291,6 +291,13 @@ and return the resulting '.go' file." (default-environment-variables '("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 + ;; . + ;; 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 ;; than a kernel panic. (call-with-error-handling -- cgit v1.2.3 From 33ff35d57095bb1283e9fb40edc24556f9a43682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 15 Apr 2020 09:58:26 +0200 Subject: gnu: guix: Update to 1.1.0. --- gnu/packages/package-management.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8e8ce3ab2f..6834012c55 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -109,9 +109,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.1.0rc2") - (commit "9d0d27fd8841a923bb6109d3758d925fbd737b65") - (revision 1)) + (let ((version "1.1.0") + (commit "d62c9b2671be55ae0305bebfda17b595f33797f2") + (revision 0)) (package (name "guix") @@ -127,7 +127,7 @@ (commit commit))) (sha256 (base32 - "0m1mgha9ia22961pr29kvwalza734yhnaibah3d0k42mw826v7h1")) + "0v76hb0pidfgvxa22gq6hqf5yc3m527gl7hpzykazgjh881g2vmy")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3