summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2014-10-16download: Allow use of substitutes....See <https://bugs.gnu.org/18747> for the original report. * guix/download.scm (url-fetch): Comment out #:local-build? argument. * guix/git-download.scm (git-fetch): Likewise. * guix/svn-download.scm (svn-fetch): Likewise. Ludovic Courtès
2014-10-16guix lint: add the --checkers option....* guix/scripts/lint.scm: add the "--checkers" option. * doc/guix.texi (Invoking guix lint): Document it. * tests/guix-lint.sh: New file * Makefile.am (SCM_TESTS): Add it. Cyril Roelandt
2014-10-13utils: Micro-optimize 'bytevector->base16-string'....This reduces run time of (package-derivation s emacs) by ~1.5%. * guix/utils.scm (bytevector->base16-string): Traverse BV from the end so as to use 'string-concatenate' instead of 'string-concatenate-reverse'. Ludovic Courtès
2014-10-13derivations: Micro-optimize 'imported-modules'....This reduces run time of (package-derivation s emacs) by ~5%. * guix/derivations.scm (search-path*): New procedure. (imported-modules): Use it instead of 'search-path'. Ludovic Courtès
2014-10-13derivations: Memoize 'derivation-path->base16-hash'....This reduces run time of (package-derivation s emacs) by ~10%. * guix/derivations.scm (derivation-path->base16-hash): New procedure. (derivation-hash): Use it. Ludovic Courtès
2014-10-12derivations: Add #:guile parameter to 'graft-derivation'....* guix/derivations.scm (graft-derivation): Add #:guile parameter; pass it to 'build-expression->derivation'. Ludovic Courtès
2014-10-12guix package: Add '--switch-generation' option....* guix/scripts/package.scm (switch-to-generation): New procedure. (switch-to-previous-generation): Use it. (guix-package): Adjust for '--switch-generation' option. * tests/guix-package.sh: Test it. * doc/guix.texi (Invoking guix package): Document it. Alex Kost
2014-10-12profiles: Add 'relative-generation'....* guix/profiles.scm: (relative-generation): New procedure. (previous-generation-number): Use it. Alex Kost
2014-10-12profiles: Add condition types for profiles and generations....Suggested by Ludovic Courtès. * guix/profiles.scm (&profile-error, &profile-not-found-error, &missing-generation-error): New condition types. * guix/ui.scm (call-with-error-handling): Handle new types. * guix/scripts/package.scm (roll-back, guix-package): Raise '&profile-not-found-error' where needed. Alex Kost
2014-10-10scripts: Add 'environment' command....* guix/scripts/environment.scm: New file. * Makefile.am (MODULES): Add it. * doc/guix.texi ("Invoking guix environment"): New node. David Thompson
2014-10-10ui: Move 'show-manifest-transaction' from (guix profiles)....* guix/profiles.scm: Do not use (guix ui) module. (right-arrow, manifest-show-transaction): Move and rename to... * guix/ui.scm (right-arrow, show-manifest-transaction): ... here. * tests/profiles.scm ("manifest-show-transaction"): Move to... * tests/ui.scm ("show-manifest-transaction"): ... here. (guile-1.8.8, guile-2.0.9): New variables. * emacs/guix-main.scm (process-package-actions): Rename 'manifest-show-transaction' to 'show-manifest-transaction'. * guix/scripts/package.scm (guix-package): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Alex Kost
2014-10-09ui: Make sure we use the right domain for &message translation....* guix/ui.scm (call-with-error-handling): Add %GETTEXT-DOMAIN as a second argument to 'gettext'. Ludovic Courtès
2014-10-09Break module cycle involving (guix store) and (guix ui)....Before, there was a cycle along the lines of: (guix store) -> (guix nar) -> (guix ui) -> (guix store) This caused problems, as discussed at: http://lists.gnu.org/archive/html/guix-devel/2014-10/msg00109.html This patch removes cycles in the (guix ...) modules. * guix/nar.scm (&nar-error, &nar-read-error, dump, write-contents, read-contents, %archive-version-1, write-file, restore-file): Move to... * guix/serialization.scm: ... here. * guix/store.scm: Remove dependency on (guix nar). * guix/scripts/hash.scm, guix/scripts/offload.scm, guix/scripts/substitute-binary.scm, tests/nar.scm, tests/store.scm, tests/substitute-binary.scm: Adjust accordingly. Ludovic Courtès
2014-10-09substitute-binary: Ignore $GUIX_BINARY_SUBSTITUTE_URL....* guix/scripts/substitute-binary.scm (%cache-url): Ignore the 'GUIX_BINARY_SUBSTITUTE_URL' environment variable. * test-env.in: Invoke 'guix-daemon' with '--substitute-urls'. * tests/substitute-binary.scm: Set '%cache-url' to the value of 'GUIX_BINARY_SUBSTITUTE_URL'. Ludovic Courtès
2014-10-09daemon: Add '--substitute-urls' option....* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_SUBSTITUTE_URLS): New macro. (GUIX_OPT_NO_BUILD_HOOK, GUIX_OPT_GC_KEEP_OUTPUTS, GUIX_OPT_GC_KEEP_DERIVATIONS): Renumber. (options): Add '--substitute-urls'. (parse_opt): Honor it. (main): Add 'settings.set' call for the default "substitute-urls" value. * guix/scripts/substitute-binary.scm (daemon-options, find-daemon-option): New procedures. (%cache-url): Define based on the "substitute-urls" daemon option. * doc/guix.texi (Invoking guix-daemon): Document '--substitute-urls'. (Substitutes): Mention it. Ludovic Courtès
2014-10-08monads: Add 'mbegin'....* guix/monads.scm (mbegin): New macro. * tests/monads.scm ("mbegin"): New test. * doc/guix.texi (The Store Monad): Document it. Ludovic Courtès
2014-10-08packages: Gracefully print packages whose 'location' is #f....* guix/packages.scm (<package> printer): Check whether LOC is #f. * tests/packages.scm ("printer with location", "printer without location"): New tests. Ludovic Courtès
2014-10-08gnu: Add the 'glib-or-gtk' build system....* guix/build-system/glib-or-gtk.scm, guix/build/glib-or-gtk-build-system.scm: New files. * Makefile.am (MODULES): Add them. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Federico Beffa
2014-10-08derivations: Add 'graft-derivation'....* guix/derivations.scm (graft-derivation): New procedure. * guix/build/graft.scm: New file. * Makefile.am (MODULES): Add it. * tests/derivations.scm ("graft-derivation"): New test. Ludovic Courtès
2014-10-08guix lint: make sure synopses do not start with the package name....* guix/scripts/lint.scm (check-start-with-package-name): New method. * tests/lint.scm ("synopsis: start with package name"): New test. Cyril Roelandt
2014-10-08guix lint: Make sure a synopsis cannot start with a lower-case article....* guix/scripts/lint.scm (check-start-article): use "string-ci=?" instead of "string=?". * tests/lint.scm ("synopsis: starts with 'a'", "synopsis: starts with 'an'"): New tests. Cyril Roelandt
2014-10-08guix lint: check whether descriptions and synopses start with an upper-case l......* guix/scripts/lint.scm (check-description-style, check-synopsis-start-upper-case): New methods. * tests/lint.scm ("description: does not start with an upper-case letter", "synopsis: does not start with an upper-case letter"): New tests. Cyril Roelandt
2014-10-08guix lint: Make sure synopses are not too long....* guix/scripts/lint.scm (check-synopsis-length): New procedure. * tests/lint.scm ("synopsis: too long"): New test. Cyril Roelandt
2014-10-08guix lint: make sure check-patches retrieves patch names....* guix/lint (check-patches): Test the output of origin-patches. Cyril Roelandt
2014-10-06hydra: Honor 'package-supported-systems'....* guix/packages.scm (%supported-systems): New variable. (<package>)[platforms]: Rename to... [supported-systems]: ... this. Change default to %SUPPORTED-SYSTEMS. * build-aux/hydra/gnu-system.scm (job-name, package->job): New procedures, formerly in 'hydra-jobs'. Honor 'package-supported-systems'. (hydra-jobs): Use them. Ludovic Courtès
2014-10-05build-system/trivial: Preserve the cross-compilation target in bags....* guix/build-system/trivial.scm (lower): Initialize the 'target' field. Ludovic Courtès
2014-10-05build-system: Bags record their system and target....* guix/build-system.scm (<bag>)[system, target]: New fields. (make-bag): Add #:system parameter and pass it to LOWER. * gnu/packages/bootstrap.scm (make-raw-bag): Initialize 'system' field. * guix/build-system/cmake.scm (lower): Likewise. * guix/build-system/perl.scm (lower): Likewise. * guix/build-system/python.scm (lower): Likewise. * guix/build-system/ruby.scm (lower): Likewise. * guix/build-system/trivial.scm (lower): Likewise. * guix/build-system/gnu.scm (lower): Initialize 'system' and 'target' fields. * guix/packages.scm (bag->derivation, bag->cross-derivation): New procedures. (package-derivation, package-cross-derivation): Use 'bag->derivation'. * tests/packages.scm ("search paths"): Initialize 'system' and 'target' fields. ("package->bag", "package->bag, cross-compilation", "bag->derivation", "bag->derivation, cross-compilation"): New tests. Ludovic Courtès
2014-10-05build-system: Introduce "bags" as an intermediate representation....* guix/build-system.scm (<build-system>)[build, cross-build]: Remove. [lower]: New field. (<bag>): New record type. (make-bag): New procedure. * guix/packages.scm (bag-transitive-inputs, bag-transitive-build-inputs, bag-transitive-host-inputs, bag-transitive-target-inputs, package->bag): New procedures. (package-derivation): Use it; use the bag, apply its build procedure, etc. (package-cross-derivation): Likewise. * gnu/packages/bootstrap.scm (raw-build, make-raw-bag): New procedure. (%bootstrap-guile): Use them. * guix/build-system/trivial.scm (lower): New procedure. (trivial-build, trivial-cross-build): Remove 'source' parameter. Pass INPUTS as is. (trivial-build-system): Adjust accordingly. * guix/build-system/gnu.scm (%store, inputs-search-paths, standard-search-paths, expand-inputs, standard-inputs): Remove. (gnu-lower): New procedure. (gnu-build): Remove 'source' and #:implicit-inputs? parameters. Remove 'implicit-inputs' and 'implicit-search-paths' variables. Get the source from INPUT-DRVS. (gnu-cross-build): Likewise. (standard-cross-packages): Remove call to 'standard-packages'. (standard-cross-inputs, standard-cross-search-paths): Remove. (gnu-build-system): Remove 'build' and 'cross-build'; add 'lower'. * guix/build-system/cmake.scm (lower): New procedure. (cmake-build): Remove 'source' and #:cmake parameters. Use INPUTS and SEARCH-PATHS as is. Get the source from INPUTS. * guix/build-system/perl.scm: Likewise. * guix/build-system/python.scm: Likewise. * guix/build-system/ruby.scm: Likewise. * gnu/packages/cross-base.scm (cross-gcc): Change "cross-linux-headers" to "linux-headers". (cross-libc)[xlinux-headers]: Pass #:implicit-cross-inputs? #f. Likewise. In 'propagated-inputs', change "cross-linux-headers" to "linux-headers". * guix/git-download.scm (git-fetch): Use 'standard-packages' instead of 'standard-inputs'. * tests/builders.scm ("gnu-build-system"): Remove use of 'build-system-builder'. ("gnu-build"): Remove 'source' and #:implicit-inputs? arguments to 'gnu-build'. * tests/packages.scm ("search paths"): Adjust to new build system API. ("package-cross-derivation, no cross builder"): Likewise. * doc/guix.texi (Build Systems): Add paragraph on bags. Ludovic Courtès
2014-10-05build-system: Remove irrelevant special case....* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Remove comment about case where GUILE is a derivation path. * guix/build-system/cmake.scm (cmake-build): Remove case where GUILE is a derivation path. * guix/build-system/perl.scm (perl-build): Likewise. * guix/build-system/python.scm (python-build): Likewise. * guix/build-system/ruby.scm (ruby-build): Likewise. * guix/build-system/trivial.scm (guile-for-build): Likewise. Ludovic Courtès
2014-10-05utils: Add 'strip-keyword-arguments'....* guix/utils.scm (strip-keyword-arguments): New procedure. * tests/utils.scm ("strip-keyword-arguments"): New test. Ludovic Courtès
2014-10-05guix package: Export generation procedures....* guix/scripts/package.scm: Export 'roll-back', 'delete-generation', 'delete-generations'. (link-to-empty-profile, roll-back): Add 'store' argument. (delete-generations): New procedure. (guix-package): Adjust accordingly. [delete-generation]: Move to the top level. Add 'store' and 'profile' arguments. [display-and-delete]: Move to 'delete-generation'. Alex Kost
2014-10-04build-system/cmake: Add #:build-type parameter, default to "RelWithDebInfo"....* guix/build-system/cmake.scm (cmake-build): Add #:build-type. Pass it in BUILDER. * guix/build/cmake-build-system.scm (configure): Add #:build-type parameter and honor it. * doc/guix.texi (Build Systems): Document #:configure-flags and #:build-type for CMake. Ludovic Courtès
2014-10-03ui: Recognize the same size units as Coreutils....* guix/ui.scm (size->number): Add a bunch of large units. Recognize one-letter unit names. Change "KB" to "kB". * tests/ui.scm ("size->number, 1T"): New test. * doc/guix.texi (Invoking guix gc): Add cross-reference to "Block size" in the Coreutils manual. (Invoking guix system): Likewise. Ludovic Courtès
2014-10-03download: Allow raw file names or file:// URLs....* guix/download.scm (url-fetch): When URL is a string, if it's not a URI or if it's a URI with 'file' or #f scheme, use 'add-to-store'. * tests/builders.scm ("url-fetch, file", "url-fetch, file URI"): New tests. Ludovic Courtès
2014-09-30pull: Add dependency on Guile-JSON....Reported by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>. * guix/scripts/pull.scm (unpack): Add Guile-JSON to %load-path and %load-compiled-path. Ludovic Courtès
2014-09-29import: Add PyPI importer....* guix/snix.scm: Delete. * guix/import/snix.scm: New file. * guix/import/pypi.scm: New file. * guix/import/utils.scm: New file. * guix/scripts/import/nix.scm: New file. * guix/scripts/import/pypi.scm: New file. * tests/pypi.scm: New file. * tests/snix.scm: Import (guix import snix) module. * guix/scripts/import.scm (%default-options, %options): Delete. (%standard-import-options, importers): New variables. (show-help): List importers. (guix-import): Factor out Nix-specific logic. Delegate to correct importer based upon first argument. * configure.ac (HAVE_GUILE_JSON): New conditional. * Makefile.am (MODULES): Add new files and remove 'guix/snix.scm'. (SCM_TESTS): Add 'tests/pypi.scm' if guile-json is installed. David Thompson
2014-09-28build: Add ruby build system....* guix/build-system/ruby.scm: New file. * guix/build/ruby-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document ruby-build-system. David Thompson
2014-09-28gnu: Add ruby....Co-authored-by: David Thompson <davet@gnu.org> * gnu/packages/ruby.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * guix/licenses.scm (ruby): New variable. Pjotr Prins
2014-09-24gnupg: Correctly parse current 'SIG_ID' lines....* guix/gnupg.scm (gnupg-verify)[sigid-rx]: Adjust to handle current signature ID encoding. Ludovic Courtès
2014-09-24packages: Allow use of origins as patches....* guix/packages.scm (patch-and-repack)[patch-inputs]: Use 'add-to-store' only if the PATCH is a file name, and 'package-source-derivation' if PATCH is an origin. Ludovic Courtès
2014-09-24guix build: Add -L/--load-path as a common option....* guix/scripts/build.scm (show-build-options-help): Document -L. (%standard-build-options): Add -L/--load-path. * tests/guix-package.sh: Test it. Ludovic Courtès
2014-09-23Use #:prefix instead of #:renamer with 'symbol-prefix-proc'....* gnu/packages/abiword.scm, gnu/packages/admin.scm, gnu/packages/aidc.scm, gnu/packages/backup.scm, gnu/packages/bittorrent.scm, gnu/packages/boost.scm, gnu/packages/compression.scm, gnu/packages/cryptsetup.scm, gnu/packages/curl.scm, gnu/packages/cyrus-sasl.scm, gnu/packages/dc.scm, gnu/packages/emacs.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/geeqie.scm, gnu/packages/ghostscript.scm, gnu/packages/gimp.scm, gnu/packages/gkrellm.scm, gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnutls.scm, gnu/packages/gnuzilla.scm, gnu/packages/gsasl.scm, gnu/packages/gtk.scm, gnu/packages/gv.scm, gnu/packages/image.scm, gnu/packages/indent.scm, gnu/packages/inkscape.scm, gnu/packages/lesstif.scm, gnu/packages/links.scm, gnu/packages/lisp.scm, gnu/packages/lsh.scm, gnu/packages/lsof.scm, gnu/packages/maths.scm, gnu/packages/mp3.scm, gnu/packages/openssl.scm, gnu/packages/ots.scm, gnu/packages/pciutils.scm, gnu/packages/pcre.scm, gnu/packages/pdf.scm, gnu/packages/pulseaudio.scm, gnu/packages/python.scm, gnu/packages/slim.scm, gnu/packages/ssh.scm, gnu/packages/texlive.scm, gnu/packages/vim.scm, gnu/packages/vpn.scm, gnu/packages/web.scm, gnu/packages/wv.scm, gnu/packages/xiph.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/packages/yasm.scm, gnu/packages/zip.scm, guix/build/cmake-build-system.scm, guix/build/perl-build-system.scm, guix/build/python-build-system.scm, guix/download.scm: Replaces uses of #:renamer and 'symbol-prefix-proc' with #:prefix. Mark H Weaver
2014-09-22Merge branch 'core-updates'Ludovic Courtès
2014-09-22syscalls: Adjust /proc/net/dev parser for old kernels....* guix/build/syscalls.scm (%interface-line): Remove whitespace in rest pattern. (There's no extra whitespace after the colon with Linux 2.6.32.) Ludovic Courtès
2014-09-22download: Use the 'SERVER NAME' TLS extension when possible....Fixes <http://bugs.gnu.org/18526>. Reported by Mark H. Weaver. * guix/build/download.scm (tls-wrap): Add 'server' parameter. Call 'set-session-server-name!' when (gnutls) defines it. (open-connection-for-uri): Adjust 'tls-wrap' call accordingly. Ludovic Courtès
2014-09-22guix package: Use 'profile-generations'....* guix/scripts/package.scm (guix-package)[process-actions]: Use 'profile-generations' instead of the equivalent code. Alex Kost
2014-09-22profiles: Add 'profile-generations'....* guix/profiles.scm (profile-generations): New procedure. Alex Kost
2014-09-20offload: Use a total order when sorting available machines....* guix/scripts/offload.scm (machine-less-loaded?, machine-faster?): Remove. (machine-power-factor): New procedure. (machine-less-loaded-or-faster?): Use it. Ludovic Courtès
2014-09-20offload: Try another machine when the "best" machine is overloaded....* guix/scripts/offload.scm (choose-build-machine): When BEST is overloaded, try the other machines. Ludovic Courtès
2014-09-18syscalls: Add 'swapon' and 'swapoff'....* guix/build/syscalls.scm (swapon, swapoff): New procedures. * tests/syscalls.scm ("swapon, ENOENT/EPERM", "swapoff, EINVAL/EPERM"): New tests. Ludovic Courtès