summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2018-08-27pull: Use (git) and (guix git) unconditionally.Ludovic Courtès
The autoload hack was added a year ago, before 0.14.0, i.e., before any release would depend on Guile-Git. Both 0.14.0 and 0.15.0 required Guile-Git, and 'guix pull' now automatically pulls it in, so this hack is no longer necessary. * guix/scripts/pull.scm: Use (git) and (guix git). Remove top-level call to 'module-autoload!'. (ensure-guile-git!): Remove. (guix-pull): Remove call to 'ensure-guile-git!'.
2018-08-27self: Shrink the module search path of the 'guix' command.Ludovic Courtès
Previously we'd have lots of useless entries on the search paths, such as libtasn1, libidn2, zlib, gmp, etc. because they are propagated by gnutls. * guix/self.scm (guix-command)[source-directories, object-directories]: New variables. Use them in the body of "guix-command". Filter their items with 'file-exists?'.
2018-08-26cve: Update feed URL.Ludovic Courtès
* guix/cve.scm (yearly-feed-uri): Remove "static." from the URL since the web site now redirects to the URL without "static.".
2018-08-24grafts: Add (guix build debug-link) and use it.Ludovic Courtès
Fixes <https://bugs.gnu.org/19973>. Reported by Mark H Weaver <mhw@netris.org>. * guix/build/debug-link.scm: New file. * guix/build/graft.scm (%graft-hooks): New variable. (graft): Add #:hooks and honor it. * guix/grafts.scm (graft-derivation/shallow): Add (guix build debug-link) and (guix elf) to #:modules. * tests/debug-link.scm: New file. * Makefile.am (MODULES): Add guix/build/debug-link.scm. (SCM_TESTS): Add tests/debug-link.scm.
2018-08-24grafts: Add high-level 'graft' procedure on the build side.Ludovic Courtès
* guix/build/graft.scm (graft): New procedure. * guix/grafts.scm (graft-derivation/shallow)[build]: Use it instead of inline code.
2018-08-21inferior: Adjust for Guile 2.0.Ludovic Courtès
Partly fixes <https://bugs.gnu.org/32326>. Reported by Michael Bowcutt <mbowcutt@riseup.net>. * guix/inferior.scm (open-inferior): Wrap 'setvbuf' call in 'cond-expand'.
2018-08-21build-system/asdf: Fix typo in "dependency".Pierre Neidhardt
* guix/build-system/asdf.scm (default-lisp): Fix typo in "dependency".
2018-08-20import: github: Filter out tags that don't look like version numbers.Ludovic Courtès
* guix/import/github.scm (latest-released-version): Filter out RELEASE if it doesn't start with digit.
2018-08-20import: github: Get /tags when /releases returns the empty list.Ludovic Courtès
This allows "guix refresh" to work for many packages where it would previously fail with "no updater for PACKAGE". * guix/import/github.scm (fetch-releases-or-tags): New procedure. (latest-released-version): Use it instead of calling 'json-fetch'. Adjust 'hash-ref' call.
2018-08-20import: github: Request API v3 in the 'Accept' header.Ludovic Courtès
* guix/import/json.scm (json-fetch): Add #:headers argument and honor it. * guix/import/github.scm (latest-released-version): Pass #:headers to 'json-fetch'.
2018-08-16Merge branch 'master' into stagingMarius Bakke
2018-08-11import: hackage: Support recursive importing.Ricardo Wurmus
* guix/import/hackage.scm (hackage-recursive-import): New procedure. (hackage-module->sexp): Return dependencies alongside dependencies. (hackage->guix-package): Memoize results. * guix/scripts/import/hackage.scm (show-help, %options, guix-import-hackage): Support recursive importing. * doc/guix.texi (Invoking guix import): Document option.
2018-08-11Migrate search.cpan.org home pages to metacpan.org.Tobias Geerinckx-Rice
The venerable search.cpan.org has retired[0]. [0]: https://log.perl.org/2018/05/goodbye-search-dot-cpan-dot-org.html * guix/import/cpan.scm (cpan-home): Generate metacpan.org home page URIs. Update all previously generated ones in (gnu packages) to their canonical new homes.
2018-08-10Merge branch 'master' into stagingMarius Bakke
2018-08-07import: cabal, hackage: Avoid error when custom setup section is missing.Ricardo Wurmus
Fixes <https://debbugs.gnu.org/32387>. * guix/import/cabal.scm (eval-cabal): Avoid mis-match when the custom-setup section cannot be created. * guix/import/hackage.scm (cabal-custom-setup-dependencies->names): Do not crash when cabal-package-custom-setup returns #F.
2018-07-30Merge branch 'master' into stagingMarius Bakke
2018-07-29ssh: Display the size of the store items being sent.Ludovic Courtès
* guix/ssh.scm (send-files): Compute the size of MISSING and display it.
2018-07-28Merge branch 'master' into stagingMarius Bakke
2018-07-28build-system/meson: Remove RUNPATH workarounds.Marius Bakke
* guix/build-system/meson.scm (default-patchelf): Remove. (lower)[build-inputs]: Remove PATCHELF. (meson-build): Don't delete 'fix-runpath' phase on armhf. * guix/build/meson-build-system.scm (configure): Add "--c_link_args" and "-cpp_link_args" instead of setting LDFLAGS. (meson-build): Don't apply 'fix-runpath' phase.
2018-07-27import: hackage: Emit native-inputs in the importer.Danny Milosavljevic
* guix/import/cabal.scm (cabal-custom-setup-dependencies): Export. (cabal-package-custom-setup): Export. (<cabal-package>): New field "custom-setup". (make-cabal-package): Modify. (eval-cabal): Modify. * guix/import/hackage.scm (cabal-dependencies->names): Factor out... (cabal-test-dependencies->names): ...this. (cabal-custom-setup-dependencies->names): New procedure. (hackage-module->sexp): Modify.
2018-07-24ruby-build-system: Make phase "replace-git-ls-files" handle more cases.Danny Milosavljevic
* guix/build/ruby-build-system.scm (replace-git-ls-files): Modify.
2018-07-24import: PyPI: Update redirected URL.Marius Bakke
* guix/import/pypi.scm (guix-package->pypi-name, pypi->guix-package): Update docstrings. (pypi-package?): Test for pypi.org, too. (pypi-fetch): s/pypi.python.org/pypi.org/ * tests/pypi.scm ("guix-package->pypi-name, new URL style", "pypi->guix-package", "pypi->guix-package, wheels"): Likewise.
2018-07-23build-system: Add 'guile-build-system'.Ludovic Courtès
* guix/build-system/guile.scm, guix/build/guile-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'guile-build-system'.
2018-07-22Revert "guix: Compress and decompress xz archives in parallel."Marius Bakke
Threaded compression makes archives non-deterministic: the result depends on the number of threads used for compressing. See <https://bugs.gnu.org/31015>. This reverts commit 63102406f22412bb922de5549deb89d3594a38c0.
2018-07-20database: Reset timestamps to one second after the Epoch.Ludovic Courtès
Previously, store items registered in the database by this code (for instance, store items retrieved by 'guix offload' and passed to 'restore-file-set') would have an mtime of 0 instead of 1. This would cause problems for things like .go files: Guile would consider them to be older than the corresponding .scm file, and consequently it would ignore them and possibly use another (incorrect) .go file. Reported by Ricardo Wurmus. * guix/store/database.scm (reset-timestamps): Pass 1, not 0, to 'utime'. * tests/store-database.scm ("register-path"): Check the mtime of FILE and REF.
2018-07-20deduplication: Work around Guile bug in 'seek'.Ludovic Courtès
Fixes <https://bugs.gnu.org/32161>. Reported by Ricardo Wurmus <rekado@elephly.net>. This mostly reverts 83099892e0cf0d9c59f5e1a0774331026e48baa8. * guix/store/deduplication.scm (counting-wrapper-port): New procedure. (nar-sha256): Use it.
2018-07-19build-system/go: Use invoke instead of system*.Leo Famulari
* guix/build/go-build-system.scm (unpack, build): Use invoke. (install-source): Unconditionally return #t. (check): Use invoke and unconditionally return #t.
2018-07-19guix: ant-build-system: Reorder before generating INDEX.LIST.Julien Lepiller
* guix/build/ant-build-system.scm (%standard-phases): Add reorder-jar-content phase.
2018-07-19deduplication: Remove 'counting-wrapper-port'.Ludovic Courtès
* guix/store/deduplication.scm (counting-wrapper-port): Remove. (nar-sha256): Call 'port-position' directly on PORT.
2018-07-19hash: sha256 port now implements 'port-position'.Ludovic Courtès
* guix/hash.scm (open-sha256-port)[position]: New variable. [get-position]: New procedure. Pass it to 'make-custom-binary-output-port'. * tests/hash.scm ("open-sha256-port, hello"): Test 'port-position'.
2018-07-19self: Use the new 'imported-files'.Ludovic Courtès
That way, the source of most nodes is now a content-addressed store item instead of a derivation. * guix/self.scm (<file-mapping>): New record type. (file-mapping-compiler): New procedure. (scheme-node): Use 'file-mapping' instead of 'imported-files'. (imported-files): Remove.
2018-07-19gexp: 'imported-files/derivation' can copy files instead of symlinking.Ludovic Courtès
* guix/gexp.scm (imported-files/derivation): Add #:symlink? and honor it. (imported-files): Pass #:symlink? to 'imported-files/derivation'. * tests/gexp.scm ("imported-files with file-like objects"): Add 'file=?' and use it instead of calling 'readlink'.
2018-07-19gexp: 'imported-files' no longer creates a derivation by default.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Add #:import-creates-derivation?. Pass #:derivation? to 'imported-modules' and 'compiled-modules'. In -L argument, check whether MODULES is a derivation. (%not-slash): New variable. (file-mapping->tree): New procedure. (imported-files): Rename to... (imported-files/derivation): ... this. (imported-files): New procedure. Rewrite in terms of 'interned-file-tree' when possible; add #:derivation? parameter. (imported-modules, compiled-modules): Add #:derivation? parameter and pass it to 'imported-files'. * guix/packages.scm (patch-and-repack): Pass #:import-creates-derivation? to 'gexp->derivation'. * tests/gexp.scm ("imported-files"): Adjust to no longer expect a derivation.
2018-07-19gexp: Remove unnecessary 'mlet'.Ludovic Courtès
* guix/gexp.scm (imported-modules): Use 'let' instead of 'mlet'.
2018-07-19store: Add 'add-file-tree-to-store'.Ludovic Courtès
* guix/store.scm (%not-slash): New variable. (add-file-tree-to-store, interned-file-tree): New procedures. * tests/store.scm ("add-file-tree-to-store"): New test.
2018-07-19serialization: Add 'write-file-tree'.Ludovic Courtès
* guix/serialization.scm (write-contents-from-port): New procedure. (write-contents): Write in terms of 'write-contents-from-port'. (filter/sort-directory-entries, write-file-tree): New procedures. (write-file): Rewrite in terms of 'write-file-tree'. * tests/nar.scm ("write-file-tree + restore-file"): New test.
2018-07-15ruby-build-system: Error or return #t from all phases.Christopher Baines
Previously, if the tests didn't pass, the check phase would evaluate to #f, but the package would be built sucessfully. This changes all the phases to raise exceptions if errors are encountered, and return #t otherwise. This involves using invoke rather than system*, so that exceptions are raised if the program exits with a status other than 0, and also returning #t at the end of functions. * gnu/build/ruby-build-system.scm (unpack): Use invoke rather than system*, and return #t at the end. (build, check): Use invoke rather than system*. (install): Remove the use of "and", and rewrite the error handling to raise an exception. (wrap): Return #t.
2018-07-13utils: Really clean up temporary directories.Leo Famulari
Fixes <https://bugs.gnu.org/32126>. * guix/utils.scm (call-with-temporary-directory): Use DELETE-FILE-RECURSIVELY instead of RMDIR.
2018-07-13pull: Display new/upgraded packages upon completion.Ludovic Courtès
* guix/scripts/pull.scm (display-profile-news): New procedure. (build-and-install): Call it. (display-new/upgraded-packages): Add #:heading and honor it.
2018-07-13pull: Use (guix inferior) to display new and upgraded packages.Ludovic Courtès
* guix/scripts/pull.scm (display-profile-content): Call 'display-generation'. (display-new/upgraded-packages, display-profile-content-diff): New procedures. (process-query)[list-generation]: Remove. [list-generations]: New procedure. Adjust accordingly. * doc/guix.texi (Invoking guix pull): Update example of '-l'.
2018-07-13Add (guix inferior) and (guix scripts repl).Ludovic Courtès
* guix/inferior.scm, guix/scripts/repl.scm, tests/inferior.scm: New files. * Makefile.am (MODULES): Add 'guix/scripts/repl.scm' and 'guix/inferior.scm'. (SCM_TESTS): Add 'tests/inferior.scm'. * doc/guix.texi (Invoking guix repl): New node.
2018-07-13guix package: Use relative symlinks to generations.Ludovic Courtès
Reported by Roel Janssen <roel@gnu.org> at <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>. * guix/profiles.scm (switch-to-generation): Use (basename generation) as the symlink target. * guix/scripts/package.scm (build-and-use-profile): Likewise, use (basename name) as the symlink target. * tests/guix-package.sh: Adjust --roll-back test accordingly. Add explicitly test with '-p foo/prof'.
2018-07-13git: Call 'url-cache-directory' outside 'update-cached-checkout'.Oleg Pykhalov
* guix/git.scm (update-cached-checkout): Call 'url-cache-directory' in 'cache-directory' key argument. (latest-repository-commit): Call 'url-cache-directory'.
2018-07-13import: hackage: Fix typo.Danny Milosavljevic
* guix/import/cabal.scm (cabal-custom-setuo-name): Rename to... (cabal-custom-setup-name): ...this.
2018-07-13Merge branch 'staging'Marius Bakke
2018-07-12import: hackage: Evaluate "-any" and "-none" version comparison operators.Danny Milosavljevic
* guix/import/cabal.scm (eval-cabal): Modify. * tests/hackage.scm (test-cabal-4): New variable and test. (test-cabal-5): New variable and test. (test-cabal-6): New variable and test.
2018-07-12import: hackage: Support "-any" and "-none" version comparison operators.Danny Milosavljevic
* guix/import/cabal.scm (make-cabal-parser): Modify. (is-any): New variable. (is-none): New variable. (lex-any): New procedure. (lex-none): New procedure. (lex-word): Modify. (eval-cabal): Modify.
2018-07-12import: hackage: Support "custom-setup" field.Danny Milosavljevic
Fixes <https://bugs.gnu.org/23961>. * guix/import/cabal.scm (make-cabal-parser): Modify. (is-custom-setup): New variable. (lex-custom-setup): New procedure. (is-id): Modify. (lex-version): Modify. (<cabal-custom-setup>): New record type. (eval-cabal): Modify. (dependencies): Add parameter.
2018-07-12gexp: Allow bytevector as content of `plain-file'.Jan Nieuwenhuizen
This allows for using a package source directly from git, doing something like (define (command->bytevector command) (let ((port (apply open-pipe* OPEN_READ command))) (let ((output (get-bytevector-all port))) (close-port port) output))) (define-public hello-git (package (name "hello") (version "git") (source (let* ((commit "stable-2.0") (content (command->bytevector `("git" "archive" "--format" "tar" "--prefix" ,(string-append commit "/") ,commit))) (file-name (string-append "hello-" commit))) (plain-file file-name content))) ... )) * guix/gexp.scm (<plain-file>): Also allow bytevector content. (plain-file-compiler): Handle bytevector content. * doc/guix.texi (G-Expressions): Describe plain-file now also taking bytevectors.
2018-07-12store: Add `binary-file'.Jan Nieuwenhuizen
* guix/store.scm (binary-file): New function. * doc/guix.texi (The Store Monad): Describe binary-file.