Commit Graph

1529 Commits

Author SHA1 Message Date
jgart
172207924e
debug-link: Clarify what CRC is.
* guix/build/debug-link.scm: Clarify "CRC"; update bug URL.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-09-26 23:29:37 +02:00
Maxim Cournoyer
4920f6e634
Merge branch 'staging' into core-updates
Conflicts resolved in:
	gnu/local.mk
	gnu/packages/cmake.scm
	gnu/packages/glib.scm
	gnu/packages/gnome.scm
	gnu/packages/gtk.scm
	gnu/packages/sdl.scm

pango-next, vala-next and librsvg-bootstrap were removed in the process.
2022-09-15 11:43:21 -04:00
Morgan Smith
58d0453aa7
build-system: emacs: Use new function for autoloads generation
* guix/build/emacs-utils.scm (emacs-generate-autoloads): Use
'loaddefs-generate' to create autoloads instead of
'update-directory-autoloads' if we are using a new enough Emacs

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-09-11 15:46:32 +02:00
Liliana Marie Prikler
630c9b6e01
build-system: emacs: Use native compilation.
* guix/build/emacs-build-system.scm (add-install-to-native-load-path):
New variable.
(build): Replace ‘emacs-byte-compile-directory’ with ‘emacs-compile-directory’.
Delete already compiled files in the working directory prior to compilation.
(%standard-phases): Add ‘add-install-to-native-load-path’ after
‘expand-load-path’.
2022-09-11 15:46:32 +02:00
Liliana Marie Prikler
b54724b2ac
guix: emacs-utils: Add emacs-compile-directory.
* guix/build/emacs-utils.scm (emacs-compile-directory): New variable.
2022-09-11 15:46:32 +02:00
Marius Bakke
3c8b6fd94c
syscalls: Adjust for glibc 2.34 and later.
* guix/build/syscalls.scm (openpty, login-tty): Remove #:library argument, as
these functions have been moved to libc.so.
2022-09-08 21:40:00 +02:00
Marius Bakke
884548b476
Merge branch 'staging' into core-updates 2022-09-08 21:12:52 +02:00
Ludovic Courtès
8f53630f2f
syscalls: Avoid repeated calls to 'syscall->procedure'.
Commit 7df4d3465d and others changed
'mount', 'umount', & co. so they would call 'syscall->procedure' at each
call.  This change reverts to the previous behavior, where
'syscall->procedure' is called once.

