Commit Graph

5865 Commits

Author SHA1 Message Date
Leo Prikler
0f2a17de06
guix: 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’.
2021-06-28 21:59:02 +02:00
Sarah Morgensen via Guix-patches via
9d9152425e
import: 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>
2021-06-28 08:52:15 +02:00
Ludovic Courtès
b36267b1d9
download: '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.
2021-06-25 23:44:15 +02:00
Ludovic Courtès
7fe195f3b7
guix substitute: Adjust comment about GnuTLS bug.
* guix/scripts/substitute.scm (call-with-cached-connection): Adjust
comment.
2021-06-25 23:44:15 +02:00
Philip Munksgaard
dfac3e643a
import: 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>
2021-06-25 15:12:05 +02:00
Ludovic Courtès
7916201c4d
reconfigure: Use 'formatted-message'.
* guix/scripts/system/reconfigure.scm (ensure-forward-reconfigure): Use
'formatted-message'.
* guix/scripts/deploy.scm (deploy-machine*): Handle it.
2021-06-25 15:12:05 +02:00
Ludovic Courtès
1b4931555b
deploy: 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.
2021-06-25 15:12:05 +02:00
Sergey Trofimov
d3e8890613
gnu: 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>
2021-06-24 23:43:05 +02:00
Ludovic Courtès
8a81ae61c1
lint: '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'.
2021-06-24 23:40:48 +02:00
Ludovic Courtès
468a5f8676
lint: 'with-networking-fail-safe' handles 'gnutls-error' exceptions.
* guix/lint.scm (call-with-networking-fail-safe): Add clause for 'gnutls-error'.
2021-06-24 23:40:48 +02:00
Lars-Dominik Braun
9c93573d15
build: 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.
2021-06-24 14:10:29 +02:00
Andrew Tropin
1f3d7b4534
gexp: '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>
2021-06-23 23:35:28 +02:00
Ludovic Courtès
b9a95420ab
profiles: 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
8cef92d063, 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.
2021-06-22 17:55:05 +02:00
Julien Lepiller
7f902d368d
guix: java-utils: Look for actual jar files.
* guix/build/java-utils.scm (install-from-pom): Fix `find-files` to look
only for jar files.
2021-06-22 13:10:36 +02:00
Julien Lepiller
cc09453862
guix: 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.
2021-06-22 13:10:32 +02:00
Julien Lepiller
5bb3395c42
guix: 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.
2021-06-22 13:10:30 +02:00
Julien Lepiller
0db1393b73
guix: 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.
2021-06-22 13:10:28 +02:00
Julien Lepiller
9711970c99
guix: maven: Support fixing extensions.
* guix/build/maven/pom.scm (fix-pom-dependencies): Add support for fixing
extension versions.
2021-06-22 13:10:27 +02:00
Julien Lepiller
6ec2109ab6
guix: 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.
2021-06-22 13:10:24 +02:00
Julien Lepiller
573b43c116
guix: 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.
2021-06-22 13:09:57 +02:00
Julien Lepiller
4c98db94b0
guix: 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.
2021-06-22 13:09:41 +02:00
Tobias Geerinckx-Rice
fe255fb8bc
import: egg: Edit egg->guix-package docstring.
* guix/import/egg.scm (egg->guix-package): Edit docstring.
2021-06-21 18:27:19 +02:00
Brice Waegeneire
3aabe51e8c
import: launchpad: Fix typo.
* guix/import/launchpad.scm (latest-release): Rename 'origin-github-uri'
to 'origin-launchpad-uri'.
2021-06-19 22:21:47 +02:00
Matthew James Kraai
9171079e51
import: 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>
2021-06-19 22:20:08 +02:00
Ludovic Courtès
01f5795578
profiles: Add "XAUTHORITY" to the precious variables.
Suggested by Maxime Devos <maximedevos@telenet.be>.

