Commit Graph

4715 Commits

Author SHA1 Message Date
Ludovic Courtès
2073b55e6b
gnu: gcc: Switch back to using 'C_INCLUDE_PATH' instead of 'CPATH'.
Fixes <https://bugs.gnu.org/30756>.
Initially reported by Julien Lepiller <julien@lepiller.eu>.

* gnu/packages/base.scm (make-gcc-libc): Remove
'treat-glibc-as-system-header' phase from 'arguments'.
* gnu/packages/commencement.scm (gcc-final): Likewise.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add "include/c++" to
'CPLUS_INCLUDE_PATH'.
(gcc-6)[native-search-paths]: Remove.
* gnu/packages/make-bootstrap.scm (gcc-for-bootstrap): Remove
'native-search-paths' and 'arguments'.
* gnu/packages/patches/python-2.7-search-paths.patch,
gnu/packages/patches/python-3-search-paths.patch: Replace "CPATH" with
"C_INCLUDE_PATH".
* guix/build-system/cmake.scm (lower): When not cross-compiling, move
INPUTS from the 'host-inputs' field to the 'build-inputs' field of the
bag, right after NATIVE-INPUTS.
* guix/build-system/glib-or-gtk.scm (lower): Likewise.
* guix/build-system/gnu.scm (lower): Likewise.
* guix/build-system/meson.scm (lower): Likewise.
2020-02-06 18:47:15 +01:00
Efraim Flashner
d54ed69c19
Merge remote-tracking branch 'origin/master' into core-updates 2020-02-04 14:16:23 +02:00
Leo Prikler
cb9cb2e89a
licenses: Add Unicode license.
* guix/licenses.scm (unicode): New variable.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2020-02-03 16:32:39 +01:00
Marius Bakke
52665d2b6b
Merge branch 'staging' into core-updates 2020-02-03 15:45:44 +01:00
Pierre Neidhardt
5db7df2eab
guix: Fix missing export for make-desktop-entry-file.
* guix/build/utils.scm: Export make-desktop-entry-file.
2020-01-30 16:53:44 +01:00
Ludovic Courtès
46312064de
derivations: Import modules with 'add-file-tree-to-store'.
This reduces the number of RPCs on "guix build libreoffice -nd" from
2,589 to 2,558 (1%).

* guix/derivations.scm (imported-files): Rewrite to call to
'add-file-tree-to-store'.  Remove #:system and #:guile parameters.
(%imported-modules): Adjust docstring to say that result is a store
item, and adjust 'imported-files' call.
(%compiled-modules): Adjust accordingly.
(imported+compiled-modules): Likewise.
(build-expression->derivation): Likewise.
2020-01-30 01:34:51 +01:00
Ludovic Courtès
68dbd5c9de
gexp: Move 'file-mapping->tree' to (guix store).
* guix/gexp.scm (%not-slash): Remove.
(file-mapping->tree): Move to...
* guix/store.scm (file-mapping->tree): ... here.
2020-01-30 01:17:54 +01:00
Marius Bakke
0895002f68
Merge branch 'master' into staging 2020-01-29 11:12:49 +01:00
Tobias Geerinckx-Rice
4968ea2c92
Use HTTPS for liballeg.org.
* gnu/packages/game-development.scm (allegro-4, allegro)[home-page]:
Use HTTPS.
* guix/licenses.scm (giftware): Likewise.
2020-01-28 17:22:11 +01:00
Hartmut Goebel
8377512e0c
guix: qt-build-system: Add phase check-setup.
* guix/build/qt-build-system.scm (check-setup): New function.
  (%standard-phases): Add as new phase `check-setup before `check.
