aboutsummaryrefslogtreecommitdiff
path: root/guix/build
Commit message (Collapse)AuthorAge
...
* | guix: emacs-utils: Add ert-number-tests.Liliana Marie Prikler2023-08-19
|/ | | | * guix/build/utils.scm (ert-number-tests): New variable.
* download-nar: Improve output.Christopher Baines2023-07-28
| | | | | Report errors that occur, output the "Downloading from " line before starting to report progress and end the output with a newline.
* pack: Move common build code to (guix build pack).Maxim Cournoyer2023-07-18
| | | | | | | | | | | | | | | | The rationale is to reduce the number of derivations built per pack to ideally one, to minimize storage requirements. The number of derivations had gone up with 68380db4 ("pack: Extract populate-profile-root from self-contained-tarball/builder.") as a side effect to improving code reuse. * guix/scripts/pack.scm (guix): Add commentary comment. (populate-profile-root, self-contained-tarball/builder): Extract to... * guix/build/pack.scm (populate-profile-root): ... this, and... (build-self-contained-tarball): ... that, adjusting for use on the build side. (assert-utf8-locale): New procedure. (self-contained-tarball, debian-archive, rpm-archive): Adjust accordingly. Reviewed-by: Ludovic Courtès <ludo@gnu.org>
* guix: texlive-build-system: Add #:link-scripts argument.Nicolas Goaziou2023-07-18
| | | | | | | | * doc/guix.texi (Build Systems): Document argument. * guix/build-system/texlive.scm (texlive-build): Add #:LINK-SCRIPTS argument. * guix/build/texlive-build-system.scm (link-scripts): (patch-shell-scripts): New function. (%standard-phases): Add new functions as phases.
* guix: texlive-build-system: Generate TeX formats.Nicolas Goaziou2023-07-18
| | | | | | | | | * guix/build-system/texlive.scm (texlive-build): Add #:CREATE-FORMATS argument. * doc/guix.texi (Build Systems): Document it. * guix/build/texlive-build-system.scm (texlive-input?): New function. (generate-font-metrics): Use new function above. (create-formats): New function. (%standard-phases): Add function above to phases.
* guix: texlive-build-system: Handle doc-only packages gracefully.Nicolas Goaziou2023-07-18
| | | | | * guix/build/texlive-build-system.scm (install): Always create #$output, even if it is empty.
* guix: texlive-build-system: Generate font metrics.Nicolas Goaziou2023-07-18
| | | | | | | * guix/build/texlive-build-system.scm (install-as-runfiles): (generate-font-metrics): New function. (build): Use INSTALL-AS-RUNFILES. (%standard-phases): Add new phase.
* guix: texlive-build-system: Improvements on non-trivial packages.Nicolas Goaziou2023-07-18
| | | | | | | | | | | | * guix/build/texlive-build-system.scm (build): Ignore temporary build files when moving runfiles around. Remove ".drv" source files prior to compiling files. Remove need for #:TEX-DIRECTORY keyword. Handle ".ins" and ".dtx" files in different directories. (install): Install docfiles in "doc" output when available. * guix/build-system/texlive.scm (texlive-build): Remove #:TEX-DIRECTORY. * doc/guix.texi (Build Systems): Remove reference to #:TEX-DIRECTORY in TEXLIVE-BUILD-SYSTEM documentation. Also mention it now tries to compile ".dtx" files when there is no ".ins" file.
* guix: git: Set initial branch name for git-fetch.Efraim Flashner2023-07-05
| | | | | | | | This removes the 'hint' about choosing a branch name when creating a new git repository. * guix/build/git.scm (git-fetch): When running 'git init' add an initial branch name.
* guix: node-build-system: Delete from peerDependencies too.Lars-Dominik Braun2023-06-22
| | | | | | | | | | The current version of npm in Guix installs peerDependencies by default, whereas previously it would just warn about missing/wrong packages. Fixes <https://issues.guix.gnu.org/issue/64203>. * guix/build/node-build-system.scm (delete-dependencies): Remove supplied dependencies from peerDependencies field too.
* svn-download: Do not expand keywords.Timothy Sample2023-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subversion keyword expansion is potentially non-reproducible as some of them expand time strings relative to the local time zone: https://issues.guix.gnu.org/43442#18 In practice this is not a problem in Guix since Subversion checkouts happen in an isolated environment using the "default timezone" (UTC). However, Software Heritage disables keyword expansion for this very reason. By following suit, we make sure content can be retrieved from there. * guix/build/svn.scm (svn-fecth): Pass "--ignore-keywords" to Subversion. * guix/build-system/texlive.scm (%texlive-date): New variable. * gnu/packages/java.scm (java-geronimo-xbean-reflect) (java-geronimo-genesis-2.1): Update the source hash. * gnu/packages/machine-learning.scm (ghmm): Likewise. * gnu/packages/video.scm (libsmpeg, libsmpeg-with-sdl1): Likewise. * gnu/packages/tex.scm (texlive-bin): Update the hash of the "texlive-scripts" input, and a add a new phase that imitates Subversion keyword expansion for scripts that need it. (texlive-latex-base): Update the hash of the "texlive-luatexconfig" native input. (texlive-hyphen-base, texlive-dvipdfmx, texlive-dvips, texlive-cm) (texlive-tex-plain, texlive-kpathsea, texlive-latexconfig) (texlive-tetex, texlive-pdftex, texlive-xetex): Update the source hash. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* build-system: New agda-build-system.Josselin Poiret2023-06-04
| | | | | | | * 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.
* gnu: rust: Update to 1.67.Efraim Flashner2023-05-07
| | | | | | | | | | * 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.
* build: cargo-build-system: Don't try to package when skipping build.Efraim Flashner2023-05-07
| | | | | * guix/build/cargo-build-system.scm (package): If the package isn't going to be built then use the source instead.
* build-system: node: Use `--install-links' with `npm install'.Jelle Licht2023-05-06
| | | | | | | | | 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.
* Merge branch 'master' into core-updates.Maxim Cournoyer2023-04-14
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * po: Do not auto-translate cross-references to other manuals.Florian Pelz2023-04-12
| | | | | | | | | | | | | | | | | | | | | | 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>
| * Merge remote-tracking branch 'origin/master' into stagingMaxim Cournoyer2023-03-28
| |\
| | * syscalls: 'getxattr' throws upon error.Ludovic Courtès2023-03-27
| | | | | | | | | | | | * guix/build/syscalls.scm (getxattr): Throw in the negative SIZE case.
| * | build: qt-utils: Revert setting QT_PLUGIN_PATH exactly.Maxim Cournoyer2023-03-28
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | build/glib-or-gtk: Avoid duplicate entries in gdk-pixbuf loaders cache.Maxim Cournoyer2023-04-14
| | | | | | | | | | * guix/build/glib-or-gtk-build-system.scm (generate-gdk-pixbuf-loaders-cache): Delete duplicate directories passed as input.
* | build: meson: Explicitly invoke "meson setup" instead of just "meson".Maxim Cournoyer2023-04-09
| | | | | | | | | | * guix/build/meson-build-system.scm (configure): Invoke the setup command to avoid a deprecation warning.
* | build: meson: Honor bindir, libdir and includedir.Maxim Cournoyer2023-04-09
| | | | | | | | | | | | | | | | | | | | 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.
* | Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge2023-03-20
|\|
| * guix: Improve download-nar.Christopher Baines2023-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * guix: Leave some of guix/build/* unchanged.Ludovic Courtès2023-03-13
| | | | | | | | | | This partially reverts ae587c2ef041413bc709a555261db752068ea360 to reduce the number of rebuilds.
| * guix: Strip #:use-module lists.Ludovic Courtès2023-03-13
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * build-system/gnu: Remove 'install-license-files' from '%dist-phases'.Ludovic Courtès2023-03-10
| | | | | | | | * guix/build/gnu-dist.scm (%dist-phases): Delete 'install-license-files'.
* | Merge remote-tracking branch 'savannah/master' into core-updatesChristopher Baines2023-03-02
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * build: haskell-build-system: Build static executables by default.Lars-Dominik Braun2023-02-26
| | | | | | | | | | | | | | | | | | 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.
| * build-system: haskell: Drop default "static" output.Lars-Dominik Braun2023-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * build: haskell-build-system: Remove unused linker flags.Lars-Dominik Braun2023-02-26
| | | | | | | | | | | | They were inserted as-is, without expandind variables into binaries. * guix/build/haskell-build-system.scm (configure): Remove --ghc-option.
| * build: haskell-build-system: Process all transitive dependencies.Lars-Dominik Braun2023-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * build: haskell-build-system: Support multiple libraries.Philip Munksgaard2023-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * build: haskell-build-system: Remove trailing #t.zimoun2023-02-26
| | | | | | | | | | | | | | | | * 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>
| * build-system: Add tree-sitter-build-system.Pierre Langlois2023-02-12
| | | | | | | | | | | | | | | | | | * 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>
| * syscalls: 'with-file-lock' removes lock file upon exit.Ludovic Courtès2023-02-12
| | | | | | | | | | | | | | | | | | 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.
* | Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner2023-01-30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * debug-link: Protect against dangling symlinks.Ludovic Courtès2023-01-17
| | | | | | | | | | | | | | | | 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'.
| * guix: dune-build-system: Do not use `test-target' argument.pukkamustard2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * kconfig: Streamline comment in 'modify-defconfig'.Maxim Cournoyer2022-12-20
| | | | | | | | * guix/build/kconfig.scm (modify-defconfig): Streamline comment.
| * kconfig: Mostly preserve keys ordering of original defconfig.Maxim Cournoyer2022-12-20
| | | | | | | | | | * guix/build/kconfig.scm (defconfig->alist): Reverse the results of lists constructed with cons.
| * kconfig: Move pair->config-string up.Maxim Cournoyer2022-12-20
| | | | | | | | | | * guix/build/kconfig.scm (pair->config-string): Move earlier, to match the natural dependency of declarations (useful when experimenting at the REPL).
| * Merge branch 'version-1.4.0'Ludovic Courtès2022-12-05
| |\
| | * syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.Ludovic Courtès2022-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
| * | build: kconfig: Add new module to modify defconfig files.Stefan2022-12-01
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * file-systems: Always do recursive bind mounts.Ricardo Wurmus2022-11-20
| | | | | | | | | | | | | | | | 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.
| * build-system/dub: Avoid usage of (guix build syscalls).Marius Bakke2022-11-11
| | | | | | | | * guix/build/dub-build-system.scm (configure): Use MKDTEMP instead of MKDTEMP!.
| * build-system/clojure: Avoid usage of (guix build sycalls).Marius Bakke2022-11-11
| | | | | | | | | | * guix/build/clojure-build-system.scm (reset-class-timestamps): Use MKDTEMP from Guile core instead of MKDTEMP!.
| * build-system/ant: Avoid usage of (guix build syscalls).Marius Bakke2022-11-11
| | | | | | | | | | | | * 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.