summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* lzlib: 'make-lzip-input-port' better handles end of decompression.Ludovic Courtès2019-06-01
| | | | | | | | Suggested by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/lzlib.scm (lzread!): Call 'lz-decompress-finish' when 'feed-decoder!' returns EOF. Call 'lz-decompress-finished?' to determine end of compression.
* import: hackage: Update list of ghc-included packages.Robert Vollmert2019-06-01
| | | | | | | | | | | | | | Update the list of excepted dependencies for current ghc-8.4, based on the release notes at https://downloads.haskell.org/~ghc/8.4.3/docs/html/users_guide/8.4.3-notes.html Particularly, this adds `text` to the list, which is a dependency of `parsec` which was already on the list before, causing build failures with updated versions of the `text` package. * guix/import/hackage.scm (ghc-standard-libraries): Update list. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
* publish: Factorize 'compress-nar'.Ludovic Courtès2019-05-29
| | | | | * guix/scripts/publish.scm (compress-nar): New procedure. (bake-narinfo+nar): Use it.
* publish: Remove outdated comment.Ludovic Courtès2019-05-29
| | | | * guix/scripts/publish.scm (make-request-handler): Remove outdated TODO.
* import: cran: Ignore invalid packages from the system requirements.Ricardo Wurmus2019-05-28
| | | | | * guix/import/cran.scm (description->package): Filter invalid packages from the list of system requirements.
* self: Fix unquoting.Ricardo Wurmus2019-05-28
| | | | | | This is a follow-up to commit dfc69e4b6d4bbc41a4d37b3cc6ea12adb34aaafa. * guix/self.scm (whole-package): Unquote %storedir in the daemon wrapper.
* publish: Display the compression method and level in use.Ludovic Courtès2019-05-27
| | | | | | * guix/scripts/publish.scm (guix-publish): Use 'info' instead of 'format' for the initial message. When COMPRESSION is true, display the method and level in use.
* lzlib: 'lzread!' never returns more than it was asked for.Ludovic Courtès2019-05-27
| | | | | | Fixes a bug whereby 'lzread!' could return more than COUNT. * guix/lzlib.scm (lzread!): Rewrite in a semi-functional style.
* self: Add dependency on lzlib.Ludovic Courtès2019-05-27
| | | | | | * guix/self.scm (compiled-guix): Pass #:lzlib to 'make-config.scm'. (make-config.scm): Add #:lzlib and honor it. (specification->package): Add "lzlib".
* publish: Add support for lzip.Ludovic Courtès2019-05-27
| | | | | | | | | | | | | | | * guix/scripts/publish.scm (show-help, %options): Support '-C METHOD' and '-C METHOD:LEVEL'. (default-compression): New procedure. (bake-narinfo+nar): Add lzip. (nar-response-port): Likewise. (string->compression-type): New procedure. (make-request-handler): Generalize /nar/gzip handler to handle /nar/lzip as well. * tests/publish.scm ("/nar/lzip/*"): New test. ("/*.narinfo with lzip compression"): New test. * doc/guix.texi (Invoking guix publish): Document it. (Requirements): Mention lzlib.
* utils: Support compression and decompression with lzip.Ludovic Courtès2019-05-27
| | | | | | | | * guix/utils.scm (lzip-port): New procedure. (decompressed-port, compressed-port, compressed-output-port): Add 'lzip case. * tests/utils.scm <top level>: Call 'test-compression/decompression' for 'lzip as well.
* lzlib: Add 'make-lzip-input-port/compressed'.Ludovic Courtès2019-05-27
| | | | | | | * guix/lzlib.scm (lzwrite!, make-lzip-input-port/compressed): New procedures. * tests/lzlib.scm ("make-lzip-input-port/compressed"): New test. * guix/tests.scm (%seed): Export.
* lzlib: Adjust 'lz-compress-read' docstring.Ludovic Courtès2019-05-27
| | | | | * guix/lzlib.scm (lz-compress-read): The integer return can be zero; adjust docstring accordingly.
* import: hackage: Fix Cabal test.Ludovic Courtès2019-05-26
| | | | | | | | | * guix/import/hackage.scm (hackage->guix-package): Remove call to 'memoize'. (hackage->guix-package/m): New procedure. (hackage-recursive-import): Use it. * tests/hackage.scm ("hackage->guix-package test 6"): Adjust. Co-authored-by: Robert Vollmert <rob@vllmrt.net>
* discovery: 'all-modules' returns modules in path order.Robert Vollmert2019-05-26
| | | | | | | | | | | | | A particular effect of this is that if there are ambiguous packages in a directory specified with `-L module_dir` and the distribution, the version from `module_dir` will be loaded, which is usually what would be expected. (E.g. for `guix build` or `guix package -i`.) * guix/discovery.scm (all-modules): Return modules in path order. * tests/guix-package.sh: Test local definitions take precedence. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* self: 'guix-daemon' honors %localstatedir, %sysconfdir, and %storedir.Ludovic Courtès2019-05-26
| | | | | | | | | | | Fixes <https://bugs.gnu.org/35874>. Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. Previously, the 'guix-daemon' program provided by 'guix pull' would systematically use default directory locations for these. * guix/self.scm (whole-package)[wrap]: Set GUIX_STATE_DIRECTORY, GUIX_CONFIGURATION_DIRECTORY, and NIX_STORE_DIR.
* import: hackage: Recognize "BSD-3-Clause" and "PublicDomain".Robert Vollmert2019-05-26
| | | | | | * guix/import/hackage.scm (string->license): Add two licenses. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
* store: Fix 'hash-part->path' docstring.Ludovic Courtès2019-05-26
| | | | * guix/store.scm (hash-part->path): Adjust docstring to match reality.
* publish: Maintain a hash-part-to-store-item mapping in cache.Ludovic Courtès2019-05-26
| | | | | | | | | | | Fixes <https://bugs.gnu.org/33897>. * guix/scripts/publish.scm (hash-part-mapping-cache-file) (hash-part->path*): New procedures. * guix/scripts/publish.scm (render-narinfo/cached)[delete-entry]: Delete the 'hash-part-mapping-cache-file'. Use 'hash-part->path*' instead of 'hash-part->path'. * tests/publish.scm ("with cache, vanishing item"): New test.
* import: cran: Ignore invalid packages.Ricardo Wurmus2019-05-23
| | | | | * guix/import/cran.scm (invalid-packages): New variable. (description->package): Use it.
* weather: Accept package specs on the command line.Ludovic Courtès2019-05-22
| | | | | | | | | Previously, non-option arguments would be ignored. Now it puts them to good use. * guix/scripts/weather.scm (guix-weather)[package-list]: New procedure. Use it. * doc/guix.texi (Invoking guix weather): Adjust accordingly.
* pack: Warn when building an empty pack.Ludovic Courtès2019-05-22
| | | | | * guix/scripts/pack.scm (guix-pack): Warn when MANIFEST has zero entries.
* pack: Add '--root'.Ludovic Courtès2019-05-22
| | | | | | | * guix/scripts/pack.scm (%options, show-help): Add "--root". (guix-pack): Honor it. * tests/guix-pack.sh: Test it. * doc/guix.texi (Invoking guix pack): Document it.
* self: Remove unused variables.Ludovic Courtès2019-05-20
| | | | * guix/self.scm (info-manual)[po4a, gettext]: Remove.
* guix system: Type-check the file or expression.Ludovic Courtès2019-05-16
| | | | | | | | | Previously, users would get a wrong-type-arg exception down the road with an intimidating backtrace. * guix/scripts/system.scm (process-action)[ensure-operating-system]: New procedure. Use it.
* docker: 'build-docker-image' accepts an optional #:entry-point.Ludovic Courtès2019-05-15
| | | | | * guix/docker.scm (config): Add #:entry-point and honor it. (build-docker-image): Likewise.
* import: github: Sort releases before picking the latest one.Arun Isaac2019-05-15
| | | | | * guix/import/github.scm (latest-released-version): Sort releases before picking the first one as the latest.
* import: github: Improve readability.Arun Isaac2019-05-15
| | | | | * guix/import/github.scm (latest-released-version)[release->version]: Separate out release->version as a new function.
* guix build: Gracefully handle invalid '--with-git-url' specs.Ludovic Courtès2019-05-14
| | | | | * guix/scripts/build.scm (transform-package-source-git-url): Add case for when 'string-split' does not return exactly two elements.
* vm: Auto-detect if inputs should be registered.Maxim Cournoyer2019-05-13
| | | | | | | | | | | | | | | | | | | | | The default value of the argument REGISTER-CLOSURE? of the ISO9660-IMAGE, QEMU-IMAGE and SYSTEM-DOCKER-IMAGE procedures can be computed automatically, since the operating-system definition is available in its context. When the operating-system definition does not contain the GUIX-SERVICE-TYPE, do not register the closure in the database of Guix, as it takes time and doesn't serve a purpose. * gnu/system/vm.scm (has-guix-service-type): Add predicate. (iso9660-image)[register-closures?]: Use it to compute the argument's default value. (qemu-image)[register-closures?]: Likewise, and update docstring. (system-docker-image)[register-closures?]: Likewise. (system-disk-image): Do not explicit a value for the REGISTER-CLOSURES? argument of the ISO9660-IMAGE and QEMU-IMAGE procedure calls, so that its default value is used instead. * guix/scripts/system.scm (system-derivation-for-action): Do not explicit a value for the REGISTER-CLOSURES? argument of the SYSTEM-DOCKER-IMAGE procedure call, so that its default value is used instead.
* linux-container: Support container network sharing.Arun Isaac2019-05-14
| | | | | | | | | | | | | | | | | | | * gnu/system/linux-container.scm (container-essential-services): If network is to be shared with the host, remove network configuration files from etc service. (containerized-operating-system): If network is to be shared with the host, remove nscd service and map host's /var/run/nscd if it exists. (container-script): If network is to be shared with the host, do not create network namespace. * guix/scripts/system.scm (system-derivation-for-action): Add #:container-shared-network? argument. (perform-action): Add #:container-shared-network? argument. (show-help): Add "-N, --network" help information. (%options): Add network option. (process-action): Call perform-action with #container-shared-network? argument. * doc/guix.texi (Invoking guix system): Document the "-N, --network" option. Co-authored-by: Christopher Baines <mail@cbaines.net>
* download: Support 'https_proxy'.宋文武2019-05-13
| | | | | * guix/build/download.scm (setup-http-tunnel): New procedure. (open-connection-for-uri): Honor the 'https_proxy' environment variable.
* gnu-maintenance: Update URL for package databases.Ludovic Courtès2019-05-12
| | | | | | The databases migrated away from the Womb a couple of days ago. * guix/gnu-maintenance.scm (%gnumaint-base-url): Update URL.
* build/cargo-utils: Remove "src-name" parameter.Ivan Petkov2019-05-10
| | | | | | | | | | | | * gnu/packages/gnuzilla.scm (icecat)[arguments]<#:phases> [patch-cargo-checksums]: Delete "null-file" variable. * gnu/packages/rust.scm (%cargo-reference-project-file): Delete variable. * gnu/packages/rust.scm (rust-1.19): Remove reference to "%cargo-reference-project-file". * guix/build/cargo-utils.scm (generate-checksums): Remove "src-name" parameter. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
* syscalls: Add 'arp-network-interface?'.Marius Bakke2019-05-09
| | | | | * guix/build/syscalls.scm (IFF_NOARP): New variable. (arp-network-interface?): New public procedure.
* pull: Display 'hash guix' hint when the new and old 'guix' are different.Ludovic Courtès2019-05-09
| | | | | | | | | | | | Fixes <https://bugs.gnu.org/35601>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. Previously we were calling (which "guix") after the new profile had been built and symlinked, so in most cases the hint would not be triggered, even though it should have been triggered. * guix/scripts/pull.scm (build-and-install)[guix-command]: New variable. Compare PROFILE/bin/guix against GUIX-COMMAND.
* ui: Make package outputs searchable.Chris Marusich2019-05-09
| | | | | | | | | | | | * guix/ui.scm (relevance): Allow the "field" procedure of a metric to return a list, and handle that case appropriately. Update docstring. (%package-metrics): Add a metric for package outputs. * guix/scripts/package.scm (find-packages-by-description): Update docstring. * tests/guix-package.sh: Add a test case to verify that package outputs are included in search results. Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr>
* Add (guix bzr-download).Maxim Cournoyer2019-05-09
| | | | | | | * guix/bzr-download.scm, guix/build/bzr.scm, etc/snippets/scheme-mode/guix-bzr-reference: New files. * Makefile.am (MODULES): Add them. * etc/snippets/scheme-mode/guix-origin: Add "bzr-fetch" to the origin choices.
* guix: Simplify and robustify lzread!.Pierre Neidhardt2019-05-07
| | | | | | | | | * guix/lzlib.scm (lzread!): Do it. Previously lzread! would fail if COUNT was bigger than (lz-decompress-write-size). This is possible if a previous call to lzread! didn't empty the LZ_decompress input buffer (e.g. BV was too small to fit all the data).
* environment: Non ad-hoc mode also honors transformation options.Ludovic Courtès2019-05-07
| | | | | | | | | Fixes <https://bugs.gnu.org/35618>. Reported by Florent Pruvost <florent.pruvost@inria.fr>. * guix/scripts/environment.scm (options/resolve-packages): Add call to TRANSFORM in non "ad-hoc" case. * tests/guix-environment.sh: Add test.
* Add (guix lzlib).Pierre Neidhardt2019-05-06
| | | | | | | | | | | | | * guix/lzlib.scm, tests/lzlib.scm: New files. * Makefile.am (MODULES): Add guix/lzlib.scm. (SCM_TESTS): Add tests/lzlib.scm. * m4/guix.m4 (GUIX_LIBLZ_LIBDIR): New macro. * configure.ac (LIBLZ_LIBDIR): Use it. Define and substitute 'LIBLZ'. * guix/config.scm.in (%liblz): New variable. * guix/self.scm (make-config.scm): Add TODO comment. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* build: go-build-system: Follow-up to commit f42e4ebb56.Maxim Cournoyer2019-05-05
| | | | | | | | This follows commit f42e4ebb56, which made it so that the unpack phase return value could be left unspecified. * guix/build/go-build-system.scm (unpack): Ensure that the value returned upon a successful completion of the phase is #t.
* build: go-build-system: Follow-up commit.Maxim Cournoyer2019-05-05
| | | | | | | | There was an extraneous pair of parens in commit 7e84d3eef7. Thanks for Mark Weaver for reporting the issue. * guix/build/go-build-system.scm (unpack): Remove the extraneous pair of parentheses surrounding the `display' function call.
* build: go-build-system: Ensure uniform unpacking directory.Maxim Cournoyer2019-05-05
| | | | | | | | | | | Depending on whether the source is a directory or an archive, we strip the source directory or preserve it, respectively. This change makes it so that whether the type of the source, it is unpacked at the expected location given by the IMPORT-PATH of the Go build system. * guix/build/go-build-system.scm: Add the (ice-9 ftw) module. (unpack): Add inner procedure to maybe strip the top level directory of an archive, document it and use it.
* build: go-build-system: Use WHEN for side-effect conditionals.Maxim Cournoyer2019-05-05
| | | | | * guix/build/go-build-system.scm (unpack): Replace single branch `if' by `when'.
* build: go-build-system: Re-ident.Maxim Cournoyer2019-05-05
| | | | * guix/build/go-build-system.scm (unpack): Fix indentation.
* guix: Update to Bioconductor 3.9.Ricardo Wurmus2019-05-06
| | | | | * guix/build-system/r.scm (bioconductor-uri): Use 3.9 archive URL. * guix/import/cran.scm (%bioconductor-version): Update to 3.9.
* Merge branch 'version-1.0.0'Ludovic Courtès2019-05-02
|\
| * build: Change default substitute server to "ci.guix.gnu.org".Ludovic Courtès2019-05-01
| | | | | | | | | | | | | | | | | | | | | | * config-daemon.ac: Replace "ci.guix.info" with "ci.guix.gnu.org". * doc/guix.texi (SUBSTITUTE-SERVER): Likewise. * etc/substitutes/ci.guix.gnu.org.pub: New file. * Makefile.am (dist_pkgdata_DATA): Add it. * guix/scripts/build.scm (%default-log-urls): Update. * guix/scripts/substitute.scm (%default-substitute-urls): Likewise. * guix/store.scm (%default-substitute-urls): Likewise. * guix/self.scm (miscellaneous-files): Add "ci.guix.gnu.org".
| * processes: Gracefully handle daemons without clients.Ludovic Courtès2019-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/34716>. Reported by Mark H Weaver <mhw@netris.org>. The problem could be reproduced by running, on one hand: sh -c 'exec -a guix-daemon sleep 777' and on the other hand: guix processes If there is no process with PID 777, 'guix processes' would barf as it stumbles upon a <daemon-session> record whose client is #f. * guix/scripts/processes.scm (daemon-sessions)[child-process->session]: New procedure, with lambda formerly passed to 'map'. Handle #f returns from 'lookup-process'. Call 'child-process->session' within 'filter-map', not just 'map'.