* doc/guix.texi (Build System)[qt-build-system]: Describe the new phase.
2020-01-28 13:03:08 +01:00
Efraim Flashner
61b95c15cf
build: cargo-build-system: Add pkg-config environment variables.
* guix/build/cargo-build-system.scm (configure): Add environment
variables to use system libgit2 and libssh2.
* gnu/packages/crates-io.scm (rust-libgit2-sys-0.10,
rust-libssh2-sys-0.2)[arguments]: Remove LIBGIT2 and LIBSSH2 environment
variable settings.
* gnu/packages/rust-apps.scm (tokei)[arguments]: Same.
2020-01-27 18:39:10 +02:00
Efraim Flashner
a13db7e2ab
build: cargo-build-system: Allow patched crates.
* guix/build/cargo-build-system.scm (crate-src?): Don't check for a
gzipped tarball, just make sure it's not a directory.
2020-01-27 18:36:11 +02:00
Julien Lepiller
1e8da4cdef
guix: ocaml: Also replace dune when relevant in package-with-explicit-ocaml.
* guix/build-system/ocaml.scm (package-with-explicit-ocaml): Take a dune
argument and add it to transformed packages when relevant.
2020-01-27 03:55:52 +01:00
Marius Bakke
38746d026c
build-system/cmake: Specify C++ compiler when cross-compiling.
* guix/build/cmake-build-system.scm (configure)[args]: Add
"-DCMAKE_CXX_COMPILER" when cross-compiling.
2020-01-26 13:39:18 +01:00
Marius Bakke
88b263465c
build-system/cmake: Enable parallel tests by default.
* guix/build-system/cmake.scm (cmake-build, cmake-cross-build): Set
the PARALLEL-TESTS? key to #t.
2020-01-26 01:52:55 +01:00
Ludovic Courtès
01e5d63c87
serialization: 'read-byte-string' makes a single read(2) call.
On "guix build libreoffice -nd", this reduces the number of read(2)
system calls from 10,434 to 8092.

* guix/serialization.scm (sub-bytevector): New procedure.
(read-byte-string): Make a single 'get-bytevector-n*' call and use
'sub-bytevector'.
2020-01-24 23:56:43 +01:00
Ludovic Courtès
09238d618a
guix build, archive, graph: Disable absolute file port name canonicalization.
This avoids an 'lstat' storm.  Specifically:

  ./pre-inst-env strace -c guix build -nd libreoffice

goes from 1,711 to 214 'lstat' calls.

* guix/scripts/build.scm (options->things-to-build): When SPEC matches
'derivation-path?', call 'canonicalize-path'.
(guix-build): Remove 'with-fluids' for %FILE-PORT-NAME-CANONICALIZATION.
* guix/scripts/archive.scm (guix-archive): Remove 'with-fluids' for
%FILE-PORT-NAME-CANONICALIZATION.
* guix/scripts/graph.scm (guix-graph): Likewise.
2020-01-24 23:56:42 +01:00
Ludovic Courtès
a07d5e558b
ui: Do not display error messages with bare format strings.
On Guile 3, with, say, an error in ~/.guile, we'd get:

  $ guix repl
  guix repl: error: Unbound variable: ~S

* guix/ui.scm (call-with-error-handling): Add
'&exception-with-kind-and-args' case.
2020-01-24 23:56:42 +01:00
Ludovic Courtès
8234fe653e
self: Build with Guile 3.0.
* guix/self.scm (specification->package): Return the "guile3.0-"
variants.
(guix-derivation): Change 'guile' to (specification->package "guile").
Pass "3.0" as #:guile-version.
2020-01-23 23:34:10 +01:00
Ludovic Courtès
370891d565
derivations: Inline 'find' in 'coalesce-duplicate-inputs'.
Previously the first argument to 'find' would show up high in profiles
of 'package-derivation'.  This speeds things up a big, especially on
Guile 3.

* guix/derivations.scm (coalesce-duplicate-inputs)[find]: New
procedure.
2020-01-23 23:34:10 +01:00
Ludovic Courtès
4d52e0f667
compile: Remove incorrect exports.
This is a followup to fed3632812.

* guix/build/compile.scm: Remove exports of '%lightweight-optimizations'
and '%default-optimizations'.
* guix/self.scm: Remove unused (guix build compile) module.
2020-01-23 23:34:09 +01:00
Marius Bakke
12d8adbfc0
Merge branch 'staging' into core-updates 2020-01-23 23:11:11 +01:00
Julien Lepiller
092f815799
guix: ocaml: Reuse package-with-ocaml4.01 with ocaml-4.07.
* guix/build-system/guix.scm (package-with-ocaml4.01)
(strip-ocaml4.01-variant): Rename to...
(package-with-ocaml4.07, strip-ocaml4.07-variant): ... this and rename
internal implementation.
2020-01-22 01:12:09 +01:00
Marius Bakke
8ed9be3fac
Merge branch 'staging' into core-updates 2020-01-21 22:39:42 +01:00
Ludovic Courtès
7842ddcbc1
guix package: Create profiles/per-user/$USER upfront.
Fixes <https://bugs.gnu.org/39194>.
Reported by Matt Wette <matt.wette@gmail.com>.