* guix/profiles.scm (%precious-variables): Add "XAUTHORITY".
2021-06-18 14:18:07 +02:00
Ludovic Courtès
ee61777a32
profiles: 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.
2021-06-18 14:18:07 +02:00
Ludovic Courtès
c5b1b48f09
lint: check-patch-headers: Recognize Git diffs.
* guix/lint.scm (check-patch-headers): Add "diff --git " prefix.
2021-06-18 14:18:06 +02:00
Ludovic Courtès
f371972e78
import: 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.
2021-06-18 14:18:06 +02:00
Christopher Baines
4985a42724
Start 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.
2021-06-18 11:25:41 +01:00
Maxim Cournoyer
375d5d03c9
pack: 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>
2021-06-16 21:44:33 -04:00
Ludovic Courtès
0b535f7b8b
hg-download: Make (guix swh) output visible.
* guix/hg-download.scm (hg-fetch)[build]: Add 'setvbuf' calls.
2021-06-14 18:35:18 +02:00
Xinglu Chen
69d7333217
hg-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>
2021-06-14 18:35:18 +02:00
Xinglu Chen
c4ff492879
swh: 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>
2021-06-14 18:35:18 +02:00
itd
1aa8cc2f0e
hg-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>
2021-06-14 10:02:15 +02:00
Ludovic Courtès
0294cfc25a
guix 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.
2021-06-13 23:57:45 +02:00
Paul A. Patience
483f537081
doc, 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>
2021-06-13 23:57:45 +02:00
Ludovic Courtès
fb3927486a
describe: 'current-channel-entries' ignores non-channel profile entries.
Fixes <https://bugs.gnu.org/48778>.

A side effect of c47f3fc135 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.
2021-06-13 23:57:44 +02:00
Ludovic Courtès
8cef92d063
profiles: 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'.
2021-06-12 00:49:32 +02:00
Ludovic Courtès
baf0a42882
git: 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.
2021-06-12 00:49:32 +02:00
Xinglu Chen
93d85deae6
lint: 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>
2021-06-08 23:28:04 +02:00
Xinglu Chen
04afb76958
lint: 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>
2021-06-08 23:28:04 +02:00
Ludovic Courtès
7ccf416dd0
transformations: '--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*'.
2021-06-08 23:28:04 +02:00
Ludovic Courtès
0c10902609
grafts: 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!'.
2021-06-08 09:25:50 +02:00
Ludovic Courtès
fde3c349f5
store: '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.
2021-06-08 09:25:50 +02:00
Ludovic Courtès
2725f04634
store: Remove 'references/substitutes'.
This procedure lost its only user in commit
710854304b.

* guix/store.scm (references/substitutes): Remove.
* tests/store.scm ("references/substitutes missing reference info")
("references/substitutes with substitute info"): Remove.
2021-06-08 09:25:50 +02:00
Ludovic Courtès
4a93fb0595
grafts: Use SRFI-71 instead of SRFI-11.
* guix/grafts.scm (reference-origins): Use SRFI-71 'let*'.
2021-06-08 09:25:49 +02:00
Ludovic Courtès
6bd3d4fe06
grafts: Record cache lookups for profiling.
* guix/grafts.scm (record-cache-lookup!): New procedure.
(with-cache): Use it.
2021-06-08 09:25:49 +02:00
Ludovic Courtès
0a3c723e07
store: Generalize cache lookup recording.
* guix/store.scm (cache-lookup-recorder): New procedure.
(record-cache-lookup!): Define in terms of it.
2021-06-08 09:25:49 +02:00
Ludovic Courtès
d9d7b9ec41
store: 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!'.
2021-06-08 09:25:49 +02:00
Christopher Baines
26499816a9
etc: Add "bordeaux.guix.gnu.org.pub" public key file.
* etc/substitutes/bordeaux.guix.gnu.org.pub: New file.
* Makefile.am (dist_pkgdata_DATA): Add it.
* guix/self.scm (miscellaneous-files): Add
"share/guix/bordeaux.guix.gnu.org.pub".
2021-06-07 11:31:17 +01:00