summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2019-06-27ui: Add 'display-search-results' and use it.Ludovic Courtès
* guix/ui.scm (display-search-results): New procedure. * guix/scripts/package.scm (find-packages-by-description): Remove 'unzip2' call and return a list of pairs. (process-query): Change to use 'display-search-results'. * guix/scripts/system/search.scm (find-service-types): Remove 'unzip2' call and return a list of pairs. (guix-system-search): Use 'display-search-results'.
2019-06-27syscalls: Add 'terminal-rows'.Ludovic Courtès
* guix/build/syscalls.scm (terminal-dimension): New procedure. (terminal-columns): Rewrite in terms of 'terminal-dimension'. (terminal-rows): New procedure. * tests/syscalls.scm ("terminal-rows"): New test.
2019-06-27ui: 'relevance' considers regexps connected with a logical and.Ludovic Courtès
* guix/ui.scm (relevance)[score]: Change to return 0 when one of REGEXPS doesn't match. * tests/ui.scm ("package-relevance"): New test.
2019-06-25compile: Enable 'shadowed-toplevel' warning.Ludovic Courtès
* guix/build/compile.scm (%warnings): Add 'shadowed-toplevel'.
2019-06-24progress: Call 'time-difference' on times of the same type.Ludovic Courtès
Guile 2.2.5 and 2.9.2 would catch the issue. This is a followup to 88bc3c89bf5145d24c2270d2192b7be547e0024f. * guix/progress.scm (display-download-progress)[elapsed]: Pass 'current-time' the same type as START-TIME.
2019-06-24publish: Work around Guile 2.2.5 (web server) bug.Ludovic Courtès
* guix/scripts/publish.scm: Replace (@@ (web http) read-header-line) on Guile 2.2.5.
2019-06-23guix build: '--log-file' no longer returns several log files.Ludovic Courtès
Fixes a regression introduced in 9353b199c18caca4a429f20423e1a5e7bc26a8da whereby something like: guix build --log-file $(guix build -d guile) would return two log files. This led to a failure of 'tests/guix-build.sh'. * guix/scripts/build.scm (guix-build): Filter out derivation file names from ITEMS.
2019-06-23guix build: Use 'warning' for warnings.Ludovic Courtès
* guix/scripts/build.scm (options->derivations): Use 'warning' instead of 'format'.
2019-06-21build-system/python: Export 'python-version'.Ludovic Courtès
* guix/build/python-build-system.scm (get-python-version): Rename to... (python-version): ... this. Update callers. Make public. * gnu/packages/gstreamer.scm (python-gst)[arguments]: Adjust accordingly. * gnu/packages/machine-learning.scm (ghmm)[arguments]: Likewise. * gnu/packages/openldap.scm (389-ds-base)[arguments]: Import (guix build python-build-system). Use 'python-version'. * gnu/packages/package-management.scm (conda)[arguments]: Use 'python-version'.
2019-06-20packages: Retain version in file name when repacking source checkouts.Marius Bakke
Fixes <https://bugs.gnu.org/34066>. * guix/packages.scm (patch-and-repack)<tarxz-name>: If FILE-NAME is a source checkout, reuse the name without the '-checkout' part.
2019-06-20Merge branch 'staging' into core-updatesMarius Bakke
2019-06-20licenses: Add Historical Permission Notice and Disclaimer licenseGiovanni Biscuolo
* gnu/licenses.scm (hpnd): New variable.
2019-06-20utils: canonical-newline-port: Fix handling of carriage return at buffer end.Robert Vollmert
Prior to this change the added test fails for me locally at byte 1024. It might depend on some default buffer sizes. Fixes <https://bugs.gnu.org/35863>. * tests/utils.scm ("canonical-newline-port-1024"): Add test. * guix/utils.scm (canonical-newline-port): Correct comments on CR/LF. Remove CR even when they're at the end of the buffer. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-06-19grafts: Avoid 'query-valid-derivers' RPC.Ludovic Courtès
Previously we'd make 502 'query-valid-derivers' RPCs for "guix build vim -d", and after this patch, we don't do any. Furthermore, the previous strategy was "stateful" in the sense that 'item->deriver' could return a derivation that is not the one that was actually computed by this process, but an "equivalent" one (due to fixed-output derivations); which one is chosen would depend on the state of the store. This in turn means that we'd have to call 'read-derivation-from-file' to actually read .drv files (as opposed to getting them from %DERIVATION-CACHE). This is costly and doesn't work with GUIX_DAEMON_SOCKET=ssh://…. * guix/grafts.scm (item->deriver): Remove. (reference-origin): New procedure. (cumulative-grafts): Use it instead of 'item->deriver'.
2019-06-19derivations: Add 'derivation-input-derivation'.Ludovic Courtès
* guix/derivations.scm (derivation-input-derivation): New procedure. (derivation-prerequisites): Use it.
2019-06-18guix build: '--log-file' looks for build logs of equivalent derivations.Ludovic Courtès
Previously, '--log-file' would look for log files only for the current derivation, and thus wouldn't find log files of equivalent derivations that produce the same output. * guix/scripts/build.scm (guix-build) <log-file?>: Replace 'derivation-file-name' by 'derivation->output-path'.
2019-06-17utils: Add 'invoke/quiet'.Ludovic Courtès
* gnu/build/bootloader.scm (G_): Remove. (open-pipe-with-stderr, invoke/quiet): Move to... * guix/build/utils.scm: ... here. Use 'let-values' instead of 'define-values' because Guile 2.0 (the bootstrap Guile) doesn't know about 'define-values'. * po/guix/POTFILES.in: Remove gnu/build/bootloader.scm, and add guix/build/utils.scm. * tests/build-utils.scm: Remove import of (gnu build bootloader).
2019-06-17packages: 'patch-and-repack' no longer uses #:deprecation-warnings.Ludovic Courtès
* guix/packages.scm (patch-and-repack): Remove #:deprecation-warnings argument passed to 'gexp->derivation'.
2019-06-17gexp: Remove #:pre-load-modules? parameter.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Remove #:pre-load-modules?. (compiled-modules): Likewise. Inline the case correspoding to PRE-LOAD-MODULES? = #t. * guix/packages.scm (patch-and-repack): Remove #:pre-load-modules?.
2019-06-15self: Don't build (guix tests …).Ludovic Courtès
Fixes a regression introduced in 03d76577b96ba81c9921eb3a297d42db8644280b whereby 'guix-extra.drv' would pull in (guix tests), which in turn would pull in a large number of (gnu packages …), which would fail to build due to missing .patch files. * guix/self.scm (compiled-guix)[*extra-modules*]: Exclude (guix tests …) from the list of modules.
2019-06-15Merge branch 'staging'Marius Bakke
2019-06-14build-system/gnu: Make 'first-subdirectory' deterministic.Ludovic Courtès
Fixes <https://bugs.gnu.org/35387>. Reported by Christopher Baines <mail@cbaines.net>. * guix/build/gnu-build-system.scm (first-subdirectory): Rewrite using 'scandir' so that the result is deterministic.
2019-06-14packages: Remove 'search-bootstrap-binary'.Ludovic Courtès
* gnu/packages.scm (%bootstrap-binaries-path, search-bootstrap-binary): Remove. * gnu/packages/bootstrap.scm (bootstrap-executable): Export. * guix/tests.scm (bootstrap-binary-file, search-bootstrap-binary): Export. * tests/derivations.scm: Remove (gnu packages) import. * tests/grafts.scm: Likewise. * tests/guix-daemon.sh: Likewise.
2019-06-14tests: Make builds less expensive.Ludovic Courtès
The switch to the reduced bootstrap broke build time assumptions made by tests, notably the assumption that GNU-MAKE-BOOT0 was cheap to build. This commit adjusts this to make these tests cheaper. * gnu/packages/bootstrap.scm (%bootstrap-inputs-for-tests): New variable. * guix/tests.scm (gnu-make-for-tests): New variable. * tests/guix-environment.sh: Use GNU-MAKE-FOR-TESTS instead of GNU-MAKE-BOOT0. Remove test with FINDUTILS-BOOT0. * tests/guix-package-net.sh (boot_make): Use GNU-MAKE-FOR-TESTS. * tests/packages.scm ("GNU Make, bootstrap"): Likewise. * tests/profiles.scm ("profile-derivation relative symlinks, two entries"): Likewise. * tests/union.scm (%bootstrap-inputs): Remove. ("union-build"): Use %BOOTSTRAP-INPUTS-FOR-TESTS instead of %BOOTSTRAP-INPUTS.
2019-06-14gnu: bootstrap: Download the bootstrap bash, mkdir, tar, and xz binaries.Ludovic Courtès
* gnu/packages/bootstrap.scm (%bootstrap-executables): New variable. (bootstrap-executable-url, bootstrap-executable): New procedure. (raw-build)[->store]: Use 'run-with-store' and 'origin->derivation'. Add calls to 'derivation->output-path', and remove the list of references passed to 'add-text-to-store' for BUILDER. Augment the list of #:inputs passed to 'derivation'. (package-from-tarball): Use 'bootstrap-executable' instead of 'search-bootstrap-binary'. (%bootstrap-glibc, %bootstrap-gcc, %bootstrap-mescc-tools) (%bootstrap-mes): Likewise. * guix/scripts/environment.scm (environment-bash): Use 'bootstrap-executable' instead of 'search-bootstrap-binary'. (guix-environment): Adjust CONTAINER? case accordingly. * po/guix/POTFILES.in: Add gnu/packages/bootstrap.scm.
2019-06-14download: Add 'url-fetch/executable'.Ludovic Courtès
* guix/download.scm (built-in-download): Add #:executable? parameter. Pass #:recursive? to 'raw-derivation' and add "executable" to the #:env-vars alist when EXECUTABLE? is true. (url-fetch): Add #:executable? and pass it to 'built-in-download'. (url-fetch/executable): New procedure.
2019-06-13import: hackage: Handle Hackage revisions.Robert Vollmert
Hackage packages can have metadata revisions (Cabal file only) that are not reflected in the source archive. The Haskell build system has support for this, but until now the Hackage importer would create a package based on the revised Cabal file which would then build using the old Cabal file. Fixes <https://bugs.gnu.org/35750>. * guix/import/cabal.scm (<cabal-package>): Add 'revision' field. (eval-cabal): Parse 'x-revision:' property. * guix/import/hackage.scm (read-cabal-and-hash): New procedure. (hackage-fetch-and-hash): New procedure. (hackage-fetch): Rewrite using 'hackage-fetch-and-hash'. (hackage-module->sexp): Add 'cabal-hash' argument and use it to populate the '#:cabal-revision' argument. (hackage->guix-package): Use the new '-and-hash' functions to get the hash of the Cabal file and pass it to 'hackage-module->sexp'. * guix/tests/hackage.scm: Test import of Cabal file revision. Signed-off-by: Timothy Sample <samplet@ngyro.com>
2019-06-13build-system/haskell: Generate Setup.hs if needed.Robert Vollmert
The default Setup.hs is boilerplate that is frequently left out of source packages. Several packages already add a phase to generate it, so moving this phase to the build system is just factoring out an existing pattern. See <https://github.com/phadej/time-compat/issues/4>. * guix/build/haskell-build-system.scm (generate-setuphs): New procedure. (%standard-phases): Add it after 'unpack'. * gnu/packages/haskell.scm (ghc-foundation, ghc-inline-c, ghc-inline-c-cpp, ghc-rio): Remove 'arguments'. Signed-off-by: Timothy Sample <samplet@ngyro.com>
2019-06-13build-system/haskell: Fix Haddock phase docstring.Robert Vollmert
* guix/build/haskell-build-system.scm (haddock): Fix docstring. Signed-off-by: Timothy Sample <samplet@ngyro.com>
2019-06-13Merge branch 'master' into core-updatesLudovic Courtès
2019-06-11import: crate: Define dependencies as arguments.Ivan Petkov
* guix/import/crate.scm: (crate-fetch)[input-crates]: Rename to dev-crates. [native-input-crates]: Rename to dev-dep-crates. [inputs]: Rename to cargo-inputs. [native-inputs]: Rename to cargo-development-inputs. (maybe-cargo-inputs, maybe-cargo-development-inputs, maybe-arguments): Add them. (make-crate-sexp)[inputs]: Rename to cargo-inputs. [native-inputs]: Rename to cargo-development-inputs. [maybe-native-inputs, maybe-inputs]: Replace with maybe-arguments. * guix/import/utils.scm: (package-names->package-inputs): Make public. Add docstring. * tests/crate.scm (crate->guix-package): Update the match pattern. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2019-06-11build-system/cargo: Don't copy source as an output.Ivan Petkov
* guix/build-system/cargo.scm: (cargo-build)[build-expression->derivation]: Don't add "src" output. * guix/build/cargo-build-system.scm: (install-source): Delete it. (%standard-phases): Delete 'install-source. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2019-06-11build-system/cargo: Use sources from package sources.Ivan Petkov
* guix/build/cargo-build-system.scm (crate-src?): New procedure. (configure): Use the new procedure to expand crate tarballs in the vendor directory. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2019-06-11build-system/cargo: Expand transitive crate sources.Ivan Petkov
* guix/build/cargo: (package-cargo-inputs): Add it. (package-cargo-development-inputs): Add it. (crate-closure): Add it. (expand-crate-sources): Add it. (lower)[private-keywords]: Add #:cargo-inputs and [bag]: Use expand-crate-sources to augment build-inputs. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2019-06-10pack: Fix 'guix pack -f docker'.Ludovic Courtès
Regression introduced in a0f352b30f4869a7af7017b8a5011ac7602dd115. * guix/scripts/pack.scm (docker-image): Check whether ENTRY-POINT is true before returning (string-append #$profile ...).
2019-06-10store: 'build-things' accepts derivation/output pairs.Ludovic Courtès
This allows callers to request the substitution of a single derivation output. * guix/store.scm (build-things): Accept derivation/output pairs among THINGS. * guix/derivations.scm (build-derivations): Likewise. * tests/store.scm ("substitute + build-things with specific output"): New test. * tests/derivations.scm ("build-derivations with specific output"): New test. * doc/guix.texi (The Store): Adjust accordingly.
2019-06-10ssh: Add missing import.Ludovic Courtès
* guix/ssh.scm: Use (ice-9 format).
2019-06-10download: Update list of content-addressed mirrors.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors): Change "berlin.guixsd.org" to "ci.guix.gnu.org" and move it first.
2019-06-10gnu-maintenance: Switch to ftp.mirrorservice.org for KDE updater.Marius Bakke
mirrors.mit.edu seems no longer available over FTP. * guix/gnu-maintenance.scm (latest-kde-release): Change from mirrors.mit.edu to ftp.mirrorservice.org.
2019-06-07import: utils: 'specs->package-lists' correctly matches "out".Ludovic Courtès
* guix/import/utils.scm (specs->package-lists): Match "out", not ("out").
2019-06-07import: print: Honor the outputs of inputs (!).Ludovic Courtès
Fixes <http://bugs.gnu.org/35893>. Reported by Jesse Gibbons <jgibbons2357@gmail.com>. * guix/import/print.scm (package->code)[package-lists->code]: Preserve OUT in the result. * tests/print.scm (define-with-source): New macro. (pkg): Use it. (pkg-source): New variable. (pkg-with-inputs, pkg-with-inputs-source): New variables. ("simple package"): Refer to 'pkg-source'. ("package with inputs"): New test.
2019-06-07pack: Add '--entry-point'.Ludovic Courtès
* guix/scripts/pack.scm (self-contained-tarball): Add #:entry-point and warn when it's true. (squashfs-image): Add #:entry-point and honor it. (docker-image): Add #:entry-point and honor it. (%options, show-help): Add '--entry-point'. (guix-pack): Honor '--entry-point' and pass #:entry-point to BUILD-IMAGE. * gnu/tests/docker.scm (run-docker-test): Test 'docker run' with the default entry point. (build-tarball&run-docker-test): Pass #:entry-point to 'docker-image'. * doc/guix.texi (Invoking guix pack): Document it. * gnu/tests/singularity.scm (run-singularity-test)["singularity run"]: New test. (build-tarball&run-singularity-test): Pass #:entry-point to 'squashfs-image'.
2019-06-06guix: git-download: Remove explicit import.Robert Vollmert
With guile-git version 0.2, repository-working-directory is no longer private. * guix/git-download.scm (git-file-list): Refer to public repository-working-directory. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-06-05nar: Really lock store files.Ludovic Courtès
Previously, 'lock-store-file' would immediately close the file descriptor of the '.lock' file, and thus it would immediately release the lock. * guix/nar.scm (lock-store-file, unlock-store-file): Remove. (finalize-store-file): Use 'lock-file' and 'unlock-file' instead.
2019-06-05syscalls: 'with-lock-file' catches ENOSYS.Ludovic Courtès
* guix/build/syscalls.scm (call-with-file-lock): Catch ENOSYS raised by 'lock-file'.
2019-06-05syscalls: 'with-file-lock' expands to a call to 'call-with-file-lock'.Ludovic Courtès
* guix/build/syscalls.scm (call-with-file-lock): New procedure. (with-file-lock): Expand to a call to 'call-with-file-lock'.
2019-06-05syscalls: Add 'with-file-lock' macro.Ludovic Courtès
* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock): Move to... * guix/build/syscalls.scm: ... here.
2019-06-05guix package: Do not list environment variables that need to be set.Ludovic Courtès
Fixes <https://bugs.gnu.org/35942>. * guix/scripts/package.scm (display-search-paths): Rename to... (display-search-path-hint): ... this. Adjust callers. Remove #:kind parameter. Replace the list of environment variables with an invitation to source $GUIX_PROFILE/etc/profile or run 'guix package --search-paths'.
2019-06-03deprecation: Use the 'warning' procedure for diagnostics.Ludovic Courtès
Until now, (guix deprecation) had its own warning mechanism, which was inconsistent (it did not use colors, etc.) * guix/deprecation.scm (deprecation-warning-port): Remove (source-properties->location-string): Remove. (warn-about-deprecation): Use 'warning' instead of 'format'. (define-deprecated, define-deprecated/alias): Adjust docstring. * guix/channels.scm (build-from-source): Refer to 'guix-warning-port' instead of 'deprecation-warning-port'.
2019-06-03Add (guix diagnostics).Ludovic Courtès
* guix/ui.scm (warning, info, report-error, leave) (location->string, guix-warning-port, program-name) (highlight-argument, %highlight-argument, define-diagnostic) (%warning-color, %info-color, %error-color) (print-diagnostic-prefix): Move to... * guix/diagnostics.scm: ... here. New file. * Makefile.am (MODULES): Add it.