* guix/scripts/package.scm (build-and-use-profile): Move
'ensure-default-profile' call to...
(process-actions): ... here.
2020-01-19 23:11:37 +01:00
Ludovic Courtès
b782688d71
syscalls: Pass the right 'throw' arguments in 'call-with-file-lock/no-wait'.
Reported by Matt Wette <matt.wette@gmail.com>
in <https://bugs.gnu.org/39194>.

* guix/build/syscalls.scm (call-with-file-lock/no-wait): When
re-throwing, pass KEY in addition to ARGS.
2020-01-19 23:11:37 +01:00
Ludovic Courtès
358f66a004
repl: Avoid dependency on high-level package modules.
* guix/scripts/repl.scm: Remove imports of (guix scripts build), (gnu
packages), (guix utils), and (guix packages).
(%options): Define "--load-path" option right here.
2020-01-19 23:11:37 +01:00
Ludovic Courtès
eb60253220
repl: Adjust "--listen" help message.
* guix/scripts/repl.scm (show-help): Adjust "--listen" string.
2020-01-19 23:11:37 +01:00
Ludovic Courtès
a9f4a7eee3
repl: Add "-q".
* guix/scripts/repl.scm (%options, show-help): Add "-q".
(guix-repl): Add 'user-config' and use it.  Honor 'ignore-dot-guile?'.
2020-01-19 23:11:37 +01:00
zimoun
e478fd9747
refresh: Fix internal variable name.
* guix/scripts/refresh.scm (%option): Fix internal variable name.
2020-01-18 13:08:11 +01:00
Ludovic Courtès
36930b2463
packages: 'patch-and-repack' sets the mtime to 1, not 0.
* guix/packages.scm (patch-and-repack)[build]: Pass "--mtime=@1" instead
of "--mtime=@0".
2020-01-17 21:21:07 +01:00
Ludovic Courtès
abbb98714b
ui: Ignore 'raise-exception' frames when reporting exceptions.
* guix/ui.scm (last-frame-with-source): Check whether FRAME corresponds
to 'raise-exception' and skip it if it does.
2020-01-17 17:11:34 +01:00
Ludovic Courtès
6f918d69b4
import: texlive: Avoid uses of '@@' in tests.
* guix/import/texlive.scm (fetch-sxml, sxml->package): Export.
* tests/texlive.scm <top level>: Call '%http-server-port'.
("fetch-sxml: returns SXML for valid XML"): Use 'with-http-server' and
set 'current-http-proxy' instead of using 'mock'.
("sxml->package"): Remove use of '@@'.
2020-01-17 14:22:08 +01:00
Ludovic Courtès
282f91790a
import: opam: Avoid uses of '@@' in tests.
* guix/import/opam.scm (string-pat, multiline-string, list-pat)
(dict, condition): Export.
(opam-fetch): Add optional 'repository' parameter.
(opam->guix-package): Add #:repository parameter and pass it to
'opam-fetch'.
* tests/opam.scm ("opam->guix-package"): Remove use of 'mock' and pass
TEST-REPO to 'opam->guix-package' instead.
("parse-strings", "parse-multiline-strings")
("parse-lists", "parse-dicts", "parse-conditions"): Remove uses of '@@',
which are no longer needed.
2020-01-17 14:22:07 +01:00
Ludovic Courtès
fcb2318e51
lint: vulnerabilities: Avoid 'mock' in test.
* guix/lint.scm (check-vulnerabilities): Add 'package-vulnerabilities'
optional parameter.
* tests/lint.scm ("cve: one vulnerability"): Use it instead of 'mock'.
2020-01-17 14:22:07 +01:00
Ludovic Courtès
fd4c832bdb
lint: derivation: Adjust exception handling for Guile 3.
This makes sure the "derivation: invalid arguments" test passes on
Guile 3.0.0.  Without this change, the lint warning would only include
the format string instead of the key and arguments.

