summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2018-03-17Merge branch 'master' into core-updatesMark H Weaver
2018-03-16build-system/gnu: Tolerate errors during the 'strip' phase....This is a followup to commit 9a87649c863e1ff8b073b356875eb05eecedbcf7. * guix/build/gnu-build-system.scm (strip)[strip-dir]: If an invoke error occurs, issue a warning and continue to the next file. This restores the tolerance of stripping errors prior to commit 9a87649. Mark H Weaver
2018-03-16utils: invoke: Raise exceptions using SRFI-34 and SRFI-35....* guix/build/utils.scm (&invoke-error): New condition type. (invoke-error?, invoke-error-program, invoke-error-arguments) (invoke-error-exit-status, invoke-error-term-signal) (invoke-error-stop-signal): New exported procedures. (invoke): Raise exceptions using SRFI-34 and SRFI-35. * guix/ui.scm (call-with-error-handling): Add a guard clause for &invoke-error conditions. Mark H Weaver
2018-03-16gnu-build: Issue a warning unless every phase returns #t....* guix/build/gnu-build-system.scm (gnu-build): Issue a warning if a phase returns a value other than #t. Mark H Weaver
2018-03-16packages: Issue a warning unless the snippet returns #t....* guix/packages.scm (patch-and-repack): Issue a warning if the snippet returns a value other than #t. Mark H Weaver
2018-03-16build-system/gnu: Return a boolean from all phase procedures....* guix/build/gnu-build-system.scm (patch-source-shebangs) (patch-generated-file-shebangs, strip): Return #t. (validate-runpath): Raise an exception if validation fails. Never return #f. Mark H Weaver
2018-03-16packages: Update copyright notice....This is a followup to commit 5003aeaf2560d6ddebcf980a94785fba77e00f34. * guix/packages.scm: Update copyright notice for Mark H Weaver. Mark H Weaver
2018-03-16packages: patch-and-repack: Fix snippet handling....This is a followup to commit 5003aeaf2560d6ddebcf980a94785fba77e00f34. * guix/packages.scm (patch-and-repack): For the snippet, generate a single boolean expression for 'unless', instead of the list of expressions which had previously been spliced into an 'and' form (prior to commit 5003aea). Mark H Weaver
2018-03-16build: emacs-utils: Use invoke instead of system*....* guix/build/emacs-utils.scm (emacs-batch-eval) (emacs-batch-edit-file): Use invoke. Mark H Weaver
2018-03-16hg-download: Use invoke instead of system*....* guix/build/hg.scm (hg-fetch): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-16svn-download: Use invoke instead of system*....* guix/build/svn.scm (svn-fetch): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-16cvs-download: Use invoke instead of system*....* guix/build/cvs.scm (cvs-fetch): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-16download: Use invoke instead of system*....* guix/download.scm (url-fetch/tarbomb, url-fetch/zipbomb): Use invoke. Mark H Weaver
2018-03-16build-system/scons: Use invoke instead of system*....* guix/build/scons-build-system.scm (build, check, install): Use invoke. Mark H Weaver
2018-03-16build-system/texlive: Use invoke instead of system*....* guix/build/texlive-build-system.scm (compile-with-latex): Use invoke. Mark H Weaver
2018-03-16build-system/python: Use invoke instead of system*....* guix/build/python-build-system.scm (call-setuppy): Use invoke. Mark H Weaver
2018-03-16build-system/perl: Use invoke instead of system*....* guix/build/perl-build-system.scm (configure, build, check, install): Use invoke. Mark H Weaver
2018-03-16build-system/cmake: Use invoke instead of system*....* guix/build/cmake-build-system.scm (configure): Use invoke. Mark H Weaver
2018-03-16build-system/glib-or-gtk: Use invoke instead of system*....* guix/build/glib-or-gtk-build-system.scm (compile-glib-schemas): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-16build-system/gnu: Use invoke instead of system*....* guix/build/gnu-build-system.scm (unpack, configure, build, check, install) (strip, compress-documentation): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-16gnu-dist: Use invoke instead of system*....* guix/build/gnu-dist.scm (autoreconf, build): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-16packages: patch-and-repack: Use invoke instead of system*....* guix/packages.scm (patch-and-repack): Use invoke and remove vestigial plumbing. Mark H Weaver
2018-03-15guix system: Add '--skip-checks'....Fixes <https://bugs.gnu.org/30760>. Reported by Tomáš Čech <sleep_walker@gnu.org>. * guix/scripts/system.scm (perform-action): Add #:skip-safety-checks? and honor it. (show-help, %options): Add --skip-checks. (process-action): Pass #:skip-safety-checks? to 'perform-action'. * doc/guix.texi (Invoking guix system): Document --skip-checks. Ludovic Courtès
2018-03-15guix: python-build-system: Make bytecode compilation deterministic....* guix/build/python-build-system.scm (enable-bytecode-determinism): New procedure. (%standard-phases): Add "enable-bytecode-determinism" phase. Ricardo Wurmus
2018-03-14Merge branch 'master' into core-updatesRicardo Wurmus
2018-03-12build-system: minify: Do not import (ice-9 popen) in the build environment....The (ice-9 popen) module should not be added to the imported-modules here, because that depends on the Guile that is used on the host side. * guix/build-system/minify.scm (%minify-build-system-modules): Remove import of (ice-9 popen). Ricardo Wurmus
2018-03-11build-system/gnu: Add 'bootstrap' phase....This factorizes what has become a widespread idiom. * guix/build/gnu-build-system.scm (%bootstrap-scripts): New variable. (bootstrap): New procedure. (%standard-phases): Add it after 'unpack'. * guix/build/ant-build-system.scm (%standard-phases): Delete 'bootstrap. * guix/build/asdf-build-system.scm (%standard-phases/source) (%standard-phases): Likewise. * guix/build/cargo-build-system.scm (%standard-phases): Likewise. * guix/build/cmake-build-system.scm (%standard-phases): Likewise. * guix/build/dub-build-system.scm (%standard-phases): Likewise. * guix/build/emacs-build-system.scm (%standard-phases): Likewise. * guix/build/font-build-system.scm (%standard-phases): Likewise. * guix/build/go-build-system.scm (%standard-phases): Likewise. * guix/build/haskell-build-system.scm (%standard-phases): Likewise. * guix/build/minify-build-system.scm (%standard-phases): Likewise. * guix/build/ocaml-build-system.scm (%standard-phases): Likewise. * guix/build/perl-build-system.scm (%standard-phases): Likewise. * guix/build/python-build-system.scm (%standard-phases): Likewise. * guix/build/r-build-system.scm (%standard-phases): Likewise. * guix/build/ruby-build-system.scm (%standard-phases): Likewise. * guix/build/scons-build-system.scm (%standard-phases): Likewise. * guix/build/texlive-build-system.scm (%standard-phases): Likewise. * guix/build/waf-build-system.scm (%standard-phases): Likewise. * gnu/packages/audio.scm (faad2)[arguments]: Replace 'bootstrap. (soundtouch, cuetools, bluez-alsa): Remove 'arguments'. (cava)[arguments]: Replace 'bootstrap. * gnu/packages/backup.scm (rdup): Remove 'bootstrap. * gnu/packages/bioinformatics.scm (seek)[arguments]: Replace 'bootstrap. * gnu/packages/bioinformatics.scm (htslib-for-sambamba): Remove 'arguments'. * gnu/packages/ci.scm (hydra, cuirass): Remove 'bootstrap'. * gnu/packages/crypto.scm (libb2): Remove #:phases. * gnu/packages/databases.scm (guile-wiredtiger): Likewise. * gnu/packages/debug.scm (stress-make): Remove 'bootstrap'. * gnu/packages/documentation.scm (asciidoc): Likewise. * gnu/packages/fontutils.scm (libuninameslist): Remove 'arguments'. * gnu/packages/ftp.scm (weex): Remove 'arguments'. * gnu/packages/game-development.scm (ois): Remove 'arguments'. * gnu/packages/games.scm (pioneer): Remove 'bootstrap. * gnu/packages/gnome.scm (vte-ng, byzanz): Replace 'bootstrap. (arc-theme): Remove 'arguments'. (faba-icon-theme): Remove 'bootstrap. (arc-icon-theme): Remove 'arguments'. * gnu/packages/gnunet.scm (guile-gnunet): Likewise. * gnu/packages/gtk.scm (guile-rsvg): Likewise. * gnu/packages/guile.scm (mcron2): Remove 'bootstrap. (guile-bash): Remove #:phases. (guile-git): Remove 'bootstrap. (guile-syntax-highlight): Remove 'arguments'. (guile-sjson): Likewise. * gnu/packages/java.scm (classpath-devel): Remove 'bootstrap. * gnu/packages/kodi.scm (libdvdnav/kodi) (libdvdread/kodi, libdvdcss/kodi): Likewise. * gnu/packages/libreoffice.scm (hunspell): Remove 'arguments'. * gnu/packages/libusb.scm (hidapi): Likewise. * gnu/packages/linux.scm (bridge-utils): Rename 'bootstrap' to 'patch-stuff'; move it before 'bootstrap', without autoreconf invocation. (eudev): Rename 'bootstrap' to 'patch-file-names', without 'autogen.sh' invocation; move it before 'bootstrap. (gpm): Replace 'bootstrap'. (f2fs-tools): Remove 'arguments'. (rng-tools): Remove #:phases. * gnu/packages/messaging.scm (hexchat): Rename 'bootstrap' to 'copy-intltool-makefile'; remove "autoreconf" invocation and move before 'bootstrap'. (libmesode): Remove 'arguments'. (libstrophe): Likewise. * gnu/packages/microcom.scm (microcom): Likewise. * gnu/packages/networking.scm (libnet): Remove 'bootstrap. * gnu/packages/onc-rpc.scm (libnsl): Remove 'arguments'. * gnu/packages/package-management.scm (guix): Replace 'bootstrap. * gnu/packages/sawfish.scm (librep): Remove 'arguments'. * gnu/packages/version-control.scm (findnewest): Likewise. * gnu/packages/video.scm (liba52, handbrake, motion): Replace 'bootstrap. * gnu/packages/web.scm (fcgiwrap): Remove #:phases. (tidy): Replace 'bootstrap. (gumbo-parser): Remove #:phases. * gnu/packages/wget.scm (wget2): Replace 'bootstrap. * gnu/packages/wm.scm (i3lock-color): Remove #:phases. * gnu/packages/xdisorg.scm (xclip): Likewise. * gnu/packages/xml.scm (libxls): Replace 'bootstrap'. * gnu/packages/xorg.scm (xf86-video-freedreno) (xf86-video-intel): Remove #:phases. * gnu/packages/zile.scm (zile-on-guile): Replace 'bootstrap. Ludovic Courtès
2018-03-11utils: Add 'false-if-file-not-found'....* guix/build/utils.scm (false-if-file-not-found): New macro. Ludovic Courtès
2018-03-08hash: Add 'sha1'....* guix/hash.scm (GCRY_MD_SHA1): New macro. (bytevector-hash): New procedure. (sha256): Express in terms of 'bytevector-hash'. (sha1): New procedure. * tests/hash.scm ("sha1, empty", "sha1, hello"): New tests. Ludovic Courtès
2018-03-07ui: 'display-hint' preserves Texinfo formatting....The previous method would mess up with @example formatting, for instance. * guix/ui.scm (display-hint): Parameterize '%text-width' instead of using 'fill-paragraph'. Ludovic Courtès
2018-03-07ui: Display fix hints in the case where we have location info....* guix/ui.scm (call-with-error-handling): Display fix-hints in the error + message case. Ludovic Courtès
2018-03-07linux-initrd: Factorize 'check-device-initrd-modules'....* gnu/system/mapped-devices.scm (check-device-initrd-modules): Move to... * gnu/system/linux-initrd.scm (check-device-initrd-modules): ... here. New procedure. * po/guix/POTFILES.in: Add it. * guix/scripts/system.scm (check-initrd-modules)[check-device]: Remove. Use 'check-device-initrd-modules' instead. Ludovic Courtès
2018-03-06ui: 'load*' no longer fails on Guile 2.2.3 upon EACCES or similar....Previously, if ~/.cache was not write-accessible, 'guix' would exit with code 1 without printing any message. That was because the 'make-stack' call would fail since the exception (a 'system-error) came from 'compile-file', which was called at a point where TAG wasn't installed yet. Secondly, to mimick auto-compilation behavior, we just swallow 'system-error raised by 'compile-file'. Reported by Clément Lassieur. * guix/ui.scm (load*): Move 'compile-file' call in the dynamic extent of TAG. Catch 'system-error around it and ignore it. Ludovic Courtès
2018-03-05ui: Better workaround for lack of '%fresh-auto-compile' on 2.2.3....Fixes <https://bugs.gnu.org/29226> for the most part. * guix/ui.scm (load*): Add call to 'compile-file' on 2.2.3. Ludovic Courtès
2018-03-04git-download: Fetch only the required commit, if possible....* guix/build/git.scm (git-fetch): Fetch only the required commit, if possible. Danny Milosavljevic
2018-03-03services: messaging: Prosody config supports file-like objects....* 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. Clément Lassieur
2018-03-02guix system: Check for the lack of modules in the initrd....* 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'. Ludovic Courtès
2018-03-02Add (guix glob)....* guix/glob.scm, tests/glob.scm: New files. * Makefile.am (MODULES): Add guix/glob.scm. (SCM_TESTS): Add tests/glob.scm. Ludovic Courtès
2018-03-02environment: Add --user....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> Mike Gerwitz
2018-03-02environment: Add --link-profile....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> Mike Gerwitz
2018-03-01import: cpan: Drop "v" prefix from version strings....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. Ludovic Courtès
2018-03-01profiles: 'manifest-add' truly deletes duplicate entries....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. Ludovic Courtès
2018-02-28build-system/trivial: Add support for #:allowed-references....* 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. Ludovic Courtès
2018-02-27guix package: '--search' no longer shows superseded packages....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. Ludovic Courtès
2018-02-26build: Require Guile >= 2.0.13....* 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. Ludovic Courtès
2018-02-21environment: Add --manifest option....* 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. David Thompson
2018-02-16Merge branch 'master' into core-updatesMark H Weaver
2018-02-16import: utils: 'alist->package' allows false license....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. Ludovic Courtès
2018-02-16pack: Adjust '--manifest' documentation....Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/pack.scm (show-help): Adjust --manifest documentation. Ludovic Courtès
2018-02-15union: Wrap collisions with newlines....* guix/build/union.scm (union-build): Wrap collisions with newlines. Oleg Pykhalov