summaryrefslogtreecommitdiff
path: root/guix/build
Commit message (Collapse)AuthorAge
* build-system/clojure: Support compiling Java.Reily Siegel2022-01-24
| | | | | | | | | | | | | | * 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>
* build-system/clojure: Exit with non-zero if tests fail.Reily Siegel2022-01-24
| | | | | | | * 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>
* compile: Really disable cross-module inlining and related features.Ludovic Courtès2022-01-23
| | | | | | | | | This is a followup to d87a1ba6b8b2f08ba6898033353d7463355bd146. * 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.
* Merge branch 'version-1.4.0'Maxim Cournoyer2022-01-17
|\ | | | | | | | | | | | | With resolved conflicts in: gnu/packages/gnome.scm gnu/packages/openstack.scm gnu/packages/python-xyz.scm
| * build-system/gnu: Make gzip files writable before resetting timestamps.Sarah Morgensen2022-01-10
| | | | | | | | | | | | | | 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>
| * utils: Fix wrap-script argument handling.Brendan Tildesley2022-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | compile: Disable cross-module inlining and related features.Ludovic Courtès2022-01-14
| | | | | | | | | | | | | | | | 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.
* | build: clojure-utils: Don't try to compile Clojure.Reily Siegel2022-01-12
|/ | | | | * guix/build/clojure-utils.scm (%aot-include): Add "data-readers" to the default list of files to exclude from ahead-of-time compilation.
* build: julia-build-system: Create 'Project.toml' file when missing.zimoun2022-01-10
| | | | | | | | | * 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>
* guix: node-build-system: Add 'delete-dependencies' helper function.Philip McGrath2022-01-09
| | | | | | | | | | | 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>
* guix: node-build-system: Add avoid-node-gyp-rebuild phase.Philip McGrath2022-01-09
| | | | | | | | | | | | 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>
* guix: node-build-system: Add JSON utilities.Philip McGrath2022-01-09
| | | | | | | | | | | | | | | | 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>
* guix: node-build-system: Add delete-lockfiles phase.Philip McGrath2022-01-09
| | | | | | | | | | 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>
* linux-container: Handle CLONE_NEWCGROUP and use it by default.Ryan Sundberg2022-01-05
| | | | | | | | | | 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>
* build-system/go: Initialize build cache from input packages.Sarah Morgensen2021-12-24
| | | | | | | | | * 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>
* build-system: emacs: Do not rely on input labels in the 'build' phase.Maxim Cournoyer2021-12-14
| | | | | | | | 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.
* guix: Fix typo in last commit.Nicolas Goaziou2021-12-14
| | | | * guix/build/emacs-build-system.scm (make-autoloads): Fix typo.
* guix: Do not assume "emacs" label in make-autoloads.Nicolas Goaziou2021-12-14
| | | | | * guix/build/emacs-build-system.scm (make-autoloads): Look for "emacs" executable independently on the label.
* Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus2021-12-05
|\
| * build-system: emacs: Keep -pkg.el files.Liliana Marie Prikler2021-12-03
| | | | | | | | | | | | | | 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$".
* | build: julia-build-system: Correctly disable parallel tests.zimoun2021-11-27
| | | | | | | | | | | | | | | | | | * 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>
* | build: julia-build-system: Add support for parallel tests.zimoun2021-11-25
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge branch 'master' into core-updates-frozenLudovic Courtès2021-11-23
|\|
| * system: Add swap flags.Josselin Poiret2021-11-23
| | | | | | | | | | | | | | | | | | | | | | * 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>
* | build: syscalls: Add a SET-CHILD-SUBREAPER! procedure.Maxim Cournoyer2021-11-20
| | | | | | | | | | * guix/build/syscalls.scm (PR_SET_CHILD_SUBREAPER): New variable. (set-child-subreaper!): New procedure.
* | Merge branch 'master' into core-updates-frozenLudovic Courtès2021-11-17
|\|
| * build-system/julia: Enable Julia Pkg to find installed packages.Jean-Baptiste Volatier2021-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * build: wrap-qt-program: Fix typo.Vagrant Cascadian2021-11-14
| | | | | | | | * gnu/build/qt-utils.scm (wrap-qt-program): Fix spelling of "program".
* | build: meson: Replace the 'test-target' argument by 'test-options'.Maxim Cournoyer2021-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | build: glib-or-gtk: Generate the gdk-pixbuf-loaders cache file in a phase.Maxim Cournoyer2021-11-11
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | build: glib-or-gtk-build-system: Fix indentation.Maxim Cournoyer2021-11-11
| | | | | | | | | | * guix/build/glib-or-gtk-build-system.scm (gtk-module-directories) (wrap-all-programs): Fix indentation.
* | build: glib-or-gtk-build-system: Simplify the wrap-all-programs phase.Maxim Cournoyer2021-11-11
| | | | | | | | | | | | * 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.
* | build: qt-utils: Don't wrap .X-real files.Brendan Tildesley2021-11-11
| | | | | | | | | | | | | | * guix/build/qt-utils.scm (find-files-to-wrap): Exclude already wrapped programs. This is forbidden in wrap-program now due to a738a663a99. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* | Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner2021-10-31
|\|
| * syscalls: Gracefully handle failure to load libc's libutil.Ludovic Courtès2021-10-26
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * syscalls: Add 'openpty' and 'login-tty'.Ludovic Courtès2021-10-26
| | | | | | | | | | * guix/build/syscalls.scm (openpty, login-pty): New procedures. * tests/syscalls.scm ("openpty", "openpty + login-tty"): New tests.
* | Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe2021-10-18
|\|
| * build-system/go: Fix building on host's secondary architecture.Efraim Flashner2021-10-18
| | | | | | | | | | | | | | | | | | | | | | 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.
| * maint: Factorize po xref translation.Julien Lepiller2021-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * build-system/minetest: Install config.txt and _config.txt.Vivien Kraus2021-10-16
| | | | | | | | | | | | | | * 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>
| * build-system/minetest: Gather whole failing test output.Vivien Kraus2021-10-16
| | | | | | | | | | | | | | * guix/build/minetest-build-system.scm (check): Gather the whole output when a test fails. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
| * download: Print URL of the Disarchive spec being read.Ludovic Courtès2021-10-14
| | | | | | | | | | * guix/build/download.scm (disarchive-fetch/any): Show URI of the Disarchive spec.
| * download: Add missing autoload.Ludovic Courtès2021-10-14
| | | | | | | | | | | | | | This is a followup to 6d02a994f911a75e3a223a22c05c2939cdfed2b5, which left '%verify-swh-certificate?' unbound. * guix/build/download.scm: Autoload for '%verify-swh-certificate'.
* | Merge remote-tracking branch 'origin/master' into core-updates-frozen.Mathieu Othacehe2021-10-12
|\|
| * Revert the #51061 patch series for now.Tobias Geerinckx-Rice2021-10-08
| | | | | | | | | | | | | | This reverts commits f63c79bf7674df012517f8e9148f94c611e35f32 ..f86f7e24b39928247729020df0134e2e1c4cde62 for more chillax reviewing. See <https://issues.guix.gnu.org/51061#32>.
| * build-system/haskell: Explain failure.Lars-Dominik Braun2021-10-08
| | | | | | | | | | | | | | 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.
| * build-system/haskell: Accept line breaks in config files.Lars-Dominik Braun2021-10-08
| | | | | | | | | | | | | | | | 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.
| * build-system/haskell: Do not rely on compiler name.Lars-Dominik Braun2021-10-08
| | | | | | | | | | | | | | | | | | | | 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.
| * guix: haskell-build-system: Always pass -package-db option.John Kehayias2021-10-08
| | | | | | | | | | | | * guix/build/haskell-build-system.scm (run-setuphs): Pass -package-db option. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
| * build-system: Add 'rebar3-build-system'.Hartmut Goebel2021-10-07
| | | | | | | | | | * guix/build-system/rebar3.scm, guix/build/rebar3-build-system.scm: New files. * Makefile.am (MODULES): Add them.