summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Collapse)Author
2023-06-04build-system: New agda-build-system.Josselin Poiret
* guix/build-system/agda.scm: New file. * guix/build/agda-build-system.scm: New file. * Makefile.am (MODULES): Register them. * doc/guix.texi (Build Systems): Add documentation for agda-build-system.
2023-05-07gnu: rust: Update to 1.67.Efraim Flashner
* gnu/packages/rust.scm (rust): Update to 1.67. [arguments]: Add a phase to skip tests requiring mercurial. Extend the custom 'patch-process-tests phase. (rust-1.64)[arguments]: Adjust 'patch-cargo-checksums phase to patch another file. * guix/build/cargo-build-system.scm (package): Adjust to remove Cargo.toml.orig file if it exists.
2023-05-07build: cargo-build-system: Don't try to package when skipping build.Efraim Flashner
* guix/build/cargo-build-system.scm (package): If the package isn't going to be built then use the source instead.
2023-05-06build-system: node: Use `--install-links' with `npm install'.Jelle Licht
Later versions of npm need to explicitly install a copy of local dependencies, instead of only a symlink. * guix/build/node-build-system.scm (configure): Add `--install-links' to npm install invocation. (install): Ditto.
2023-04-14Merge branch 'master' into core-updates.Maxim Cournoyer
Conflicts: gnu/local.mk gnu/packages/build-tools.scm gnu/packages/certs.scm gnu/packages/check.scm gnu/packages/compression.scm gnu/packages/cups.scm gnu/packages/fontutils.scm gnu/packages/gnuzilla.scm gnu/packages/guile.scm gnu/packages/ibus.scm gnu/packages/image-processing.scm gnu/packages/linux.scm gnu/packages/music.scm gnu/packages/nss.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/qt.scm gnu/packages/ruby.scm gnu/packages/shells.scm gnu/packages/tex.scm gnu/packages/video.scm gnu/packages/vulkan.scm gnu/packages/web.scm gnu/packages/webkit.scm gnu/packages/wm.scm
2023-04-14build/glib-or-gtk: Avoid duplicate entries in gdk-pixbuf loaders cache.Maxim Cournoyer
* guix/build/glib-or-gtk-build-system.scm (generate-gdk-pixbuf-loaders-cache): Delete duplicate directories passed as input.
2023-04-12po: Do not auto-translate cross-references to other manuals.Florian Pelz
Reported by Gottfried at <https://lists.gnu.org/archive/html/help-guix/2023-04/msg00000.html>. * guix/build/po.scm (xref-regexp): Dispatch on the number of arguments. Ensure there is no info-manual argument or it is empty. (translate-cross-references): Adapt to changed regexp. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-09build: meson: Explicitly invoke "meson setup" instead of just "meson".Maxim Cournoyer
* guix/build/meson-build-system.scm (configure): Invoke the setup command to avoid a deprecation warning.
2023-04-09build: meson: Honor bindir, libdir and includedir.Maxim Cournoyer
This brings our meson-build-system closer to our gnu-build-system in terms of using different installation prefixes based on the presence of outputs such as "bin", "lib" or "include". * guix/build/meson-build-system.scm (configure): Add --bindir, --libdir and --includedir according to the presence of the "bin", "lib" and "include" outputs, as done in gnu-build-system.
2023-03-28Merge remote-tracking branch 'origin/master' into stagingMaxim Cournoyer
2023-03-28build: qt-utils: Revert setting QT_PLUGIN_PATH exactly.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/57742>. The documentation of Qt states that it is a supported use case to mix Qt 5 and Qt 6 plugins in QT_PLUGIN_PATH [0]. This reverts the change to QT_PLUGIN_PATH introduced in 1f466ed6be9 ("build: qt: Add qtbase argument and wrap Qt environment variables exactly."). [0] https://doc.qt.io/qt-6.2/deployment-plugins.html#loading-and-verifying-plugins-dynamically * guix/build/qt-utils.scm (variables-for-wrapping): Wrap QT_PLUGIN_PATH using the prefix method.
2023-03-27syscalls: 'getxattr' throws upon error.Ludovic Courtès
* guix/build/syscalls.scm (getxattr): Throw in the negative SIZE case.
2023-03-20Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge
2023-03-16guix: Improve download-nar.Christopher Baines
Previously download-nar worked with gzipped nars and queried berlin.guix.gnu.org (also known as ci.guix.gnu.org). ci.guix.gnu.org no longer serves gzipped nars so this is of limited use. This commit changes download-nar to query both the default substitute servers, and queries for lzipped rather than gzipped nars, since those are available from both. * guix/build/download-nar.scm (urls-for-item): Return urls for lzip rather than gzip compression, and from both default substitute servers. The comment about CDN's is no longer relevant. (restore-gzipped-nar): Rename to restore-lzipped-nar and reimplement accordingly. (download-nar): Add progress reporting and switch to use lzip rather than gzip. * guix/cvs-download.scm (cvs-fetch): Replace guile-zlib with guile-lzlib. * guix/git-download.scm (git-fetch): Replace guile-zlib with guile-lzlib. * guix/hg-download.scm (hg-fetch): Replace guile-zlib with guile-lzlib. * guix/android-repo-download.scm (android-repo-fetch): Add guile-lzlib for download-nar. Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-03-13guix: Leave some of guix/build/* unchanged.Ludovic Courtès
This partially reverts ae587c2ef041413bc709a555261db752068ea360 to reduce the number of rebuilds.
2023-03-13guix: Strip #:use-module lists.Ludovic Courtès
This was obtained by setting up this environment: guix shell -D guix --with-input=guile@3.0.9=guile-next \ --with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2 -- make -j5 then adding 'unused-module' to (@@ (guix build compiler) %warnings), building, and checking all the "unused module" warnings and removing those that were definitely unused.
2023-03-10build-system/gnu: Remove 'install-license-files' from '%dist-phases'.Ludovic Courtès
* guix/build/gnu-dist.scm (%dist-phases): Delete 'install-license-files'.
2023-03-02Merge remote-tracking branch 'savannah/master' into core-updatesChristopher Baines
Conflicts: gnu/local.mk gnu/packages/autotools.scm gnu/packages/cmake.scm gnu/packages/gnuzilla.scm gnu/packages/haskell.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/samba.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/wxwidgets.scm
2023-02-26build: haskell-build-system: Build static executables by default.Lars-Dominik Braun
This is the only way to get reasonably small binaries that don’t pull in a ton of ghc-* packages. * guix/build/haskell-build-system.scm (configure): Explicitly add --enable-static and --disable-executable-dynamic, as well as -split-sections to configure flags.
2023-02-26build-system: haskell: Drop default "static" output.Lars-Dominik Braun
* guix/build-system/haskell.scm (lower): Pass outputs to lowered bag. * guix/build/haskell-build-system.scm (install): Remove static library moving code. * gnu/packages/haskell-check.scm (ghc-hunit): Remove "static" output. * gnu/packages/haskell-crypto.scm (ghc-crypto-api-tests): Likewise. * gnu/packages/haskell-xyz.scm (ghc-case-insensitive): Likewise. (ghc-cmdargs): Likewise. (ghc-conduit): Likewise. (ghc-fgl): Likewise. (ghc-haskell-src-exts): Likewise. (ghc-lib-parser): Likewise. (ghc-mono-traversable): Likewise. (ghc-parallel): Likewise. (ghc-paths): Likewise. (ghc-profunctors): Likewise. (ghc-tf-random): Likewise. (ghc-vector): Likewise.
2023-02-26build: haskell-build-system: Remove unused linker flags.Lars-Dominik Braun
They were inserted as-is, without expandind variables into binaries. * guix/build/haskell-build-system.scm (configure): Remove --ghc-option.
2023-02-26build: haskell-build-system: Process all transitive dependencies.Lars-Dominik Braun
A bug caused install-transitive-deps to stop looping if a dependency file already existed in the target directory. For Haskell packages with multiple libraries (like attoparsec) this resulted in missing dependencies and error messages like this: The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used. installed package attoparsec-0.14.4 is broken due to missing package scientific-0.3.7.0-9XG3zUjXOw970JFcruv0cZ See <https://issues.guix.gnu.org/54729#11>. * guix/build/haskell-build-system.scm (register): Unconditionally loop over all tails.
2023-02-26build: haskell-build-system: Support multiple libraries.Philip Munksgaard
Fixes <https://bugs.gnu.org/53655>. The patch handles correctly the multiple registration of some package using their own internal sub-libraries. It allows to call 'install-transitive-deps' multiple times and deals with packages requiring a multiple registration. * guix/build/haskell-build-system.scm (register)[install-transitive-deps]: Guard also the destination direction. [install-config-file]: New procedure. Co-Authored-by: zimoun <zimon.toutoune@gmail.com>. Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-02-26build: haskell-build-system: Remove trailing #t.zimoun
* guix/build/haskell-build-system.scm (configure, install, setup-compiler, make-ghc-package-database, install-transitive-deps, check, haddock, patch-cabal-file, generate-setuphs): Delete trailing #t. Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-02-12build-system: Add tree-sitter-build-system.Pierre Langlois
* guix/build-system/tree-sitter.scm: New module. * guix/build/tree-sitter-build-system.scm: Likewise. * Makefile.am (MODULES): Add them. * doc/guix.texi: Document it. Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-02-12syscalls: 'with-file-lock' removes lock file upon exit.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/57501>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/build/syscalls.scm (call-with-file-lock) (call-with-file-lock/no-wait): Add call to 'delete-file' in unwind handler.
2023-01-30Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
2023-01-17debug-link: Protect against dangling symlinks.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/60584>. Reported by Greg Hogan <code@greghogan.com> and Sébastien Rey-Coyrehourcq <sebastien.rey-coyrehourcq@univ-rouen.fr>. * guix/build/debug-link.scm (find-elf-files): Wrap 'elf-file?' call in 'catch'.
2023-01-15guix: dune-build-system: Do not use `test-target' argument.pukkamustard
This lets dune run all tests for a given package. * guix/build/dune-build-system.scm (check): Do not use `test-target' argument. * gnu/package/ocaml.scm (ocaml-cohttp)[native-inputs]: Add ocaml-crowbar. (ocaml-cudf, opam, ocaml-frontc, ocaml-qcheck, ocaml-qtest) (ocaml-stringext, ocaml4.07-ppx-tools-versioned, ocaml-result) (ocaml4.09-result, ocaml5.0-result, ocaml-csv, ocaml-alcotest) (ocaml4.07-alcotest, ocaml-ssl, ocaml-optint, ocaml-eio) (ocaml-eio-luv, ocaml-uring, ocaml-eio-linux, ocaml-eio-main) (ocaml-gen, ocaml-ocp-indent, ocaml-benchmark, ocaml-re) (ocaml4.07-re, ocaml-ocplib-endian, ocaml-cstruct, ocaml-hex) (ocaml-ezjsonm, ocaml-uri, ocaml4.07-uri, ocaml-camomile, ocaml-zed) (ocaml-lambda-term, ocaml-utop, ocaml-ansiterminal, dedukti, ocaml-bindlib) (ocaml-earley, ocaml-timed, ocaml-yojson, ocaml-gsl, ocaml-ppx-deriving) (ocaml-ppx-cold, ocaml-ppx-typerep-conv, ocaml-ppx-stable) (ocaml-ppx-base, ocaml-ppx-disable-unused-warnings, ocaml-ppx-jane) (ocaml4.07-jane-street-headers, ocaml4.07-bisect-ppx, ocaml-fftw3) (ocaml-cairo2, lablgtk3, ocaml-lablgtk3-sourceview3, ocaml-bigstringaf) (ocaml-angstrom, ocaml-uri-sexp, ocaml-cohttp, js-of-ocaml) (ocaml-monolith, ocaml-crowbar): Remove test-target argument. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2022-12-20kconfig: Streamline comment in 'modify-defconfig'.Maxim Cournoyer
* guix/build/kconfig.scm (modify-defconfig): Streamline comment.
2022-12-20kconfig: Mostly preserve keys ordering of original defconfig.Maxim Cournoyer
* guix/build/kconfig.scm (defconfig->alist): Reverse the results of lists constructed with cons.
2022-12-20kconfig: Move pair->config-string up.Maxim Cournoyer
* guix/build/kconfig.scm (pair->config-string): Move earlier, to match the natural dependency of declarations (useful when experimenting at the REPL).
2022-12-07build: gnu-build-system: Remove source from native inputs.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/44924>, in a cross-compilation context. Having the source in inputs when computing search paths can break builds. One example is a git checkout of the Linux source tree, where the source (a directory) 'include' subdirectory gets picked up in C_INCLUDE_PATH and causes conflicts with the includes provided by glibc. * guix/build/gnu-build-system.scm (set-paths): Remove any "source" native input. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-12-05Merge branch 'version-1.4.0'Ludovic Courtès
2022-12-02syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.Ludovic Courtès
This is a re-implementation of 3c8b6fd94ceb1e898216929e8768fb518dbf1de9 done in a way that works for both glibc >= 2.34 and earlier versions. * guix/build/syscalls.scm (syscall->procedure): When LIBRARY is true, fall back to global symbols if (dynamic-link library) fails. (cherry picked from commit 3f6c32a88fc7a4d707ae1ed8ef3f7bd995461aff)
2022-12-01build: kconfig: Add new module to modify defconfig files.Stefan
* guix/build/kconfig.scm: New file. * Makefile.am: Register it. * gnu/packages/bootloaders.scm (make-u-boot-package) (make-u-boot-sunxi64-package): Add DEFCONFIGS and CONFIGS arguments. Remove dead code. (u-boot-am335x-boneblack, u-boot-pinebook) (u-boot-novena,u-boot-rockpro64-rk3399): Simplify packages by using the new keyword arguments. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-11-20file-systems: Always do recursive bind mounts.Ricardo Wurmus
Fixes <https://issues.guix.gnu.org/59185>. * guix/build/syscalls.scm (MS_REC): New variable. * gnu/build/file-systems.scm (mount-flags->bit-mask): Set MS_REC bit when bind-mounting.
2022-11-11build-system/dub: Avoid usage of (guix build syscalls).Marius Bakke
* guix/build/dub-build-system.scm (configure): Use MKDTEMP instead of MKDTEMP!.
2022-11-11build-system/clojure: Avoid usage of (guix build sycalls).Marius Bakke
* guix/build/clojure-build-system.scm (reset-class-timestamps): Use MKDTEMP from Guile core instead of MKDTEMP!.
2022-11-11build-system/ant: Avoid usage of (guix build syscalls).Marius Bakke
* guix/build/ant-build-system.scm (strip-jar-timestamps): Use MKDTEMP from Guile core rather than MKDTEMP!. * guix/build/java-utils.scm (install-jar-file-with-pom): Likewise.
2022-11-07syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.Ludovic Courtès
This is a re-implementation of 3c8b6fd94ceb1e898216929e8768fb518dbf1de9 done in a way that works for both glibc >= 2.34 and earlier versions. * guix/build/syscalls.scm (syscall->procedure): When LIBRARY is true, fall back to global symbols if (dynamic-link library) fails.
2022-11-07Revert "syscalls: Adjust for glibc 2.34 and later."Ludovic Courtès
This reverts commit 3c8b6fd94ceb1e898216929e8768fb518dbf1de9, which would break bindings on glibc < 2.34 where those symbols are in "libutil.so".
2022-10-27build-system/pyproject: Always run tests verbosely for supported backends.Marius Bakke
* guix/build-system/pyproject.scm (pyproject-build): Default to '() instead of #false for TEST-FLAGS. * guix/build/pyproject-build-system.scm (check): Unconditionally enable verbose test flags. * doc/guix.texi (Build Systems): Document this change. * gnu/packages/fontutils.scm (python-glyphslib)[arguments]: Remove verbosity from #:test-flags. * gnu/packages/pdf.scm (python-pydyf, weasyprint)[arguments]: Likewise. * gnu/packages/python-web.scm (python-openapi-spec-validator)[arguments]: Likewise. * gnu/packages/python-xyz.scm (python-path, python-tempora)[arguments]: Likewise.
2022-10-27build-system/pyproject: Adjust indentation.Marius Bakke
* guix/build/pyproject-build-system.scm: Adjust indentation.
2022-10-27build-system: Add pyproject-build-system.Lars-Dominik Braun
This is an experimental build system based on python-build-system that implements PEP 517-compliant builds. * doc/guix.texi (Build Systems): Add pyproject-build-system section. * doc/contributing.texi (Python Modules): Mention pyproject.toml and the PYTHON-TOOLCHAIN package, as well as differences to python-build-system. * guix/build-system/pyproject.scm, guix/build/pyproject-build-system.scm, gnu/packages/aux-files/python/sanity-check-next.py, gnu/packages/python-commencement.scm: New files. * Makefile.am (MODULES): Register the new build systems. * gnu/local.mk (GNU_SYSTEM_MODULES): Add python-commencement.scm. * gnu/packages/python.scm (python-sans-pip, python-sans-pip-wrapper): New variables. Co-authored-by: Marius Bakke <marius@gnu.org>
2022-10-25Merge remote-tracking branch 'origin/master' into stagingEfraim Flashner
2022-10-20build-system/cargo: Unpack crates less verbosely.Efraim Flashner
* guix/build/cargo-build-system.scm (configure): Print the crate being unpacked but don't print the contents of each crate.
2022-10-20syscalls: Define 'MS_NODIRATIME' and recognize "nodiratime".Ludovic Courtès
Fixes <https://issues.guix.gnu.org/58663>. This is a followup to b665dd4a9902b5722b9e06fd89c203e2221b19e0 and dcb640f02b1f9590c3bd4301a22bf31bd60c56d4, allowing "nodiratime" to be preserved for bind mounts. * guix/build/syscalls.scm (MS_NODIRATIME): New variable. (option-string->mount-flags): Recognize it. (statfs-flags->mount-flags): Likewise.
2022-10-14guix: emacs-utils: Support disabling native-compilation.Liliana Marie Prikler
* guix/build/emacs-utils.scm (emacs-batch-disable-compilation): Add ‘native?’ argument and honour it.
2022-10-13build: emacs-utils: Fix `emacs-substitute-variables'.Nicolas Goaziou
* guix/build/emacs-utils.scm (emacs-substitute-variables): Fix the regexp matching variable name. With end-of-word regexp ("\>"), the previous regexp may match the prefix of a variable only, effectively deleting the rest of its name. For example, (emacs-substitute-variables "file.el" ("foo" ...)) could match (defvar foo-bar ...) and replace it with (defvar foo ...).