summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* Merge branch 'master' into core-updatesMarius Bakke2019-07-12
|\ | | | | | | | | | | | | | | | | Conflicts: gnu/local.mk gnu/packages/python-xyz.scm gnu/packages/xml.scm guix/gexp.scm po/guix/POTFILES.in
| * guix gc: Correctly handle '--delete-generations' with no arguments.Ludovic Courtès2019-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, 'guix gc --delete-generations' would crash: the "" pattern would be passed to 'matching-generations', which would return #f instead of returning a list. Reported by Raghav Gururajan <rvgn@disroot.org> in <https://bugs.gnu.org/36466>. * guix/ui.scm (matching-generations): Raise an error when passed an invalid pattern. * guix/scripts/gc.scm (delete-old-generations): Check if PATTERN is true. (%options): Leave ARG as-is for 'delete-generations'. (guix-gc): Use 'assq' instead of 'assoc-ref' for 'delete-generations'. * guix/scripts/package.scm (delete-matching-generations): Replace (string-null? pattern) with (not pattern). Remove 'else' clause. (%options): Leave ARG as-is for 'delete-generations'. * guix/scripts/pull.scm (%options): Leave ARG as-is for 'list-generations'. (process-query): Replace (string-null? pattern) with (not pattern). * guix/scripts/system.scm (list-generations): Likewise, and remove 'else' clause. (process-command): Use #f instead of "" when no pattern is given.
| * discovery: Handle edge case in scheme-files when looking at symlinks.Christopher Baines2019-07-08
| | | | | | | | | | | | | | | | | | | | Previously, this code would cause crashes in Guix (running guix package -s for example) which could be experienced when Emacs creates temporary files in the gnu/packages/patches directory when a patch file has been edited, but not saved. * guix/discovery.scm (scheme-files): Add else clause to cond used when handling symlinks.
| * scripts: environment: Add --no-cwd.Carl Dong2019-07-08
| | | | | | | | | | | | | | | | | | | | | | | | | | * doc/guix.texi (Invoking guix environment): Add --no-cwd. * guix/scripts/environment.scm (show-help, %options): Add --no-cwd. (launch-environment/container): Add 'map-cwd?' param; only add mapping for cwd if #t. Only change to cwd within container if #t, otherwise home. (guix-environment): Error if --no-cwd without --container. Provide '(not no-cwd?)' to launch-environment/container as 'map-cwd?'. * tests/guix-environment.sh: Add test for no-cwd. Co-authored-by: Mike Gerwitz <mtg@gnu.org>
| * scripts: environment: Only rewrite user-specified mappings.Carl Dong2019-07-08
| | | | | | | | | | | | * guix/scripts/environment.scm (launch-environment/container): Only apply override-user-mappings to user-mappings and cwd. Do not apply to network configuration mapping and inputs.
| * channels: Key cached channel derivations by system.Ludovic Courtès2019-07-08
| | | | | | | | | | | | | | | | | | | | | | | | Previously, the channel instance to derivation mapping would be independent of the system. Thus, building the same channel instance for several different systems would always return the derivation that was first computed. This is a followup to c3ab921eed2a471022e9863a94ea521508782e53. * guix/channels.scm (channel-instance-derivations)[instance->derivation]: Pass the current system as a third argument to 'mcached'.
| * self: Ship the (gnu machine …) modules.Mark H Weaver2019-07-06
| | | | | | | | | | | | | | This is a followup to commit fa9edf09e992db7510c7471486dffc93e1e707e5. * guix/self.scm (compiled-guix)[*system-modules*]: Explicitly add all of gnu/machine/*.
| * channels: Simplify 'channel-instances->manifest'.Ludovic Courtès2019-07-06
| | | | | | | | | | | | | | * guix/channels.scm (channel-instances->manifest)[instance->entry]: Change to take two arguments instead of a tuple. Turn into a non-monadic procedure. Call it via 'map' instead of 'mapm'.
| * Add 'guix deploy'.Jakob L. Kreuze2019-07-06
| | | | | | | | | | * guix/scripts/deploy.scm: New file. * Makefile.am (MODULES): Add it.
| * ssh: Add 'identity' keyword to 'open-ssh-session'.Jakob L. Kreuze2019-07-06
| | | | | | | | * guix/ssh.scm (open-ssh-session): Add 'identity' keyword argument.
| * store: 'run-with-store' gracefully deals with #f store.Ludovic Courtès2019-07-05
| | | | | | | | | | | | | | | | | | | | This is a followup to dd0ee954c4fa965023fd887452927c02edb8b52f, which introduced a failure in tests/graph.scm. * guix/store.scm (run-with-store): Check whether STORE and NEW-STORE are true before calling 'store-connection-object-cache' etc. Fixes a failure in tests/graph.scm related to %REVERSE-PACKAGE-NODE-TYPE, which uses #f as the store.
| * derivations: Simplify 'substitution-oracle'.Ludovic Courtès2019-07-05
| | | | | | | | | | | | | | | | | | * guix/derivations.scm (substitution-oracle)[valid?, dependencies]: Remove. [closure]: New procedure. Rename parameter from 'drv' to 'inputs-or-drv' and adjust accordingly. (derivation-build-plan): Pass INPUTS directly to 'substitution-oracle'. * guix/ui.scm (show-what-to-build)[substitutable-info]: Likewise.
| * derivations: 'derivation-build-plan' recurses on substituables.Ludovic Courtès2019-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug whereby "guix build texlive -n" would report: 0.0 MB would be downloaded: /gnu/store/…-texlive-20180414 instead of: The following derivation would be built: /gnu/store/…-texlive-texmf-20180414.drv 2,595.2 MB would be downloaded: /gnu/store/…-texlive-20180414-texmf.tar.xz /gnu/store/…-texlive-20180414 where 'texlive-texmf' is a non-substitutable dependency of 'texlive'. * guix/derivations.scm (dependencies-of-substitutables): New procedure. (derivation-build-plan): When 'input-substitutable-info' returns true, append the subset of DEPS that corresponds to SUBSTITUABLES to the first argument of 'loop'. * guix/ui.scm (show-what-to-build): Remove half-baked traversal of DOWNLOAD. * tests/derivations.scm ("derivation-build-plan and substitutes, non-substitutable dep"): New test.
| * pack: 'squashfs' backend records the profile's search paths.Ludovic Courtès2019-07-04
| | | | | | | | | | | | | | | | | | * guix/scripts/pack.scm (singularity-environment-file): New procedure. (squashfs-image): Use it, and create /.singularity/env/90-environment.sh. * gnu/tests/singularity.scm (run-singularity-test)["singularity run, with environment"]: New test, currently skipped. * gnu/tests/singularity.scm (build-tarball&run-singularity-test): Add GUILE-JSON to the profile.
| * pack: 'docker' backend records the profile's search paths.Ludovic Courtès2019-07-04
| | | | | | | | | | | | | | | | | | | | | | | | * guix/docker.scm (config): Add #:environment parameter and honor it. (build-docker-image): Likewise, and pass it to 'config'. * guix/scripts/pack.scm (docker-image): Import (guix profiles) and (guix search-paths). Call 'profile-search-paths' and pass #:environment to 'build-docker-image'. * gnu/tests/docker.scm (run-docker-test)["Load docker image and run it"]: Add example that expects (json) to be available. * gnu/tests/docker.scm (build-tarball&run-docker-test): Replace %BOOTSTRAP-GUILE by GUILE-2.2 and GUILE-JSON in the environment.
| * Add (guix remote).Ludovic Courtès2019-07-04
| | | | | | | | | | * guix/remote.scm: New file. * Makefile.am (MODULES): Add it.
| * inferior: Add 'read-repl-response'.Ludovic Courtès2019-07-04
| | | | | | | | | | * guix/inferior.scm (read-repl-response): New procedure. (read-inferior-response): Use it.
| * Add (guix repl).Ludovic Courtès2019-07-04
| | | | | | | | | | | | | | * guix/scripts/repl.scm: Use (guix repl). (self-quoting?, machine-repl): Remove. * guix/repl.scm: New file. * Makefile.am (MODULES): Add it.
| * gexp: Add 'lower-gexp' and express 'gexp->derivation' in terms of it.Ludovic Courtès2019-07-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/gexp.scm (gexp-input-thing, gexp-input-output) (gexp-input-native?): Export. (lower-inputs): Return <gexp-input> records instead of tuples. (lower-reference-graphs): Adjust accordingly. (<lowered-gexp>): New record type. (lower-gexp, gexp-input->tuple): New procedure. (gexp->derivation)[%modules]: Remove. [requested-graft?]: New variable. [add-modules]: New procedure. Rewrite in terms of 'lower-gexp'. (gexp-inputs): Add TODO comment. * tests/gexp.scm ("lower-gexp"): New test.
* | build-system/meson: Enable compiler optimizations.Marius Bakke2019-07-07
| | | | | | | | * guix/build-system/meson.scm (meson-build)[#:build-type]: Set to 'debugoptimized'.
* | import: hackage: Update list of ghc-included packages.Robert Vollmert2019-07-04
| | | | | | | | | | | | | | | | | | It turns out the list in the release notes is incomplete. This updates the list from /gnu/store/<hash>-ghc-8.4.3/lib/ghc-8.4.3. * guix/import/hackage.scm (ghc-standard-libraries): Update list. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
* | Merge branch 'staging' into core-updatesMarius Bakke2019-07-04
|\|
| * store: 'run-with-store' preserves the functional object cache.Ludovic Courtès2019-07-03
| | | | | | | | | | | | | | | | | | This increases the hit rate of the object cache from 56% to 85% when running something like 'guix build libreoffice -nd'. * guix/store.scm (set-store-connection-object-cache!): New procedure. (run-with-store): Copy 'object-cache' field of the new store into the original one.
| * derivations: 'substitution-oracle' no longer calls 'read-derivation-from-file'.Ludovic Courtès2019-07-03
| | | | | | | | | | | | | | | | This is a followup to 5cf4b26d52bcea382d98fb4becce89be9ee37b55. * guix/derivations.scm (substitution-oracle): Use 'derivation-input-derivation' instead of calling 'read-derivation-from-file'.
| * derivations: Avoid another call to 'read-derivation-from-file'.Ludovic Courtès2019-07-03
| | | | | | | | | | | | | | | | | | | | This is a followup to 5cf4b26d52bcea382d98fb4becce89be9ee37b55. * guix/derivations.scm (derivation-path->base16-hash): Rename to... (derivation-base16-hash): ... this, and take a <derivation> rather than a file name. Use 'mlambdaq' instead of 'mlambda'. (derivation/masked-inputs): Adjust accordingly. (invalidate-derivation-caches!): Likewise.
| * derivations: 'map-derivation' no longer calls 'read-derivation-from-file'.Ludovic Courtès2019-07-03
| | | | | | | | | | | | | | This is a followup to 5cf4b26d52bcea382d98fb4becce89be9ee37b55. * guix/derivations.scm (map-derivation)[rewritten-input]: Avoid call to 'read-derivation-from-file'.
| * derivations: Work around pathological memoization behavior.Ludovic Courtès2019-07-03
| | | | | | | | | | | | | | This works around <https://bugs.gnu.org/36487>. * guix/derivations.scm (invalidate-derivation-caches!): Comment out 'hash-clear!' call.
| * profiles: Adjust packages->manifest pattern for inferior packages.Kyle Meyer2019-07-03
| | | | | | | | | | | | | | | | * guix/profiles.scm (packages->manifest): Add package? predicate to `(package output)' pattern to avoid incorrectly matching `(inferior-package output)', which should be handled by a later clause. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* | Merge branch 'staging' into core-updatesMarius Bakke2019-07-02
|\|
| * grafts: 'references-oracle' now takes a derivation input.Ludovic Courtès2019-07-02
| | | | | | | | | | | | | | | | | | | | That way, if we end up calling 'build-derivations', we'll only build the outputs that we really need. * guix/grafts.scm (references-oracle): Rename 'drv' to 'input'. [output-paths]: Remove. Adjust accordingly. (graft-derivation): Adjust call to 'references-oracle'.
| * derivations: Update 'build-derivations' docstring.Ludovic Courtès2019-07-02
| | | | | | | | | | | | This is a followup to 7c690a47381f645ec5ec0a1fd6ffc34dba1b69c2. * guix/derivations.scm (build-derivations): Update docstring.
| * import: pypi: Preserve package name case when forming pypi-uri.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/33046>. * guix/build-system/python.scm (pypi-uri): Update the host URI to "files.pythonhosted.org". * guix/import/pypi.scm (make-pypi-sexp): Preserve the package name case when the source URL calls for it.
| * import: pypi: Update the host URI.Maxim Cournoyer2019-07-02
| | | | | | | | | | * guix/build-system/python.scm (pypi-uri): Update the host URI to "files.pythonhosted.org".
| * import: pypi: Include optional test inputs as native-inputs.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/import/pypi.scm (maybe-inputs): Add INPUT-TYPE argument, and use it. (test-section?): New predicate. (parse-requires.txt): Collect the optional test inputs, and return them as the second element of the returned list. (parse-wheel-metadata): Likewise. (guess-requirements): Adapt. (make-pypi-sexp): Likewise, and include the test inputs requirements as native inputs in the returned package expression. * tests/pypi.scm (test-requires.txt): Include a test section in the test-requires.txt data. (test-requires.txt-beaker): New variable. ("parse-requires.txt"): Adapt. ("parse-requires.txt - Beaker"): New test. ("parse-wheel-metadata, with extras"): Adapt. ("parse-wheel-metadata, with extras - Jedi"): Adapt. ("pypi->guix-package, no wheel"): Re-indent, and add the expected native-inputs. ("pypi->guix-package, wheels"): Likewise.
| * import: pypi: Completely mute the output of the "unzip" command.Maxim Cournoyer2019-07-02
| | | | | | | | | | * guix/import/pypi.scm (guess-requirements): Completely mute the output of the "unzip" command.
| * import: pypi: Fix typo in docstring.Maxim Cournoyer2019-07-02
| | | | | | | | * guix/import/pypi.scm (guess-requirements): Fix typo.
| * import: pypi: Parse wheel METADATA instead of metadata.json.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | With newer Wheel releases, there is no more metadata.json file; the METADATA file should be used instead (see: https://github.com/pypa/wheel/issues/195). This change updates our PyPI importer so that it uses the latter. * guix/import/pypi.scm (define-module): Remove unnecessary modules and export the PARSE-WHEEL-METADATA procedure. (parse-wheel-metadata): Add procedure. (guess-requirements): Use it. * tests/pypi.scm (test-metadata): Test it.
| * import: pypi: Support more types of archives.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change enables the PyPI importer to look for requirements in a source archive of a different type than "tar.gz" or "tar.bz2". Also, scan the source archive to find a requires.txt file. * guix/import/pypi.scm: (guess-requirements)[tarball-directory]: Remove procedure. [guess-requirements-from-source]: Use COMRESSED-FILE? to determine if an archive type is supported, and some file extension logic that chooses either "tar" or "unzip" as the extractor. Search for the requires.txt file in the archive instead of using a static, expected location. (guess-requirements): Rename the TARBALL argument to ARCHIVE, to denote the archive format is no longer bound specifically to the Tar format. (compute-inputs): Likewise. * tests/pypi.scm ("pypi->guix-package, no wheel"): Mock the requires.txt at a non-standard location. ("pypi->guix-package, no usable requirement file."): New test.
| * import: pypi: Deduplicate requirements.Maxim Cournoyer2019-07-02
| | | | | | | | * guix/import/pypi.scm (parse-requires.txt): Remove potential duplicates.
| * import: pypi: Improve parsing of requirement specifications.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous solution was fragile and could leave unwanted characters in a requirement name, such as '[' or ']'. Partially fixes <https://bugs.gnu.org/33047>. * guix/import/pypi.scm (use-modules): Export SPECIFICATION->REQUIREMENT-NAME (%requirement-name-regexp): New variable. (clean-requirement): Rename to... (specification->requirement-name): this, which now uses %requirement-name-regexp to select the requirement name from the requirement specification. (parse-requires.txt): Adapt.
| * import: pypi: Do not parse optional requirements from source.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/import/pypi.scm: Export PARSE-REQUIRES.TXT. (clean-requirement): Move procedure to the top level. (guess-requirements): Move the READ-REQUIREMENTS procedure to the top level, and rename it to PARSE-REQUIRES.TXT. Move the CLEAN-REQUIREMENT procedure to the top level. Move the COMMENT? functions inside the PARSE-REQUIRES.TXT procedure. (parse-requires.txt): Add a SECTION-HEADER? predicate, and use it to prevent parsing optional requirements. * tests/pypi.scm (test-requires-with-sections): New variable. ("parse-requires.txt, with sections"): New test.
| * import: pypi: Do not consider requirements.txt files.Maxim Cournoyer2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PyPI packages are mandated to have a setup.py file, which contains a listing of the required dependencies. The setuptools/distutils machinery embed metadata in the archives they produce, which contains this information. There is no need nor gain to collect the requirements from a "requirements.txt" file, as it is not the true record of dependencies for PyPI packages and may contain extraneous requirements or not exist at all. * guix/import/pypi.scm (guess-requirements): Update comment. [guess-requirements-from-source]: Do not attempt to parse the file requirements.txt. Streamline logic. * tests/pypi.scm (test-requires.txt): Rename from test-requirements, to hint at the file being tested. ("pypi->guix-package"): Adapt so that the fake package contains a requires.txt file rather than a requirements.txt file. ("pypi->guix-package, wheels"): Likewise.
| * guix: import: crate: fix redundant inputs list nestingIvan Petkov2019-06-30
| | | | | | | | | | | | | | * guix/import/crate.scm (maybe-cargo-inputs): Remove one level of lists. * guix/import/crate.scm (maybe-cargo-development-inputs): Same. * tests/crate.scm: (crate->guix-package)[package]<#:arguments>: Remove one level of list nesting.
| * download: Remove hydra from content-addressed URL listTobias Geerinckx-Rice2019-06-29
| | | | | | | | | | | | * guix/build/download-nar.scm (urls-for-item): Remove mirror.hydra.gnu.org. * guix/download.scm (%content-addressed-mirrors): Likewise.
| * etc: Remove hydra.gnu.org.pub key.Tobias Geerinckx-Rice2019-06-29
| | | | | | | | | | | | | | | | | | * etc/substitutes/hydra.gnu.org.pub: Delete file. * guix/self.scm (miscellaneous-files): Don't install it. * Makefile.am (dist_pkgdata_DATA): Remove it. * gnu/services/base.scm (%default-authorized-guix-keys): Likewise. (hydra-key-authorization): Rename to… (substitute-key-authorization): …this. Adjust only call site.
* | gnu: make-bootstrap: Remove obsolete header file.Marius Bakke2019-07-02
| | | | | | | | * guix/build/make-bootstrap.scm (copy-linux-headers): Do not install 'a.out.h'.
* | build-system/meson: Do not inherit the 'bootstrap' phase.Marius Bakke2019-06-30
| | | | | | | | | | * guix/build/meson-build-system.scm (%standard-phases): Remove 'bootstrap'. * gnu/packages/glib.scm (glib)[arguments]: Adjust accordingly.
* | Merge branch 'master' into core-updatesLudovic Courtès2019-06-27
|\|
| * ui: 'show-derivation-outputs' accepts <derivation-input> records.Ludovic Courtès2019-06-27
| | | | | | | | | | * guix/ui.scm (show-derivation-outputs): Handle <derivation-input> records.
| * ui: 'show-what-to-build' accepts derivation inputs.Ludovic Courtès2019-06-27
| | | | | | | | | | | | | | | | This is a followup to f8a9f99cd602ce1dc5307cb0c21ae718ad8796bb. * guix/ui.scm (show-what-to-build)[inputs]: New variables. [substitutable-info]: Build the derivation list from INPUTS. Pass INPUTS to 'derivation-build-plan'.