summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
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
2020-11-21transformations: Show '--help-transform' only where applicable....Fixes <https://bugs.gnu.org/44773>. Reported by Florian Pelz <pelzflorian@pelzflorian.de>. This fixes a regression introduced in 6701f64f7329cdbeda70bcaf38523c9098e5a938. * guix/transformations.scm (%transformation-options): Add "--help-transform". (show-transformation-options-help): Rename to... (show-transformation-options-help/detailed): ... this. (show-transformation-options-help): New public procedure. * guix/scripts/build.scm (show-build-options-help): Remove "--help-transform". (%standard-build-options): Likewise. (show-help): Call 'show-transformation-options-help'. * guix/scripts/environment.scm (show-help): Likewise. * guix/scripts/graph.scm (show-help): Likewise. * guix/scripts/install.scm (show-help): Likewise. * guix/scripts/pack.scm (show-help): Likewise. * guix/scripts/package.scm (show-help): Likewise. * guix/scripts/upgrade.scm (show-help): Likewise. Ludovic Courtès
2020-11-21scripts: lint: Display result of checkers on stdout....* guix/scripts/lint.scm (emit-warnings): Use 'current-output-port' instead of 'current-error-port'. Signed-off-by: Christopher Baines <mail@cbaines.net> Brice Waegeneire
2020-11-20build-system/cargo: Do not pass --features to Cargo unless specified....Fixes <https://bugs.gnu.org/44692>. * guix/build/cargo-build-system.scm (build): Default to the empty list for FEATURES. Check whether the list is empty when building the Cargo arguments. Marius Bakke
2020-11-19Merge branch 'master' into stagingMarius Bakke
2020-11-18guix: refresh: Do not use argument jumping with ngettext....* guix/scripts/refresh.scm (list-dependents)[lst]: Use ~d for the singular format string, as the argument jumping would trigger an error during en@boldquot.mo generation. Miguel Ángel Arruga Vivas
2020-11-17Merge remote-tracking branch 'origin/version-1.2.0' into master...Conflicts: gnu/packages/bioinformatics.scm The python-pysam package fixed in master was kept instead of the update done in the version-1.2.0 branch. Maxim Cournoyer
2020-11-17guix: system: Make disk-image root file system non-volatile by default....And add a new '--volatile' option to have it volatile otherwise. * guix/scripts/system.scm (%options)[volatile-root?]: New boolean option. (%default-options): Set its default value to #f. (show-help): Add help doc. * guix/scripts/system.scm (perform-action): Propagate option... (system-derivation-for-action): ...here. Use it to set the volatile-root? field of the image object passed to SYSTEM-IMAGE. * doc/guix.texi (Invoking guix system): Document it. Maxim Cournoyer
2020-11-16pull: Do not suggest running `guix pull --news' on the first run....* guix/scripts/pull.scm (display-channel-news-headlines): If there are no news to display, return false instead of <unspecified>. Florian Pelz
2020-11-16self: Limit the number of threads used when translating manuals....* guix/self.scm (translate-texi-manuals)[build](parallel-jobs): New variable. Use it as first argument to 'n-par-for-each'. Ludovic Courtès
2020-11-16utils: Add 'cxx-for-target'....* guix/utils.scm (cxx-for-target): New procedure. Danny Milosavljevic
2020-11-16publish: Harmonize buffer size values and configuration....This change harmonizes the way we configure the buffer sizes and the socket options, so that we don't forget to change it at one place like it happened in commit 5e3d169945935b53325e6b738a307ba286751259. * guix/scripts/publish.scm (%default-buffer-size) (%default-socket-options): New variables. * guix/scripts/publish.scm (configure-socket): New procedure. (compress-nar): Use %default-buffer-size for the buffer size, increased from 128 to 208 KiB. (nar-response-port): Likewise, increased from 64 to 208 KiB. (http-write): Use configure-socket to set socket options. (open-server-socket): Likewise. Maxim Cournoyer
2020-11-15Merge branch 'master' into stagingMarius Bakke
2020-11-15archive: Warn about replacing an ACL symlink....* guix/scripts/archive.scm (authorize-key): Warn when %ACL-FILE is a symbolic link and print an additional hint for Guix System users. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Tobias Geerinckx-Rice
2020-11-14guix: hg-download: Add hg-predicate....`hg-predicate' acts for mercurial repositories as `git-predicate' acts for git-repositories. * guix/hg-download.scm (hg-predicate): New procedure. Signed-off-by: Christopher Baines <mail@cbaines.net> Holger Peters
2020-11-13guix build: Expose log-url for third parties....* guix/scripts/build.scm (log-url): Expose it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> John Soo
2020-11-13pack: Expose some bindings for third-party use....* guix/scripts/pack.scm (compressor-name, compressor-extension, compressor-command, %compressors, %formats): Export. Signed-off-by: Ludovic Courtès <ludo@gnu.org> John Soo