summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2021-06-29ui: Have 'guix help' stat less....This reduces the number of syscalls for: env -i $(type -P strace) -c $(type -P guix) help from 4.3K to 2.2K, thereby reducing startup time. Reported by Julien Lepiller. * guix/ui.scm (run-guix-command): Move %FILE-PORT-NAME-CANONICALIZATION to... (run-guix): ... here. Ludovic Courtès
2021-06-28guix: Delete duplicates from emacs-load-path....It has been reported in IRC, that directories may show up multiple times in subdirs.el, probably a result of propagation. This can for instance be seen by ‘guix environment --ad-hoc emacs emacs-guix’, which will generate multiple references to dash. With this patch only one reference per package is generated. * guix/profiles.scm (emacs-subdirs): wrap subdirs added to ‘normal-top-level-add-to-load-path’ in ‘delete-duplictes’. Leo Prikler
2021-06-28import: go: Fix match-error in 'go-package-description'...* guix/import/go.scm (go-package-description): Make sure description* is always a list, so the result is properly matched. Signed-off-by: Björn Höfling <bjoern.hoefling@bjoernhoefling.de> Sarah Morgensen via Guix-patches via
2021-06-25download: 'tls-wrap' retries handshake upon non-fatal errors....Fixes <https://bugs.gnu.org/49223>. Reported by Domagoj Stolfa <ds815@gmx.com>. * guix/build/download.scm (tls-wrap): Retry up to 5 times when 'handshake' throws a non-fatal error. Ludovic Courtès
2021-06-25guix substitute: Adjust comment about GnuTLS bug....* guix/scripts/substitute.scm (call-with-cached-connection): Adjust comment. Ludovic Courtès
2021-06-25import: hackage: Support "common" field and imports...Fixes <https://issues.guix.gnu.org/48701>. * guix/import/cabal.scm (make-cabal-parser): Modify. (is-common): New variable. (lex-common): New procedure. (is-id): Modify. (eval-cabal): Modify. * tests/hackage.scm ("hackage->guix-package test cabal import") New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Philip Munksgaard
2021-06-25reconfigure: Use 'formatted-message'....* guix/scripts/system/reconfigure.scm (ensure-forward-reconfigure): Use 'formatted-message'. * guix/scripts/deploy.scm (deploy-machine*): Handle it. Ludovic Courtès
2021-06-25deploy: Leave on hard error....Previously, the error message would be displayed, followed by a backtrace ending in &non-continuable. * guix/scripts/deploy.scm (deploy-machine*): Call 'leave' rather than 'report-error' when C is a &message. Ludovic Courtès
2021-06-24gnu: Add ausweisapp2....* gnu/packages/security-token.scm (ausweisapp2): New variable. * guix/licenses.scm (eupl1.2): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Sergey Trofimov
2021-06-24lint: 'github-url' checker gracefully handles networking errors....Fixes <https://bugs.gnu.org/49114>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/lint.scm (call-with-networking-fail-safe, with-networking-fail-safe): Move higher in the file. * guix/lint.scm (check-github-url): Wrap call to 'follow-redirects-to-github' in 'with-networking-fail-safe'. Ludovic Courtès
2021-06-24lint: 'with-networking-fail-safe' handles 'gnutls-error' exceptions....* guix/lint.scm (call-with-networking-fail-safe): Add clause for 'gnutls-error'. Ludovic Courtès
2021-06-24build: Make outputs of node-build-system reproducible....package.json records two hashes of package.tgz, which change for each build, resulting in non-reproducible builds. * guix/build/node-build-system.scm (repack): Add reproducibility options to tar command. Lars-Dominik Braun
2021-06-23gexp: 'mixed-text-file' UTF-8-encodes its output....* guix/gexp.scm (mixed-text-file)[build]: Call 'set-port-encoding!'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Tropin
2021-06-22profiles: Build union of inputs in the right order....Fixes <https://bugs.gnu.org/49102>. Reported by Mathieu Othacehe <othacehe@gnu.org> and Tobias Geerinckx-Rice <me@tobias.gr>. Fixes a regression introduced in 8cef92d0633850d97c1a1d4521812268f56672be, whereby in case of file collisions, the "wrong" one would take precedence. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Perform a breadth-first traversal. Reverse INPUTS and SEARCH-PATHS in the base case. * tests/profiles.scm ("profile-derivation, ordering & collisions"): New test. Ludovic Courtès
2021-06-22guix: java-utils: Look for actual jar files....* guix/build/java-utils.scm (install-from-pom): Fix `find-files` to look only for jar files. Julien Lepiller
2021-06-22guix: maven: Use a temporary file to fix pom files....* guix/build/maven/pom.scm (fix-pom-dependencies): Actually use the temporary file that was created. Julien Lepiller
2021-06-22guix: maven: Look in local packages when searching for package version....* guix/build/maven/pom.scm (fix-pom-dependencies): Also look at local packages when looking for a package version. Julien Lepiller
2021-06-22guix: maven: Support fixing modules....* guix/build/maven/pom.scm (fix-pom-dependencies): Support fixing modules that do not exist. * guix/build/maven-build-system.scm (fix-pom): Fix modules. Julien Lepiller
2021-06-22guix: maven: Support fixing extensions....* guix/build/maven/pom.scm (fix-pom-dependencies): Add support for fixing extension versions. Julien Lepiller
2021-06-22guix: maven: Simplify finding local packages and modules....* guix/build/maven-build-system (fix-pom): Fix a single pom file without recursing (fix-pom-files): Find local packages and all submodules, and fix them all at once. (add-local-package): Move to... * guix/build/maven/pom.scm (add-local-package): ...here. (pom-and-submodules, pom-local-packages): New procedures. Julien Lepiller
2021-06-22guix: maven: Simplify finding version and group information....* guix/build/maven/pom.scm (pom-version, pom-groupid): Do not use inputs and local packages information anymore. Adapt file to new arguments. * guix/build/maven-build-system.scm: Adapt to new arguments. * guix/build/java-utils.scm: Adapt to new arguments. Julien Lepiller
2021-06-22guix: java-utils: Factorize pom.xml generation....* guix/build/java-utils.scm (generate-pom.xml): New procedure. * gnu/packages/maven.scm (java-surefire-junit4): Use it. * gnu/packages/java.scm (java-qdox, java-jsr250, java-jsr305) (java-aopalliance, java-jboss-el-api-spec) (java-jboss-interceptors-api-spec): Use it. (java-qdox-M9): Ensure the generated pom file has the correct version. Julien Lepiller
2021-06-21import: egg: Edit egg->guix-package docstring....* guix/import/egg.scm (egg->guix-package): Edit docstring. Tobias Geerinckx-Rice
2021-06-19import: launchpad: Fix typo....* guix/import/launchpad.scm (latest-release): Rename 'origin-github-uri' to 'origin-launchpad-uri'. Brice Waegeneire
2021-06-19import: launchpad: Use repository to retrieve releases....* guix/import/launchpad.scm (latest-released-version): Use repository instead of package name. (latest-release): Pass repository to latest-released-version. Signed-off-by: Brice Waegeneire <brice@waegenei.re> Matthew James Kraai
2021-06-18profiles: Add "XAUTHORITY" to the precious variables....Suggested by Maxime Devos <maximedevos@telenet.be>. * guix/profiles.scm (%precious-variables): Add "XAUTHORITY". Ludovic Courtès
2021-06-18profiles: Add 'load-profile'....* guix/profiles.scm (%precious-variables): New variable. (purify-environment, load-profile): New procedures. * guix/scripts/environment.scm (%precious-variables) (purify-environment, create-environment): Remove. (launch-environment): Call 'load-profile' instead of 'create-environment'. * tests/profiles.scm ("load-profile"): New test. Ludovic Courtès
2021-06-18lint: check-patch-headers: Recognize Git diffs....* guix/lint.scm (check-patch-headers): Add "diff --git " prefix. Ludovic Courtès
2021-06-18import: launchpad: Gracefully handle 404s from api.launchpad.net....Fixes <https://bugs.gnu.org/49031>. Reported by Emad Alblueshi <emad.albloushi@gmail.com>. * guix/import/launchpad.scm (latest-released-version): Gracefully handle 'json-fetch' returning #f. Ludovic Courtès
2021-06-18Start enabling substitutes from bordeaux.guix.gnu.org....In addition to substitutes from ci.guix.gnu.org. There are more changes that can be made in the future, but these changes seem like a good start. * config-daemon.ac (guix_substitute_urls): Add https://bordeaux.guix.gnu.org. * guix/scripts/substitute.scm (%default-substitute-urls): Add http://bordeaux.guix.gnu.org. * guix/store.scm (%default-substitute-urls): Add bordeaux.guix.gnu.org. * doc/guix.texi: Adjust accordingly. * doc/contributing.texi: Adjust accordingly. Christopher Baines
2021-06-16pack: Fix the system value passed to build-docker-image....Before this change, the system value would be passed as x86_64 when using a i686-linux emulated system, e.g.: $ guix environment --system=i686-linux --ad-hoc guile -- \ guile -c '(display (utsname:machine (uname))) (newline)' x86_64 This change uses the Guile builtin %host-type variable, which doesn't have this problem: $ guix environment --system=i686-linux --ad-hoc guile -- \ guile -c '(display %host-type) (newline)' i686-unknown-linux-gnu * guix/scripts/pack.scm (docker-image)[#:system] Use %host-type as a fall-back when target is not defined. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer
2021-06-14hg-download: Make (guix swh) output visible....* guix/hg-download.scm (hg-fetch)[build]: Add 'setvbuf' calls. Ludovic Courtès
2021-06-14hg-download: Support falling back to SWH....* guix/hg-download.scm (hg-fetch): Fall back to fetching the source from SWH if the upstream source is missing. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-06-14swh: Support lookup of Hg tags....* guix/swh.scm (lookup-origin-revision): Support lookup of Hg tags, not just Git tags. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-06-14hg-download: Remove bogus hg-reference-recursive? export....* guix/hg-download.scm: Do not export undefined hg-reference-recursive?. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> itd
2021-06-13guix package: Do not say "nothing to do" upon rollback & co....Previously, "guix package --switch-generations=4" or similar would print "nothing to do". * guix/scripts/package.scm (process-actions): Do not warn about "nothing to do" when one of %ACTIONS is requested. Ludovic Courtès
2021-06-13doc, gnu, guix: Fix typos....* doc/guix.texi: Fix various typos and reword a sentence. * gnu/packages/cpp.scm (cpplint)[description]: Fix typo. * gnu/packages/dns.scm (ldns): Fix typo in comment. * gnu/packages/games.scm (yamagi-quake2): Fix typo in comment. * gnu/packages/qt.scm (python-pyqtwebengine): Fix typo in comment. * gnu/packages/rails.scm (ruby-autoprefixer-rails): Fix typo in comment. * gnu/packages/syndication.scm (quiterss)[description]: Fix typo. * gnu/packages/terminals.scm (kmscon): Fix typo in comment. * gnu/packages/xml.scm (perl-xml-sax-base)[description]: Fix typo. (python-elementpath)[description]: Fix typo. * guix/build/asdf-build-system.scm (output-translation): Fix typo in docstring. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Paul A. Patience
2021-06-13describe: 'current-channel-entries' ignores non-channel profile entries....Fixes <https://bugs.gnu.org/48778>. A side effect of c47f3fc13562d82edfd2d47342574154c452843a is that (@ (guix describe) current-profile) provides the correct answer when the 'guix' package is installed in a profile. Consequently, the 'guix' package installed in /run/current-system/profile (for instance) would end up loading all the .scm files in that directory. * guix/describe.scm (current-channel-entries): Remove ENTRY if it lacks the 'source' property. Ludovic Courtès
2021-06-12profiles: Move some of the work to the build side....When running: guix environment --ad-hoc gnome --no-grafts --search-paths this reduces wall-clock time by ~5%. The number of object cache lookups goes down from 96K to 89K. (Note that 'gnome' is an interesting example because it has many propagated inputs, which themselves have propagated inputs too, which would lead to a long input list and a long manifest in the 'profile-derivation' gexp.) * guix/profiles.scm (profile-derivation)[inputs, search-paths]: Remove. [extra-inputs]: New variable. [builder]: Adjust call to 'build-profile'. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): New procedure. (build-profile): Remove 'inputs' parameter; make 'manifest' the 2nd positional parameter and add #:extra-inputs. Call 'manifest-sexp->inputs+search-paths' to obtain 'inputs' and 'search-paths'. Ludovic Courtès
2021-06-12git: Update the mtime of the just-updated checkout....Reported by zimoun <zimon.toutoune@gmail.com>. Previously, the mtime of CACHE-DIRECTORY may or may not have been updated after a pull. Thus, 'maybe-remove-expired-cache-entries' could potentially delete CACHE-DIRECTORY right before it's returned. * guix/git.scm (update-cached-checkout): Call 'utime' on CACHE-DIRECTORY. Ludovic Courtès
2021-06-08lint: Check for trailing whitespace in description....* guix/lint.scm (check-description-style): Check for trailing whitespace. * tests/lint.scm: ("description: trailing whitespace"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-06-08lint: Check for trailing whitespace in synopsis....* guix/lint.scm (check-synopsis-style): Check for trailing whitespace. * tests/lint.scm ("synopsis: contains trailing whitespace"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-06-08transformations: '--with-latest' correctly handles already-latest case....Previously, '--with-latest' would wrongfully print: warning: could not determine latest upstream release of 'xyz' when 'xyz' is already the latest version. This fixes that. * guix/transformations.scm (transform-package-latest): Use 'package-latest-release' instead of 'package-latest-release*'. Ludovic Courtès
2021-06-08grafts: Cache the derivation/graft mapping for the whole session....Partly fixes <https://bugs.gnu.org/41702>. Reported by Lars-Dominik Braun <ldb@leibniz-psychology.org>. Previously, 'graft-derivation' would start anew at every call. When creating a profile with lots of packages, it would potentially do the same work multiple times. The per-session cache addresses this. It increases the derivation-graft-cache hit rate from 77.9% to 80.1% on: GUIX_PROFILING="derivation-graft-cache" ./pre-inst-env \ guix environment --ad-hoc libreoffice inkscape krita darktable -n The effect is more visible on the pathological case below, where cache hit rate goes from 75% to 87% and wall-clock time from 5.0s to 3.5s: GUIX_PROFILING="derivation-graft-cache" ./pre-inst-env \ guix environment --ad-hoc r-learnr --search-paths * guix/grafts.scm (%graft-cache): New variable. (graft-derivation): Add calls to 'store-connection-cache' and 'set-store-connection-cache!'. Ludovic Courtès
2021-06-08store: 'references/cached' now uses a per-session cache....* guix/store.scm (%reference-cache): Remove. (%reference-cache-id): New variable. (references/cached): Rewrite in terms of it. Ludovic Courtès
2021-06-08store: Remove 'references/substitutes'....This procedure lost its only user in commit 710854304b1ab29332edcb76f3de532e0724c197. * guix/store.scm (references/substitutes): Remove. * tests/store.scm ("references/substitutes missing reference info") ("references/substitutes with substitute info"): Remove. Ludovic Courtès
2021-06-08grafts: Use SRFI-71 instead of SRFI-11....* guix/grafts.scm (reference-origins): Use SRFI-71 'let*'. Ludovic Courtès
2021-06-08grafts: Record cache lookups for profiling....* guix/grafts.scm (record-cache-lookup!): New procedure. (with-cache): Use it. Ludovic Courtès
2021-06-08store: Generalize cache lookup recording....* guix/store.scm (cache-lookup-recorder): New procedure. (record-cache-lookup!): Define in terms of it. Ludovic Courtès
2021-06-08store: Support dynamic allocation of per-connection caches....* guix/store.scm (<store-connection>)[object-cache]: Remove. [caches]: New field. (open-connection, port->connection): Adjust '%make-store-connection' calls accordingly. (%store-connection-caches, %object-cache-id): New variables. (allocate-store-connection-cache, vector-set) (store-connection-cache, set-store-connection-cache) (set-store-connection-caches!, set-store-connection-cache!): New procedures. (cache-object-mapping): Add #:cache parameter. (set-store-connection-object-cache!): Remove. (lookup-cached-object): Use 'store-connection-cache'. (run-with-store): Use 'store-connection-caches' and 'set-store-connection-caches!'. Ludovic Courtès