summaryrefslogtreecommitdiff
path: root/guix/build-system
AgeCommit message (Collapse)Author
2022-10-08build-system: Factorize 'strip' flags and directories.Ludovic Courtès
Previously only 'gnu-build-system' would default to "--strip-unneeded", since commit e0f31baacc6ad30096a332b69433c85f5830bb2c; most other build systems would default to "--strip-debug". This change brings consistency. * guix/build-system/gnu.scm (%strip-flags, %strip-directories): Export. * guix/build-system/cmake.scm (cmake-build, cmake-cross-build): Use them. * guix/build-system/copy.scm (copy-build): Likewise. * guix/build-system/dune.scm (dune-build): Likewise. * guix/build-system/glib-or-gtk.scm (glib-or-gtk-build) (glib-or-gtk-cross-build): Likewise. * guix/build-system/maven.scm (maven-build): Likewise. * guix/build-system/meson.scm (meson-build, meson-cross-build): Likewise. * guix/build-system/ocaml.scm (ocaml-build): Likewise. * guix/build-system/qt.scm (qt-build, qt-cross-build): Likewise.
2022-09-27Merge branch 'staging' into core-updatesMaxim Cournoyer
Conflicts resolved in: gnu/local.mk gnu/packages/cran.scm gnu/packages/gnome.scm gnu/packages/gtk.scm gnu/packages/icu4c.scm gnu/packages/java.scm gnu/packages/machine-learning.scm gnu/packages/tex.scm
2022-09-24build-system/go: Respect #:imported-modules when cross-compiling.Maxime Devos
Previously, #:imported-modules was ignored, causing cross-compilation failures. This bug seems seems to have been introduced in e37dcf63dcea0817ffd74722ee5ff2d103aa2157. After this commit, there remain other cross-compilation problems, e.g. <https://issues.guix.gnu.org/51981> fixes one of them. * guix/build-system/go.scm (go-cross-build)[builder]: Wrap in with-imported-modules. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-08-30Merge branch 'staging' into core-updatesMarius Bakke
2022-08-28build-system: copy: Support #:tests?.Liliana Marie Prikler
* guix/build-system/copy.scm (copy-build): Pass tests? to builder.
2022-08-27gnu: scons: Move to (gnu packages build-tools).Marius Bakke
* gnu/packages/python-xyz.scm (scons, scons-python2): Move from here ... * gnu/packages/build-tools.scm (scons, scons-python2): ... to here. * gnu/packages/direct-connect.scm, gnu/packages/disk.scm, gnu/packages/game-development.scm, gnu/packages/gps.scm, gnu/packages/image.scm, gnu/packages/installers.scm, gnu/packages/web.scm, gnu/packages/xdisorg.scm: Adjust module imports accordingly. * guix/build-system/scons.scm (default-scons): Likewise.
2022-08-27Merge branch 'staging' into core-updatesMarius Bakke
2022-08-19build-system/gnu: Fix docstring.Andrew Tropin
* guix/build-system/gnu.scm (dist-package): Fix docstring.
2022-08-11Merge branch 'staging' into core-updatesMarius Bakke
2022-08-11build-system/channel: Correctly handle store file name from (gnu ci).Ludovic Courtès
This is a followup to cf60a0a906440ccb007bae1243c3e0397c3a0aba. Reported by Mathieu Othacehe <othacehe@gnu.org>. * guix/build-system/channel.scm (build-channels): Add 'string?' case.
2022-08-09build-system/channel: Accept a channel or instance as the source.Ludovic Courtès
* guix/build-system/channel.scm (latest-channel-instances*): New variable. (build-channels): New procedure, with code formerly in 'channel-build-system', augmented with clauses for when SOURCE is a channel instance or a channel. * doc/guix.texi (Build Systems): Adjust accordingly.
2022-08-09build-system: Add 'channel-build-system'.Ludovic Courtès
* gnu/ci.scm (channel-build-system, channel-source->package): Remove. * gnu/packages/package-management.scm (channel-source->package): New procedure, moved from (gnu ci). * guix/build-system/channel.scm: New file, with code moved from (gnu ci). * doc/guix.texi (Build Systems): Document it.
2022-08-06build-system/perl: Support cross-compilation of some Perl packages.Maxime Devos
* guix/build-system/perl.scm: Add info on cross-compilation. (lower)[private-keywords]: Remove #:target when cross-compiling. (lower)[target]: Set. (host-inputs)[perl]: New entry. (host-inputs)[(standard-packages)]: Move to ... (build-inputs)[(standard-packages)]: ... here when cross-compiling. (build-inputs)[standard-cross-packages]: Add when cross-compiling. (target-inputs): New entry when cross-compiling. (build): Use perl-cross-build when cross-compiling. (perl-cross-build): New procedure. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-08-03build-system: asdf: Add asd-operation parameter.Guillaume Le Vaillant
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-03build-system: asdf: Let ASDF locate the .asd files.Pierre Neidhardt
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-01build-system: qt: Ensure a default value is provided for #:qtbase.Maxim Cournoyer
* guix/build-system/qt.scm (qt-build)[qtbase]: Specify a default value. Lower it using ungexp-native. (qt-cross-build): Likewise. Reported-by: Maxime Devos <maximedevos@telenet.be> and others.
2022-07-31build: qt: Add qtbase argument and wrap Qt environment variables exactly.Maxim Cournoyer
* 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-19build-system/mozilla: Fix typo in the cross-compilation case.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/56633>. Reported by Marius Bakke <marius@gnu.org>. * guix/build-system/mozilla.scm (lower-mozilla): Pass NAME as the first argument to LOWER when TARGET is true.
2022-06-27Merge branch 'master' into core-updatesMarius Bakke
2022-06-22Merge branch master into core-updatesLudovic Courtès
2022-06-19build-system/dub: Use the gold linker.(
* guix/build-system/dub.scm (default-ld-gold-wrapper): New procedure. (lower): Add a LD-GOLD-WRAPPER to the keyword arguments, and to the resulting bag's… [build-inputs]: …build inputs. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2022-06-15import: Add hex.pm importer.Hartmut Goebel
hex.pm is a package repository for Erlang and Elixir. * guix/scripts/import.scm (importers): Add "hexpm". * guix/scripts/import/hexpm.scm, guix/import/hexpm.scm, guix/hexpm-download.scm: New files. * guix/import/utils.scm (source-spec->object): Add "hexpm-fetch" to list of fetch methods. * guix/upstream.scm (package-update/hexpm-fetch): New function. (%method-updates) Add it. * Makefile.am: Add them.
2022-06-15build-system: Add 'rebar-build-system'.Hartmut Goebel
* 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-08Merge branch 'master' into core-updatesLudovic Courtès
2022-05-28guix: Upgrade to Bioconductor 3.15.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.15. * guix/import/cran.scm (%bioconductor-version): Same.
2022-05-25build-system: linux-module: Directly use-module (guix platform).Josselin Poiret
* guix/build-system/linux-module.scm (system->arch): Remove module-ref shenanigans. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-22linux: Remove system->linux-architecture procedure.Mathieu Othacehe
* gnu/packages/linux.scm (system->linux-architecture): Remove it. (make-linux-libre-headers*, make-linux-libre*): Adapt them. * guix/build-system/linux-module.scm (system->arch): Adapt it. * gnu/packages/instrumentation.scm (uftrace): Ditto. * gnu/packages/cross-base.scm (cross-kernel-headers): Ditto. * gnu/packages/bioinformatics.scm (ncbi-vdb): Ditto. * doc/guix.texi (Porting to a new platform): Update it.
2022-05-16build-system: font: Move unpack utilities to build-inputs.Arun Isaac
* guix/build-system/font.scm (lower): Move tar, gzip, bzip2, unzip and xz from host-inputs to build-inputs.
2022-05-22gnu: elm: Support 'elm reactor'.Philip McGrath
* gnu/packages/elm.scm (elm): Rename to ... (elm-sans-reactor): ... this new variable. [synopsis, description]: Tweak. (elm): New variable. * guix/build-system/elm.scm (default-elm): Use elm-sans-reactor. * doc/guix.texi (Build Systems)[elm-build-system]: Update accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-22build-system/elm: Add implicit Elm inputs.Philip McGrath
* guix/build-system/elm.scm (default-elm-core): New variable. (default-elm-json): Likewise (lower): Use them as implicit inputs when applicable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-22guix: Add elm-build-system.Philip McGrath
* 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-03-21Merge branch 'staging' into core-updates.Maxim Cournoyer
2022-03-16Revert "gnu: Add %final-inputs-riscv64."Efraim Flashner
This reverts commit 0444be868903356a37fc8ffd3cdf820ca038f3e6. This is no longer necessary after the gcc STARTFILE_PREFIX_SPEC commit.
2022-03-14build-system/ocaml: Use standard packages as "build inputs".Ludovic Courtès
Conceptually, "standard packages" (GCC, Coreutils, etc.) are "build inputs". In the absence of cross-compilation support, this change has no effect, except for things like '--tune' that expect the compiler to be among the build inputs. * guix/build-system/ocaml.scm (lower): Move (standard-packages) from 'host-inputs' to 'build-inputs'.
2022-03-07build-system/meson: Add more cross-compilation targets.Efraim Flashner
* guix/build-system/meson.scm (make-machine-alist): Add riscv64-linux option for cpu_family. Add riscv64-linux and powerpc-linux options for endian.
2022-02-24build: julia: Add 'julia-package-dependencies' as keyword.Efraim Flashner
* 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-11build-system/texlive: Be explicit about #:guile-for-build.Ludovic Courtès
This ensures package derivations are not a function of the value of (%guile-for-build). * guix/build-system/texlive.scm (texlive-build): Explicitly pass #:guile-for-build to 'gexp->derivation'.
2022-01-25Merge branch 'staging' into core-updates.Maxim Cournoyer
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-24build-system/clojure: Support compiling Java.Reily Siegel
* 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-27gnu: Add %final-inputs-riscv64.Efraim Flashner
* gnu/packages/commencement.scm (%final-inputs-riscv64): New variable. * guix/build-system/gnu.scm (standard-inputs): Use %final-inputs-riscv64 when targeting riscv64-linux.
2022-01-16build-system/linux-module: Use G-expressions.Tobias Geerinckx-Rice
* guix/build-system/linux-module.scm (make-linux-module-builder) [arguments]: Rewrite as G-expressions.
2022-01-12build-system: clojure: Allow clojure-build-system to pass source to ant.Reily Siegel
Fixes <https://bugs.gnu.org/52598>. * guix/build-system/clojure.scm (lower): Remove #:source from private keywords, preventing an error in ant-build-system. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2022-01-11build-system: Pass #:make-dynamic-linker-cache? #f when cross-compiling.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/52898>. Reported by Maxime Devos <maximedevos@telenet.be>. This is a followup to 1209447ad3f471d12e9408dd478b3cfcd7b7a07e. * guix/build-system/cmake.scm (cmake-cross-build)[builder]: Pass #:make-dynamic-linker-cache? #f. * guix/build-system/go.scm (go-cross-build)[builder]: Ditto. * guix/build-system/guile.scm (guile-cross-build)[builder]: Ditto. * guix/build-system/qt.scm (qt-cross-build)[builder]: Ditto.
2022-01-09guix: node-build-system: Add implicit libuv input.Philip McGrath
* guix/build-system/node.scm (lower): Add the version of libuv used as an input to the #:node package as an additional implicit input, so that packages needing libuv always get the correct version. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2021-12-24build-system/go: Add pre-built standard library as implicit input.Sarah Morgensen
* gnu/packages/golang.scm (make-go-std): New procedure. * guix/build-system/go.scm (make-go-std): New procedure. (lower): Use it. Add pre-built standard library to inputs. Signed-off-by: Leo Famulari <leo@famulari.name>
2021-12-24build-system/go: Add #:substitutable? argument.Sarah Morgensen
* guix/build-system/go.scm (go-build): Add 'substitutable?' argument. (go-cross-build): Likewise. Signed-off-by: Leo Famulari <leo@famulari.name>
2021-12-20build-system/meson: Define build variables when cross-compiling.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/52574>. Reported by L p R n d n <guix@lprndn.info>. * guix/build-system/meson.scm (meson-cross-build)[builder]: Define '%build-host-inputs', '%build-target-inputs', '%build-inputs', and '%outputs'.
2021-12-19Merge branch 'master' into core-updatesEfraim Flashner
2021-12-15build-system/linux-module: Wrap with build variables.Tobias Geerinckx-Rice
* guix/build-system/linux-module.scm (linux-module-build): Wrap the builder gexp WITH-BUILD-VARIABLES to restore %build-inputs after commit 7d873f194ca69d6096d28d7a224ab78e83e34fe1 removed all old certainties. Reported by lfam in #guix.
2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus