summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* git-download: Fetch only the required commit, if possible.Danny Milosavljevic2018-03-04
| | | | * guix/build/git.scm (git-fetch): Fetch only the required commit, if possible.
* services: messaging: Prosody config supports file-like objects.Clément Lassieur2018-03-03
| | | | | | | | | | | | | | | | | | | | | | | | * doc/guix.texi (Messaging Services): Update accordingly. * gnu/services/configuration.scm (serialize-configuration, serialize-maybe-stem, serialize-package): Return strings or string-valued gexps (these procedures were only used for their side-effects). * gnu/services/messaging.scm (serialize-field, serialize-field-list, enclose-quotes, serialize-raw-content, serialize-ssl-configuration, serialize-virtualhost-configuration-list, serialize-int-component-configuration-list, serialize-ext-component-configuration-list, serialize-virtualhost-configuration, serialize-int-component-configuration, serialize-ext-component-configuration, serialize-prosody-configuration): Return strings or string-valued gexps and stop printing. (prosody-activation): Use SERIALIZE-PROSODY-CONFIGURATION's return value with MIXED-TEXT-FILE instead of using its output with PLAIN-FILE. (serialize-non-negative-integer, serialize-non-negative-integer-list): Convert numbers to strings. (file-object?, serialize-file-object, file-object-list?, serialize-file-object-list): New procedures. (ssl-configuration)[capath, cafile], (prosody-configuration)[plugin-paths, groups-file]: Replace FILE-NAME with FILE-OBJECT. * guix/gexp.scm (file-like?): New exported procedure.
* guix system: Check for the lack of modules in the initrd.Ludovic Courtès2018-03-02
| | | | | | | | | | | | | * guix/scripts/system.scm (check-mapped-devices): Take an OS instead of a list of <mapped-device>. Pass #:needed-for-boot? and #:initrd-modules to CHECK. (check-initrd-modules): New procedure. (perform-action): Move 'check-mapped-devices' call first. Add call to 'check-initrd-modules'. * gnu/system/mapped-devices.scm (check-device-initrd-modules): New procedure. (check-luks-device): Add #:initrd-modules and #:needed-for-boot?. Use them to call 'check-device-initrd-modules'.
* Add (guix glob).Ludovic Courtès2018-03-02
| | | | | | * guix/glob.scm, tests/glob.scm: New files. * Makefile.am (MODULES): Add guix/glob.scm. (SCM_TESTS): Add tests/glob.scm.
* environment: Add --user.Mike Gerwitz2018-03-02
| | | | | | | | | | | | | | | | | | This change allows overriding the home directory of all filesystem mappings to help hide the identity of the calling user in a container. * doc/guix.texi (Invoking guix environment)[--container]: Mention --user. [--user]: Add item. * guix/scripts/environment.scm (show-help): Add --user. (%options): Add --user. (launch-environment/container) Add 'user' parameter. Update doc. Override 'user-mappings' using 'override-user-mappings'. Consider override for chdir. (mock-passwd, user-override-home, overrid-euser-dir): New procedures. (guix-environment): Disallow --user without --container. Provide user to 'launch-environment/container'. * tests/guix-environment.sh: Add user test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* environment: Add --link-profile.Mike Gerwitz2018-03-02
| | | | | | | | | | | | | | | | | | | | | This change is motivated by attempts to run programs (like GNU IceCat) within containers. The 'fontconfig' program, for example, is configured explicitly to check ~/.guix-profile for additional fonts. There were no existing container tests in 'tests/guix-environment.sh', but I added one anyway for this change. * doc/guix.texi (Invoking guix environment): Add '--link-profile'. * guix/scripts/environment.scm (show-help): Add '--link-profile'. (%options): Add 'link-profile' as '#\P', assigned to 'link-profile?'. (link-environment): New procedure. (launch-environment/container): Use it when 'link-profile?'. [link-profile?]: New parameter. (guix-environment): Leave when '--link-prof' but not '--container'. Add '#:link-profile?' argument to 'launch-environment/container' application. * tests/guix-environment-container.sh: New '--link-profile' test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: cpan: Drop "v" prefix from version strings.Ludovic Courtès2018-03-01
| | | | | | | | Fixes <https://bugs.gnu.org/30641>. Reported by Oleg Pykhalov <go.wigust@gmail.com>. * guix/import/cpan.scm (cpan-version): Drop the "v" prefix when it is there.
* profiles: 'manifest-add' truly deletes duplicate entries.Ludovic Courtès2018-03-01
| | | | | | | | | Fixes <https://bugs.gnu.org/30569>. Reported by Andreas Enge <andreas@enge.fr>. * guix/profiles.scm (manifest-add): Don't append ENTRIES as is. Instead, cons each element of ENTRIES as we fold over it. Remove unneeded ellispes in 'match' patterns.
* build-system/trivial: Add support for #:allowed-references.Ludovic Courtès2018-02-28
| | | | | | | | | | * guix/build-system/trivial.scm (lower): Add #:allowed-references and keep it in the 'arguments' field. (trivial-build): Add #:allowed-references. Add 'canonicalize-reference'. Pass #:allowed-references to 'build-expression->derivation'. (trivial-cross-build): Likewise. * tests/packages.scm ("trivial with #:allowed-references"): New test.
* guix package: '--search' no longer shows superseded packages.Ludovic Courtès2018-02-27
| | | | | | | | | Fixes <https://bugs.gnu.org/30566>. Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * guix/scripts/package.scm (find-packages-by-description): Ignore superseded packages. * tests/guix-package.sh: Add test.
* build: Require Guile >= 2.0.13.Ludovic Courtès2018-02-26
| | | | | | | | | | | | | | | | | | * README, configure.ac, doc/guix.texi (Requirements): Increase minimum Guile version from 2.0.9 to 2.0.13. * config-daemon.ac: Remove use of 'GUIX_CHECK_UNBUFFERED_CBIP'. * m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): Remove. * guix/build/download.scm (current-http-proxy): Remove. * guix/build/syscalls.scm (%libc-errno-pointer, errno): Remove. (syscall->procedure): Use #:return-errno unconditionally. * guix/hash.scm (open-sha256-input-port)[unbuffered]: Remove outdated comment. * guix/http-client.scm (when-guile<=2.0.5-or-otherwise-broken): Remove. <top level>: Remove 'when-guile<=2.0.5-or-otherwise-broken' block. * guix/scripts/substitute.scm (fetch): Remove 'guile-version>?' conditional. * tests/hash.scm (supports-unbuffered-cbip?): Remove. <top level>: Remove 'test-skip' call.
* environment: Add --manifest option.David Thompson2018-02-21
| | | | | | | * guix/scripts/environment.scm (show-help, %options): Add -m/--manifest. (options/resolve-packages): Handle manifests. * tests/guix-envronment.sh: Add a test. * doc/guix.texi (Invoking guix environment): Document it.
* Merge branch 'master' into core-updatesMark H Weaver2018-02-16
|\
| * import: utils: 'alist->package' allows false license.Ludovic Courtès2018-02-16
| | | | | | | | | | | | | | | | | | | | Reported by <pkill9@runbox.com>. Fixes <https://bugs.gnu.org/30470>. * guix/import/utils.scm (alist->package): Check whether 'license' is false and set the 'license' field to #f in this case. * tests/import-utils.scm ("alist->package with false license"): New test.
| * pack: Adjust '--manifest' documentation.Ludovic Courtès2018-02-16
| | | | | | | | | | | | Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/pack.scm (show-help): Adjust --manifest documentation.
| * union: Wrap collisions with newlines.Oleg Pykhalov2018-02-15
| | | | | | | | * guix/build/union.scm (union-build): Wrap collisions with newlines.
| * pack: Add '--manifest'.Konrad Hinsen2018-02-15
| | | | | | | | | | | | | | | | | | * guix/scripts/pack.scm (%options, show-help): Add --manifest. (guix-pack)[manifest-from-args]: New procedure. Use it. * doc/guix.texi (Invoking guix pack): Document --manifest. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* | Merge branch 'master' into core-updatesMark H Weaver2018-02-11
|\|
| * licenses: Add W3C license.Björn Höfling2018-02-10
| | | | | | | | * gnu/license.scm (w3c): New variable.
| * ssh: Work around 'select' bug in Guile.Ludovic Courtès2018-02-09
| | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30365>. * guix/ssh.scm (remote-daemon-channel)[redirect]: Define 'select*' and use it.
* | Merge branch 'master' into core-updatesMark H Weaver2018-02-09
|\|
| * emacs-build-system: Do not patch files containing NULs.Maxim Cournoyer2018-02-05
| | | | | | | | | | | | | | | | | | | | This is a temporary workaround for <https://bugs.gnu.org/30116>, where 'substitute*' throws on files containing NUL characters. * guix/build/emacs-build-system.scm (patch-el-files): Filter out elisp files that contain NUL characters. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| * emacs-build-system: Reinstate the check phase.Maxim Cournoyer2018-02-05
| | | | | | | | | | | | | | | | | | * guix/build/emacs-build-system.scm (%standard-phases): Reinstate the check phase from the gnu-build-system. * guix/build-system/emacs.scm (emacs-build)[tests?]: But do not enable it by default. [parallel-tests?]: Add argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * emacs-build-system: Add set-emacs-load-path phase.Maxim Cournoyer2018-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This generalizes the mechanism by which the Emacs dependencies are made visible, so that any build phase can make use of them. * guix/build/emacs-build-system.scm (%legacy-install-suffix): New variable. (%install-suffix): Redefine in terms of %legacy-install-suffix. (set-emacs-load-path): Add new phase used for dependency resolution. (build): Remove ad-hoc dependency discovery mechanism. (emacs-input->el-directory): Add new procedure. (emacs-inputs-el-directories): Use it. (package-name-version->elpa-name-version): Fix typo. (%standard-phases): Include the new `set-emacs-load-path' phase. Refactor to make the ordering of the phases clearer. * guix/build/emacs-utils.scm (emacs-byte-compile-directory): Remove the optional `dependency-dirs' argument, which is now obsoleted by the `set-emacs-load-path' phase. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* | Merge branch 'master' into core-updatesMarius Bakke2018-02-01
|\|
| * download: Fix return value of the url-fetch procedure.Maxim Cournoyer2018-01-28
| | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30270>. Regression was introduced by commit 347fa4aebf. * guix/build/download.scm (url-fetch): Return `file' instead of #t upon success. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* | Merge branch 'master' into core-updatesMark H Weaver2018-01-26
|\|
| * build-system/dub: Fix typo.Tobias Geerinckx-Rice2018-01-26
| | | | | | | | * guix/build/dub-build-system.scm (grep, grep*): Correct ‘occurence’.
* | Merge branch 'master' into core-updatesMark H Weaver2018-01-23
|\|
| * publish: Restore gzip compression in cache-less mode.Ludovic Courtès2018-01-22
| | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30184>. Regression introduced in 297e04d66010ada31a40f40143d81bf6b62affcc. Reported by Christopher Baines <mail@cbaines.net>. * guix/scripts/publish.scm (nar-response-port): Add 'compression' parameter and honor it. (http-write): Get 'x-nar-compression' from the initial RESPONSE.
| * services: shepherd: Make 'shepherd-configuration-file' non-monadic.Ludovic Courtès2018-01-21
| | | | | | | | | | | | | | | | | | | | | | | | Suggested by atw on #guix. * gnu/services/shepherd.scm (shepherd-service-file): Use 'scheme-file' instead of 'gexp->file'. (shepherd-configuration-file): Likewise, and adjust to non-monadic style. (shepherd-boot-gexp): Adjust accordingly. * guix/scripts/system.scm (upgrade-shepherd-services): Use 'lower-object' in addition to 'shepherd-service-file'.
* | Merge branch 'master' into core-updatesMark H Weaver2018-01-19
|\|
| * packages: 'package-mapping' maps replacement.Ludovic Courtès2018-01-20
| | | | | | | | * guix/packages.scm (package-mapping): Apply PROC to 'replacement' as well.
| * gnu: Consistently Write ‘file system(s)’.Tobias Geerinckx-Rice2018-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is the GNU way. * doc/guix.texi (Build Systems, DNS Services): Write ‘file system(s)’. * gnu/build/vm.scm (create-ext-file-system, create-fat-file-system): Likewise. * gnu/packages/backup.scm (dirvish, rsnapshot)[description]: Likewise. * gnu/packages/check.scm (python-testpath)[description]: Likewise. * gnu/packages/disk.scm (pydf)[description]: Likewise. * gnu/packages/file-systems.scm (disorderfs)[synopsis, description]: Likewise. (glusterfs)[description]: Likewise. * gnu/packages/haskell.scm (ghc-directory, ghc-system-fileio-bootstrap) (ghc-system-fileio)[synopsis]: Likewise. (ghc-fsnotify)[description]: Likewise. * gnu/packages/linux.scm (proot)[description]: Likewise. (jmtpfs)[synopsis, description]: Likewise. * gnu/packages/mate.scm (caja, caja-extensions)[description]: Likewise. * gnu/packages/storage.scm (ceph)[description]: Likewise. * gnu/packages/sync.scm (lsyncd)[description]: Likewise. * gnu/packages/syncthing.scm (syncthing)[synopsis]: Likewise. (go-github-com-zillode-notify)[description]: Likewise. * gnu/services/nfs.scm (pipefs-service-type): Likewise. * guix/scripts/system.scm (perform-action): Likewise.
| * ui: Disable '%fresh-auto-compile' only for Guile 2.2.3.Ludovic Courtès2018-01-15
| | | | | | | | | | | | | | Mitigates <https://bugs.gnu.org/29881>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * guix/ui.scm (load*): Unset '%fresh-auto-compile' only on Guile 2.2.3.
| * offload: Look at machine loads for the past minute.Ludovic Courtès2018-01-15
| | | | | | | | | | | | | | | | | | Previously we were looking at the load of the past 5 minutes, which means that, after a build, we could end up waiting for 5 minutes for that metric to be low enough. * guix/scripts/offload.scm (machine-load): Compute RAW based on ONE, not FIVE.
| * ruby-build-system: Fix build error.Danny Milosavljevic2018-01-15
| | | | | | | | | | | | * gnu/build/ruby-build-system.scm: Import (ice-9 rdelim). Follow-up to d9df4bf055f2bef8c2c428db34c5fa056bdeba73.
| * ruby-build-system: Add a new wrap phase.Christopher Baines2018-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | Wrap files in bin/ and sbin/ with the location of the gem itself and the location of any other gems in use (GEM_PATH). This ensures that the bin files will run with the right environment when executed. It does however mean that native-inputs will also get wrapped up in any binaries, which is not good, as it increases the size of the closure, and risks this code being used at runtime. * guix/build/ruby-build-system.scm (wrap): New procedure. (%standard-phases): Add the wrap phase.
| * ruby-build-system: Add wrap-ruby-program.Christopher Baines2018-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A modified copy of wrap-program from (guix build utils). The wrap-program procedure doesn't work well for Ruby scripts, as it breaks using the -S flag with ruby to execute the script, as when -S is passed to ruby, it expects the script on the PATH to use ruby in the shebang, and not bash. Therefore, to wrap the program, but keep the shebang as ruby, wrap it with a ruby script instead. wrap-ruby-program uses .real/foo rather than .foo-real, as this might be neater. This procedure also includes a call to Gem.clear_paths to make it possible to set the GEM_PATH through this method, and for it to take effect. * gnu/build/ruby-build-system.scm (wrap-ruby-program): New procedure.
| * guix: build: ruby-build-system: Install to the vendor directoryChristopher Baines2018-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build/ruby-build-system.scm (install): Install gems to the vendor directory, rather than the GEM_HOME. The vendor directory does not include the version of ruby used to install the gem in the path, which makes it easier to add it to the GEM_PATH for all versions of ruby to use. (gem-home): Remove procedure. * gnu/packages/ruby.scm (ruby, ruby-2.1)[native-search-paths]: Switch to lib/ruby/vendor_ruby. (ruby-1.8)[native-search-paths]: Remove native-search-paths. (gem-directory): Remove procedure. (ruby-ansi, ruby-ae)[arguments]: Remove use of gem-directory. (ruby-metaclass, ruby-instantiator, ruby-introspection, ruby-mocha, ruby-nokogiri, ruby-minitest-tu-shim, ruby-redcloth)[arguments]: Remove use of gem-home. (ruby-git, ruby-httpclient)[arguments]: Remove use of GEM_HOME. * gnu/packages/databases.scm (es-dump-restore)[arguments]: Remove use of GEM_HOME.
| * ssh: Switch back to 'get-bytevector-some'.Ludovic Courtès2018-01-12
| | | | | | | | | | | | | | | | This mostly reverts 17af5d51de7c40756a4a39d336f81681de2ba447. Suggested by Andy Wingo <wingo@igalia.com>. * guix/ssh.scm (remote-daemon-channel)[redirect]: Remove 'read!' FFI hack. Use buffered ports.
| * offload: 'test' reports Guile and module errors more nicely.Ludovic Courtès2018-01-12
| | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/26008>. Reported by Myles English <mylesenglish@gmail.com>. * guix/ssh.scm (retrieve-files*): Move error reporting to... (report-guile-error, report-module-error): ... here. New procedures. * guix/scripts/offload.scm (assert-node-repl): Use 'report-guile-error'. (assert-node-has-guix): Explicitly check for 'use-modules' first. Use 'report-module-error'.
| * offload: 'test' gracefully handles 'node-repl-error'.Ludovic Courtès2018-01-12
| | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/28057>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/scripts/offload.scm (assert-node-has-guix): Catch 'node-repl-error' and call 'leave'.
| * ssh: 'retrieve-files' now only retrieves what's missing.Ludovic Courtès2018-01-12
| | | | | | | | | | | | * guix/ssh.scm (retrieve-files): Remove the subset of FILES that is valid in LOCAL. (store-export-channel): Add comment.
| * offload: Fix regression in file retrieval.Ludovic Courtès2018-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression in 'retrieve-files*' introduced in 896fec476f728183b331cbb6e2afb891207b4205, whereby (guix scripts offload) would not read the initial sexp now sent by the remote host via 'store-export-channel'. This would effectively prevent file retrieval entirely when offloading. * guix/ssh.scm (retrieve-files*): New procedure, like former 'retrieve-files' but with an extra #:import parameter. (retrieve-files): Rewrite in terms of 'retrieve-files*'. (file-retrieval-port): Make private. * guix/scripts/offload.scm (transfer-and-offload): Pass #:import to 'retrieve-files*'. (retrieve-files*): Remove.
* | gnu: commencement: Memoize 'linux-libre-headers-boot0'.Ludovic Courtès2018-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30155>. The effect can be seen in the package graph produced by: guix graph -e '(@@ (gnu packages commencement) static-bash-for-glibc)' This reduces the number of "duplicate" nodes in this graph, i.e., distinct package objects that correspond to the same derivation (objects that are not 'eq?' but semantically equal.) * gnu/packages/commencement.scm (linux-libre-headers-boot0): Make an 'mlambda' instead of a 'lambda'. (hurd-core-headers-boot0): Ditto.
* | Merge branch 'master' into core-updatesLeo Famulari2018-01-11
|\|
| * derivations: Fix typo in docstring.Ludovic Courtès2018-01-11
| | | | | | | | * guix/derivations.scm (derivation-prerequisites): Fix typo in docstring.
| * ssh: Pass an empty "exceptfds" set to 'select'.Ludovic Courtès2018-01-11
| | | | | | | | | | | | | | | | | | | | Previously the redirect code could end up exiting prematurely because of an uninteresting "exceptional condition" on the socket (info "(libc) Waiting for I/O"). * guix/ssh.scm (remote-daemon-channel): Pass the empty list as the third argument to 'select'. It was a mistake to pass a non-empty list there in the first place.
| * store: Fix potential over-reads in 'import-paths'.Ludovic Courtès2018-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously 'process-stderr' would always pass a bytevector of MAX-LEN to then daemon in the %stderr-read case (i.e., 'import-paths'), instead of LEN (where LEN <= MAX-LEN). In practice the extra bytes didn't cause a protocol violation or anything because they happen at the end of the stream, which typically contains the canonical sexp of the signature, and the extra zeros were just ignored. * guix/serialization.scm (write-bytevector): Add optional 'l' parameter and honor it. * guix/store.scm (process-stderr): Pass LEN to 'write-bytevector'.