Age | Commit message (Expand) | Author |
2023-12-18 | build-system: Add ‘composer-build-system’....* guix/build-system/composer.scm: New file.
* guix/build/composer-build-system.scm: New file.
* gnu/packages/aux-files/findclass.php: New file.
* Makefile.am: Add them.
* doc/guix.texi (Build Systems): Document it.
Co-authored-by: Julien Lepiller <julien@lepiller.eu>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Ie6a05b42ff04d3ad774a0a20278a77e4820bb8f6
| Nicolas Graves |
2023-12-17 | build-system: Add mix-build-system....* guix/build-system/mix.scm: New file.
* guix/build/mix-build-system.scm: New file.
Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Pierre-Henry Fröhring |
2023-12-13 | syscalls: Define riscv64 syscall ID for clone....* guix/build/syscalls.scm (clone): Add an entry for riscv64.
This allows the use of --container on riscv64.
Change-Id: I12b3cb5e2aa248266d006b6e456082f4ddc70e62
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| MarcoFalke |
2023-11-28 | build: cargo: Use correct config file for cargo config....* guix/build/cargo-build-system.scm (configure): Use .cargo/config as
the config file. Add a note.
Change-Id: Ice006c11184d4c8e1bdb765c3998b06ad299e55b
| Efraim Flashner |
2023-11-28 | build/cargo-build-system: Enable cross-compiling....* guix/build-system/cargo.scm (default-rust): Accept an argument.
(default-rust-sysroot, cargo-cross-build): New procedures.
(lower): Accept a rust-sysroot.
[private-kewords]: Add rust-sysroot. Remove target if cross-compiling.
[bag]: Allow cross-compiling. In host-inputs only have inputs when
cross-compiling, move crate sources to here, remove standard-packages.
In build-inputs add the inputs when not cross-compiling, add the
standard-cross-packages when cross-compiling, add the standard-packages
to here. Add target-inputs with the standard-cross-packages and
rust-sysroot when cross-compiling.
* guix/build/cargo-build-system.scm (configure): Accept target argument.
When cross-compiling set some environment variables. Adjust the
.config/cargo.toml to have configure options for cross-compiling.
Change-Id: I388d1e1f48943e45ff01f55af8efc0746f383b4a
| Efraim Flashner |
2023-11-28 | build: cargo-build-system: Pack crates reproducibly....This fixes reproducibility in rust crates from the package phase, again,
see <https://issues.guix.gnu.org/50015>.
Reported by: Christopher Baines (in person).
* guix/build/cargo-build-system.scm (package): When repacking the crate
tarball use standard reproducibility flags.
Change-Id: Ifb1440a023226bf0718e99ce9f95ef981e510cbc
| Efraim Flashner |
2023-11-25 | syscalls: Add fallback case for ‘terminal-string-width’....This makes ‘terminal-string-width’ synonymous with ‘string-length’ when
running one a statically-linked Guile, as is the case in some unit
tests, instead of throwing ENOSYS.
* guix/build/syscalls.scm (terminal-string-width): Use ‘dynamic-func’
and ‘pointer->procedure’ instead of ‘syscall->procedure’. Return
‘string-length’ when one of the ‘dynamic-func’ calls fails.
Change-Id: Icf55c9e7c34b46fac91b665fb4a2ecb02160f22e
| Ludovic Courtès |
2023-11-15 | build-system/guile: Add target-guile-scm+go procedure....The paths to .scm and .go files can be constructed given a guile version and a
base directory. However it is few lines of code that needs to be copy&pasted.
This new procedure returns both of them reducing the maintenance cost.
* guix/build/guile-build-system.scm (target-guile-scm+go): New procedure.
Change-Id: I58615f2cfe0ec1e58d3fbb47b738ed5dce1bb252
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Tomas Volf |
2023-11-11 | guix: syscalls: Add terminal-string-width....* guix/build/syscalls.scm (terminal-width): New procedure.
* tests/syscalls.scm: Add tests.
Change-Id: I6c2caa9fbaffb1e8f4b8933103399be970d5a8f3
| Julien Lepiller |
2023-11-11 | build: minetest-build-system: Match name more strictly....Some Minetest mods, such as the hitherto unpackaged minetest-ambience,
have trailing garbage space (e.g. carriage returns) in their name line,
that would otherwise end up as part of the mod's directory name.
* guix/build/minetest-build-system.scm (name-regexp): Only match
graphical characters in the name sub-match.
Change-Id: I95f4c201724991a10efba5c859bfef99779ea495
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Tristan Cottam |
2023-11-09 | guix: ant: Optionally build with java modules....Modules were introduced in Java 9 and are not supported by the default
icedtea compiler, so this feature is disabled by default.
* guix/build-system/ant.scm (ant-build): Add use-java-modules?
parameter.
* guix/build/ant-build-system.scm (default-build.xml)
(configure): Use it.
Change-Id: I3b99238e4cd262332fa5c818be1af5477c7374fd
| Julien Lepiller |
2023-11-08 | build-system: Add vim-build-system....* guix/build-system/vim.scm,
* guix/build/vim-build-system.scm: New modules.
* Makefile.am (MODULES): Register new files.
* doc/guix.texi: Document it.
Co-authored-by: Efraim Flashner <efraim@flashner.co.il>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
| Jonathan Scoresby |
2023-11-07 | git-download: Add support for Git Large File Storage (LFS)....* guix/build/git.scm (git-fetch) [lfs?]: New argument, doc and setup code.
(git-fetch-with-fallback) [lfs?]: New argument. Pass it to git-fetch.
* guix/git-download.scm (git-lfs-package): New procedure.
(git-fetch/in-band*): New procedure, made of the logic of git-fetch/in-band,
with new git-lfs specifics, with the following changes:
New #:git-lfs argument.
<inputs>: Remove labels. Conditionally add git-lfs.
<build>: Read "git lfs?" environment
variable and pass its value to the #:lfs? argument of git-fetch-with-fallback.
Use INPUTS directly; update comment.
<gexp->derivation>: Add "git lfs?" to #:env-vars.
(git-fetch/in-band): Express in terms of git-fetch/in-band*.
(git-fetch/lfs): New procedure.
* doc/guix.texi (origin Reference): Document it.
Change-Id: I5b233b8642a7bdb8737b9d9b740e7254a89ccb25
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
| Maxim Cournoyer |
2023-10-23 | syscalls: Consistently use existing linux? definition....Instead of duplicating this existing logic across the source file. This
will make it easier to add additional linux targets (e.g. linux-musl) in
the future.
* guix/build/syscalls.scm (readdir*, write-socket-address!)
(read-socket-address): Use linux? constant.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I833c1d1630dcb8319584de1ea918cb22696f0058
| Sören Tempel |
2023-10-23 | syscalls: Add support for musl libc....This commit allows using Guix on a foreign distro which uses musl libc,
for example, Alpine Linux. Usage of musl libc is detected via a new
musl-libc? variable using the Guile %host-type.
Using the new musl-libc? variable, we can now implement musl-specific
quirks. The two compatibility problems I encountered in this regard are
that musl dose not export a readdir64 and statfs64 symbol. On musl,
these two functions are implemented as CPP macros that expand to
readdir/statfs. To workaround that, a case-distinction was added.
The existing linux? variable has been modified to return true if the
%host-system contains "linux-" in order to ensure it is true for both
linux-gnu as well as linux-musl host systems.
The patch has been tested on Alpine Linux and is already used for the
downstream Guix package shipped in Alpine Linux's package repository.
* guix/build/syscalls.scm (musl-libc?): New variable.
(linux?): Truth value on any linux system.
(statfs, readdir-procedure): Support musl libc.
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Icc4101a062381240f977f4550344bde696513c52
| Sören Tempel |
2023-10-21 | Merge remote-tracking branch 'origin/rust-team' | Efraim Flashner |
2023-10-21 | build-system: Add zig-build-system....* guix/build-system/zig.scm: New file.
* guix/build/zig-build-system.scm: New file.
* Makefile.am: Add them.
* doc/guix.texi: Document it.
* etc/snippets/yas/scheme-mode/guix-package (build-system): Add
zig-build-system.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Ekaitz Zarraga |
2023-10-18 | build: cargo-build-system: Find more pregenerated files....* guix/build/cargo-build-system.scm (check-for-pregenerated-files): Also
search for MacOS dynamic libraries.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Strip enough prefix in package....* guix/build/cargo-build-system.scm (package): When using the source as
the packaged crate also strip the 'rust-' prefix.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Reset timestamps in crates....This fixes reproducibility in rust crates from the package phase,
see <https://issues.guix.gnu.org/50015>.
* guix/build/cargo-build-system.scm (package): After running 'cargo
package' on the source unpack the tarball, reset the timestamps and
repack it.
| Efraim Flashner |
2023-10-18 | build: cargo-build-system: Check for pregenerated files....* guix/build/cargo-build-system.scm (check-for-pregenerated-files): New
procedure.
(%standard-phases): Add 'check-for-pregenerated-files phase between
'unpack and 'unpack-rust-crates.
| Efraim Flashner |
2023-10-06 | build-system/minify: Use esbuild....* guix/build-system/minify.scm (default-uglify-js): Replace this procedure...
(default-esbuild): ...with this new procedure.
(lower): Use it, and add "esbuild" to build inputs.
* guix/build/minify-build-system.scm (minify): Invoke esbuild instead of
setting up a pipe to uglifyjs.
* gnu/packages/cran.scm (r-shiny)[native-inputs]: Replace node-uglify-js with
esbuild.
* gnu/packages/statistics.scm (r-dt)[native-inputs]: Same.
| Ricardo Wurmus |
2023-10-04 | guix: meson-configuration: Fix boolean assigment....* guix/build/meson-configuration.scm (write-assigment): Print true for
#t and false for #f. Previously it was inverting the values.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| Jean-Pierre De Jesus DIAZ |
2023-09-26 | git-download: Move fallback code to (guix build git)....* guix/build/git.scm (git-fetch-with-fallback): New procedure, with code
taken from…
* guix/git-download.scm (git-fetch): … here.
[modules]: Remove modules that are no longer directly used in ‘build’.
[build]: Use ‘git-fetch-with-fallback’.
| Ludovic Courtès |
2023-09-07 | build: emacs-utils: Adjust ‘emacs-compile-directory’ for Emacs 29....* guix/build/emacs-utils.scm (emacs-compile-directory): After native
compilation, write the bytecode file with ‘comp-write-bytecode-file’.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Hilton Chain |
2023-08-26 | Merge branch 'master' into emacs-team | Liliana Marie Prikler |
2023-08-19 | guix: emacs-utils: Add ert-number-tests....* guix/build/utils.scm (ert-number-tests): New variable.
| Liliana Marie Prikler |
2023-08-02 | build: qt-utils: Wrap QML2_IMPORT_PATH with 'prefix' location....Some qml files have optional or circular dependencies, use 'prefix' instead of
'=' to get those dependencies from environment/profile.
* guix/build/qt-utils.scm (variables-for-wrapping): Use 'prefix' for
QML2_IMPORT_PATH.
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
| Zheng Junjie |
2023-07-28 | download-nar: Improve output....Report errors that occur, output the "Downloading from " line before starting
to report progress and end the output with a newline.
| Christopher Baines |
2023-07-18 | pack: Move common build code to (guix build pack)....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>
| Maxim Cournoyer |
2023-07-18 | guix: texlive-build-system: Add #:link-scripts argument....* 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.
| Nicolas Goaziou |
2023-07-18 | guix: texlive-build-system: Generate TeX formats....* 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.
| Nicolas Goaziou |
2023-07-18 | guix: texlive-build-system: Handle doc-only packages gracefully....* guix/build/texlive-build-system.scm (install): Always create #$output, even
if it is empty.
| Nicolas Goaziou |
2023-07-18 | guix: texlive-build-system: Generate font metrics....* guix/build/texlive-build-system.scm (install-as-runfiles):
(generate-font-metrics): New function.
(build): Use INSTALL-AS-RUNFILES.
(%standard-phases): Add new phase.
| Nicolas Goaziou |
2023-07-18 | guix: texlive-build-system: Improvements on non-trivial packages....* 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.
| Nicolas Goaziou |
2023-07-05 | guix: git: Set initial branch name for git-fetch....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.
| Efraim Flashner |
2023-06-22 | guix: node-build-system: Delete from peerDependencies too....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.
| Lars-Dominik Braun |
2023-06-11 | svn-download: Do not expand keywords....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>
| Timothy Sample |
2023-06-04 | build-system: New agda-build-system....* 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.
| Josselin Poiret |
2023-05-07 | gnu: rust: Update to 1.67....* 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.
| Efraim Flashner |
2023-05-07 | build: cargo-build-system: Don't try to package when skipping build....* guix/build/cargo-build-system.scm (package): If the package isn't
going to be built then use the source instead.
| Efraim Flashner |
2023-05-06 | build-system: node: Use `--install-links' with `npm install'....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.
| Jelle Licht |
2023-04-14 | Merge branch 'master' into core-updates....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
| Maxim Cournoyer |
2023-04-14 | build/glib-or-gtk: Avoid duplicate entries in gdk-pixbuf loaders cache....* guix/build/glib-or-gtk-build-system.scm (generate-gdk-pixbuf-loaders-cache):
Delete duplicate directories passed as input.
| Maxim Cournoyer |
2023-04-12 | po: Do not auto-translate cross-references to other manuals....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>
| Florian Pelz |
2023-04-09 | build: meson: Explicitly invoke "meson setup" instead of just "meson"....* guix/build/meson-build-system.scm (configure): Invoke the setup command to
avoid a deprecation warning.
| Maxim Cournoyer |
2023-04-09 | build: meson: Honor bindir, libdir and includedir....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.
| Maxim Cournoyer |
2023-03-28 | Merge remote-tracking branch 'origin/master' into staging | Maxim Cournoyer |
2023-03-28 | build: qt-utils: Revert setting QT_PLUGIN_PATH exactly....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.
| Maxim Cournoyer |
2023-03-27 | syscalls: 'getxattr' throws upon error....* guix/build/syscalls.scm (getxattr): Throw in the negative SIZE case.
| Ludovic Courtès |