summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2020-09-03android-repo-download: Use parallel-job-count instead of hard-coding jobDanny Milosavljevic
count. * guix/build/android-repo.scm (android-repo-fetch): Use parallel-job-count instead of hard-coding job count.
2020-09-03android-repo-download: Clean up typos; remove unused imports.Danny Milosavljevic
Follow-up to 3feb846420f24ef1c8b3fe310d293c7a2c91e1d4. * guix/android-repo-download.scm (android-repo-fetch): Fix docstring.
2020-09-02ssh: Fix progress bar crash when there are zero items to send.Ludovic Courtès
* guix/ssh.scm (notify-transfer-progress): Do nothing when TOTAL is zero.
2020-09-02ssh: Fix regression in 'send-files'.Ludovic Courtès
Regression introduced in b03267df6d5ec44e9617b6aab0df14a2e79f822e. The (take files 20) is a leftover from testing session. * guix/ssh.scm (send-files): Fix value for 'missing'.
2020-09-02ui: Attempt to fall back to "en_US.utf8" rather than "C".Ludovic Courtès
* guix/ui.scm (install-locale): Add call to 'setlocale' in 'catch' handler.
2020-09-02store: 'set-build-options' sends LC_MESSAGES, not LC_ALL.Ludovic Courtès
* guix/store.scm (set-build-options): Change #:locale default value to (setlocale LC_MESSAGES).
2020-09-02substitute: Set LC_MESSAGES to the client's locale, not LC_ALL.Ludovic Courtès
Fixes <https://bugs.gnu.org/43039>. Reported by Adam Griffiths <adam.lw.griffiths@gmail.com>. Previously, a client could lead 'guix substitute' to run in a non-UTF-8 locale, such as the "C" locale. Consequently, 'guix substitute' would now fail to decode UTF-8 file names such as those that appear in the 'nss-certs' package. * guix/scripts/substitute.scm (guix-substitute): Set LC_MESSAGES, not LC_ALL.
2020-09-02Add (guix android-repo-download).Danny Milosavljevic
* guix/build/android-repo.scm: New file. * guix/android-repo-download.scm: New file. * Makefile.am (MODULES): Add them.
2020-09-01import: launchpad: Recognize more URLs.Arun Isaac
* guix/import/launchpad.scm (updated-launchpad-url): Recognize more URLs.
2020-09-01import: launchpad: Recognize the .orig.tar.gz extension.Arun Isaac
* guix/import/launchpad.scm (find-extension): Recognize the .orig.tar.gz extension.
2020-09-01import: launchpad: Handle list of source URLs correctly.Arun Isaac
* guix/import/launchpad.scm (updated-launchpad-url): Return updated URL when package has a list of URLs, not the old URL.
2020-09-01gexp: computed-file: Prevent mistakenly overriding default option values.Maxim Cournoyer
In order to do so, default to an empty options list, and expose options whose default values are sensitive directly as keyword arguments. * guix/gexp.scm (computed-file): Extract the LOCAL-BUILD? parameter from the OPTIONS parameter to make it a stand-alone keyword argument. Introduce an OPTIONS* binding which is obtained by combining the LOCAL-BUILD? keyword and its value with OPTIONS. * doc/guix.texi (G-Expressions): Adjust doc. Suggested-by: Ludovic Courtès <ludo@gnu.org>
2020-08-31guix: system: Add `--label' option.Julien Lepiller
* guix/scripts/system.scm (%options): Add `--label'. (system-derivation-for-action): Take a #:label key to set volume ID. (perform-action): Take a #:label key. (%default-options): Add default label value. (process-action): Pass label value from command-line to perform-action. * gnu/system/image.scm (image-with-label): New procedure.
2020-08-31guix system: Clarify what happens where service upgrade fails.Ludovic Courtès
* guix/scripts/system.scm (report-shepherd-error): Use 'warning' instead of 'report-error'. Add extra 'warning' and 'display-hint' calls.
2020-08-31guix system: reconfigure: Tell users about 'herd status'.Ludovic Courtès
* guix/scripts/system.scm (perform-action): Mention 'herd status' when 'upgrade-shepherd-services' completes.
2020-08-31packages: <content-hash> printer gracefully handle #f values.Ludovic Courtès
Suggested by Robin Green <greenrd@greenrd.org>. * guix/packages.scm (print-content-hash): Gracefully deal with cases with 'content-hash-value' returns #f, as is the case for 'linux-libre'.
2020-08-31ssh: 'send-files' displays a progress bar.Ludovic Courtès
* guix/store.scm (export-paths): Add #:start, #:progress, and #:finish parameters and honor them. * guix/ssh.scm (prepare-to-send, notify-transfer-progress) (notify-transfer-completion): New procedures. (send-files): Pass #:start, #:progress, and #:finish to 'export-paths'.
2020-08-30environment: Set USER and LOGNAME in containerLars-Dominik Braun
* guix/scripts/environment.scm (launch-environment/container): Set username environment variables. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-08-29copy, offload: Explicitly close SSH channels and sessions.Ludovic Courtès
Fixes <https://bugs.gnu.org/42740>. * guix/scripts/copy.scm (send-to-remote-host): Keep the result of 'connect-to-remote-daemon' in scope, and explicitly close it after the call to 'send-files'. (retrieve-from-remote-host): Explicitly close REMOTE and disconnect SESSION. * guix/scripts/offload.scm (transfer-and-offload): Explicitly close STORE and disconnect SESSION upon completion.
2020-08-28derivations: Avoid uses of 'write' in 'write-derivation'.Ludovic Courtès
This leads a 4% improvement on the wall-clock time of: guix build -e '(@@ (gnu packages libreoffice) libreoffice)' --no-grafts -d * guix/derivations.scm (escaped-string): New procedure. (write-derivation)[write-escaped-string]: New procedure. [write-string-list, write-output, write-env-var]: Use it.
2020-08-28derivations: Avoid uses of 'display' in 'write-derivation'.Ludovic Courtès
This yields a 4% improvement on the wall-clock time of: guix build -e '(@@ (gnu packages libreoffice) libreoffice)' --no-grafts -d * guix/derivations.scm (write-sequence, write-list, write-tuple): Use 'put-char' instead of 'display'. (write-derivation): Use 'put-string' and 'put-char', and remove unused 'format' binding.
2020-08-28store: 'with-store' returns as many values as its body.Ludovic Courtès
Fixes <https://bugs.gnu.org/42912>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/store.scm (call-with-store)[thunk]: Wrap call to PROC in 'call-with-values'. * tests/store.scm ("with-store, multiple values"): New test.
2020-08-27pull: Avoid "Migrating profile" message on the first run.Ludovic Courtès
* guix/scripts/pull.scm (ensure-default-profile): Do not call 'migrate-generations' when %USER-PROFILE-DIRECTORY (~/.config/guix/current) does not exist. This avoids a confusing "Migrating profile" message when the user runs 'guix pull' for the first time.
2020-08-26lint: Use 'with-error-handling'.Ludovic Courtès
This improves the error message when unable to access ~/.cache as reported by Jonathan Brielmaier <jonathan.brielmaier@web.de> in <https://bugs.gnu.org/42859>. * guix/scripts/lint.scm (guix-lint): Wrap body in 'with-error-handling'.
2020-08-25offload: Modify the build-machine record to accept multiple systems.Maxim Cournoyer
* guix/scripts/offload.scm (<build-machine>)[systems]: New field. [system]: Accessor changed to %build-machine-system. Default to #f. * guix/scripts/offload.scm (build-machine-system): Wrap %build-machine-system with a deprecation warning. (build-machine-systems): Access the new systems field or fallback to use build-machine-system, for backward compatibility. (machine-matches?): Adjust. * tests/offload.scm: Add tests... * Makefile.am (SCM_TESTS): ...and register them. * doc/guix.texi (Daemon Offload Setup): Update doc.
2020-08-25linux-libre: Support module compression.Mathieu Othacehe
This commit adds support for GZIP compression for linux-libre kernel modules. The initrd modules are kept uncompressed as the initrd is already compressed as a whole. The linux-libre kernel also supports XZ compression, but as Guix does not have any available bindings for now, and the compression time is far more significant, GZIP seems to be a better option. * gnu/build/linux-modules.scm (modinfo-section-contents): Use 'call-with-gzip-input-port' to read from a module file using '.gz' extension, (strip-extension): new procedure, (dot-ko): adapt to support compression, (ensure-dot-ko): ditto, (file-name->module-name): ditto, (find-module-file): ditto, (load-linux-module*): ditto, (module-name->file-name/guess): ditto, (module-name-lookup): ditto, (write-module-name-database): ditto, (write-module-alias-database): ditto, (write-module-device-database): ditto. * gnu/installer.scm (installer-program): Add "guile-zlib" to the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Add "guile-zlib" to the extensions and make sure that the initrd only contains uncompressed module files. * gnu/system/shadow.scm (account-shepherd-service): Add "guile-zlib" to the extensions. * guix/profiles.scm (linux-module-database): Ditto.
2020-08-24offload: Update help string.Maxim Cournoyer
* guix/scripts/offload.scm (guix-offload): Update help string.
2020-08-24guix upgrade: Allow using --do-not-upgrade.Jakub Kądziołka
* guix/scripts/upgrade.scm (%options): Add "do-not-upgrade" to list of options inherited from guix package.
2020-08-24Use "guile-zlib" and "guile-lzlib" instead of (guix config).Mathieu Othacehe
* Makefile.am (MODULES): Remove guix/zlib.scm and guix/lzlib.scm, (SCM_TESTS): remove tests/zlib.scm, tests/lzlib.scm. * build-aux/build-self.scm (make-config.scm): Remove unused %libz variable. * configure.ac: Remove LIBZ and LIBLZ variables and check instead for Guile-zlib and Guile-lzlib. * doc/guix.texi ("Requirements"): Remove zlib requirement and add Guile-zlib and Guile-lzlib instead. * gnu/packages/package-management.scm (guix)[native-inputs]: Add "guile-zlib" and "guile-lzlib", [inputs]: remove "zlib" and "lzlib", [propagated-inputs]: ditto, [arguments]: add "guile-zlib" and "guile-lzlib" to Guile load path. * guix/config.scm.in (%libz, %liblz): Remove them. * guix/lzlib.scm: Remove it. * guix/man-db.scm: Use (zlib) instead of (guix zlib). * guix/profiles.scm (manual-database): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. * guix/scripts/publish.scm: Use (zlib) instead of (guix zlib) and (lzlib) instead of (guix lzlib), (string->compression-type, effective-compression): do not check for zlib and lzlib availability. * guix/scripts/substitute.scm (%compression-methods): Do not check for lzlib availability. * guix/self.scm (specification->package): Add "guile-zlib" and "guile-lzlib" and remove "zlib" and "lzlib", (compiled-guix): remove "zlib" and "lzlib" arguments and add guile-zlib and guile-lzlib to the dependencies, also do not pass "zlib" and "lzlib" to "make-config.scm" procedure, (make-config.scm): remove "zlib" and "lzlib" arguments as well as %libz and %liblz variables. * guix/utils.scm (lzip-port): Use (lzlib) instead of (guix lzlib) and do not check for lzlib availability. * guix/zlib.scm: Remove it. * m4/guix.m4 (GUIX_LIBZ_LIBDIR, GUIX_LIBLZ_FILE_NAME): Remove them. * tests/lzlib.scm: Use (zlib) instead of (guix zlib) and (lzlib) instead of (guix lzlib), and do not check for zlib and lzlib availability. * tests/publish.scm: Ditto. * tests/substitute.scm: Do not check for lzlib availability. * tests/utils.scm: Ditto. * tests/zlib.scm: Remove it.
2020-08-24Use guile-zlib extension in build-side code.Mathieu Othacehe
* Makefile.am (MODULES): Move guix/build/download-nar.scm to ... (MODULES_NOT_COMPILED): ... here. * guix/build/download-nar.scm: Use (zlib) instead of (guix zlib). * guix/cvs-download.scm (cvs-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. * guix/git-download.scm (git-fetch): Ditto. * guix/hg-download.scm (hg-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list.
2020-08-23lint: formatting: Gracefully handle relative file names.Ludovic Courtès
Fixes <https://bugs.gnu.org/42543>. Reported by Jack Hill <jackhill@jackhill.us>. * guix/lint.scm (check-formatting): Always return a list (previously we would return #f when 'search-path' returns #f). Check whether LOCATION's file is a relative file name. Return a warning if not. * tests/guix-lint.sh: Add test.
2020-08-23lint: Avoid calls to 'package-field-location' with #f as the field.Ludovic Courtès
* guix/lint.scm (%make-warning): Call 'package-field-location' only when FIELD is true.
2020-08-17utils: Add version-major+minor+point.Efraim Flashner
* guix/utils.scm (version-major+minor+point): New procedure.
2020-08-13build-system/haskell: Do not pass "--bindir" during configure.Ricardo Wurmus
The "--bindir" option is not as useful as it seems as the configured location is embedded in the outputs. Instead of using "--bindir" it seems better to build a statically linked binary and move the binary to its own output to avoid references between the "out" and "bin" outputs. * guix/build/haskell-build-system.scm (configure): Do not pass "--bindir".
2020-08-13build-system/haskell: Add 'extra-directories' keyword.Timothy Sample
See <https://bugs.gnu.org/39309>. * guix/build-system/haskell.scm (lower): Include the transitive propagated inputs of 'extra-directories' inputs. (haskell-build): Add the 'extra-directories' keyword and pass it through to the builder. * guix/build/haskell-build-system.scm (configure): Use it to select which inputs get passed via 'extra-include-dirs' and 'extra-lib-dirs' to Cabal. * gnu/packages/haskell-xyz.scm (ghc-alsa-core, ghc-hmatrix, ghc-hmatrix-gsl, ghc-hslua, ghc-iwlib, ghc-libyaml, ghc-ncurses, ghc-openglraw, ghc-x11, ghc-x11-xft, ghc-zlib): Set 'extra-directories'. * gnu/packages/haskell-crypto.scm (ghc-digest, ghc-hsopenssl): Likewise.
2020-08-12haskell-build-system: register: Remove references to the doc output.Ricardo Wurmus
* guix/build/haskell-build-system.scm (register): Strip references to the doc output from the generated package config files; move the haddock files from the "doc" output to the "lib" output.
2020-08-12haskell-build-system: register: Respect lib output.Ricardo Wurmus
* guix/build/haskell-build-system.scm (register): Use lib output if it exists.
2020-08-12build-system/haskell: Add default output "static".Ricardo Wurmus
* guix/build-system/haskell.scm (lower): Add OUTPUTS keyword and add the "static" output in the common case. (haskell-build): Set the default value for the OUTPUTS keyword to include the "static" output. * guix/build/haskell-build-system.scm (install): Move static libraries to the "static" output if it exists.
2020-08-12build-system/haskell: Configure to link with shared libraries.Ricardo Wurmus
* guix/build/haskell-build-system.scm (configure): Add configure flags to build shared libraries by default, to generate position independent code, and to set the RUNPATH.
2020-08-12build-system/haskell: Refactor configure step.Ricardo Wurmus
* guix/build/haskell-build-system.scm (configure): Replace append with quasiquotes and splicing.
2020-08-12build-system/haskell: Support parallel builds.Ricardo Wurmus
* guix/build-system/haskell.scm (haskell-build): Add keyword PARALLEL-BUILD? and pass it on to the builder. * guix/build/haskell-build-system.scm (build): Accept keyword PARALLEL-BUILD? and pass the number of parallel jobs to GHC.
2020-08-09build-system/emacs: Allow usage of #:parallel-tests? keyMorgan Smith
* guix/build-system/emacs.scm (emacs-build): Pass parallel-tests? to builder. Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net>
2020-08-07ssh: Really report Guile setup errors in 'send-files'.Ludovic Courtès
This is a followup to commit 8f53d73493a2949e2db28cd7d689a690b2d9479a, which did not have the desired effect: the 'resolve-module' call was bound to succeed since the inferior runs 'guix repl'. * guix/ssh.scm (store-import-channel)[import]: Add call to 'resolve-module' and write '(module-error) upon error. Write '(importing) when we're ready. (send-files)[inferior-remote-eval*]: Remove. [missing]: Remove call to 'resolve-module'. Call 'handle-import/export-channel-error' when PORT doesn't return '(importing). (handle-import/export-channel-error): New procedure. (retrieve-files*): Use it.
2020-08-05ui: Report key-and-arg exceptions correctly.Ludovic Courtès
Fixes <https://bugs.gnu.org/42601>. Reported by Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>. Regression introduced in efe037fc5cc3134bbc3ef4e36b49a3f788921b68 whereby errors like 'wrong-type-arg' would be improperly reported: guix environment: error: Wrong type argument in position ~A (expecting ~A): ~S See also commit a07d5e558b5403dad0a59776b950b6b02169c249. * guix/ui.scm (call-with-error-handling): Move 'message-condition?' clause after '&exception-with-kind-and-args' clause.
2020-08-03scripts: Pass #:verbosity to 'build-notifier'.Ludovic Courtès
* guix/scripts/archive.scm (guix-archive): Pass #:verbosity to 'build-notifier'. * guix/scripts/build.scm (guix-build): Likewise. * guix/scripts/copy.scm (guix-copy): Likewise. * guix/scripts/deploy.scm (guix-deploy): Likewise. * guix/scripts/environment.scm (guix-environment): Likewise. * guix/scripts/pack.scm (guix-pack): Likewise. * guix/scripts/package.scm (guix-package*): Likewise. * guix/scripts/pull.scm (guix-pull): Likewise. * guix/scripts/system.scm (verbosity-level): New procedure. (process-action): Pass #:verbosity to 'build-notifier'. (guix-system): Use 'verbosity-level' for 'with-status-verbosity'.
2020-08-03ui: Add #:verbosity to 'show-what-to-build'.Ludovic Courtès
* guix/ui.scm (%default-verbosity): New variable. (show-what-to-build): Add #:verbosity and honor it. (build-notifier): Add #:verbosity and pass it to 'show-what-to-build'.
2020-08-01guix: lint: Ignore unsupported source URL’s.Lars-Dominik Braun
* guix/lint.scm (check-source): Add match case for #f. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-07-30deploy: Gracefully handle errors.Ludovic Courtès
* guix/scripts/deploy.scm (guix-deploy): Wrap body in 'with-error-handling'.
2020-07-28pack: "fakechroot" execution engine can load its audit module.Ludovic Courtès
Fixes <https://bugs.gnu.org/42558>. Until now, loading 'pack-audit.so' in a truly non-Guix environment would usually fail because 'pack-audit.so' depends on 'libgcc_s.so' and 'libc.so', none of which could be found. Furthermore, the test was not working as expected: the trick unshare -mrf sh -c 'mount -t tmpfs none /gnu ; ...' would allow the fakechroot engine to make its store available as /gnu/store as a result of another bug. * gnu/packages/aux-files/run-in-namespace.c (relocated_search_path): New function. (exec_with_loader): Pass "--library-path" to the loader. * guix/scripts/pack.scm (wrapped-package)[build](runpath): New procedure. (elf-loader-compile-flags): Pass "-DLOADER_AUDIT_RUNPATH". * tests/guix-pack-relocatable.sh: Remove 'STORE_PARENT'. (run_without_store): New function. Erase $NIX_STORE_DIR instead of $STORE_PARENT. Use 'run_without_store' throughout.
2020-07-28store: deduplication: Handle fs without d_type support.Mathieu Othacehe
scandir* uses readdir, which means that the file type property can be 'unknown if the underlying file-system does not support d_type. Make sure to fallback to lstat in that case. Fixes: https://issues.guix.gnu.org/issue/42579. * guix/store/deduplication.scm (deduplicate): Handle the case where properties is 'unknown because the underlying file-system does not support d_type.