summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2020-12-08guix: opam: Remove stray `pk'....* guix/import/opam.scm (opam->guix-package): Remove stray `pk'. Julien Lepiller
2020-12-07ci: Add "evaluation" method....* guix/ci.scm (evaluation): New procedure. Mathieu Othacehe
2020-12-07ci: Add evaluation field to build record....* guix/ci.scm (<build>): Add "evaluation" field. Mathieu Othacehe
2020-12-07profiles: Delete duplicate manifest entries in packages->manifest....* gnu/profiles.scm (packages->manifest): Delete duplicate entries. * tests/profiles.scm ("packages->manifest, no duplicates"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Leo Prikler
2020-12-07profiles: Remove duplicates in manifest transactions....Fixes <https://bugs.gnu.org/23874>. Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. * guix/profiles.scm (manifest-transaction-effects): Delete duplicates in install and remove. Let multiple upgrades and downgrades shadow previous transactions of the same kind. * tests/profiles.scm ("manifest-transaction-effects no double install or upgrades") ("manifest-transaction-effects no double downgrade") ("manifest-transaction-effects no double removal"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Leo Prikler
2020-12-05ui: Handle multiword and empty $PAGER values....* guix/ui.scm (call-with-paginated-output-port): Empty PAGER values disable paging. Non-empty ones are split into command arguments. Reported by Daniel Brooks <db48x@db48x.net>. Tobias Geerinckx-Rice
2020-12-05pull: Accept no non-option arguments....* guix/scripts/pull.scm (guix-pull): LEAVE if any non-option arguments were passed. Tobias Geerinckx-Rice
2020-12-05scripts: discover: Check for cache file existence....Fixes: https://issues.guix.gnu.org/45045. * guix/scripts/discover.scm (read-substitute-urls): Check for file existence. Mathieu Othacehe
2020-12-04git: 'reference-available?' handles short commit IDs....Reported by Simon Tournier on #guix. Until now 'reference-available?' would always return #f when passed a short commit ID. * guix/git.scm (reference-available?): Call 'object-lookup-prefix' when COMMIT is shorter than 40 characters. Ludovic Courtès
2020-12-04import: crate: Skip tests when Guile-Semver is missing....* guix/import/crate.scm: Add comment for the 'module-autoload!' calls. * tests/crate.scm (have-guile-semver?): New variable. ("crate->guix-package", "cargo-recursive-import") ("cargo-recursive-import-hoors-existing-packages"): Skip when HAVE-GUILE-SEMVER? is false. Ludovic Courtès
2020-12-04scripts: substitute: Fix discover option....The discover option can be unset or set to "yes/no". Handle both cases. * guix/scripts/substitute.scm (%local-substitute-urls): Fix discover option. Mathieu Othacehe
2020-12-04import/cran: Do not attempt to generate definitions for failed imports....* guix/scripts/import/cran.scm (guix-import-cran): Remove failed imports from list of packages to define. Ricardo Wurmus
2020-12-04import/cran: Fix calls to CRAN->GUIX-PACKAGE....* guix/import/cran.scm (cran->guix-package, latest-bioconductor-release): Invoke CRAN->GUIX-PACKAGE with #:REPO keyword argument. Ricardo Wurmus
2020-12-03build-system: Add chicken-build-system....* guix/build-system/chicken.scm: New file. * guix/build/chicken-build-system.scm: New file. * Makefile.am: Add them. * doc/guix.texi: Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> raingloom
2020-12-03self: Factorize package dependency enumeration....* guix/self.scm (transitive-package-dependencies): New procedure. (compiled-guix)[dependencies]: Use it. Ludovic Courtès
2020-12-03gnu: guile-semver: Switch to Guile 3.0....* gnu/packages/guile-xyz.scm (guile-semver)[inputs]: Use GUILE-3.0. (guile3.0-semver): Define in terms of 'deprecated-package'. (guile2.2-semver): New variable. Ludovic Courtès
2020-12-02import: crate: Use existing package satisfying semver requirement....If a package satisfying the dependency's semver requirement already exists, use it. Prior to this change the highest version matching the semver requirement was used (and imported in case it was not defined as package already). When resolving a dependency (now done in `sort-map-dependencies`), first search for a package matching the semver requirement and only if this fails reach out for a crate. * guix/import/crate.scm (crate->guix-package)[find-package-version]: New function. [dependency-name+version]: New function. [sort-map-dependencies]: Use it instead of lambda function. * tests/crate.scm (test-doctool-crate, test-doctool-dependencies): New variables. ("self-test …", "cargo-recursive-import-hoors-existing-packages"): New tests. Hartmut Goebel
2020-12-02import: crate: Trim version for names after left-most non-zero part....This complies to how versions are matched for caret requirements in crates: An update is allowed if the new version number does not modify the left-most non-zero digit in the major, minor, patch grouping. * guix/import/crate.scm (version->semver-prefix): New function. (make-crate-sexp)[format-inputs]: Use it. (make-crate-sexp): Use it to pass shorter version to package->definition. * guix/import/utils.scm (package->definition): Change optional parameter APPEND-VERSION? into APPEND-VERSION?/STRING. If it is a string, append its value to name. * tests/crate.scm: Adjust tests accordingly. Hartmut Goebel
2020-12-02import: utils: Trim patch version from names....This remove the patch version from generated package names. For example 'rust-my-crate-1.1.2' now becomes 'rust-my-crate-1.1'. * guix/import/utils.scm (package->definition): Trim patch version from generated package names. * tests/crate.scm: (cargo>guix-package, cargo-recursive-import): Likewise. Hartmut Goebel
2020-12-02import: crate: Parameterized importing of dev dependencies....The recursive crate importer will now include development dependencies only for the top level package, but not for any of the recursively imported packages. Also #:skip-build will be false for the top-most package. * guix/import/crate.scm (make-crate-sexp): Add the key BUILD?. (crate->guix-package): Add the key INCLUDE-DEV-DEPS?. (crate-recursive-import): Likewise. * guix/scripts/import/crate.scm (guix-import-crate): Likewise. * tests/crate.scm (cargo-recursive-import): Likewise. Martin Becze
2020-12-02import: crate: Memorize crate->guix-package....This adds memorization to procedures that involve network lookups. 'lookup-crate*' is used on every dependency of a package to get its version list. It is also used to lookup a package's metadata. 'crate-recursive-import' is also memorized since creating the same package twice will trigger a lookup on its dependencies. * guix/import/crate.scm (lookup-crate*): New procedure. (crate->guix-package): Memorize package metadata lookups. (crate-recursive-import): Memorize package creation. Martin Becze
2020-12-02import: crate: Use guile-semver to resolve module versions....* guix/import/crate.scm: Add guile-semver as a soft dependency. (make-crate-sexp): Don't allow other keys. Add '#:skip-build?' to build system args. Pass a VERSION argument to 'cargo-inputs'. (crate->guix-package): Use guile-semver to resolve the correct module versions. Treat "build" dependencies as normal dependencies. (crate-name->package-name): Reuse the procedure 'guix-name' instead of duplicating its logic. * guix/import/utils.scm (package-names->package-inputs): Implement handling of (name version) pairs. * guix/scripts/import/crate.scm (guix-import-crate): Use crate-recursive-import instead of duplicate code. * tests/crate.scm (recursive-import): Change test packages versions to be distinguishable. Add version data to the test. Check created symbols, too. Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com> Martin Becze
2020-12-02import: utils: 'recursive-import' accepts an optional version parameter....This adds a key VERSION to 'recursive-import' and moves the parameter REPO to a key. This also changes all the places that rely on 'recursive-import'. * guix/import/utils.scm (recursive-import): Add the VERSION key. Make REPO a key. (package->definition): Add optional 'append-version?'. * guix/scripts/import/crate.scm (guix-import-crate): Add the VERSION key. * guix/import/crate.scm (crate->guix-package): Add the VERSION key. (crate-recursive-import): Pass VERSION to recursive-import, remove now unnecessary code. * guix/import/cran.scm (cran->guix-package, cran-recursive-import): Change the REPO parameter to a key. * guix/import/elpa.scm (elpa->guix-package, elpa-recursive-import): Likewise. * guix/import/gem.scm (gem->guix-package, recursive-import): Likewise. * guix/import/opam.scm (opam-recurive-import): Likewise. * guix/import/pypi.scm (pypi-recursive-import): Likewise. * guix/import/stackage.scm (stackage-recursive-import): Likewise. * guix/scripts/import/cran.scm (guix-import-cran): Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa): Likewise. * tests/elpa.scm (eval-test-with-elpa): Likewise. * tests/import-utils.scm (recursive-import): Likewise. Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com> Martin Becze
2020-12-02guix: self: Add guile-semver as a depenedency....* guix/self.scm (compiled-guix): Add guile-semver as a depenedency. Martin Becze
2020-12-01upgrade: Allow several regexps....Fixes <https://bugs.gnu.org/44928>. Reported by Luis Felipe <luis.felipe.la@protonmail.com>. * guix/scripts/upgrade.scm (guix-upgrade): Allow several regexps and remove "extraneous arguement" check. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> zimoun
2020-11-29processes: Add '--format' and the "normalized" format....* guix/scripts/processes.scm (lock->recutils): New procedure. (daemon-session->recutils): Use it. (daemon-sessions->recutils, session-key->recutils) (session-scalars->normalized-record) (child-process->normalized-record) (daemon-sessions->normalized-record): New procedures. (session-rec-type, lock-rec-type, child-process-rec-type) (%available-formats): New variables. (list-formats): New procedure. (%options, show-help): Add '--format'. (%default-options): New variable. (guix-processes): Use 'parse-command-line' instead of 'args-fold*'. Honor the 'format' value in OPTIONS. * doc/guix.texi (Invoking guix processes): Document '--format'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> John Soo
2020-11-29processes: Put ChildProcess and ChildPID on separate lines....* guix/scripts/processes.scm (daemon-session->recutils): Put child process information in separate fields. * doc/guix.texi (Invoking guix processes): Document change in output of 'guix processes'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> John Soo
2020-11-29Make "guile-avahi" dependency optional....* configure.ac (HAVE_GUILE_AVAHI): New conditional. * Makefile.am (MODULES): Add "guix/avahi.scm" and "guix/scripts/discover.scm" if HAVE_GUILE_AVAHI is set. * guix/scripts/publish.scm: Autoload (guix avahi). * guix/scripts/substitute.scm: Autoload (guix scripts discovery). Mathieu Othacehe
2020-11-29self: Fix guile-avahi lookup....This is a follow-up of 375cc7dea20da7117c9459e4a4d15144095e015b. * guix/self.scm (specification->package): Search for "guile-avahi" in (gnu package guile-xyz). Mathieu Othacehe
2020-11-29Use substitute servers on the local network....* guix/scripts/discover.scm: New file. * Makefile.am (MODULES): Add it. * nix/nix-daemon/guix-daemon.cc (options): Add "discover" option, (parse-opt): parse it, (main): start "guix discover" process when the option is set. * guix/scripts/substitute.scm (%local-substitute-urls): New variable, (substitute-urls): add it. * gnu/services/base.scm (<guix-configuration>): Add "discover?" field, (guix-shepherd-service): honor it. * doc/guix.texi (Invoking guix-daemon): Document "discover" option, (Base Services): ditto. Mathieu Othacehe
2020-11-29publish: Add advertising support....* guix/scripts/publish.scm (%options): Add "--advertise" option. (show-help): Document it. (service-name): New procedure, (publish-service-type): new variable. (run-publish-server): Add "advertise?" and "port" parameters. Use them to publish the server using Avahi. (guix-publish): Pass the "advertise?" option to "run-publish-server". * gnu/services/base.scm (<guix-publish-configuration>): Add "advertise?" field. (guix-publish-shepherd-service): Honor it. Mathieu Othacehe
2020-11-29Add Avahi support....* guix/avahi.scm: New file. * Makefile.am (MODULES): Add it. * configure.ac: Add Guile-Avahi dependency. * doc/guix.texi (Requirements): Document it. * gnu/packages/package-management.scm (guix)[native-inputs]: Add "guile-avahi", [propagated-inputs]: ditto. * guix/self.scm (specification->package): Add guile-avahi. (compiled-guix): Ditto. Mathieu Othacehe
2020-11-28Merge branch 'staging'Marius Bakke
2020-11-28channels: Expose the default channel in %default-channel....* guix/channels(%default-guix-channel): New variable taken from the inner of %default-channels. (%default-channels): Refactored. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Zhu Zihao
2020-11-26Merge branch 'master' into stagingMarius Bakke
2020-11-26deploy: Let key-and-args exceptions through....Fixes <https://bugs.gnu.org/44825>. Reported by Christopher Lemmer Webber <cwebber@dustycloud.org>. * guix/ui.scm (guard*): Export. * guix/scripts/deploy.scm (deploy-machine*): Use 'guard*' instead of 'guard'. Add '&exception-with-kind-and-args' case. Ludovic Courtès
2020-11-26Merge branch 'master' into stagingMarius Bakke
2020-11-25weather: Fix '--substitute-urls'....Fixes <https://bugs.gnu.org/44574>. Reported by Efraim Flashner <efraim@flashner.co.il>. * guix/scripts/weather.scm (guix-weather): Fix when substitute-urls is a list. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> zimoun
2020-11-23Merge branch 'master' into stagingMarius Bakke
2020-11-23store: Fix ensure-path docstring....Suggested by Ludovic Courtès. * guix/store.scm (ensure-path): Fix the docstring. Mathieu Othacehe
2020-11-22Merge branch 'master' into stagingMarius Bakke
2020-11-22build-system/cargo: Set gettext environment variable when available....* guix/build/cargo-build-system.scm (configure): When gettext is available in the build environment set the GETTEXT_SYSTEM variable. * gnu/packages/crates-io.scm (rust-gettext-rs-0.5, rust-gettext-rs-0.4, rust-gettext-sys-0.19)[arguments]: Remove phase to help find system gettext. Efraim Flashner
2020-11-22build-system/cargo: Set libclang environment variable when available....* guix/build/cargo-build-system.scm (configure): When clang is available in the build environment set the LIBCLANG_PATH variable. * gnu/packages/crates-graphics.scm (rust-aom-sys-0.1, uust-dav1d-sys-0.3), * gnu/packages/crates-io.scm (rust-bindgen-0.55, rust-bindgen-0.54, rust-bindgen-0.53, rust-bindgen-0.52, rust-cexpr-0.4, rust-cexpr-0.3, rust-cexpr-0.2, rust-clang-sys-1, rust-clang-sys-0.29, rust-clang-sys-0.26, rust-clang-sys-0.22, rust-clang-sys-0.11, rust-libpijul-0.12, rust-nettle-7, rust-nettle-sys-2, rust-sequoia-openpgp-0.9)[arguments]: Remove phases which set an environment variable to find clang. [inputs]: Rename instances of libclang with clang. Efraim Flashner
2020-11-22build-system/cargo: Set openssl environment variable when available....* guix/build/cargo-build-system.scm (configure): When openssl is available set the OPENSSL_DIR variable to discover its location. * gnu/packages/crates-io.scm (rust-curl-sys-0.4, rust-libgit2-sys-0.10, rust-libpijul-0.12, rust-libssh2-sys-0.2, rust-native-tls-0.2, rust-openssl-sys-0.9, rust-openssl-0.7, rust-trust-dns-rustls-0.6), * gnu/packages/rust-apps.scm (tokei, exa)[arguments]: Remove redundant setenv for openssl. Efraim Flashner
2020-11-22scripts: publish: Export procedures....* guix/scripts/publish.scm (open-server-socket, run-publish-server): Export those procedures. (%default-gzip-compression): Export it. Mathieu Othacehe
2020-11-22guix: store: Add ensure-path....* guix/store.scm (ensure-path): New procedure. Mathieu Othacehe
2020-11-22linux-initrd: Add special-file->cpio-header*....* guix/cpio.scm (special-file->cpio-header*): New public procedure. Danny Milosavljevic
2020-11-22linux-initrd: Handle 'block-special and 'char-special cpio headers as well....* guix/cpio.scm (make-cpio-header): Handle size correctly for all file types. (mode->type): Add 'block-special, 'char-special. Danny Milosavljevic
2020-11-21lint: Add 'check-haskell-stackage' checker....* guix/lint.scm (check-haskell-stackage): New procedure. (%network-dependent-checkers): Add 'haskell-stackage' checker. * guix/import/hackage.scm (%hackage-url): New variable. (hackage-source-url, hackage-cabal-url): Use it in place of a hard-coded string. * guix/import/stackage.scm (%stackage-url): Make it a parameter. (stackage-lts-info-fetch): Update accordingly. * tests/lint.scm ("hackage-stackage"): New test. Timothy Sample
2020-11-21lint: Add 'patch-headers' checker....* guix/lint.scm (check-patch-headers): New procedure. (%local-checkers): Add 'patch-headers' checker. * tests/lint.scm ("patch headers: no warnings") ("patch headers: missing comment", "patch headers: empty") ("patch headers: patch not found"): New tests. Ludovic Courtès