aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* license: Add freebsd-doc.ng02016-10-09
| | | | | | * guix/licenses.scm (freebsd-doc): New variable. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* build-system: Add asdf-build-system.Andy Patterson2016-10-08
| | | | | | | | | | * guix/build-system/asdf.scm: New file. * guix/build/asdf-build-system.scm: New file. * guix/build/lisp-utils.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'asdf-build-system'. Signed-off-by: 宋文武 <iyzsong@gmail.com>
* utils: Support defaults in substitute-keyword-arguments.Eric Bavier2016-10-07
| | | | | | | * guix/utils.scm (collect-default-args, expand-default-args): New syntax. (substitute-keyword-arguments): Allow default value declarations. * tests/utils.scm (substitute-keyword-arguments): New test.
* utils: Fix default-keyword-arguments.Eric Bavier2016-10-07
| | | | | | * guix/utils.scm (default-keyword-arguments): Properly test for present keywords. * tests/utils.scm (default-keyword-arguments): New test.
* guix system: Return two values when failing to talk to shepherd.Ludovic Courtès2016-10-06
| | | | | | | | | | | | Before that, when 'guix system reconfigure' failed to talk to shepherd and a 'system-error' was raised, we would get a "too few values returned to continuation" error, which would prevent GRUB from being installed. Reported by fps on #guix. * guix/scripts/system.scm (warn-on-system-error): Remove. (with-shepherd-error-handling): Inline former 'warn-on-system-error'. Return two values when 'system-error' is raised.
* lint: 'cve' checker reports the replacement's vulnerabilities.Ludovic Courtès2016-10-03
| | | | | | | | | | | Before, 'guix lint -c cve' would report the vulnerabilities of the original package while pretending they are the vulnerabilities of the replacement. * guix/scripts/lint.scm (check-vulnerabilities): Consider the package replacement before calling 'package-vulnerabilities'. * tests/lint.scm ("cve: vulnerability fixed in replacement version"): New test.
* grafts: Allow the replacement to have a different name.Ludovic Courtès2016-10-03
| | | | | | | | | | | | | | * guix/build/graft.scm (replace-store-references): REPLACEMENT is now the full string, not just the hash. (rewrite-directory)[hash-mapping](valid-suffix?): Remove. (hash+suffix): Rename to... (hash+rest): ... this. Change to return the whole string as the second element of the list. Adjust 'match-lambda' expression accordingly; check whether the string length of the origin and replacement match. * tests/grafts.scm ("graft-derivation, grafted item uses a different name"): New test. * doc/guix.texi (Security Updates): Update sentence on the name/version restriction.
* build: Improve Guile 2.2 compatibility.Taylan Ulrich Bayırlı/Kammer2016-09-29
| | | | | | * build-aux/compile-all.scm (compile-file*): Ensure loading of compilation related modules before going parallel. * guix/build/pull.scm (build-guix): Ditto.
* import: utils: Refactor license->symbol.David Craven2016-09-28
| | | | | * guix/import/utils.scm (license->symbol): Work for all licenses. * tests/import-utils.scm (license->symbol): Add test.
* import: utils: Add spdx-string->license.David Craven2016-09-28
| | | | | * guix/import/utils.scm (spdx-string->license): New variable. * guix/licenses.scm (agpl1, fdl1.2+): New variables.
* import: Move string->license to importers.David Craven2016-09-28
| | | | | * guix/import/gem.scm (string->license): Move from (guix import utils). * guix/import/pypi.scm (string->license): Move from (guix import utils).
* import: Reorder imports in (guix import utils).David Craven2016-09-28
| | | | * guix/import/utils.scm (define-module): Reorder imports alphabetically.
* guix build: Gracefully handle packages without source for '-S'.Ludovic Courtès2016-09-27
| | | | | | | | Fixes <http://bugs.gnu.org/22836>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/scripts/build.scm (options->derivations): Gracefully handle (package-source p) = #f.
* Add missing exports.Ludovic Courtès2016-09-27
| | | | | | | | | Reported by Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> at <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg01686.html>. * gnu/system/file-systems.scm (%tty-gid): Export. * guix/build-system/python.scm (default-python, default-python2): Export.
* profiles: Build GTK+ input module cache.Ricardo Wurmus2016-09-26
| | | | | * guix/profiles.scm (gtk-im-modules): New procedure. (%default-profile-hooks): Add it.
* profiles: manifest-lookup-package: Optionally match version prefix.Ricardo Wurmus2016-09-26
| | | | | * guix/profiles.scm (manifest-lookup-package): Optionally filter store item matches by version prefix.
* system: grub.cfg uses correct file names when store is not in root partition.Carlos Sánchez de La Lama2016-09-24
| | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/24346>. Reported by csanchezdll@gmail.com (Carlos Sánchez de La Lama). * guix/scripts/system.scm (previous-grub-entries): Get the initrd file name from PARAMS. * gnu/system.scm (operating-system-grub.cfg): Use 'operating-system-initrd-file' to retrieve the initrd file name. * gnu/system/grub.scm (strip-mount-point): New procedure. (grub-configuration-file)[entry->gexp]: Call 'strip-mount-point' for LINUX and INITRD. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* ui: Do not shadow '_' where it's used as a literal syntax match.Ludovic Courtès2016-09-20
| | | | | | | | | | | | | | | | | | Fixes compilation with Guile 2.1. Reported by Mu Lei. * guix/ui.scm (report-load-error) (warn-about-load-error, read/eval-package-expression): Use 'rest' instead of '_' as the pattern variable name. * gnu/packages.scm (%find-package): Likewise. * guix/scripts/build.scm (transform-package-inputs): Likewise. * guix/scripts/hash.scm (guix-hash): Likewise. * guix/scripts/import/gnu.scm (%options, guix-import-gnu): Likewise. * guix/scripts/import/nix.scm (guix-import-nix): Likewise. * guix/scripts/offload.scm (build-machines): Likewise. * guix/scripts/refresh.scm (%options): Likewise. * guix/scripts/substitute.scm (narinfo-signature->canonical-sexp): Likewise.
* gexp: Store compilers in a hash table for O(1) lookup.Ludovic Courtès2016-09-10
| | | | | | | | | | | | | * guix/gexp.scm (<gexp-compiler>)[predicate]: Remove. [type]: New field. (%gexp-compilers): Turn into a hash table. (register-compiler!, lookup-compiler, lookup-expander): Adjust accordingly. (define-gexp-compiler): Replace 'predicate' by 'record-type'. (derivation-compiler, local-file-compiler, plain-file-compiler) (computed-file-compiler, program-file-compiler, scheme-file-compiler) (file-append-compiler): Adjust accordingly. * guix/packages.scm (package-compiler, origin-compiler): Likewise.
* gexp: Add 'file-append'.Ludovic Courtès2016-09-09
| | | | | | | | | | * guix/gexp.scm (<file-append>): New record type. (file-append): New procedure. (file-append-compiler): New gexp compiler. * tests/gexp.scm ("file-append", "file-append, output") ("file-append, nested", "gexp->file + file-append"): New tests. * doc/guix.texi (G-Expressions): Use it in 'nscd' and 'list-files' examples. Document 'file-append'.
* gexp: Compilers can now provide an "expander".Ludovic Courtès2016-09-09
| | | | | | | | | * guix/gexp.scm (<gexp-compiler>)[expand]: New field. (default-expander, lookup-expander): New procedures. (define-gexp-compiler): Add second pattern to allow for the definition of both a compiler and an expander. (gexp->sexp)[reference->sexp]: Call 'lookup-expander' and use its result.
* gexp: Remove outdated comment.Ludovic Courtès2016-09-09
| | | | * guix/gexp.scm (lower-references): Remove outdated "XXX" comment.
* guix hash: Add --exclude-vcs option.Jan Nieuwenhuizen2016-09-07
| | | | | | | | | | * guix/scripts/hash.scm (show-help): Add help text for --exclude-vcs option. (%options): Add --exclude-vcs option. (guix-hash): Handle exclude-vcs option. * doc/guix.texi ("Invoking guix hash"): Update doc. * tests/guix-hash.sh: Add test. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* packages: Add 'package-superseded' and associated support.Ludovic Courtès2016-09-06
| | | | | | | | | | | | | | This provides a way to mark a package as superseded by another one. Upgrades replace superseded packages with their replacement. * guix/packages.scm (package-superseded, deprecated-package): New procedures. * gnu/packages.scm (%find-package): Check for 'package-superseded'. * guix/scripts/package.scm (transaction-upgrade-entry)[supersede]: New procedure. Call it when 'package-superseded' is true. * tests/guix-build.sh: Add test for a superseded package. * tests/packages.scm ("package-superseded") ("transaction-upgrade-entry, superseded package"): New tests.
* profiles: Export <manifest-pattern> accessors.Ludovic Courtès2016-09-06
| | | | | * guix/profiles.scm (manifest-pattern-name, manifest-pattern-version) (manifest-pattern-output): Export.
* guix package: Build up the transaction incrementally.Ludovic Courtès2016-09-06
| | | | | | | | | | | | | | * guix/scripts/package.scm (upgraded-manifest-entry): Rename to... (transaction-upgrade-entry): ... this. Add 'transaction' parameter and return a transaction. (options->installable): Likewise. [to-upgrade]: Rename to... [upgraded]: ... this, and change to be a transaction. Return a transaction. (options->removable): Likewise. (process-actions): Adjust accordingly. * tests/packages.scm ("transaction-upgrade-entry, zero upgrades") ("transaction-upgrade-entry, one upgrade"): New tests.
* profiles: Add manifest-transaction helper procedures.Ludovic Courtès2016-09-06
| | | | | | | * guix/profiles.scm (manifest-transaction-install-entry) (manifest-transaction-remove-pattern) (manifest-transaction-null?): New procedures. * tests/profiles.scm ("manifest-transaction-null?"): New test.
* guix package: Clarify upgrade code.Ludovic Courtès2016-09-06
| | | | | | | * guix/scripts/package.scm (upgradeable?): Rename to... (upgraded-manifest-entry): ... this. Change to take a <manifest-entry> and to return a <manifest-entry>. (options->installable)[to-upgrade]: Adjust accordingly.
* gnupg: Honor $GUIX_GPG_COMMAND and default to 'gpg'.Ludovic Courtès2016-09-06
| | | | * guix/gnupg.scm (%gpg-command): Change to "gpg" or $GUIX_GPG_COMMAND.
* syscalls: Use #:return-errno? when it is available.Ludovic Courtès2016-09-06
| | | | | | | | | | | | * guix/build/syscalls.scm (errno): Do not export. (syscall->procedure): Change to return a procedure that returns both the value and errno. Use #:return-errno? where available. (mount, umount, swapon, swapoff, mkdtemp!, fdatasync, statfs) (clone, setns, pivot-root, fcntl-flock, network-interface-names) (network-interface-flags, set-network-interface-flags) (set-network-interface-address, network-interface-address): (network-interfaces, tcgetattr, tcsetattr, terminal-window-size): Adjust accordingly using 'let-values'.
* Add (guix modules).Ludovic Courtès2016-09-05
| | | | | | | * guix/modules.scm, tests/modules.scm: New files. * Makefile.am (MODULES, SCM_TESTS): Add them. * doc/guix.texi (G-Expressions): Add an example of 'source-module-closure'.
* file-systems: Always use (guix build syscalls).Ludovic Courtès2016-09-05
| | | | | | | | | | * gnu/build/file-systems.scm: Use (guix build syscalls) unconditionally. Override the 'mount' and 'umount' bindings when (guile) provides them. (MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_REMOUNT) (MS_BIND, MS_MOVE): Remove. * guix/build/syscalls.scm (%libc-errno-pointer): Add 'false-if-exception' around 'dynamic-func'.
* ui: Initialize %FILE-PORT-NAME-CANONICALIZATION to #f.Ludovic Courtès2016-09-05
| | | | | | | | | | This avoids loads of needless 'stat' calls due to the default 'relative setting and the 'canonicalize-path' calls it leads to. This was especially visible when 'guix substitute' access files in /var/guix/substitute/cache. * guix/ui.scm (run-guix-command): Set %FILE-PORT-NAME-CANONICALIZATION to #f.
* guix: ant-build-system: Fix pattern for collecting jar files.Hartmut Goebel2016-09-03
| | | | | | | | The former pattern included the "jar" binary. * guix/build/ant-build-system.scm (generate-classpath): Change pattern. Suggested by: Ricardo Wurmus <rekado@elephly.net>
* guix build: Rewrite '--with-input' in terms of 'package-input-rewriting'.Ludovic Courtès2016-09-01
| | | | | * guix/scripts/build.scm (transform-package-inputs): Rewrite in terms of 'package-input-rewriting'.
* packages: Add 'package-input-rewriting'.Ludovic Courtès2016-09-01
| | | | | | | * guix/packages.scm (package-input-rewriting): New procedure. * tests/packages.scm ("package-input-rewriting"): New test. * doc/guix.texi (Defining Packages): Document it. (Package Transformation Options): Add cross-reference.
* services: shepherd: Add 'shepherd-service-upgrade', from 'guix system'.Ludovic Courtès2016-08-31
| | | | | | | | | | * guix/scripts/system.scm (service-upgrade): Move to... * gnu/services/shepherd.scm (shepherd-service-upgrade): ... here. * tests/system.scm ("service-upgrade: nothing to do", "service-upgrade: one unchanged, one upgraded, one new", "service-upgrade: service depended on is not unloaded", "service-upgrade: obsolete services that depend on each other"): Move to... * tests/services.scm: ... here. Adjust to 'service-upgrade' rename.
* guix system: Do not unload services depended on.Ludovic Courtès2016-08-31
| | | | | | | | | | | | Reported by Mark H Weaver <mhw@netris.org> at <https://lists.gnu.org/archive/html/guix-devel/2016-08/msg01470.html>. * guix/scripts/system.scm (service-upgrade)[live-service-required?]: New procedure. [obsolete?]: Use it. * tests/system.scm ("service-upgrade: service depended on is not unloaded", "service-upgrade: obsolete services that depend on each other"): New tests.
* guix system: Use 'shepherd-service-lookup-procedure' in 'service-upgrade'.Ludovic Courtès2016-08-31
| | | | | | | | | | | | * guix/scripts/system.scm (service-upgrade)[essential?]: SERVICE is now a <live-service>. [lookup-target, lookup-live, running?, stopped, obsolete?]: New procedures. [to-load, to-unload]: Use them. TO-UNLOAD is now a list of <live-service>. (call-with-service-upgrade-info): Extract symbols from TO-UNLOAD. * tests/system.scm ("service-upgrade: one unchanged, one upgraded, one new"): Adjust accordingly.
* guix system: Extract and test the service upgrade procedure.Ludovic Courtès2016-08-31
| | | | | | | | | * guix/scripts/system.scm (service-upgrade): New procedure, with code from... (call-with-service-upgrade-info): ... here. Use it. * tests/system.scm (live-service, service-upgrade): New variables. ("service-upgrade: nothing to do", "service-upgrade: one unchanged, one upgraded, one new"): New tests.
* services: herd: Provide <live-service> objects.Ludovic Courtès2016-08-31
| | | | | | | | | | * gnu/services/herd.scm (<live-service>): New record type. (current-services): Change to return a single value: #f or a list of <live-service>. * guix/scripts/system.scm (call-with-service-upgrade-info): Adjust accordingly. * gnu/tests/base.scm (run-basic-test)["shepherd services"]: Adjust accordingly.
* build: Add wrap-qt-program.David Craven2016-08-30
| | | | | * guix/build/qt-utils.scm (wrap-qt-program): New file. * Makefile.am (MODULES): Add it.
* import: hackage: Default to https urls.ng02016-08-30
| | | | | * guix/import/hackage.scm (hackage-source-url, hackage-cabal-url): Use https for hackage.haskell.org.
* import: cpan: Use tls to query api.metacpan.org.ng02016-08-30
| | | | | | | * guix/import/cpan.scm (module->dist-name, cpan-fetch-module): Use tls for api.metacpan.org. Signed-off-by: Eric Bavier <bavier@member.fsf.org>
* guix: ruby-build-system: Add replace-git-ls-files.Ben Woodcroft2016-08-30
| | | | | * guix/build/ruby-build-system.scm (replace-git-ls-files): New variable. (%standard-phases): Add it.
* guix: ruby-build-system: Build compiled gems reproducibly.Ben Woodcroft2016-08-30
| | | | | | * guix/build/ruby-build-system.scm (log-file-deletion): New procedure. (install): Remove files containing non-reproducible elements. Print when each file is deleted.
* guix: lint: Check descriptions for trademark signs.Eric Bavier2016-08-28
| | | | | | | * guix/scripts/lint.scm (check-description-style): Emit a warning if trademark signs found in description. * tests/lint.scm (description: may not contain trademark signs): Add test.
* guix scripts: Disable grafting on dry runs.Roel Janssen2016-08-28
| | | | | | * guix/scripts/archive.scm, guix/scripts/build.scm, guix/scripts/environment.scm, guix/scripts/system.scm, guix/scripts/package.scm: Disable grafting when a dry-run parameter is given.
* import: Importers return prefixed licenses.David Craven2016-08-28
| | | | | | | | | * guix/import/utils.scm (define-module): Import licenses with license: prefix. (string->licenses): Use prefixed licenses. (license->symbol): Return symbols with the prefix license:. * guix/tests/pypi.scm (pypi->guix-package): Update test cases. * guix/tests/gem.scm (gem->guix-package): Update test case.
* base64: Restore original license header.Christopher Allan Webber2016-08-27
| | | | | | | | When incorporating a copyleft licensed program with a lax licensed program, it is correct to preserve the original license notice. See also: https://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html * guix/base64.scm: Restored original license header.