aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Expand)AuthorAge
* Merge branch 'master' into core-updatesLudovic Courtès2019-06-27
|\
| * ui: 'show-derivation-outputs' accepts <derivation-input> records.•••* guix/ui.scm (show-derivation-outputs): Handle <derivation-input> records. Ludovic Courtès2019-06-27
| * ui: 'show-what-to-build' accepts derivation inputs.•••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'. Ludovic Courtès2019-06-27
| * derivations: 'build-derivations' can be passed derivation inputs.•••* guix/derivations.scm (build-derivations): Accept <derivation-input> records among DERIVATIONS. * tests/derivations.scm ("build-derivations with specific output"): Test it. Ludovic Courtès2019-06-27
| * derivations: 'derivation' preserves pointer equality.•••* guix/derivations.scm (derivation): Check if FILE is already in %DERIVATION-CACHE and return it if it is. Ludovic Courtès2019-06-27
| * derivations: <derivation-input> now aggregates a <derivation>.•••Consequently, the whole graph of <derivation> object is readily available without having to go through 'read-derivation-from-file', which could have cache misses if the requested <derivation> object had been GC'd in the meantime. This is an important property for the performance of things like 'derivation-build-plan' that traverse the derivation graph. * guix/derivations.scm (<derivation-input>): Replace 'path' field by 'derivation'. (derivation-input-path): Adjust accordingly. (derivation-input-key): New procedure. (derivation-input-output-paths): Adjust accordingly. (coalesce-duplicate-inputs): Likewise. (derivation-prerequisites): Use 'derivation-input-key' to compute keys for INPUT-SET. (derivation-build-plan): Likewise. (read-derivation): Add optional 'read-derivation-from-file' parameter. [make-input-drvs]: Call it. (write-derivation)[write-input]: Adjust to new <derivation-input>. (derivation/masked-inputs): Likewise, and remove redundant 'coalesce-duplicate-inputs' call. (derivation)[input->derivation-input]: Change to consider only the derivation case. Update call to 'make-derivation-input'. [input->source]: New procedure. Separate sources from inputs. (map-derivation): Adjust to new <derivation-input>. * tests/derivations.scm ("parse & export"): Pass a second argument to 'read-derivation'. ("build-expression->derivation and derivation-prerequisites") ("derivation-prerequisites and valid-derivation-input?"): Adjust to new <derivation-input>. Ludovic Courtès2019-06-27
| * graph: Use 'derivation-input-derivation'.•••* guix/scripts/graph.scm (derivation-dependencies): Use 'derivation-input-derivation'. Ludovic Courtès2019-06-27
| * ui: 'show-what-to-build' uses 'derivation-build-plan'.•••* guix/ui.scm (show-what-to-build)[build-or-substitutable?]: Remove. Use 'derivation-build-plan' instead of 'derivation-prerequisites-to-build', passing it all of DRV at once, and remove 'fold2' shenanigans and postprocessing of BUILD. Ludovic Courtès2019-06-27
| * derivations: Rewrite and replace 'derivations-prerequisites-to-build'.•••The new 'derivation-build-plan' procedure has a more appropriate signature: it takes a list of <derivation-inputs> instead of taking one <derivation>. Its body is also much simpler. * guix/derivations.scm (derivation-build-plan): New procedure. (derivation-prerequisites-to-build): Express in terms of 'derivation-build-plan' and mark as deprecated. * tests/derivations.scm: Change 'derivation-prerequisites-to-build' tests to 'derivation-build-plan' and adjust accordingly. Ludovic Courtès2019-06-27
| * derivations: Add 'derivation-input'.•••* guix/derivations.scm (derivation-input): New procedure. * tests/grafts.scm (make-derivation-input): Remove. ("graft-derivation, unused outputs not depended on"): Use 'derivation-input'. Ludovic Courtès2019-06-27
| * ui: Add 'display-search-results' and use it.•••* 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'. Ludovic Courtès2019-06-27
| * syscalls: Add 'terminal-rows'.•••* 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. Ludovic Courtès2019-06-27
| * ui: 'relevance' considers regexps connected with a logical and.•••* guix/ui.scm (relevance)[score]: Change to return 0 when one of REGEXPS doesn't match. * tests/ui.scm ("package-relevance"): New test. Ludovic Courtès2019-06-27
| * compile: Enable 'shadowed-toplevel' warning.•••* guix/build/compile.scm (%warnings): Add 'shadowed-toplevel'. Ludovic Courtès2019-06-25
| * progress: Call 'time-difference' on times of the same type.•••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. Ludovic Courtès2019-06-24
| * publish: Work around Guile 2.2.5 (web server) bug.•••* guix/scripts/publish.scm: Replace (@@ (web http) read-header-line) on Guile 2.2.5. Ludovic Courtès2019-06-24
| * guix build: '--log-file' no longer returns several log files.•••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. Ludovic Courtès2019-06-23
| * guix build: Use 'warning' for warnings.•••* guix/scripts/build.scm (options->derivations): Use 'warning' instead of 'format'. Ludovic Courtès2019-06-23
* | build-system/python: Export 'python-version'.•••* 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'. Ludovic Courtès2019-06-21
* | packages: Retain version in file name when repacking source checkouts.•••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. Marius Bakke2019-06-20
* | Merge branch 'staging' into core-updatesMarius Bakke2019-06-20
|\|
| * licenses: Add Historical Permission Notice and Disclaimer license•••* gnu/licenses.scm (hpnd): New variable. Giovanni Biscuolo2019-06-20
| * utils: canonical-newline-port: Fix handling of carriage return at buffer end.•••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> Robert Vollmert2019-06-20
| * grafts: Avoid 'query-valid-derivers' RPC.•••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'. Ludovic Courtès2019-06-19
| * derivations: Add 'derivation-input-derivation'.•••* guix/derivations.scm (derivation-input-derivation): New procedure. (derivation-prerequisites): Use it. Ludovic Courtès2019-06-19
| * guix build: '--log-file' looks for build logs of equivalent derivations.•••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'. Ludovic Courtès2019-06-18
| * Merge branch 'staging'Marius Bakke2019-06-15
| |\
| | * build-system/haskell: Generate Setup.hs if needed.•••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> Robert Vollmert2019-06-13
| | * build-system/haskell: Fix Haddock phase docstring.•••* guix/build/haskell-build-system.scm (haddock): Fix docstring. Signed-off-by: Timothy Sample <samplet@ngyro.com> Robert Vollmert2019-06-13
| * | import: hackage: Handle Hackage revisions.•••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> Robert Vollmert2019-06-13
* | | utils: Add 'invoke/quiet'.•••* 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). Ludovic Courtès2019-06-17
* | | packages: 'patch-and-repack' no longer uses #:deprecation-warnings.•••* guix/packages.scm (patch-and-repack): Remove #:deprecation-warnings argument passed to 'gexp->derivation'. Ludovic Courtès2019-06-17
* | | gexp: Remove #:pre-load-modules? parameter.•••* 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?. Ludovic Courtès2019-06-17
* | | self: Don't build (guix tests …).•••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. Ludovic Courtès2019-06-15
* | | build-system/gnu: Make 'first-subdirectory' deterministic.•••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. Ludovic Courtès2019-06-14
* | | packages: Remove 'search-bootstrap-binary'.•••* 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. Ludovic Courtès2019-06-14
* | | tests: Make builds less expensive.•••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. Ludovic Courtès2019-06-14
* | | gnu: bootstrap: Download the bootstrap bash, mkdir, tar, and xz binaries.•••* 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. Ludovic Courtès2019-06-14
* | | download: Add 'url-fetch/executable'.•••* 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. Ludovic Courtès2019-06-14
* | | Merge branch 'master' into core-updatesLudovic Courtès2019-06-13
|\| |
| * | import: crate: Define dependencies as arguments.•••* 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> Ivan Petkov2019-06-11
| * | build-system/cargo: Don't copy source as an output.•••* 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> Ivan Petkov2019-06-11
| * | build-system/cargo: Use sources from package sources.•••* 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> Ivan Petkov2019-06-11
| * | build-system/cargo: Expand transitive crate sources.•••* 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> Ivan Petkov2019-06-11
| |/
| * pack: Fix 'guix pack -f docker'.•••Regression introduced in a0f352b30f4869a7af7017b8a5011ac7602dd115. * guix/scripts/pack.scm (docker-image): Check whether ENTRY-POINT is true before returning (string-append #$profile ...). Ludovic Courtès2019-06-10
| * store: 'build-things' accepts derivation/output pairs.•••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. Ludovic Courtès2019-06-10
| * ssh: Add missing import.•••* guix/ssh.scm: Use (ice-9 format). Ludovic Courtès2019-06-10
| * download: Update list of content-addressed mirrors.•••* guix/download.scm (%content-addressed-mirrors): Change "berlin.guixsd.org" to "ci.guix.gnu.org" and move it first. Ludovic Courtès2019-06-10
| * gnu-maintenance: Switch to ftp.mirrorservice.org for KDE updater.•••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. Marius Bakke2019-06-10
| * import: utils: 'specs->package-lists' correctly matches "out".•••* guix/import/utils.scm (specs->package-lists): Match "out", not ("out"). Ludovic Courtès2019-06-07