* guix/lint.scm (exception-with-kind-and-args?): New procedure.
(check-derivation): Use it.
2020-01-17 14:22:07 +01:00
Ludovic Courtès
9d6c6cb20e
import: elpa: Rewrite test to use an HTTP server instead of mocking.
* guix/import/elpa.scm (elpa-url): Add 'gnu/http'.
(elpa->guix-package): Handle it.
* tests/elpa.scm (elpa-package-info-mock, auctex-readme-mock)
(elpa-version->string, package-source-url, ensure-list)
(package-home-page, make-elpa-package): Remove.
<top level>: Call '%http-server-port'.
(eval-test-with-elpa): Remove uses of 'mock'.  Use 'with-http-server'
and parameterize 'current-http-proxy' instead.
2020-01-16 23:14:05 +01:00
Ludovic Courtès
cfd1ed8401
import: cran: Avoid uses of '@@' in the tests.
* guix/import/cran.scm (description->alist, description->package): Export.
<top level>: Set! 'listify'.
* tests/cran.scm (description-alist, "description->package"): Remove use
of '@@' to access the relevant bindings.
2020-01-16 23:14:05 +01:00
Ludovic Courtès
72c678af55
import: crate: Export 'string->license'.
* guix/import/crate.scm (string->license): Export.
* tests/crate.scm (string->license): Remove.
2020-01-16 23:14:05 +01:00
Ludovic Courtès
3597c0396b
lzlib: Define 'dictionary-size+match-length-limit'.
* guix/lzlib.scm (%compression-levels): Splice the rest of each element.
(dictionary-size+match-length-limit): New procedure.
(make-lzip-output-port, make-lzip-input-port/compressed): Use it.
* tests/lzlib.scm ("Bytevector of size relative to Lzip internal buffers (2 * dictionary)"):
Use 'dictionary-size+match-length-limit' instead of 'assoc-ref'.
2020-01-16 23:14:05 +01:00
Ludovic Courtès
47212fc763
records: Improve reporting of "invalid field specifier" errors.
Previously users would just see:

  error: invalid field specifier

without source location or hints.

* guix/records.scm (expand): Add optional 'parent-form' parameter and
pass it to 'syntax-violation' when it is true.
(make-syntactic-constructor): Pass S as a third argument to
'report-invalid-field-specifier'.
* guix/ui.scm (report-load-error): For 'syntax-error', show SUBFORM or
FORM in the message.
* tests/records.scm ("define-record-type* & wrong field specifier"): Add
a 'subform' parameter and adjust test accordingly.
("define-record-type* & wrong field specifier, identifier"): New test.
* tests/guix-system.sh: Add test.
2020-01-16 18:30:57 +01:00
Ludovic Courtès
84c5da08dd
guix package: Export 'transaction-upgrade-entry'.
* guix/scripts/package.scm (transaction-upgrade-entry): Add 'store'
parameter and use it instead of (%store).  Export.
* tests/packages.scm ("transaction-upgrade-entry, zero upgrades")
("transaction-upgrade-entry, one upgrade")
("transaction-upgrade-entry, superseded package"): Adjust accordingly.
2020-01-16 18:30:57 +01:00
Ludovic Courtès
4fe01b09ea
publish: Export 'signed-string'.
* guix/scripts/publish.scm (signed-string): Export and improve docstring.
* tests/publish.scm ("/*.narinfo")
("/*.narinfo with properly encoded '+' sign"): Adjust accordingly.
2020-01-16 18:30:57 +01:00
zimoun
d14e4745b3
repl: Fix '--help' message.
* guix/scripts/repl.scm: (show-help): Add '--listen' option message.
2020-01-16 15:27:24 +01:00
zimoun
e8728862a1
repl: Add '--load-path' option.
* guix/scripts/repl.scm (%option): Add '--load-path' option.
* doc/guix.texi: Document it.
2020-01-16 15:27:24 +01:00
zimoun
3c8396b578
edit: Add '--load-path' option.
* guix/scripts/edit.scm (%option): Add '--load-path' option.
* doc/guix.texi: Document it.
2020-01-16 15:27:24 +01:00
zimoun
21f4fbdd84
refresh: Add '--load-path' option.
* guix/scripts/refresh.scm (%option): Add '--load-path' option.
* doc/guix.texi: Document it.
2020-01-16 15:27:24 +01:00
zimoun
2d4688c1ea
size: Add '--load-path' option.
* guix/scripts/size.scm (%option): Add '--load-path' option.
* doc/guix.texi: Document it.
2020-01-16 15:27:24 +01:00
Pierre Neidhardt
ee9a735bc8
graph: Add '--load-path' option.
* guix/scripts/graph.scm (%option): Add '--load-path' option.
* doc/guix.texi: Document it.
* tests/guix-graph.sh: Test it.
2020-01-16 15:27:20 +01:00
Ludovic Courtès
65b510bbc4
clojure-utils: Avoid use of '@@'.
* guix/build/clojure-utils.scm (%doc-regex): Avoid @@, which doesn't
work on Guile 3.
(file-sans-extension): Likewise.
2020-01-15 23:48:33 +01:00