* guix/build/syscalls.scm (mount, umount, reboot, load-linux-module):
Call 'syscall->procedure' only once.
2022-09-08 16:22:21 +02:00
(unmatched-parenthesis
bbc1735be2
profiles: Implicitly set GUIX_EXTENSIONS_PATH.
* guix/build/profiles.scm (manifest-sexp->inputs+search-paths):
Always return a search path for GUIX_EXTENSIONS_PATH.
* guix/search-paths.scm ($GUIX_EXTENSIONS_PATH): New variable.

This allows Guix to find extensions without any need for users to
set GUIX_EXTENSIONS_PATH manually.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2022-09-07 11:30:31 +03:00
Attila Lendvai
42e3089752
guix: build: Factor out default collision-resolver.
This prepares the stage for new collision resolvers without changing the
underlying semantics too much.

* guix/build/union.scm (resolve+warn-if-harmful): New variable.
(warn-about-collision): Rename to...
(resolve-collision/default): ... this.  Implement in terms of
resolve+warn-if-harmful.
(union-build): Adjust accordingly.
* guix/gexp.scm (directory-union): Likewise.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-09-02 17:04:46 +02:00
Attila Lendvai
e4adc665e1
guix: build: Avoid using magic literals in the code for hash length.
* guix/build/utils.scm (%store-hash-string-length): New constant.
(store-path-prefix-length): Factor out the calculation of the total store
prefix length.
* guix/build/graft.scm (hash-length): Use it.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-09-02 17:04:46 +02:00
Attila Lendvai
54c365d645
guix: build: Promote local define-inline to a define-constant util.
* guix/build/utils.scm: Moved/renamed define-inline from grafts.scm to an
exported define-constant util.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-09-02 17:04:46 +02:00
Marius Bakke
77eb3008e3
Merge branch 'staging' into core-updates 2022-08-11 23:36:10 +02:00
Oleg Pykhalov
4b49487838
gnu: system: file-systems: Add shared flag.
* gnu/build/file-systems.scm (mount-flags->bit-mask, mount-file-system):
Handle shared flag.
* gnu/system/file-systems.scm (invalid-file-system-flags): Add shared to known
flags.
* guix/build/syscalls.scm (MS_SHARED): New variable.
* doc/guix.texi (File Systems): Document shared flag.
2022-08-10 07:12:25 +03:00
Maxim Cournoyer
a956c7df87
build: qt-utils: Fix another regression.
This fixes another regression introduced with
1f466ed6be, which affected the packages bitmask,
hime, hime, nimf and vorta.

The fix is to provide a default qt-major-version when #:qtbase is missing,
such as when borrowing the qt-wrap phase in a package not using the Qt build
system.

* guix/build/qt-utils.scm (wrap-all-qt-programs)[qt-major-version]: Fall-back
to %default-qt-major-version when #:qtbase is #f.

Reported-by: John Kehayias <john.kehayias@protonmail.com> and others.
2022-08-04 12:06:17 -04:00
Ludovic Courtès
dd573ceea7
download: Do not wrap TLS port on GnuTLS >= 3.7.7.
The custom input/output port wrapping the TLS session record port would
introduce overhead, and it would also prevent its uses in a non-blocking
context--e.g., with Fibers.  The port close mechanism added in GnuTLS
3.7.7 allows us to get rid of that wrapper.

* guix/build/download.scm (wrap-record-port-for-gnutls<3.7.7): New
procedure, with code formerly in 'tls-wrap'.
(tls-wrap): Check for 'set-session-record-port-close!' and use it when
available; otherwise call 'wrap-record-port-for-gnutls<3.7.7'.
2022-08-03 17:43:29 +02:00
Guillaume Le Vaillant
c232375340
build-system: asdf: Add asd-operation parameter.
The 'asd-operation' parameter can be used to specify the ASDF operation to use
in the build phase. It's default value is "load-system".

* guix/build-system/asdf.scm (package-with-build-system, asdf-build): Add
  'asd-operation' parameter.
* guix/build/asdf-buid-system.scm (build): Add 'asd-operation' parameter and
  use it.
* guix/build/lisp-utils.scm (compile-systems): Add 'asd-operation' parameter
  and use it.
2022-08-03 16:45:54 +02:00
Pierre Neidhardt
6181f1f263
build-system: asdf: Let ASDF locate the .asd files.
This approach has many benefits:

- It simplifies the build system.
- The package definitions are easier to write.
- It fixes a bug with systems that call asdf:clear-system which would cause
  the load to fail. See for instance test systems using Prove.

* guix/build-system/asdf.scm (package-with-build-system): Remove 'asd-files'
  and replace 'test-asd-file' by 'asd-test-systems'.
  (lower): Same.
* guix/build/asdf-build-system.scm (source-asd-file): Remove since ASDF does
  it better than us.
  (find-asd-files): Same.
  (build): Remove unused asd-files argument.
  (check): Remove asd-files argument and replace asd-systems by
  asd-test-systems.
* guix/build/lisp-utils.scm (compile-systems): Call to ASDF to find the
  systems.
  (test-system): Same.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2022-08-03 16:45:53 +02:00
Pierre Neidhardt
6b5ef03a25
guix: build: Switch from asdf:compile-system to asdf:load-system.
According to the ASDF manual:

This will make sure all the files in the system are compiled, but not
necessarily load any of them in the current image; on most systems, it
will _not_ load all compiled files in the current image.  This function
exists for symmetry with 'load-system' but is not recommended unless you
are writing build scripts and know what you're doing.

* guix/build/lisp-utils.scm (compile-systems): Switch from asdf:compile-system
  to asdf:load-system.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2022-08-03 16:45:53 +02:00
Ludovic Courtès
cce7427f95
download: 'url-fetch' closes its HTTP/HTTPS port.
* guix/build/download.scm (url-fetch)[fetch]: In the http/https case,
close PORT before returning.
2022-08-01 14:08:07 +02:00
Maxim Cournoyer
1f466ed6be
build: qt: Add qtbase argument and wrap Qt environment variables exactly.
* guix/build-system/qt.scm (default-qtbase): New variable.
(lower) <#:qtbase>: Add argument...
[build-inputs]: ... and propagate it here.
(qt-build): Add qtbase argument.
(qt-cross-build): Likewise.
* guix/build/qt-utils.scm (%default-qt-major-version): New variable.
(variables-for-wrapping): Add qt-major-version argument, and use it to format
the various path prefixes.  Wrap QT environment variables exactly.
(wrap-qt-program*): Add qt-major-version argument, and pass it to
variables-for-wrapping.
(wrap-qt-program): Add qt-major-version argument, and pass it to
wrap-qt-program*.
(wrap-all-qt-programs): Add qtbase argument, and extract the major version
from it, passing it to wrap-qt-program*.
2022-07-31 21:55:49 -04:00
Marius Bakke
6a3ed96af7
Merge branch 'staging' into core-updates 2022-07-27 17:53:05 +02:00
Marius Bakke
9044b086dd
Merge branch 'staging' into core-updates 2022-07-22 01:09:14 +02:00
r0man
af7dd52136
gnu: clojure: Update to 1.11.1.
This patch updates Clojure to 1.11.1. It also adds the 'reset-class-timestamps
phase to the Clojure build system.

This phase makes sure the timestamp of compiled class files is set to a later
point in time than the timestamp of the corresponding Clojure source files. If
the timestamps of the class and source files are the same, the Clojure
compiler will compile the sources again which can lead to issues. This problem
has been discussed here [1]. The suggested solution was to keep/adjust the
timestamps of the class files.

[1] https://www.mail-archive.com/clojure@googlegroups.com/msg99928.html

* gnu/packages/clojure.scm (clojure): Update to 1.11.1 and update all of
LIBRARIES accordingly.
[arguments]: In 'unpack-library-sources' phase, copy from
"core-specs-alpha-src" and "spec-alpha-src" as well.  Add
phases 'closure-spec-skip-macros', 'clojure-spec-compile',
'maven-classpath-properties', and 'reset-class-timestamps'.
* guix/build/clojure-build-system.scm (regular-jar-file?)
(reset-class-timestamps): New procedures.
(%standard-phases): Add 'reset-class-timestamps' phase.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-07-23 00:39:56 +02:00
Ludovic Courtès
89e2288751
profiles: Support the creation of profiles with version 3 manifests.
* guix/profiles.scm (%manifest-format-version): New variable.
(manifest->gexp): Add optional 'format-version' parameter.
[optional, entry->gexp]: Honor it.
(profile-derivation): Add #:format-version parameter and honor it.
(<profile>)[format-version]: New field.
(profile-compiler): Honor it.
* guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Support
both versions 3 and 4.  Remove unused 'properties' variable.
* tests/profiles.scm ("profile-derivation format version 3"): New test.
2022-07-08 23:58:11 +02:00
Ludovic Courtès
4ff12d1de7
profiles: Do not repeat entries in 'manifest' file.
Fixes <https://issues.guix.gnu.org/55499>.
Reported by Ricardo Wurmus <rekado@elephly.net>.

With this change, the manifest file created for:

  guix install r r-seurat r-cistopic r-monocle3 r-cicero-monocle3 r-assertthat

goes from 5.7M to 176K.  Likewise, on this profile, wall-clock time of:

  GUIX_PROFILING=gc guix package -I

goes from 0.7s to 0.1s, with heap usage going from 55M to 9M.

* guix/profiles.scm (manifest->gexp)[optional]: New procedure.
[entry->gexp]: Turn into a monadic procedure.  Return a 'repeated' sexp
if ENTRY was already visited before.
Adjust caller accordingly.  Bump manifest version.
(sexp->manifest)[sexp->manifest-entry]: Turn into a monadic procedure.
Add case for 'repeated' nodes.  Add each entry to the current state
vhash.
Add clause for version 4 manifests.
[sexp->manifest-entry/v3]: New procedure, with former
'sexp->manifest-entry' code.
* tests/profiles.scm ("deduplication of repeated entries"): New test.
* guix/build/profiles.scm (manifest-sexp->inputs+search-paths)[let-fields]:
New macro.
Use it.  Expect version 4.  Add clause for 'repeated' nodes.
2022-07-01 23:29:16 +02:00
Marius Bakke
2a7648774f
Merge branch 'master' into core-updates 2022-06-27 19:23:48 +02:00
Arun Isaac
8452fdaccf
utils: Make switch-symlinks robust against interruption.
* guix/build/utils.scm (switch-symlinks): Delete pivot link if it already
exists.

Co-authored-by: Maxime Devos <maximedevos@telenet.be>
2022-06-25 01:43:08 +05:30
Arun Isaac
2c05a6112b
utils: Move switch-symlinks to (guix build utils).
* guix/utils.scm (switch-symlinks): Move to ...
* guix/build/utils.scm (switch-symlinks): ... here.
* guix/profiles.scm, guix/scripts/home.scm, guix/scripts/package.scm: Import
switch-symlinks from (guix build utils).
* guix/scripts/system/reconfigure.scm (switch-system-program): Import (guix
build utils) in G-expression.
2022-06-25 01:43:04 +05:30
jgart
1ba84bd1af
python-build-system: Fix typo in module-level comment paragraph.
* guix/build/python-build-system.scm: Fix typo in comment paragraph.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-06-22 13:53:55 -04:00
Ludovic Courtès
8655a71445
Merge branch master into core-updates 2022-06-22 18:48:00 +02:00
(
30edb241a9
build-system/dub: Don't expect ‘.dub/dub.json’.
This file is no longer produced by our version of Dub.

* guix/build/dub-build-system.scm (build, check): Remove obsolete
substitutions.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-19 02:00:00 +02:00
(
ba95bbbac5
build-system/dub: Fix configure docstring indentation.
* guix/build/dub-build-system.scm (configure): Reflow docstring.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-19 02:00:00 +02:00
(
c539a13050
build-system/dub: Don't explicitly return #t from phases.
* guix/build/dub-build-system.scm (configure, build, check, install):
Remove trailing #t.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-19 02:00:00 +02:00
Michal Atlas
4dbe1c96e4
build-system: chicken: Add version information to eggs if missing.
Chicken eggs do not always contain version information, yet dependant packages
often rely on this information being present.  Thus, add a version field if it
is missing.

* guix/build/chicken-build-system.scm (stamp-egg-version): New variable.
(%standard-phases): Add ‘stamp-egg-version’.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-06-21 21:41:32 +02:00
Fredrik Salomonsson
c3afbd05bf
guix: emacs-utils: Add emacs-header-parse.
* guix/build/emacs-utils.scm (emacs-header-parse): New procedure.

* tests/build-emacs-utils.scm ("emacs-header-parse: fetch version",
  "emacs-header-parse: fetch keywords", "emacs-header-parse: fetch
  nonexistent author"): New tests.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-17 23:39:32 +02:00
Fredrik Salomonsson
f8275916fc
guix: emacs-utils: Add emacs-batch-script.
* guix/build/emacs-utils.scm (emacs-batch-script): New procedure.

* tests/build-emacs-utils.scm: New file.

* Makefile.am (TESTS): Add `tests/build-emacs-utils.scm'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-06-17 23:39:31 +02:00
Liliana Marie Prikler
956f0b4465
guix: Modernize renpy-build-system.
* guix/build-system/renpy.scm (build): Drop trailing #t.
(install, install-desktop-file): Likewise.  Also add inputs and use
search-input-file for /bin/sh and /bin/renpy.
2022-06-17 18:49:06 +02:00
Hartmut Goebel
97586ca1cb
build-system: Add 'rebar-build-system'.
* guix/build-system/rebar.scm, guix/build/rebar-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Update rebar-build-system section.
2022-06-15 10:17:25 +02:00
Ludovic Courtès
8c3e9da13a
Merge branch 'master' into core-updates 2022-06-08 14:46:24 +02:00
Maxim Cournoyer
be672f1f7f
gnu: bazaar: Obsolete with breezy.
* gnu/packages/version-control.scm (bazaar): Deprecate package.
* guix/build/bzr.scm (bzr-fetch): Adjust to use breezy; delete trailing #t.
* guix/bzr-download.scm (bzr-package): Replace bazaar by breezy.
2022-05-31 14:54:02 -04:00
jgart
47fac5dc59
python-build-system: Change let* to let in `site-packages'.
* guix/build/python-build-system.scm (site-packages): Change let* to let for
readability and since let* is unused.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-05-18 09:06:06 -04:00
Arun Isaac
3d0e92de09
build: font-build-system: Do not return #t from phases.
* guix/build/font-build-system.scm (unpack, install): Do not return #t from
phases.
2022-05-16 14:17:01 +05:30
Arun Isaac
0c272b6e7a
build: font-build-system: Install web fonts.
* guix/build/font-build-system.scm (install): Install woff and woff2 web font
files.
2022-05-16 14:16:57 +05:30
Philip McGrath
aefcfdd0ae
guix: Add elm-build-system.
* gnu/packages/patches/elm-offline-package-registry.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/elm.scm (elm): Use it.
* guix/build-system/elm.scm, guix/build/elm-build-system.scm,
tests/elm.scm: New files.
* Makefile.scm (MODULES, SCM_TESTS): Add them.
* doc/guix.texi (Build Systems): Document 'elm-build-system'.
* doc/contributing.texi (Elm Packages): New section. Document naming
conventions and utilities.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-22 01:07:51 +02:00
Maxim Cournoyer
360e2eb3ac
build: emacs-utils: Add a (as-display) subform to `emacs-substitute-variables'.
* guix/build/emacs-utils.scm (as-display): New variable.
(replacement-helper): New syntax helper.
(emacs-substitute-sexps): Use it and update doc.
(emacs-substitute-variables): Add an optional 'modifier' datum to the
replacement specification, and document it.
2022-04-04 00:06:31 -04:00
Maxim Cournoyer
a9429c8f22
Merge branch 'staging' into core-updates. 2022-03-21 23:39:43 -04:00
Timothy Sample
0db2a6e749
gnu-bootstrap: Allow multiple module directories.
* guix/build/gnu-bootstrap.scm (bootstrap-configure,
bootstrap-build, bootstrap-install): Treat the 'modules' argument as
a list of directories.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Adjust call sites.
2022-03-19 13:33:06 -06:00
Timothy Sample
5268bd97b1
gnu-bootstrap: Configure PACKAGE_NAME.
* guix/build/gnu-bootstrap.scm (bootstrap-configure): Add a 'name'
argument and use it to configure the PACKAGE_NAME variable.
* gnu/packages/commencement.scm (bootar, gash-boot,
gash-utils-boot): Use the new argument.
2022-03-19 13:33:06 -06:00
Ludovic Courtès
f1c18e1766
download: Fix typo in procedure name.
* guix/build/download.scm (make-credendials-with-ca-trust-files): Rename
to...
(make-credentials-with-ca-trust-files): ... this.
2022-03-03 23:57:01 +01:00
Ludovic Courtès
c1a871a166
download: Load X.509 certificates only once.
Previously we'd load /etc/ssl/certs/*.pem (or similar) every time
'http-fetch' is called.

* guix/build/download.scm (make-credendials-with-ca-trust-files): Wrap
in 'mlambda'.
2022-03-03 23:57:00 +01:00
Ludovic Courtès
b4acb39b6b
download: Remove obsolete bit from docstring.
This is a followup to f4cde9ac4a.

* guix/build/download.scm (open-connection-for-uri): Remove bit about
'close-connection' from the docstring.
2022-03-03 23:57:00 +01:00
zimoun
1f6ae9a8e0
build: julia-build-system: Fix corner-case for parallel tests.
* guix/build/julia-build-system.scm (check): Do not run parallel tests when
'--cores=1'.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2022-02-24 12:20:32 +02:00
Efraim Flashner
05d469ab9d
build: julia: Add 'julia-package-dependencies' as keyword.
* guix/build-system/julia.scm (link-depot): Accept julia-package-dependencies
keyword and use it for 'julia-create-package-toml' function.
(julia-create-package-toml): Use pattern matching.
(julia-build): Add 'julia-pacakge-dependencies'.
* guix/build/julia-build-system.scm (julia-build): Add
'#:julia-package-dependencies' keyword.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2022-02-24 12:20:31 +02:00
Maxim Cournoyer
dde03913b3
build: Fix typo in file-size docstring.
* guix/build/store-copy.scm (file-size): Fix typo.
2022-02-07 16:22:37 -05:00
Julien Lepiller
fb1a9c11e5
guix: maven: Fix java parser.
* guix/build/maven/java.scm (comment, comment-chr): Support more comment
styles.
2022-02-05 20:16:32 +01:00
Andrew Tropin
f38697f5f8
build-system: emacs: Ensure that package descriptions are generated.
This patch addresses the second part of <https://bugs.gnu.org/48331>.
While existing -pkg.el files were previously installed, no such files
were generated for packages lacking them, resulting in packages not
being listed as installed and not being available towards
“describe-package”.

* guix/build/emacs-build-system.scm (find-root-library-file)
(ensure-package-description): New variables.
(%standard-phases): Add ‘ensure-package-description’.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-01-29 08:45:06 +01:00
Maxim Cournoyer
0d41fe4855
Merge branch 'staging' into core-updates.
With "conflicts" resolved in (mostly in favor of master/staging):
	gnu/packages/admin.scm
	gnu/packages/gnuzilla.scm
	gnu/packages/gtk.scm
	gnu/packages/kerberos.scm
	gnu/packages/linux.scm
	guix/lint.scm
2022-01-25 23:48:37 -05:00
Reily Siegel
0f2df54f83
build-system/clojure: Support compiling Java.
* guix/build/clojure-build-system.scm (compile-java): New variable.
(build): Copy classes compiled from Java and optionally Java sources to
the final jar.
(%standard-phases): Add compile-java phase before build.
* guix/build/clojure-utils.scm (%java-source-dirs): New variable.
(%java-compile-dir): New variable.
* guix/build-system/clojure.scm (clojure-build): Include %java-source-dirs and
%java-compile-dir.
(builder): Include %java-source-dirs and %java-compile-dir.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-01-24 10:38:14 +01:00
Reily Siegel
09b4d74bd3
build-system/clojure: Exit with non-zero if tests fail.
* guix/build/clojure-build-system.scm (check): Exit test process with a
non-zero exit code if tests fail.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-01-24 10:38:14 +01:00
Ludovic Courtès
97a6b4581a
compile: Really disable cross-module inlining and related features.
This is a followup to d87a1ba6b8.

* guix/build/compile.scm (strip-keyword-arguments): Rename to...
(clear-keyword-arguments): ... this, and set the value associated with
each of KEYWORDS to #f.
(optimizations-for-level): Adjust accordingly.
2022-01-23 23:03:33 +01:00
Maxim Cournoyer
276f40fdc3
Merge branch 'version-1.4.0'
With resolved conflicts in:
	gnu/packages/gnome.scm
	gnu/packages/openstack.scm
	gnu/packages/python-xyz.scm
2022-01-17 11:47:09 -05:00
Sarah Morgensen
0f71f55a60
build-system/gnu: Make gzip files writable before resetting timestamps.
guix/build/gnu-build-system.scm (reset-gzip-timestamps): Ensure gzip
files are writable before resetting their timestamps.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-01-10 11:44:47 -05:00
Brendan Tildesley
7f8a896c5f
utils: Fix wrap-script argument handling.
* guix/build/utils.scm (wrap-script):
Don't add (car cl) one too many times, cl its self contains it's car.
Split the aguments string with string-tokenize to avoid leaving an empty
string argument when there should be none. These two bugs seemed to
be partially cancelling each other out so that scripts still worked when
ran with no arguments.

* tests/build-utils.scm: Adjust wrap-script to above changes.
Add two tests to ensure the command line arguments appear identical to a
script and its wrapped version.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-01-10 11:44:29 -05:00
zimoun
a2010ac21b
build: julia-build-system: Create 'Project.toml' file when missing.
* guix/build/julia-build-system.scm (link-depot): Create 'Project.toml' file
when missing using data provided by the user.
(julia-create-package-toml): Remove from export.
* doc/guix.texi (Build Systems): Update julia-build-system section.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2022-01-10 15:15:31 +02:00
Philip McGrath
a62e6e3220
guix: node-build-system: Add 'delete-dependencies' helper function.
Many node packages currently skip the configure phase, because they lack
both dependencies and a convenient way to build without all of them, e.g.
for the purposes of bootstrapping.  This patch adds a big hammer to flatten
these nails.

* guix/build/node-build-system.scm (delete-dependencies): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-01-09 02:07:12 +01:00
Philip McGrath
df7d787ba4
guix: node-build-system: Add avoid-node-gyp-rebuild phase.
Packages with native addons currently try to write to store paths
when used as dependecies.  This patch adds a phase to replace that
behaviour with a no-op.

* guix/build/node-build-system.scm (avoid-node-gyp-rebuild): New
variable.
(%standard-phases): Add 'avoid-node-gyp-rebuild' after 'install'.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-01-09 02:07:11 +01:00
Philip McGrath
2ef3fe9f35
guix: node-build-system: Add JSON utilities.
This commit adds several utility functions for non-destructive
transformation of the JSON representation used by (guix build json),
particularly for purely functional update of JSON objects.  They ought
to eventually be exported from their own module, but for now are kept
private to allow experimentation.

* guix/build/node-build-system.scm (assoc-ref*, jsobject-ref, alist-pop)
(alist-update, jsobject-update*, jsobject-union): New variables.
(with-atomic-json-file-replacement): New public variable.
(module-name, build, patch-dependencies): Use them.  Do not resort to
unsafe alist primitives from Guile core.

Co-authored-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-01-09 02:07:11 +01:00
Philip McGrath
5add4af6fc
guix: node-build-system: Add delete-lockfiles phase.
Guix does not use any of these lock files to determine the package versions
used during the build, so they only serve to cause problems.

* guix/build/node-build-system.scm (delete-lockfiles): New variable.
(%standard-phases): Add 'delete-lockfiles' after 'patch-dependencies'.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2022-01-09 02:07:10 +01:00
Ludovic Courtès
d87a1ba6b8
compile: Disable cross-module inlining and related features.
This makes no difference on Guile <= 3.0.7.

* guix/build/compile.scm (strip-keyword-arguments): New procedure.
(optimizations-for-level): Use it to strip keywords related to
cross-module inlining.
2022-01-14 22:39:24 +01:00
Reily Siegel
4b770d3adf
build: clojure-utils: Don't try to compile Clojure.
* guix/build/clojure-utils.scm (%aot-include): Add "data-readers" to the
default list of files to exclude from ahead-of-time compilation.
2022-01-12 17:43:02 +01:00
Ryan Sundberg
bfdeba11f8
linux-container: Handle CLONE_NEWCGROUP and use it by default.
Adds low-level support for launching Linux containers with cgroup namespaces.

* gnu/build/linux-container.scm (%namespaces): Add 'cgroup.
(namespaces->bit-mask): Handle it.
* guix/build/syscalls.scm (CLONE_NEWCGROUP): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-01-05 23:44:18 +01:00
Sarah Morgensen
c90f73f816
build-system/go: Initialize build cache from input packages.
* guix/build/go-build-system.com (setup-go-environment): Set GOCACHE to
a location within the build directory.  Union "/var/cache/go/build"
input directories to initialize the cache.  Generate "trim.txt" within
the cache, with the current time.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-12-24 16:32:25 -05:00
Efraim Flashner
6ccf8ea81f
Merge branch 'master' into core-updates 2021-12-19 15:15:11 +02:00
Maxim Cournoyer
046a23e63a
build-system: emacs: Do not rely on input labels in the 'build' phase.
This commit repairs the Emacs build system for packages using the new
label-less "guix style".  Tested with emacs-libgit.

* guix/build/emacs-build-system.scm (build): Use search-input-file to locate
emacs.
2021-12-14 11:18:46 -05:00
Nicolas Goaziou
41e61e4fed
guix: Fix typo in last commit.
* guix/build/emacs-build-system.scm (make-autoloads): Fix typo.
2021-12-14 15:49:15 +01:00
Nicolas Goaziou
6717ce28d0
guix: Do not assume "emacs" label in make-autoloads.
* guix/build/emacs-build-system.scm (make-autoloads): Look for "emacs"
executable independently on the label.
2021-12-14 15:48:02 +01:00
Ricardo Wurmus
9bc0f45df5
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-12-05 19:17:41 +01:00
Liliana Marie Prikler
98cec36957
build-system: emacs: Keep -pkg.el files.
Partly fixes <https://bugs.gnu.org/48331> -- package descriptions can now be
found in the install directory.

* guix/build/emacs-build-system.scm (%default-exclude): Remove "-pkg\\.el$".
2021-12-03 21:39:50 +01:00
zimoun
73f55957cf
build: julia-build-system: Correctly disable parallel tests.
* guix/build/julia-build-system.scm: Remove phases trailing #t.
[phases]{check}: Omit the --procs argument when parallel tests are to be
disabled.  Substract 1 from the number of parallel jobs otherwise.

Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-11-27 01:22:33 -05:00
zimoun
905b090582
build: julia-build-system: Add support for parallel tests.
The tests are defined by the script 'test/runtests.jl' from packages and the
parallelism depends on the implementation of this script.  Therefore, 'julia'
is launched using local worker processes accordingly with 'parallel?'.

* guix/build/julia-build-system.scm (check): Set the JULIA_CPU_THREADS
environment variable and invoke julia with the '--procs' option.
* guix/build-system/julia.scm (julia-build)[parallel-tests?]: New argument.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-11-25 01:04:17 -05:00
Ludovic Courtès
b15e543d30
Merge branch 'master' into core-updates-frozen 2021-11-23 11:29:38 +01:00
Josselin Poiret
0831dfab75
system: Add swap flags.
* gnu/system/file-systems.scm (swap-space)[priority, discard?]: Add
them.
* guix/build/syscalls.scm (SWAP_FLAG_PREFER, SWAP_FLAG_PRIO_MASK,
SWAP_FLAG_PRIO_SHIFT, SWAP_FLAG_DISCARD): Add them.
* gnu/build/file-systems.scm (swap-space->flags-bit-mask): Add it.
* gnu/services/base.scm (swap-service-type): Use it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23 10:24:27 +01:00
Maxim Cournoyer
8444b44a8c
build: syscalls: Add a SET-CHILD-SUBREAPER! procedure.
* guix/build/syscalls.scm (PR_SET_CHILD_SUBREAPER): New variable.
(set-child-subreaper!): New procedure.
2021-11-20 08:57:00 -05:00
Ludovic Courtès
3a317f7476
Merge branch 'master' into core-updates-frozen 2021-11-17 23:43:14 +01:00
Jean-Baptiste Volatier
3af351a7de
build-system/julia: Enable Julia Pkg to find installed packages.
Julia's built-in package manager (Pkg) looks for packages in
JULIA_DEPOT_PATH/packages/PACKAGENAME/XXXX, where XXXX is a string
encoding package UUID and SHA1 of files.  The link-depot phase creates
a link at the correct location to allow Pkg to find packages that were
already installed by Guix.

* guix/build/julia-build-system.scm (link-depot): New phase.
(%package-path): Modified package path from packages/ to loadpath/.
(project.toml->uuid): New procedure, retrive package uuid from TOML file.
(precompile, check): Adjust to the change in paths.
(%standard-phases): Add link-depot phase.
(julia-build): Add julia-package-uuid keyword.
* guix/build-system/julia.scm (julia-build): Also use the
julia-package-uuid keyword.
* gnu/packages/julia-jll.scm (julia-bzip2-jll, julia-cairo-jll,
julia-compilersupportlibraries-jll, julia-expat-jll, julia-ffmpeg-jll,
julia-fontconfig-jll, julia-freetype2-jll, julia-fribidi-jll,
julia-gettext-jll, julia-glib-jll, julia-gr-jll, julia-gumbo-jll,
julia-imagemagick-jll, julia-jllwrappers-jll, julia-jpegturbo-jll,
julia-lame-jll, julia-libass-jll, julia-libfdk-aac-jll,
julia-libffi-jll, julia-libgcrypt-jll, julia-libglvnd-jll,
julia-libgpg-error-jll, juli-libiconv-jll, julia-libmount-jll,
julia-libpng-jll, julia-libsass-jll, julia-libtiff-jll,
julia-libuuid-jll, julia-libvorbis-jll, julia-lzo-jll,
julia-mbedtls-jll, julia-ogg-jll, julia-openspecfun-jll,
julia-openssl-jll, julia-opus-jll, julia-pcre-jll, julia-pixman-jll,
julia-qt5base-jll, julia-wayland-jll, julia-wayland-protocols-jll,
julia-x264-jll, julia-x265-jll, julia-xkbcommon-jll, julia-xml2-jll,
julia-xorg-libpthread-stubs-jll, julia-xorg-libx11-jll,
julia-xorg-libxau-jll, julia-xorg-libxcb-jll, julia-xorg-libxcursor-jll,
julia-xorg-libxdmcp-jll, julia-xorg-libxext-jll,
julia-xorg-libxfixes-jll, julia-xorg-libxi-jll,
julia-xorg-libxinerama-jll, julia-xorg-libxkbfile-jll,
julia-xorg-libxrandr-jll, julia-xorg-libxrender-jll,
julia-xorg-xcb-util-jll, julia-xorg-xcb-util-keysyms-jll,
julia-xorg-xcb-util-renderutil-jll, julia-xorg-xcb-util-wm-jll,
julia-xorg-xkbcomp-jll, julia-xorg-xkeyboard-config-jll,
julia-xorg-xtrans-jll, julia-xslt-jll, julia-zlib-jll, julia-zstd-jll)
[argument]: Adjust the order of the phases to the change in the
julia-build-system.
* gnu/packages/julia-xyz.scm (julia-bufferedstreams, julia-calculus,
julia-dataframes, julia-datavalues, julia-distances, julia-documenter,
julia-dualnumbers, julia-ellipsisnotation, julia-expronicon,
julia-fileio, julia-fixedpointnumbers, julia-functionwrappers,
julia-fuzzycompletions, julia-genericlinearalgebra, julia-genericschur,
julia-geometrybasics, julia-imagemagick, julia-infinity,
julia-matrixfactorizations, julia-media, julia-missings, julia-nnlib,
julia-optimtestproblems, julia-orderedcollections, julia-prettytables,
julia-pycall, julia-quadmath, julia-safetests, julia-stackviews)
[arguments]: Correct paths to reflect change of %package-path modify
order of phases as link-depot needs to run on an unmodified src
directory add package-name-uuid keyword argument to packages without
Project.toml file.
* gnu/packages/julia.scm (julia)[native-search-paths]: Correct paths to
reflect change of %package-path modify order of phases as link-depot
needs to run on an unmodified src directory.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-11-16 14:39:51 +02:00
Vagrant Cascadian
75cae188ad
build: wrap-qt-program: Fix typo.
* gnu/build/qt-utils.scm (wrap-qt-program): Fix spelling of "program".
2021-11-14 18:02:22 -08:00
Maxim Cournoyer
dfcc96d8f4
build: meson: Replace the 'test-target' argument by 'test-options'.
This change is motivated by the need to disable the default 30 seconds timeout
that Meson uses (see: https://gitlab.gnome.org/GNOME/glib/-/issues/2522), and
also by desire to specify extra options to run the check phase without having
to override it.

* guix/build-system/meson.scm (meson-build) <test-target>: Replace argument
with...
<test-options>: ... this one.
* guix/build/meson-build-system.scm (check): Invoke 'meson test' instead of
'ninja test-target', as the former is configurable via options.
* doc/guix.texi (Build Systems) <meson-build-system>: Update doc.
2021-11-11 12:18:32 -05:00
Maxim Cournoyer
e0d9c37982
build: glib-or-gtk: Generate the gdk-pixbuf-loaders cache file in a phase.
Adding a profile hook to do so covers most use cases, but it is still
necessary to have the gdk-pixbuf loaders cache file computed at build time, as
software may expect to find loaders support at that time.

* guix/build/glib-or-gtk-build-system.scm: Delete trailing #t.
(%gdk-pixbuf-loaders-cache-file-prefix): New variable.
(generate-gdk-pixbuf-loaders-cache): New procedure.
(generate-gdk-pixbuf-loaders-cache-file): Add procedure...
(%standard-phases): ... and register it as a build phase.
2021-11-11 12:18:19 -05:00
Maxim Cournoyer
889eebc185
build: glib-or-gtk-build-system: Fix indentation.
* guix/build/glib-or-gtk-build-system.scm (gtk-module-directories)
(wrap-all-programs): Fix indentation.
2021-11-11 12:18:13 -05:00
Maxim Cournoyer
eb619cda36
build: glib-or-gtk-build-system: Simplify the wrap-all-programs phase.
* guix/build/glib-or-gtk-build-system.scm (wrap-all-programs)
<handle-output>: Precisely build the list of variable specifications, rather
than relying on a bunch of conditionals.
2021-11-11 12:18:12 -05:00
Brendan Tildesley
3dfe45c3f1
build: qt-utils: Don't wrap .X-real files.
* guix/build/qt-utils.scm (find-files-to-wrap): Exclude already wrapped
programs.  This is forbidden in wrap-program now due to a738a663a9.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-11-11 10:31:31 -05:00
Efraim Flashner
bc5155b952
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-10-31 14:49:47 +02:00
Ludovic Courtès
0a42998a50
syscalls: Gracefully handle failure to load libc's libutil.
In particular, libutil is not found when running code on a
statically-linked Guile.

Reported by mahmooz on #guix.

* guix/build/syscalls.scm (syscall->procedure): Add #:library parameter
and honor it.
(openpty, login-tty): Use 'syscall->procedure' instead of calling
'dynamic-link' directly.
2021-10-26 14:53:43 +02:00
Ludovic Courtès
f87371bf3e
syscalls: Add 'openpty' and 'login-tty'.
* guix/build/syscalls.scm (openpty, login-pty): New procedures.
* tests/syscalls.scm ("openpty", "openpty + login-tty"): New tests.
2021-10-26 12:46:27 +02:00
Mathieu Othacehe
e486b2b674
Merge remote-tracking branch 'signed/master' into core-updates 2021-10-18 14:37:26 +00:00
Efraim Flashner
0cd912186a
build-system/go: Fix building on host's secondary architecture.
Before when building for i686-linux on x86_64-linux GOARCH would be set
to amd64, not 386.

* guix/build-system/go.scm (go-build): Set goarch and goos to #f when
not cross-compiling.
* guix/build/go-build-system.scm (setup-go-environment): Set GOARCH
according to the calculated goarch or using GOHOSTARCH and GOOS
according to the calculated goos or using GOHOSTOS.
2021-10-18 14:53:17 +03:00
Julien Lepiller
0623138ffa
maint: Factorize po xref translation.
This ensures we use the same method in "make" as in "guix/self.scm".

* Makefile.am: Build guix/build/po.scm.
* build-aux/convert-xref.scm: New file.
* doc/local.mk (xref_command): Use it.
* guix/self.scm (translate-cross-references): Move it...
* guix/build/po.scm: Parse comments and flags separately to find fuzzy
flags.
(translate-cross-references): ...here.
(parse-tree->assoc): Ignore fuzzy entries.
2021-10-17 18:26:44 +02:00
Vivien Kraus
9a8c7808cc
build-system/minetest: Install config.txt and _config.txt.
* guix/build/minetest-build-system.scm (mod-install-plan):
Add "config.txt" and "_config.txt" to the list of installed files.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-10-16 17:30:31 +02:00
Vivien Kraus
b0248a52e0
build-system/minetest: Gather whole failing test output.
* guix/build/minetest-build-system.scm (check):
Gather the whole output when a test fails.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-10-16 17:30:30 +02:00
Ludovic Courtès
5b81999c89
download: Print URL of the Disarchive spec being read.
* guix/build/download.scm (disarchive-fetch/any): Show URI of the
Disarchive spec.
2021-10-14 16:45:06 +02:00
Ludovic Courtès
689d529e74
download: Add missing autoload.
This is a followup to 6d02a994f9, which
left '%verify-swh-certificate?' unbound.

* guix/build/download.scm: Autoload for '%verify-swh-certificate'.
2021-10-14 15:44:51 +02:00
Mathieu Othacehe
a1eca979fb
Merge remote-tracking branch 'origin/master' into core-updates-frozen. 2021-10-12 17:46:23 +00:00
Tobias Geerinckx-Rice
a1679b74c9
Revert the #51061 patch series for now.
This reverts commits f63c79bf76
..f86f7e24b39928247729020df0134e2e1c4cde62 for more chillax reviewing.

See <https://issues.guix.gnu.org/51061#32>.
2021-10-08 23:31:34 +02:00
Lars-Dominik Braun
b74ca403cb
build-system/haskell: Explain failure.
Provide human-readable failure message and explain how to fix it.

* guix/build/haskell-build-system.scm (register): Raise error if source
file does not exist.
2021-10-08 09:13:52 +02:00
Lars-Dominik Braun
a01daed62c
build-system/haskell: Accept line breaks in config files.
Long id’s will break to the next line.

* guix/build/haskell-build-system.scm (grep): Remove.
(register): Modify regular expression to account for newlines between
key and value, fail if package id is empty.
2021-10-08 09:13:52 +02:00
Lars-Dominik Braun
7cdb65dc9c
build-system/haskell: Do not rely on compiler name.
We’ve been relying on the compiler name matching its package
subdir. Since we effectively only support GHC we can hard-code this and
avoid issues with “ghc-next”.

* guix/build/haskell-build-system.scm (make-ghc-package-database):
Use GHC_PACKAGE_PATH.
(register): Hard-code ghc prefix.
2021-10-08 09:13:51 +02:00
John Kehayias
fe56213027
guix: haskell-build-system: Always pass -package-db option.
* guix/build/haskell-build-system.scm (run-setuphs): Pass -package-db option.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2021-10-08 09:13:46 +02:00
Hartmut Goebel
1660253c3c
build-system: Add 'rebar3-build-system'.
* guix/build-system/rebar3.scm, guix/build/rebar3-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
2021-10-07 22:35:28 +02:00
Ludovic Courtès
6d02a994f9
download: Honor #:verify-certificate? for SWH downloads.
Previously, the SWH + Disarchive fallback could fail with:

  Trying to use Disarchive to assemble /gnu/store/…-ucsim-0.6-pre68.tar.gz...
  Assembling the directory ucsim-0.6-pre68
  Downloading /gnu/store/…-ucsim-0.6-pre68.tar.gz from Software Heritage...
  X.509 certificate of 'archive.softwareheritage.org' could not be verified:
    signer-not-found
    invalid

  Could not resolve directory reference

This will no longer be the case since 'guix perform-download'
passes #:verify-certificate? #f.

* guix/build/download.scm (disarchive-fetch/any): Parameterize
'%verify-swh-certificate?'.
2021-10-07 10:47:43 +02:00
Maxime Devos
77b98bf187
build/qt-utils: Allow overriding the shell interpreter used.
* guix/build/qt-utils.scm
  (wrap-qt-program*): Add #:sh argument and pass it to 'wrap-program'.
  (wrap-qt-program): Likewise, but pass it to 'wrap-qt-program*' instead.
  (wrap-all-qt-programs): Likewise, but pass it to 'wrap-qt-program' instead.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:06 +00:00
Maxime Devos
8a55fde935
build/minetest-build-system: Move png-file? to (guix build utils).
It's not really Minetest-specific.  It was only placed in
(guix build minetest-build-system) to avoid a world rebuild.

* guix/build/minetest-build-system.scm (%png-magic-bytes,png-file?):
  Move to ...
* guix/build/utils.scm (%png-magic-bytes,png-file?): ... here.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 11:00:02 +00:00
Mathieu Othacehe
ba049bb2da
build: glib-or-gtk-build-system: Add gtk 4.0 support.
* guix/build/glib-or-gtk-build-system.scm (gtk-module-directories): Add gtk
4.0 support.
2021-10-02 10:54:21 +00:00
Tobias Geerinckx-Rice
bdd190e3aa
build-system: linux-module: Don't explicitly return #t from phases.
* guix/build-system/linux-module.scm (configure): Remove explicit #t return value.
2021-10-01 21:27:35 +02:00
Tobias Geerinckx-Rice
834415c33a
build-system: linux-module: Build and install in parallel.
* guix/build-system/linux-module.scm (linux-module-build)
(guix/build-system/linux-module.scm): Accept the PARALLEL-BUILD? keyword
and pass it on to the builder.
* guix/build/linux-module-build-system.scm (build, install): Capture and
honour it.
2021-10-01 21:27:35 +02:00
Tobias Geerinckx-Rice
a939011b58
build-system: linux-module: Normalise the ‘M’ source-directory.
"make modules_install" with an "M=" file name ending in "/." breaks at
least rtl8812au-aircrack-ng-linux-module.  In general, passing a more
human-generated-looking value seems prudent as these are more likely to
be tested upstream.

* guix/build/linux-module-build-system.scm (build, install): Call
CANONICALIZE-PATH on SOURCE-DIRECTORY instead of STRING-APPEND.

Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.
as apteryx on #guix
2021-09-30 07:17:01 +02:00
Ludovic Courtès
afe8c67ac1
union: Do not warn about "ld.so.cache" collisions.
This is a followup to f85efa86e7.

* guix/build/union.scm (%harmless-collisions): Add "ld.so.cache".
2021-09-25 18:52:05 +02:00
Liliana Marie Prikler
719bbcc15e
Update copyright assignments for Liliana Marie Prikler.
* doc/guix.texi: Update copyright name for Liliana Marie Prikler.
* gnu/packages/build-tools.scm: Update copyright name and email for Liliana
Marie Prikler.
* gnu/packages/convmv.scm: Likewise.
* gnu/packages/emacs-xyz.scm: Likewise.
* gnu/packages/emacs.scm: Likewise.
* gnu/packages/esolangs.scm: Likewise.
* gnu/packages/game-development.scm: Likewise.
* gnu/packages/games.scm: Likewise.
* gnu/packages/gnome-xyz.scm: Likewise.
* gnu/packages/gnome.scm: Likewise.
* gnu/packages/gstreamer.scm: Likewise.
* gnu/packages/guile-xyz.scm: Likewise.
* gnu/packages/minetest.scm: Likewise.
* gnu/packages/music.scm: Likewise.
* gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch: Likewise.
* gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch: Likewise.
* gnu/packages/patches/webkitgtk-bind-all-fonts.patch: Likewise.
* gnu/packages/python-xyz.scm: Likewise.
* gnu/packages/unicode.scm: Likewise.
* gnu/packages/xorg.scm: Likewise.
* gnu/services/sound.scm: Likewise.
* guix/build-system/renpy.scm: Likewise.
* guix/build/emacs-utils.scm: Likewise.
* guix/build/renpy-build-system.scm: Likewise.
2021-09-25 09:34:36 +02:00
Tobias Geerinckx-Rice
348f0c61ef
syscalls: Deduplicate device number conversion.
* guix/cpio.scm (device-number, device->major+minor):
Move to, and subsequently import from, …
* guix/build/syscalls.scm (device-number, device-number->major+minor):
…here.  Note the slight name change.
(mounts): Replace 16-bit open code with a DEVICE-NUMBER call.
* gnu/build/linux-boot.scm (device-number):
Remove duplicate 16-bit implementation in favour of the one above.
(resume-if-hibernated): Reuse DEVICE-NUMBER->MAJOR+MINOR.
2021-09-23 18:17:16 +02:00
Ludovic Courtès
5871639bb1
download: Fall back to web.archive.org as a very last resort.
Suggested by Florian Pelz <pelzflorian@pelzflorian.de>.

* guix/build/download.scm (internet-archive-uri): New procedure.
(url-fetch): Append it to the list of URIs after
CONTENT-ADDRESSED-URIS.
2021-09-22 16:14:39 +02:00
Marius Bakke
5c3cb22c9b
Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/bioinformatics.scm
	gnu/packages/chez.scm
	gnu/packages/docbook.scm
	gnu/packages/ebook.scm
	gnu/packages/gnome.scm
	gnu/packages/linux.scm
	gnu/packages/networking.scm
	gnu/packages/python-web.scm
	gnu/packages/python-xyz.scm
	gnu/packages/tex.scm
	gnu/packages/version-control.scm
	gnu/packages/xml.scm
	guix/build-system/dune.scm
	guix/build-system/go.scm
	guix/build-system/linux-module.scm
	guix/packages.scm
2021-09-17 01:25:52 +02:00
Liliana Marie Prikler
c8e2358cca
build-system: linux-module: Support source-directory.
As with guile-build-system, the module to be build need not necessarily live
at the root of the build tree.

* guix/build/linux-module-build-system.scm (build, install): Add
source-directory argument and append it to "M" variable when invoking make.
* guix/build-system/linux-module.scm (linux-module-build): Add
source-directory argument.
2021-09-14 23:27:36 +02:00
Ludovic Courtès
3cb5ae8577
download: Disarchive mirrors can be URL-returning procedures.
As discussed at <https://issues.guix.gnu.org/47336#16>.

* guix/build/download.scm (url-fetch)[disarchive-uris]: Accept MIRROR as
a procedure.
* guix/download.scm (%disarchive-mirrors): Add comment.  This change can
only be made once a 'guix perform-download' that understands procedures
is widely deployed.
2021-09-14 11:50:58 +02:00
Efraim Flashner
de4f5df95d
build/go: Support cross compiling.
* guix/build-system/go.scm (go-target): New procedure.
(go-build): Add goarch, goos keywords. Adjust bag depending if doing a
native or cross compile.
(go-cross-build): New procedure.
* guix/build/go-build-system.scm (setup-go-environment): Accept goarch,
goos keywords. Set go environment variables based on target architecture.
* doc/guix.texi (Build Systems): Mention new go-build-system keywords.
2021-09-13 15:33:30 +03:00
pukkamustard
f8f94cc544
guix: dune-build-system: Put dune into a reproducible release mode.
* guix/build/dune-build-system.scm (build,check): Replace the profile parameter
with the appropriate release flags.
* guix/build-system/dune.scm: Remove the profile parameter.
* doc/guix.texi: Remove paragraph on profile parameter.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-09-08 13:39:27 +02:00
Ludovic Courtès
d9dfbf886d
Merge branch 'master' into core-updates-frozen 2021-09-07 14:19:08 +02:00
Marius Bakke
b029be2ee0
Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/bioinformatics.scm
	gnu/packages/cmake.scm
	gnu/packages/curl.scm
	gnu/packages/emacs-xyz.scm
	gnu/packages/gpodder.scm
	gnu/packages/music.scm
	gnu/packages/patches/glibc-bootstrap-system.patch
	gnu/packages/python-xyz.scm
	gnu/packages/shells.scm
	gnu/packages/statistics.scm
2021-07-29 22:34:57 +02:00
pukkamustard
33a1ec29fa
guix: dune-build-system: Add a profile parameter.
* guix/build-system/dune.scm: Add a profile parameter.
* guix/build/dune-build-system.scm (build): Use it.
* doc/guix.texi: Document it.
* gnu/packages/ocaml.scm: Remove profile being set from build flags.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-08-20 23:51:11 +02:00
Maxime Devos
3df485152c
build-system: Add 'minetest-mod-build-system'.
* guix/build-system/minetest.scm: New module.
* guix/build/minetest-build-system.scm: Likewise.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document 'minetest-mod-build-system'.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-20 12:41:54 +02:00
Mathieu Othacehe
0236013cd0
build: utils: Trim leading slash from search-input-file input.
Make sure that both:

(search-input-file inputs "/bin/sh") and (search-input-file inputs "bin/sh")

are supported.

* guix/build/utils (search-input-file): Trim leading slash character from
FILE.
2021-07-25 19:13:10 +02:00
Thiago Jung Bauermann
04e80290bf
gnu: TeX Live: Use IniTeX to build a couple of packages
The package texlive-latex-base in TeX Live 2021 will depend on
texlive-latex-l3kernel and texlive-latex-l3packages. Therefore we need to
remove their build dependency on texlive-latex-base to avoid a circular
dependency.

l3kernel and l3packages don’t need LaTeX during build, just IniTeX.
So to make them use it, modify texlive-build-system to allow disabling
the #:texlive-latex-base and #:tex-format parameters, and also add
a #:tex-engine parameter.

We also need to add texlive-docstrip as a native input, which was
previously provided by texlive-latex-base.

* gnu/packages/tex.scm (texlive-latex-l3kernel,
texlive-latex-l3packages)[arguments]: Add ‘#:tex-engine’, ‘#:tex-format’
and ‘#:texlive-latex-base’ parameters.
[native-inputs]: Add ‘texlive-docstrip’.
* guix/build-system/texlive.scm (lower)[build-inputs]: Don’t add
‘texlive-latex-base’ if its keyword parameter is false.
(texlive-build): Add ‘tex-engine’ keyword parameter.
[builder]: If a ‘tex-engine’ parameter was passed, use it. Otherwise, use
‘tex-format’ as the engine.
* guix/build/texlive-build-system.scm (compile-with-latex): Add ‘engine’
parameter. If the ‘format’ parameter is false, add “-ini” option to the
command line.
(build): Add ‘tex-engine’ parameter. Pass it down to ‘compile-with-latex’.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-21 15:55:26 +02:00
Charles
385c485c65
build: Update uglifyjs for minify-build-system.
* guix/build-system/minify.scm (default-uglify-js): Update uglifyjs package used.
* guix/build/minify-build-system.scm (minify): Use updated uglifyjs command name.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-07-19 14:46:28 +03:00
Ludovic Courtès
0e47fcced4
Merge branch 'master' into core-updates 2021-07-18 19:50:01 +02:00
Maxim Cournoyer
c170abba47
build: pack: Mute error output when checking if tar supports --sort.
* guix/build/pack.scm (tar-base-options) [tar-supports-sort?]: Redirect error
output to void.
2021-07-18 02:11:13 -04:00
Maxime Devos
8456581375
build-system/meson: Support cross-compilation.
For cross-compilation, meson needs to be passed a
‘cross file’ with information on the architecture,
CPU type, endianness and operating system, and the
name of the cross-compiler binaries.

The new module (guix build meson-configuration) has
some utilities for writing these cross files, used
by 'make-cross-file' in a G-exp.  The values for
the cross file are generated by 'make-machine-alist'
and 'make-binaries-alist'.

'make-machine-alist' and 'make-binaries-alist' live
on the host side, such that new architectures and operating
systems can be added without causing rebuilds for old
architectures.

All operating systems and targets supported by Guix are
theoretically supported, but only aarch64-linux-gnu,
powerpc64le-linux-gnu and arm-linux-gnueabihf have been
tested.  i686-linux-gnu has also been tested with a previous
version of this patch series but required some changes
to 'cross-base.scm'.

This has been tested with:

$ ./pre-inst-env guix build glib --target=TARGET

* guix/build/meson-configuration.scm
  (write-section-header): New procedure.
  (write-assignment): New procedure.
  (write-assignments): New procedure.
* guix/build-system/meson.scm
  (target-hurd?): New predicate.
  (make-machine-alist): New procedure.
  (make-binaries-alist): New procedure.
  (make-cross-file): New procedure.
  (meson-cross-build): New procedure.
  (lower)[build-inputs]: Add standard cross packages when cross-compiling.
  Do not include regular 'inputs' when cross-compiling.
  (lower)[host-inputs]: Include 'inputs' when cross-compiling.
  (lower)[target-inputs]: Add cross packages when cross-compiling.
  (lower)[build]: Call 'meson-cross-build' instead of 'cross-build'
  when cross-compiling.
  (lower)[target]: Set it.
  (lower)[private-keywords]: Do not remove #:target when cross-compiling.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-07-14 15:57:40 +02:00
Ludovic Courtès
7a9f4822c0
utils: Add 'search-input-directory'.
* guix/build/utils.scm (search-input-directory): New procedure.
* doc/guix.texi (Build Utilities): Document it next to
'search-input-file'.  Tweak wording.
2021-07-08 00:28:57 +02:00
Maxime Devos
198df03756
build-system/gnu: patch-shebangs: Also patch shebangs in "/libexec".
Shebangs in "/bin" and "/sbin" subdirectories are currently
patched by patch-shebangs. But shebangs in "/libexec" currently
aren't, even though they occasionally need to be. E.g. when using
wrap-program on an executable in "libexec" without an explicit #:sh
when cross-compiling.

* guix/build/gnu-build-system.scm (patch-shebangs):
  Add "/libexec" to 'bin-directories'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-07-08 00:28:57 +02:00
Tobias Geerinckx-Rice
0dd136bc36
Revert "syscalls: 'terminal-dimension' ignores EPERM."
This reverts commit 17a102332a.
See <https://github.com/koverstreet/bcachefs/pull/277>.
2021-07-07 13:56:16 +02:00
Maxim Cournoyer
d5c9cc6d9d
build: qt-utils: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed.
This reinstate commit the reverted fed28a9632,
now rebased on top of conflicting changes.

* guix/build/qt-utils.scm:  Remove extraneous newlines.
(variables-for-wrapping): Add comments.  Define a file type entry for each
variable definition, and use it to determine if we should look for directories
versus plain files.
<QTWEBENGINEPROCESS_PATH>: New environment variable.
(wrap-all-qt-programs): Remove trailing #t.
2021-07-02 16:50:10 -04:00
Ludovic Courtès
20cf23e4f8
build: qt-utils: Refactor the code to filter XDG_DATA_DIRS.
This partially reinstate the reverted
c5fd1b0bd3.

* guix/build/qt-utils.scm (variables-for-wrapping)[collect-sub-dirs]:
Add 'selectors' parameter and honor it.  Change caller to handle selectors.

Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-07-02 16:50:10 -04:00
Jakub Kądziołka
86c9f5a5fa
guix: qt-utils: Don't include useless inputs in wrapped variables.
Include only those inputs into XDG_DATA_DIRS having
some subdirectory of /share which is typically used by Qt.

* guix/build/qt-utils.scm (variables-for-wrapping): Take the
  output directory as an argument for special handling. Check for
  subdirectories of /share used by Qt before including inputs in
  XDG_DATA_DIRS.
  (wrap-qt-program*): Pass the output directory to variables-for-wrapping.

Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com>
2021-07-02 16:50:09 -04:00
Jakub Kądziołka
76174aa991
build-system: qt: Exclude useless inputs from wrapped variables.
* guix/build-system/qt.scm (qt-build)[qt-wrap-excluded-inputs]: New argument.
* guix/build/qt-utils.scm (%qt-wrap-excluded-inputs): New variable.
  (wrap-qt-program*)[qt-wrap-excluded-inputs]: New argument. Filter excluded
  inputs.
  (wrap-qt-program)[qt-wrap-excluded-inputs]: New argument.
  (wrap-all-qt-programs)[qt-wrap-excluded-inputs]: New argument.

Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com>
2021-07-02 16:50:09 -04:00
Hartmut Goebel
30759c4aad
guix: qt-utils: Wrapped executables honor user's envvars.
Prior to this change, wrappers did set the specified environment variables to
a fixed value, overwriting any user settings. This inhibited propagating
e.g. XDG_DATA_DIRS from a profile to the application.

Now user environment variables are prefixed (if the variable defines some
"binary" search path, e.g. QT_PLUGIN_PATH) or suffixed (if the variable
defines some config or data search path, e.g. XDG_DATA_DIRS). The code could
also allow to overwrite, anyhow currently no variable is defined like this.

* guix/build/qt-utils.scm (variables-for-wrapping): For each env-var to
  be wrapped, specify whether it should prefix, suffix or overwrite the
  user's variable.
2021-07-02 16:50:09 -04:00
Hartmut Goebel
7e24e1e58d
guix: qt-build-system, qt-utils: Unify wrapping of qt-programs.
Unify (guix qt-build-system wrap-all-programs) and
(guix qt-utils wrap-qt-program), so both behave the same.
The functions now reside in qt-utils to make them easily available for
packages not using the qt-build-system.

* guix/build/qt-build-system.scm (variables-for-wrapping, wrap-all-programs):
  Move from here ...
* guix/build/qt-utils.scm (variables-for-wrapping, wrap-all-qt-programs):
  ... to here. Base the later on
  (wrap-qt-program*): New function, carved out from old wrap-all-programs.
  (wrap-qt-program): Base on wrap-qt-program*, change arguments in an
  incompatible way.
* gnu/packages/bittorrent.scm (qbittorrent)[arguments]<phases>{wrap-qt}:
  Adjust to new interface of wrap-qt-program.
* gnu/packages/finance.scm (electron-cash): Likewise.
* gnu/packages/geo.scm (qgis): Likewise.
* gnu/packages/password-utils.scm (qtpass): Likewise.
* gnu/packages/video.scm (openshot): Likewise.
* gnu/packages/web-browsers.scm (kristall): Likewise.
2021-07-02 16:50:09 -04:00
Maxim Cournoyer
1879b05f90
Revert "build-system/qt: Wrappers only include relevant directories to XDG_DATA_DIRS."
This reverts commit c5fd1b0bd3.  It will need to
be refactored on top of 2214b7b78d.
2021-07-02 16:50:09 -04:00
Maxim Cournoyer
15fd870c3f
Revert "build-system/qt: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed."
This reverts commit 06eb21856f.  It will need to
be refactored to fit on top of 2214b7b78d.
2021-07-02 16:50:09 -04:00
Maxim Cournoyer
3a94998f5e
Revert "build-system/qt: Fix wrapping with QTWEBENGINEPROCESS_PATH."
This reverts commit fed28a9632.  It will need to
be refactored to fit on top of 2214b7b78d.
2021-07-02 16:50:09 -04:00
Maxim Cournoyer
7708c0b5e3
pack: Factorize base tar options.
* guix/docker.scm (%tar-determinism-options): Move to a new module and rename
to `tar-base-options'.  Adjust references accordingly.
* guix/build/pack.scm: New file.
* Makefile.am (MODULES): Register it.
* guix/scripts/pack.scm (self-contained-tarball/builder): Use it.
2021-06-29 14:53:21 -04: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
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