1
0
forked from tribes/guix

Compare commits

..

134 Commits

Author SHA1 Message Date
Yelninei 2b0c3632a0 gnu: libsigsegv: Update to 2.15.
* gnu/packages/libsigsegv.scm (libsigsegv): Update to 2.15.

Change-Id: Ie0bc45e925bfc41d5fe0a9d05d854fdfcd8ae50b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-02 12:54:44 +02:00
Maxim Cournoyer e88bb11646 gnu: gawk: Update to 5.3.2.
* gnu/packages/gawk.scm (gawk): Update to 5.3.2.
[arguments]: In ‘set-shell-file-name’ phase, also modify ‘builtin.c’.  Change
pager substitution to honor $PAGER.
* gnu/packages/commencement.scm (gawk-boot0)[arguments]: Inherit arguments
from gawk.
* gnu/packages/patches/gawk-shell.patch: Update for gawk 5.3.2.

Change-Id: Icb398e0a72bcdf9cd371514d1ca486dc8781b7e5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-02 12:54:44 +02:00
Maxim Cournoyer d0ff93c699 gnu: grep: Update to 3.12.
* gnu/packages/base.scm (grep): Update to 3.12.

Change-Id: I15cc4c3e9a4fc6f1e34c4399dbbd653e6bb21553
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-02 12:54:44 +02:00
Maxim Cournoyer ef93d7ea28 gnu: flex: Move bison-for-tests input to native inputs.
If it's truly for tests, it ought to be a native inputs.

* gnu/packages/flex.scm (flex) [inputs]: Delete field, moving bison-for-tests...
[native-inputs]: ... here.

Change-Id: I7fa30de00b1a6386d495403a619f412daa9d1ab5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-02 12:54:43 +02:00
Maxim Cournoyer a53bddbee1 gnu: flex: Apply a patch fixing a non-deterministic build failure.
* gnu/packages/patches/flex-fix-make-dependencies.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/flex.scm (flex)[source]: Apply it.
* gnu/packages/commencement.scm (flex-boot0)[source]: Wrap in
‘bootstrap-origin’ to avoid circular dependency.

Change-Id: I7b9994a9239bdafa5c7768b9f954870716c76ad7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-02 12:54:01 +02:00
Yelninei 8ff2eff817 gnu: ed: Update to 1.22.5.
* gnu/packages/text-editors.scm (ed): Update to 1.22.5.
[#:phases]: Remove 'patch-test-suite phase.
Change-Id: Ie5bab5717df3d33e2999f44db5feb298e67552c0

Change-Id: I9b865019193b14e5a8c35e9da80170fdc0d2e0fd
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-02 10:15:18 +02:00
Ludovic Courtès 6728a2d1d6 gnu: guile-lib: Depend on Gettext 0.23 for its M4 macros.
* gnu/packages/guile-xyz.scm (guile-lib)[native-inputs]: Change
‘gettext-minimal’ to ‘gettext-minimal-0.23’.

Change-Id: Icf6aa34545f1ae5c3c8aeed7bf8301f0ad78d60d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7612
2026-04-01 22:50:43 +02:00
Ludovic Courtès d7fa6d0e9f gnu: libtool: Allow references to the toolchain.
* gnu/packages/autotools.scm (libtool)[arguments]: Add #:disallowed-references.

Change-Id: I0f2a46b22f18e6593d9b598f9a3e15b549675f85
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-01 22:50:43 +02:00
Ludovic Courtès f075ff26d1 gnu: libtool: Use gexps.
* gnu/packages/autotools.scm (libtool)[arguments]: Change to gexps.

Change-Id: I61c8e9850fb0af200b4e3115fc6fe80d4a5c0098
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-01 22:50:42 +02:00
Ludovic Courtès 682c9c4462 build-system/gnu: Add the toolchain to #:disallowed-references by default.
This should help keep package closure size under control in cases where a
reference to the toolchain is unwillingly kept, as is the case in
guix/guix#2846.

* guix/build-system/gnu.scm (default-disallowed-references): New procedure.
(lower)[private-keywords]: Remove #:implicit-inputs? and #:implicit-cross-inputs?.
(gnu-build): Add #:implicit-inputs? and #:implicit-cross-inputs?.  Change
value for #:disallowed-references.
(gnu-cross-build): Add #:implicit-inputs? and #:implicit-cross-inputs?.
* guix/build-system/cmake.scm (lower)[private-keywords]: Remove #:implicit-inputs?
and #:implicit-cross-inputs?.
(cmake-build): Add #:implicit-inputs? and #:implicit-cross-inputs?.  Change
value for #:disallowed-references.
(cmake-cross-build): Add #:implicit-inputs? and #:implicit-cross-inputs?.

Change-Id: Ie1c53802c0fff78926e4e02d5ff30b3665c74c6a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6473
2026-03-30 23:41:33 +02:00
Ludovic Courtès 5e8af7fd4b gnu: commencement: Provide Make without Guile support.
Guile support is unused so this is a welcome simplification.

* gnu/packages/commencement.scm (make-gnu-make-final): Remove.
(%final-inputs): Remove call to ‘make-gnu-make-final’.  Add ‘gnu-make’ without
dependencies and without “debug” output to the main list.

Change-Id: I8a4d75b04eda22d49c4442ee4ff57e3bf1bc7d1e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7544
2026-03-30 23:41:33 +02:00
Sören Tempel f9767a93d9 gnu: binutils: Depend on perl for pod2man.
* gnu/packages/base.scm (binutils)
[native-inputs]: add perl.

Change-Id: Id040abf9b2365746b8ec32607c45bb5a3928ff4a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7090
2026-03-30 23:41:33 +02:00
Sören Tempel 116078f366 gnu: binutils: Make build reproducible.
binutils is not reproducible because it includes an examples tarball
which is not created in a reproducible way.  This patch modifies the
tarball creation to make it reproducible.

Refer to https://reproducible-builds.org/docs/archives/ for more info.

See also #7041.

* gnu/packages/base.scm (binutils)
[source]: Apply patch to make tarball creation reproducible.
* gnu/packages/patches/binutils-reproducible-tar.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 23:41:32 +02:00
Ludovic Courtès 51abc3b55e gnu: gash: Update to 0.3.2.
* gnu/packages/shells.scm (gash): Update to 0.3.2.
[home-page]: Update.

Change-Id: Iffb00f2fe4450998510eeb5dd248f7df139e6943
Merges: #7187
2026-03-30 23:41:32 +02:00
Ludovic Courtès 4d787faff2 gnu: gcc-core-mesboot0: Remove unnecessary ‘make’ flags.
* gnu/packages/commencement.scm (gcc-core-mesboot0)[arguments]: Remove
unnecessary elements from #:make-flags.

Change-Id: I4897cb22f423ccde96f9fcf03d4bf78017da91df
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7256
2026-03-30 23:41:32 +02:00
Ludovic Courtès 93251e230a gnu: commencement: Build “mesboot” toolchain with ‘_FILE_OFFSET_BITS=64’.
Fixes a bug whereby, for example, ‘gcc-mesboot0’ would fail to read its own
spec file because the ‘stat’ function would return EOVERFLOW when encountering
an inode number or timestamps that does not fit in 32 bits (on Btrfs inode
numbers greater than 2^32 are not uncommon), a UID/GID that does not fit in 16
bits, etc.

Internally, when ‘_FILE_OFFSET_BITS’ is unset, the ‘stat’ function in glibc
invokes the ‘stat64’ syscall and then converts the result to a 32-bit ‘struct
stat’, failing with EOVERFLOW if one of the field from ‘struct stat64’ doesn’t
fit in the corresponding field of ‘struct stat’.

In Mes-Libc, the choice between ‘stat’ and ‘stat64’ (and the corresponding
struct layout), ‘getdents’ and ‘getdents64’, etc. is dictated by the value of
‘__SIZEOF_LONG_LONG__’, which ‘mescc’ sets to 8 but ‘tcc’ leaves
unset (equivalent to 0).  This change forces use of ‘stat64’ & co. for
Mes-Libc users, including when using ‘tcc’.

* gnu/packages/commencement.scm (mes-boot)[arguments]: Add
‘use-64-bit-file-offsets’ phase.
(binutils-mesboot0)[arguments]: Add ‘-D_FILE_OFFSET_BITS=64’ to ‘cppflags’.
(gcc-core-mesboot0)[arguments]: Likewise.
(gcc-mesboot0)[arguments]: Likewise.

Fixes: guix/guix#7194
Change-Id: I05d5b8f5aee78ca0e95d7c89ba93b2729791a66a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 23:41:32 +02:00
Ludovic Courtès f0a2db05b2 gnu: mes-boot: Update to 0.27.1.
Partly addresses guix/guix#7194 by switching to the ‘getdents64’ system call
instead of ‘getdents’.  The latter could error out with EOVERFLOW when
encountering an inode number that doesn’t fit in the 32-bit ‘d_fileno’ field
of ‘struct dirent’.  This, in turn, could cause ‘make’ to mistakenly consider
files as nonexistent.

* gnu/packages/commencement.scm (mes-boot): Update to 0.27.1.
[supported-systems]: Remove.
[native-inputs]: Switch to ‘nyacc-2.02’ instead of ‘nyacc-1.00.2’.
[arguments]: In ‘configure’ phase, replace hardcoded nyacc version string with
its actual string.

Change-Id: Iebf19eac4d2e2923872a048bb2712f620a2044c8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 23:41:28 +02:00
Ludovic Courtès 27562c019a gnu: commencement: Account for ‘invoke’ throwing on error.
* gnu/packages/commencement.scm (mes-boot)[arguments]: Change (or (invoke …)
…) to just (invoke …).
(tcc-boot0)[arguments]: Likewise.
(unpack-and-symlink-other-tarballs-phase): Likewise.

Change-Id: I012b7e62d743488d9356c8d221a7668840c4df91
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:14 +02:00
Nicolas Graves 51a5bbb2ef gnu: make-gcc-toolchain: Improve style.
* gnu/packages/commencement.scm (make-gcc-toolchain)[arguments]:
Improve style, use G-expressions.

Change-Id: Ib030b50f4c184d4762ced12e450d643cb016690f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7406
2026-03-30 22:26:14 +02:00
Nicolas Graves 7321e7a8e2 gnu: glibc-final: Improve style.
* gnu/packages/commencement.scm (glibc-final):
[arguments, inputs]: Refactor using final instead of
glibc-final-with-bootstrap-bash.
[arguments]: Relocate, avoid quotes.

Change-Id: Ieb23328393d20d97a9aae81d1e01ac39e38ba306
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves 1e6bb1bc90 gnu: glibc-utf8-locales-final/hurd: Improve style.
* gnu/packages/commencement.scm (glibc-utf8-locales-final/hurd):
Improve style, use hidden-package.
[native-inputs]: Drop input labels.

Change-Id: I8b88893531fba8f127511f3a4787fcc8e4b03bf6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves 854b972a45 gnu: glibc-utf8-locales-final: Improve style.
* gnu/packages/commencement.scm (glibc-utf8-locales-final): Improve
style, use hidden-package.
[native-inputs]: Drop input labels.

Change-Id: I9de8510c79c21b4168caec302dd383438a6c77f5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves 670d338fbd gnu: %final-inputs: Partially drop input labels.
* gnu/packages/commencement.scm
(%final-inputs): Drop input labels.

Change-Id: Ib91c1b907356335b36fef0b12d8ed3019c8b2c98
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves c0d0623d4f gnu: %boot4-inputs, %boot6-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot4-inputs, %boot6-inputs): Drop input labels.
(with-boot4, with-boot6): Adapt accordingly.

Change-Id: Id0593d664e1ff1918eae6098d271e5b2b17fe934
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves a2c5f06434 gnu: sed-final: Drop input labels.
* gnu/packages/commencement.scm (sed-final)[native-inputs, inputs]:
Drop input labels.

Change-Id: Ief21d17a28670edf3c74fe666076992ac83feb09
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves 2e76f50640 gnu: grep-final: Drop input labels.
* gnu/packages/commencement.scm (grep-final)[native-inputs, inputs]:
Drop input labels.

Change-Id: I7a1afc364b283b835ecc6f06d295b060ea53d506
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves 2f1badab08 gnu: make-gnu-make-final: Improve style, drop input labels.
* gnu/packages/commencement.scm (pkg-config, make-gnu-make-final)
[arguments]: Improve style, drop quotes.
[inputs]: Drop input labels.

Change-Id: I4d1c6e58c61e55291970920b723a1efee2eb4e8e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:13 +02:00
Nicolas Graves 41b969692d gnu: guile-2.0: Find bash unconditionally.
* gnu/packages/guile.scm (guile-2.0)[arguments]<#:phases>: In phase
'pre-configure, find bash unconditionally.

Change-Id: Ib6878dc5d258e89f49a87746285762662632a473
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:12 +02:00
Nicolas Graves aeb969a803 gnu: %boot3-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot3-inputs): Drop input labels.
(%boot4-inputs): Inject former %boot3-inputs for incremental progress
on input label removal.
(bash-final): Adapt accordingly.

Change-Id: I6a8db940ddf1686e1c457c12abef715658ce8637
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:12 +02:00
Nicolas Graves 30961bc306 gnu: commencement: Avoid (gnu packages c) dependency.
* gnu/packages/commencement.scm (tcc-boot0): Drop tcc inheritance, and
inject necessary metadata variables.  No build-relevant fields were
inherited.

Change-Id: Ibd9a8021b90816e30dc86492438124d15f1b583e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:12 +02:00
Nicolas Graves 438bb5cf9e gnu: %boot2-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot2-inputs): Drop input labels.
(%boot3-inputs): Inject former %boot2-inputs for incremental progress
on input label removal.
(binutils-final, ld-wrapper-boot3): Adapt accordingly.
(libstdc++, gcc-final): Make labels that can't currently be dropped
explicit.

Change-Id: Iac30d41267224a34e4f1b135d99b38ca8320c467
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:12 +02:00
Nicolas Graves 83ffe3741b gnu: flex: Improve style.
* gnu/packages/flex.scm (flex)
[inputs]: Relocate field and drop input labels.
[description]: Improve style, reindent and use @file and @code.

Change-Id: If0e11b5d0c3d2a258e10eb16476b5c253172aaa5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:26:09 +02:00
Nicolas Graves 343165e912 gnu: bison-boot0: Improve style, drop input labels.
* gnu/packages/commencement.scm (bison-boot0)
[propagated-inputs, native-inputs]: Drop input labels.
[arguments]: Improve style, use G-expressions, use
substitute-keyword-arguments.

Change-Id: Id49ab93e89dc82e4596032abb2e1ebd1409f48e7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:14 +02:00
Nicolas Graves a48e520b4c gnu: flex-boot0: Drop input labels.
* gnu/packages/commencement.scm (flex-boot0)
[native-inputs, propagated-inputs]: Drop input labels.

Change-Id: Ic82ee28616be369c5b80cb9e9c3c83bae1f2e0e0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:14 +02:00
Nicolas Graves c51ecda4eb gnu: libstdc++: Improve style.
* gnu/packages/commencement.scm (libstdc++)[arguments]: Improve style,
use G-expressions and substitute-keyword-arguments.

Change-Id: I72314754ed9e10f2702f2c7ea8d142bba36e5b49
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:14 +02:00
Nicolas Graves 62da5ac40c gnu: bash-final: Improve style.
* gnu/packages/commencement.scm (bash-final)[arguments]: Improve
style, explicit disallowed-reference.

Change-Id: I2979ea3c8c29b9a9707a59395dd8f4623fc27a13
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:13 +02:00
Nicolas Graves 762a244077 gnu: gcc-final: Improve style.
Dropping input labels here is a harder issue than for most other
packages, because of libc/libc-native.  Instead make some progress
towards dropping input labels without dropping them entirely.

* gnu/packages/commencement.scm (gcc-boot0)[arguments]
<#:make-flags>: Improve style, use search-input-file.
<#:phases>: Improve style.  Replace phase 'unpack-gmp&co by refactored
unpack-and-symlink-other-tarballs-phase.  Use search-input-file.
<#:modules>: Adapt them accordingly.
[inputs]: Reorganize them accordingly.

Change-Id: I9e98b7b89cc9c864a2c60919eec61913fdf01baa
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:13 +02:00
Nicolas Graves 0598da6766 gnu: %boot1-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot1-inputs): Drop input labels.
(%boot2-inputs): Inject former %boot1-inputs for incremental progress
on input label removal.
(glibc-final-with-bootstrap-bash, gcc-boot0-intermediate-wrapped)
(static-bash-for-libc, glib-final): Adapt accordingly.

Change-Id: If91a1c06020976d6e14da9c706fb029b3bf03614
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:13 +02:00
Nicolas Graves 7ecda67dfa gnu: boostrap glibcs: Drop input labels.
* gnu/packages/base.scm (glibc)[arguments]
<#:configure-flags>: Avoid assoc-ref to drop modules, and...
<#:phases>: In phase 'pre-configure, avoid assoc-ref similarly, and...
<#:modules>: ...add necessary modules to do so.

* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)
[propagated-inputs, inputs]: Drop input lables.
(glibc-final): Likewise.

Change-Id: I359623b6e4e69f693701d74749f340c0b55ec775
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:13 +02:00
Nicolas Graves 5b086540ac gnu: static-bash-for-glibc: Improve style.
* gnu/packages/commencement.scm (static-bash-for-glibc)
[inputs]: Drop input labels.
[arguments]: Improve style, use G-expressions.
<#:configure-flags>: Use search-input-file.

Change-Id: I215a0a796fd24e49410c3a517fa49b9b5e58ed66
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:25:11 +02:00
Nicolas Graves 852357a9cd gnu: cross-gcc-wrapper: Improve style.
* gnu/packages/commencement.scm (cross-gcc-wrapper)[arguments]:
Improve style, use G-expressions.
[native-inputs]: Drop input labels.

Change-Id: I974a68e3fa380f6088a42d195e0d56e42fd4f796
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:24:35 +02:00
Nicolas Graves e24af7c41b gnu: glibc: Improve style.
This is a preliminary commit to help with gradually dropping label
inputs.

* gnu/packages/base.scm (glibc)[arguments]: Improve style, use
output G-expression.
(glibc-2.35, glibc-2.33): Adapt accordingly.

* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)
[arguments]: Improve style, migrate to G-expressions, use
search-input-file.

* gnu/packages/cross-base.scm
(xglibc/hurd-headers)[arguments]: Improve style, migrate to
G-expressions.
(cross-libc*): Likewise.
(cross-binutils): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:24:32 +02:00
Nicolas Graves 9ce1a7c861 gnu: glibc: Replace static-bash label by bash-static.
This will make the migration to drop labels easier, as the
package-name of static-bash is bash-static and not static-bash.

* gnu/packages/base.scm (glibc)
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)
(glibc-final, gcc-final): Replace "static-bash" label by
"bash-static".

Change-Id: I27d19ef5af706d4c1a342d1f876900cdc1b81d35
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:49 +02:00
Nicolas Graves e46f164339 gnu: %boot0-inputs: Drop input labels.
* gnu/packages/commencement.scm
(packages->input-alist): New helper procedure.
(%boot0-inputs): Drop input labels.
(%boot1-inputs): Inject former %boot0-inputs for incremental progress
on input label removal.
(make-libstdc++-boot0, gcc-boot0, linux-libre-headers-boot0)
(texinfo-boot0, perl-boot0, python-boot0)
(glibc-final-with-bootstrap-hash, linux-libre-headers-boot0): Adapt
accordingly.
(with-boot0): Adapt accordingly, but keep input labels for now as they
are still necessary.

Change-Id: I6503dfa5ad9a15674f56db343aac2d8b37ff23ee
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:49 +02:00
Nicolas Graves ff1ac2d8c1 gnu: make-libstdc++-boot0: Improve style.
* gnu/packages/commencement.scm (make-libstdc++-boot0)
[arguments]<#:phases>: Replace phase 'unpack-gmp&co with
unpack-and-symlink-other-tarballs phase.
<#:modules>: Adapt accoringly.
[inputs]: Drop input labels.

Change-Id: I89e633c15dc77c64e6a38db5438af1a3bc1bcf3e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:49 +02:00
Nicolas Graves 13852f8ef2 gnu: ld-wrapper-boot0: Drop input labels.
* gnu/packages/commencement.scm
(%boot0-bash): New helper procedure.
(ld-wrapper-boot0)[bash]: Drop input labels.

Change-Id: Ie418696ded10883daeb5115c74610cf4938eb25e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:49 +02:00
Nicolas Graves b23bdf0e95 gnu: texinfo-boot0: Drop input labels.
* gnu/packages/commencement.scm (texinfo-boot0)[inputs]: Drop input
labels.

Change-Id: I0675f8af6b006bf72d10bc64831bc079c3771ef8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:49 +02:00
Nicolas Graves 0c50d99e08 gnu: python-boot0: Drop input labels.
* gnu/packages/commencement.scm (python-boot0)[inputs]: Drop input
labels.

Change-Id: Ibf39e7911478d994f758322837d8a6029137625e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:49 +02:00
Nicolas Graves 616abd90a3 gnu: hurd-core-headers-boot0: Drop input labels.
* gnu/packages/commencement.scm (hurd-core-headers-boot0)[inputs]:
Drop input labels.

Change-Id: I8da6ff57ca9a3a6931fd304a43f770956d65159c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:48 +02:00
Nicolas Graves ca1bea7e6e gnu: linux-libre-headers-boot0: Drop input labels.
* gnu/packages/commencement.scm (linux-libre-headers-boot0)
[native-inputs]: Drop input labels.

Change-Id: Id1103c6aba17a4f1db504e0ceabc73ba0db398fa
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:48 +02:00
Nicolas Graves 6a35591167 gnu: bzip2: Drop input labels.
* gnu/packages/compression.scm (bzip2)[inputs]: Drop input labels.

Change-Id: I31b4ebbd43e1bc476b2c97f5a919dcaf0180f670
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:48 +02:00
Nicolas Graves de1f3a6a13 gnu: gcc-boot0: Improve style.
Dropping input labels here is a harder issue than for most other
packages, because of libc/libc-native.  Instead make some progress
towards dropping input labels without dropping them entirely.

* gnu/packages/commencement.scm (gcc-boot0)[arguments]
<#:make-flags>: Improve style, use G-expressions.
<#:phases>: Likewise.  Replace phase 'unpack-gmp&co by refactored
unpack-and-symlink-other-tarballs-phase.  Use search-input-file.
[inputs]: Reorganize them accordingly.

Change-Id: I9429dc4c6c86f09ee83cfecd22d6304fd29695ea
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:48 +02:00
Nicolas Graves cedf6b9d33 gnu: gcc-base: Improve style.
* gnu/packages/gcc.scm
(gcc-configure-flags-for-triplet): Migrate to G-expressions.
(gcc-base)[arguments]: Improve style.
<#:configure-flags>: Define them in a more standard way.
<#:phases>: Migrate to G-expressions.

Change-Id: I143505acf76d1701beb69a9f8c92f1be5bff10e4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:23:46 +02:00
Nicolas Graves 094fbe8128 gnu: binutils-boot0: Improve style.
* gnu/packages/commencement.scm (binutils-boot0)[arguments]
<#:phases>: Improve style, use G-expressions.

Change-Id: Ic66514a72c06ac603d0bc8c45c6f7f49b81bb82d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:22:10 +02:00
Nicolas Graves 2b2b8ed19a gnu: %boot-mesboot6-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot6-inputs): Drop input labels.
(%boot0-inputs): Inject former %boot-mesboot6-inputs for incremental
progress on input label removal. Avoid propagating some mesboot inputs
(namely coreutils-mesboot, sed-mesboot, gawk-mesboot,
gnu-make-mesboot, patch-mesboot). In the case of the full-source
bootstrap, those mesboot inputs are polluting inputs.  IIUC, the logic
was that it doesn't really matter because with
`(fold alist-delete ...)` would remove all labels directly.  However,
this is not the case with explicit packages, so migrating here is
necessary to avoid injecting bad inputs down the graph.
(gnu-make-boot0, bzip2-boot0, coreutils-boot0, diffutils-boot0)
(findutils-boot0, file-boot0, gawk-boot0, patch-boot0, sed-boot0)
(tar-boot0): Adapt accordingly.

* gnu/packages/bootstrap.scm (%bootstrap-inputs): Drop input labels.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:39 +02:00
Nicolas Graves a4c690a0bd gnu: file-boot0: Improve style.
* gnu/packages/commencement.scm (file-boot0)[arguments]: Improve
style, remove useless call to file package-arguments.

Change-Id: I8666ea0463383e7e59540cf55b131ce27d5d408e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:39 +02:00
Nicolas Graves ce0de9af97 gnu: file: Improve style.
* gnu/packages/commencement.scm (file)[arguments]: Improve style.

Change-Id: I92139d858ea7a794025d2356da489115b4d7a764
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:39 +02:00
Nicolas Graves e575cca11a gnu: tar-boot0: Improve style.
* gnu/packages/commencement.scm (tar-boot0)
[inputs]: Drop input labels.
[arguments]: Improve style, use G-expressions.

Change-Id: Iba9ee02749dd7af5be60c95172cad34915bdcfe6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:39 +02:00
Nicolas Graves b9c6079ace gnu: sed-boot0: Improve style.
* gnu/packages/commencement.scm (sed-boot0)[arguments]: Improve style,
remove useless call to sed package-arguments.

Change-Id: Ic1b88d398d65829c866fca597bbe5eeed8f1e5d9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves ad681ea6fe gnu: sed-boot0: Drop input labels.
* gnu/packages/commencement.scm (sed-boot0)[inputs]: Drop
input labels.

Change-Id: Id45f5eef330c841dbee3a4d2b20e237ab7230e2d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves bbc3f12905 gnu: patch-boot0: Drop input labels.
* gnu/packages/commencement.scm (patch-boot0)[inputs]: Drop
input labels.

Change-Id: I95546599a8ff2f05544f1fba20ad7bf21f51b2d6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves a230916e9f gnu: gawk-boot0: Drop input labels.
* gnu/packages/commencement.scm (gawk-boot0)[inputs]: Drop
input labels.

Change-Id: Ia610e3739814c52f9f0a4a929003d541b0959635
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves 915a5a56fe gnu: file-boot0: Drop input labels.
* gnu/packages/commencement.scm (file-boot0)[inputs]: Drop
input labels.

Change-Id: I849bdbc777ae2cc49b01506b290636bf4e305551
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves 2951273b2a gnu: findutils-boot0: Drop input labels.
* gnu/packages/commencement.scm (findutils-boot0)[inputs]: Drop
input labels.

Change-Id: I0545470351ff47137b2d85d819295830fd79cbd0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves 1ff314262f gnu: diffutils-boot0: Drop input labels.
* gnu/packages/commencement.scm (diffutils-boot0)[inputs]: Drop
input labels.

Change-Id: I683b7a464cda0264c70db3182412e363d75431ec
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:38 +02:00
Nicolas Graves 11f2371a39 gnu: coreutils-boot0: Drop input labels.
* gnu/packages/commencement.scm (coreutils-boot0)[inputs]: Drop
input labels.

Change-Id: Iac3401dd2df2cb20559779cf4619ed9d03bf4a68
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:37 +02:00
Nicolas Graves 9e5d5f4f6e gnu: bzip2-boot0: Drop input labels.
* gnu/packages/commencement.scm (bzip2-boot0)[inputs]: Drop
input labels.

Change-Id: Ia886eb779f3f6926d1af96fda8e8ebf5ef2431bf
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:37 +02:00
Nicolas Graves 650bb0b290 gnu: gnu-make: Improve style.
* gnu/packages/base.scm (gnu-make)[arguments]: Improve style.
<#:phases>: Use search-input-file instead of labels, use
G-expressions.

* gnu/packages/base.scm (gnu-make-4.2)[arguments]: Improve style.
<#:phases>: Use search-input-file instead of labels, use
G-expressions.

* gnu/packages/commencement.scm (gnu-make-boot0)
[arguments]: Improve style, migrate to G-expressions.
[inputs]: Drop input labels.

* guix/tests.scm (gnu-make-for-tests)[arguments]: Improve style,
migrate to G-expressions.

Change-Id: Ic2cacf099888d59fecee5278d6e59cb749602636
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:21:36 +02:00
Nicolas Graves 87b22cd67b gnu: %boot-mesboot5-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot5-inputs): Drop input labels.
(%boot-mesboot6-inputs): Inject former %boot-mesboot5-inputs for incremental
progress on input label removal.

Change-Id: I66962d7f2fcbe2c8b433ebf9afe45374b6b49142
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:20:54 +02:00
Nicolas Graves 85cbe9ff8b gnu: tar-mesboot: Drop input labels.
* gnu/packages/commencement.scm (tar-mesboot)[native-inputs]:
Drop input labels.

Change-Id: I24b0e027cb2b62e35ba4a5da71e98a26c97678ff
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:20:52 +02:00
Nicolas Graves da57655d99 gnu: tar: Improve style.
* gnu/packages/base.scm (tar)[arguments]: Improve style, use
G-expressions and search-input-file.

Change-Id: I20408f1acc845d947e7e49aa9c1a01f77954d17f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:20:20 +02:00
Nicolas Graves 76635c116a gnu: grep-mesboot: Drop input labels.
* gnu/packages/commencement.scm (grep-mesboot)[native-inputs]:
Drop input labels.

Change-Id: Iceaae49931882bceb8057e603fa01880ecefca97
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:19:10 +02:00
Nicolas Graves fe52920ff2 gnu: coreutils-mesboot: Drop input labels.
* gnu/packages/commencement.scm (coreutils-mesboot)[native-inputs]:
Drop input labels.

Change-Id: If14af12b7ce2c2cb4f6a7f34babd1a5b4b0deb05
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:19:09 +02:00
Nicolas Graves 73518d088b gnu: gcc-mesboot-wrapper: Improve style.
* gnu/packages/commencement.scm (gcc-mesboot-wrapper)[native-inputs]:
Drop input labels.

Change-Id: I56a645fe1404f1e0f3eb885bf045ec0ae398bc18
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:19:09 +02:00
Nicolas Graves 1601b63d74 gnu: %boot-mesboot4-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot4-inputs): Drop input labels.
(gcc-mesboot): Adapt accordingly.
(%boot-mesboot5-inputs): Inject former %boot-mesboot4-inputs for incremental
progress on input label removal.

Change-Id: I93d4a18996ef1f3c0ff5c2dc13f2bed4b75a5e18
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:19:09 +02:00
Nicolas Graves ee796c94da gnu: gcc-mesboot: Improve style.
* gnu/packages/commencement.scm (gcc-mesboot)
[native-inputs]: Drop input labels.
[arguments]: Improve style, use G-expressions.
<#:phases>: Use search-input-file instead of labels, improve style
too.

Change-Id: I1c64f46f24b52d919745304ff1e64015340d4f0b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:19:07 +02:00
Nicolas Graves ecc9d6e393 gnu: gcc-mesboot1-wrapper: Improve style.
* gnu/packages/commencement.scm (gcc-mesboot1-wrapper)
[native-inputs]: Drop input labels.
[arguments]: Improve style, use G-expressions.
<#:phases>: Use search-input-file instead of labels.  Rewrite phase
'check.

Change-Id: Ie5eef4ec99903cf95992fc7fb4bc0d3f948435bd
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:18:45 +02:00
Nicolas Graves 1b2e301ad9 gnu: %boot-mesboot3-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot3-inputs): Drop input labels.
(glibc-headers-mesboot, glibc-mesboot)[native-inputs]: Adapt
accordingly.
(%boot-mesboot4-inputs): Inject former %boot-mesboot3-inputs for incremental
progress on input label removal.

Change-Id: Iddaadea67e56aa373a64ba52b1812ec450e30415
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:18:44 +02:00
Nicolas Graves 0749348e9a gnu: glibc-mesboot: Improve style.
* gnu/packages/commencement.scm (glibc-mesboot)
[native-inputs]: Drop input labels.
[arguments]<#:make-flags, #:phases>: Improve style, use G-expressions
and search-input-file.

Change-Id: I981447b416bfb7ef313b41ec8f4647e1614e56e2
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:18:43 +02:00
Nicolas Graves eb504359c7 gnu: glibc-headers-mesboot: Improve style.
* gnu/packages/commencement.scm (glibc-headers-mesboot)
[native-inputs]: Drop input labels.
[arguments]<#:configure-flags, #:phases>: Improve style, use
G-expressions and search-input-file, rewrite phase 'remove-sunrpc.

Change-Id: I9062160a259d11a7c73041d8585f0b0c9f23c53b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 96a3900127 gnu: %boot-mesboot2-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot2-inputs): Drop input labels.
(%boot-mesboot3-inputs): Inject former %boot-mesboot2-inputs for incremental
progress on input label removal.

Change-Id: I338bc8e8f729b12c17ad5519b7fcb8c4715f9c22
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 26b8e85a12 gnu: gawk-mesboot: Improve style.
* gnu/packages/commencement.scm (gawk-mesboot)[arguments]: Improve
style, use G-expressions.

Change-Id: I335853c99644bf6ea79312c808df154ca0c35d6d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 1a7796a334 gnu: hello-mesboot: Improve style.
* gnu/packages/commencement.scm (hello-mesboot)[arguments]: Improve
style, use G-expressions.

Change-Id: Ia2770fb4cdd7b718e04a1d1643f65ea7af7708b9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 655b989c44 gnu: %boot-mesboot1-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot1-inputs): Drop input labels.
(%boot-mesboot2-inputs): Inject former %boot-mesboot1-inputs for incremental
progress on input label removal.

Change-Id: Ice3cb78f81147647a08f26dbc39883f4fc2db6e1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 5fb085a35a gnu: gcc-core-mesboot1: Improve style, drop input labels.
* gnu/packages/commencement.scm
(unpack-and-symlink-other-tarballs-phase): New variable.
(gcc-core-mesboot1)[inputs]: Drop input labels.
[arguments]<#:make-flags, #:configure-flags>: Use G-expressions.
<#:phases>: Replace phase 'unpack-gmp&co by injected phase
unpack-and-symlink-other-tarballs-phase.  In phase 'setenv, rewrite
input locations to make drop labels.
(gcc-mesboot1)[native-inputs]: Drop input labels.
[arguments]<#:configure-flags>: Adapt accordingly.
<#:phases>: Replace phase 'unpack-g++ by phase 'relocate-gcc-g++,
unpacking is not necessary anymore since the above introduced phases
are inherited.
<#:modules>: Adapt accordingly.
(gcc-mesboot)[arguments]<#:phases>: Rename removed phase accordingly.

Change-Id: Id49ea3a22872bcda8cd6e3f732fd7b4bf252c2c9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 8ab681e719 gnu: %boot-mesboot0-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot0-inputs): Drop input labels.
(%boot-mesboot1-inputs): Inject former %boot-mesboot0-inputs for incremental
progress on input label removal.

Change-Id: I19696ce5de6b5745c028ed3764184e62229c947b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves e01cd762c6 gnu: gnu-make-mesboot: Improve style.
* gnu/packages/commencement.scm (gnu-make-mesboot)[arguments]: Improve
style, use G-expressions.

Change-Id: Ibfa1658e641be2bfb36b40c2f88c0194bceda470
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:58 +02:00
Nicolas Graves 6a73e41b81 gnu: binutils-mesboot1: Improve style.
* gnu/packages/commencement.scm (binutils-mesboot1)[arguments]
<#:configure-flags>: Improve style.

Change-Id: I29c3d223f8e49fe0c98b2f537e6c6a84289c75e6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:57 +02:00
Nicolas Graves 18062a4710 gnu: %boot-mesboot-core-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-mesboot-core-inputs): Drop input labels.
(glibc-mesboot0, gcc-mesboot0)[native-inputs]: Drop input-labels.
(%boot-mesboot0-inputs): Inject former %boot-mesboot-core-inputs for
incremental progress on input label removal.

Change-Id: I5428eaeb85cf82de3b9fd2fc46bd1075babc0ad3
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:57 +02:00
Nicolas Graves 1afe21e4ae gnu: gcc-mesboot0: Improve style.
* gnu/packages/commencement.scm (gcc-mesboot0)[arguments]
<#:phases>: Improve style, use G-expressions and search-input-file.

Change-Id: I9d0985041fe5fbaef176c3cc5e6ff986d60e446b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:57 +02:00
Nicolas Graves e639999ba7 gnu: glibc-mesboot0: Improve style.
* gnu/packages/commencement.scm (glibc-mesboot0)[arguments]
<#:make-flags, #:configure-flags, #:phases>: Improve style, use
G-expressions and search-input-file.  In phase 'fixup-configure, drop
duplicate string substitution.

Change-Id: If2f08e5c776384d77182180ca8992fa67bf0a235
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:57 +02:00
Nicolas Graves ddfa1235b2 gnu: %boot-tcc-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-tcc-inputs): Drop input labels.
(gcc-core-mesboot0)[native-inputs]: Drop input-labels.
(mesboot-headers)[native-inputs]: Drop input-labels.
[arguments]<#:phases>: Adapt accordingly.
(%boot-mesboot-core-inputs): Inject former %boot-tcc-inputs for incremental
progress on input label removal.

Change-Id: Id59dade02948e3ebd27f0bab88b07a75b1f4aed6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:57 +02:00
Nicolas Graves 431298f758 gnu: gcc-core-mesboot0: Improve style.
* gnu/packages/commencement.scm (gcc-core-mesboot0)
[arguments]<#:configure-flags, #:make-flags, #:phases>: Improve style,
use G-expressions and search-input-file.

Change-Id: Idd664b69fc3633f27fc020cf1230d2d744a381ab
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:57 +02:00
Nicolas Graves 77d13c3a16 gnu: binutils-mesboot: Improve style.
* gnu/packages/commencement.scm (binutils-mesboot)[arguments]
<#:configure-flags>: Improve style, use search-input-file.

Change-Id: I2f711b5083ddfa61591a8ad761ef3b4409475cb6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves a17330a50b gnu: mesboot-headers: Improve style.
* gnu/packages/commencement.scm (mesboot-headers)[arguments]: Improve
style, use G-expressions.

Change-Id: I69c48b615b891e2b5811160495149b14c0d83c8f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves 26ac487220 gnu: %boot-tcc0-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-tcc0-inputs): Drop input labels.
(tcc-boot)[arguments]: Adapt accordingly.
(%boot-tcc-inputs): Inject former %boot-tcc0-inputs for incremental
progress on input label removal.

Change-Id: I83258683c1c86cb1a7787b8060acc8a3ff3bcf05
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves ff2eb538f3 gnu: gnu-make-mesboot0: Improve style.
* gnu/packages/commencement.scm (gnu-make-mesboot0)[arguments]:
Improve style, use G-expressions.

Change-Id: Id29cdd6b31e219f71a1f0fb3fa7cf3d03de27674
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves 01db7c7a12 gnu: %boot-gash-inputs: Drop input labels.
* gnu/packages/commencement.scm
(%boot-gash-inputs): Drop input labels.
(stage0-posix, mes-boot, tcc-boot, gzip-mesboot)
(gnu-make-mesboot0)[native-inputs]: Adapt accordingly.
(%boot-tcc0-inputs): Inject former %boot-gash-inputs for incremental
progress on input label removal.

Change-Id: I92dfd90f1d42d650e297c9610fc227d5fc10b76d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves bea5299175 gnu: tcc-boot0: Drop input labels.
* gnu/packages/commencement.scm (tcc-boot0)
[native-inputs]: Drop input labels.
[arguments]<#:modules, #:phases>: Adapt accordingly.

Change-Id: Ifca9fd2c2d0479dca4e8c7619ca9d3e74d898268
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves e8d0787042 gnu: mes-boot: Drop input labels.
* gnu/packages/commencement.scm (mes-boot)
[native-inputs]: Drop input labels.
[arguments]<#:modules, #:phases>: Adapt accordingly.

Change-Id: Ia0f578163fb5d54a0de707603fcbde102f01a8ba
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:56 +02:00
Nicolas Graves 4eefbf3079 gnu: stage0-posix: Drop input labels.
* gnu/packages/commencement.scm (stage0-posix)
[native-inputs]: Drop input labels.
[arguments]<#:builder>: Adapt accordingly.

Change-Id: I3ed5c9ab01584e495e294d1d60af656885da2a5a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves cfb55cf36b gnu: gash-utils-boot: Drop input labels.
* gnu/packages/commencement.scm (gash-utils-boot)
[inputs, native-inputs]: Drop input labels.
[arguments]<#:phases>: Adapt accordingly.

Change-Id: Idd656c2f0a9efafa5c2d177f63e53a71765c3a26
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves 8aa698ee7a gnu: gash-boot: Improve style.
Change-Id: Id9bfd47212c7c7c01bc36060ed29352b5063b752
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves f61274db0c gnu: patch/pinned: Drop it in favor of patch.
* gnu/packages/base.scm (patch/pinned): Drop package.
(patch)[inherit]: Drop inheritance.
[arguments]: Rewrite them without inheritance.
[native-inputs, synopsis, description, home-page, license]
[build-system]: Copy fields.

Change-Id: I01608f4df0fedef67de55b44a3b41dc378ebadf0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves 74445bfa5e gnu: perl-5.6: Improve style.
* gnu/packages/perl.scm (perl-5.6)[arguments]: Improve style.

Change-Id: Ie91888460704fed52564da1d476d6a0520ac469c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves 3ccf2a67ec gnu: perl-5.14: Improve style.
* gnu/packages/perl.scm (perl-5.14)[arguments]: Improve style.

Change-Id: I1f2a0afc0c960f0f489d55d84ad07e832f2e44cf
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves 569ee1b1c1 gnu: perl: Improve style.
* gnu/packages/perl.scm (perl)[arguments]: Improve style, use gexps.

Change-Id: I76978f7e72b27d0237dbee4cf08ef3be6e245c9c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:55 +02:00
Nicolas Graves 94565a7df0 gnu: bootstrap-packages: Drop input labels.
* gnu/packages/bootstrap.scm
(bootstrap-executable): Prefix the store file name with "bootstrap-".
(package-from-tarball, %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc)
[arguments]: Use gexps. Enforce a new standard to get the input from
its file name (rather than its label).
[inputs]: Improve style, drop label use.

Change-Id: I61dd30f2bffc86167f84c613b4aebe43bf3becbc
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:12:51 +02:00
Nicolas Goaziou 16c461c334 gnu: nuspell: Update to 5.1.7.
* gnu/packages/enchant.scm (nuspell): Update to  5.1.7.
[arguments]: Do not build man pages so the package doesn’t depend on Pandoc.

Change-Id: I8cd58f320403c740be75a379b7d9e1cf19e012f2
2026-03-30 22:09:14 +02:00
Nicolas Graves 88d75f99c3 gnu: ghc: More robust build with binutils ≥ 2.39.
Future versions of ghc will have more occurrences of the execstack
warning.  Instead of modifying the tests for each new version, a more
robust approach is to explicitely make ghc pass -Wl,-z,noexecstack to
its ld invocations during all tests.  This is what this patch does.

* gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch: New patches.
* gnu/local.mk (disp_path_DATA): Deregister patch.
* gnu/packages/haskell.scm (ghc-8.6, ghc-8.8, ghc-9.0, ghc-9.2,
ghc-9.4): Deregister patch use. Add phase 'fix-tests-with-binutils@2.39.

Change-Id: Ib174c017eef512eda9b4754178a927517c7f05a1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6651
2026-03-30 22:09:14 +02:00
Sergio Pastor Pérez e8de387e89 gnu: gcc: Add patch to remove references to store items.
* doc/guix-cookbook.texi: Update examples.
* gnu/packages/gcc.scm: Apply store mangling patch to GCC newer than version 13.
* gnu/packages/patches/gcc-mangle-guix-store.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* guix/build/gnu-build-system.scm (%standard-phases): Add
`set-GUIX_GCC_MANGLE_PREFIX_MAP' phase to enable store mangling behavior in
patched GCCs.

Fixes: #2394, #2846, #6644
Change-Id: Ifcc2907aaa4535dbc06491495e4c236e32afe555
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7101
2026-03-30 22:09:12 +02:00
Efraim Flashner 8fcb1ba3ca gnu: xz: Move documentation to separate output.
* gnu/packages/compression.scm (xz)[outputs]: Add doc output.
[properties]: Add synopsis for doc output.

Change-Id: Id780acafdd8aea9b1faeec2f92b46e8139f9de1f
2026-03-30 22:08:35 +02:00
Robin Templeton 1ba81294a0 gnu: git-minimal: Source gettext.sh from gettext-minimal.
* gnu/packages/version-control.scm (git-minimal): Patch git-sh-i18n.sh to
source the gettext.sh script from gettext-minimal, rather than searching $PATH
for it.

Change-Id: Iadecb078a704c4b1ec59074e9ddcf620dc754b78
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6042
2026-03-30 22:08:33 +02:00
Robin Templeton 63ec3ea6ba gnu: gettext-minimal: Patch programs paths.
* gnu/packages/gettext.scm (gettext-minimal): Substitute gettext program paths
in gettext.sh.

Change-Id: If762c626787f2a5a0600f27057f8c3771904970f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:08:20 +02:00
Nicolas Graves 1360ae9d1f gnu: bdb-5.3: Update autoconf.
* gnu/packages/dbm.scm (bdb-5.3)[arguments]<#:phases>: Fix phase
'bootstrap, by removing some edits that are rendered unecessary after
core updates.

Change-Id: If9f807f613bfaa68bdc7026245154ef7e7596d88
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6838
2026-03-30 22:08:19 +02:00
Nicolas Graves 3de79be30e gnu: bdb-6: Fix bootstrap phase.
* gnu/packages/dbm.scm (bdb-6)[arguments]<#:phases>: Fix phase
'bootstrap, by removing some edits that are rendered unecessary after
core updates.

Change-Id: I4a657f656cc69f87babb504e27c0da6e0adcba37
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:08:19 +02:00
Nicolas Graves ac87e13e8e gnu: gettext: Replace ncurses input by libtextstyle.
* gnu/packages/gettext.scm (gettext-minimal)
[inputs]: Replace ncurses by libtextstyle.
[arguments]<#:phases>: Refresh phase 'patch-tests.
(libtextstyle): Inherit version and source from gnu-gettext.
[arguments]: Improve style, migrate to G-expressions.

Change-Id: Ic0346983d5c5d26ac0c70fa713f61dfd47433689
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:08:19 +02:00
Yelninei 36127046cd gnu: gettext-minimal-0.21: Update to 0.23.1.
gnu/packages/gettext.scm (gettext-minimal-0.21): Rename to
gettext-minimal-0.23. Update to 0.23.1.
[#:make-flags]: Mark failing gnulib tests as XFAIL.

Change-Id: I53c7b691d6dad72f87437947e52db8f033a86857
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:08:16 +02:00
Yelninei 68a87db1b2 gnu: gettext-minimal: Update to 1.0.
* gnu/packages/gettext.scm (gettext-minimal): Update to 1.0.

Change-Id: Ice89c61432ca9da08fca69a6a82ecc698860a810
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-30 22:05:28 +02:00
Zhu Zihao d4f07f70c3 gnu: libunistring: Update to 1.4.1.
* gnu/packages/libunistring.scm (libunistring): Update to 1.4.1.

Change-Id: I20e26966bbaf3b902674048ed2dddff842b8a9d8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6574
2026-03-30 22:05:28 +02:00
Maxim Cournoyer bb1bdba4d1 gnu: xz: Update to 5.8.1.
* gnu/packages/compression.scm (xz): Update to 5.8.1.

Change-Id: I34bd64c5e18ea331e4bfe91d79dd419486296fe3
2026-03-30 22:05:28 +02:00
Maxim Cournoyer a206579e3b gnu: readline: Update to 8.3.
* gnu/packages/readline.scm (%patch-series-8.2): Rename to...
(%patch-series-8.3): ... this, and update.
(readline): Update to 8.3.  Adjust for the above.

Change-Id: I9109153748f65650e82f5fcf27e926b888476dd8
2026-03-30 22:05:27 +02:00
Maxim Cournoyer 9318fe39a1 gnu: bash: Update to 5.3.
* gnu/packages/bash.scm (patch-url): Update URL.
(%patch-series-5.2): Rename to...
(%patch-series-5.3): ... this, and update patch series.
(bash): Update to 5.3.  Adjust for the above accordingly.

Change-Id: Iac8ad192ba8246d500d995382fe46e4cd368eecc
2026-03-30 22:05:27 +02:00
Maxim Cournoyer a716d79072 gnu: ed: Update to 1.22.2.
* gnu/packages/text-editors.scm (ed): Update to 1.22.2.

Change-Id: Ib2a2fa6c5a5171337849f56edc609db1b506350b
2026-03-30 22:05:27 +02:00
Maxim Cournoyer f505ea1801 gnu: m4: Update to 1.4.20.
* gnu/packages/m4.scm (m4): Update to 1.4.20.

Change-Id: I8c1d352f8bb7142e196d301254e19c322a9c498a
2026-03-30 22:05:27 +02:00
Maxim Cournoyer a20b005d15 gnu: libtool: Update to 2.5.4.
* gnu/packages/autotools.scm (libtool): Update to 2.5.4.
[source]: Delete patches.
[#:phases] {skip-some-tests-on-extra-archs}: New phases.
* gnu/packages/patches/libtool-grep-compat.patch: Delete file.
* gnu/packages/patches/libtool-skip-tests2.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.

Change-Id: I6f16e7edd996c5b577acdbbd4905ec63d27b3655
2026-03-30 22:05:27 +02:00
Maxim Cournoyer 8fef6ff08b gnu: acl: Update to 2.3.2.
* gnu/packages/acl.scm (acl): Update to 2.3.2.

Change-Id: I379bc4428abbb951f5befa1d8da5fbac4dfbeeb8
2026-03-30 22:05:27 +02:00
Maxim Cournoyer 9cc22e2c08 gnu: gettext-minimal: Update to 0.26.
* gnu/packages/gettext.scm (gettext-minimal): Update to 0.26.

Change-Id: I7d594b6a89a7e12a5e0ed2da7875407800e33415
2026-03-30 22:05:27 +02:00
Maxim Cournoyer f03011ae47 gnu: help2man: Update to 1.49.3.
* gnu/packages/man.scm (help2man): Update to 1.49.3.

Change-Id: I9fc62620e89ca1f66b5ec402b19c639425ee5ecb
2026-03-30 22:05:27 +02:00
Maxim Cournoyer c1baeeeda4 gnu: autoconf: Update to 2.72.
* gnu/packages/autotools.scm (autoconf): Point to autoconf-2.72.
* gnu/packages/dbm.scm (bdb-4.8) [native-inputs]: Replace autoconf with
autoconf-2.69.

Change-Id: Ifa0fdd7bab21aa585e729f4e6ccf8ab15b0f73f3
2026-03-30 22:05:26 +02:00
Andy Tai 4c4c4a820f gnu: ncurses: Update to 6.6.20260103.
* gnu/packages/ncurses.scm (ncurses): Update to 6.6.20260103.
[arguments]<#:phases>: Remove 'apply-rollup-patch.

Change-Id: I239cbb25b7cca91fcc28f973c8e7598f5e1b51e8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5406
2026-03-30 22:05:26 +02:00
Janneke Nieuwenhuizen e25523df83 gnu: guile: Install -MAJOR.MINOR symlinks.
Fixes #4743.

* gnu/packages/guile.scm (guile-2.0)[arguments]: Unless building for MinGW,
add stage 'install-major.minor-symlinks.

Change-Id: Iaa119970a4b98d6c3e3834ccac14ef304b1e307f
2026-03-30 22:05:26 +02:00
Anderson Torres 0b19501611 gnu: bison: Use gexps.
* gnu/packages/bison.scm: Cleanup.
Prefix licenses with license:.
Reorder #:use-module directives asciibetically.
(bison)[arguments]: Use gexps.
[native-inputs, inputs, propagated-inputs]: Indent.

Change-Id: Ie179ca5b9ab0b47e9986bd31d82243bc56c40929
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4887
2026-03-30 22:05:22 +02:00
Nikita Mitasov 1545e057bc gnu: glibc: Add patch that fixes getconf PATH.
* gnu/packages/patches/glibc-fix-path-attribute-in-getconf.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (%glibc-patches): Use it.

Change-Id: If5544936b9c3aa658641969f6468fe41d5746e1a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #1219
2026-03-30 22:04:36 +02:00
687 changed files with 73324 additions and 186404 deletions
+3 -7
View File
@@ -42,12 +42,9 @@
;; For use with 'bug-reference-prog-mode'. Extra bug-reference
;; configuration should be done in your Emacs user configuration file;
;; refer to (info (guix) The Perfect Setup).
(eval . (setq-local bug-reference-bug-regexp
;; #8545 (issues), !8545 (PRs), guix/guix#8545 and
;; guix/guix!8545
(rx (group (seq (? "guix/guix") (or "#" "!"))
(group (one-or-more digit))))))
(bug-reference-url-format . "https://codeberg.org/guix/guix/issues/%s")
(bug-reference-bug-regexp
. "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)")
(bug-reference-url-format . "https://issues.guix.gnu.org/%s")
(eval . (add-to-list 'completion-ignored-extensions ".go"))
@@ -144,7 +141,6 @@
(eval . (put 'substitute* 'scheme-indent-function 1))
(eval . (put 'match-record 'scheme-indent-function 3))
(eval . (put 'match-record-lambda 'scheme-indent-function 2))
(eval . (put 'with-fluids 'scheme-indent-function 2))
;; TODO: Contribute these to Emacs' scheme-mode.
(eval . (put 'let-keywords 'scheme-indent-function 3))
+1 -7
View File
@@ -28,13 +28,7 @@ Tick a box by changing it from [ ] to [x].
- [ ] i586-gnu
- Package **update**
- Closure size increase.
```console
$ guix size PACKAGE | tail -n1 # before
total: ...
$ ./pre-inst-env guix size PACKAGE | tail -n1 # after
total: ...
```
- Closure size increase after update (`./pre-inst-env guix size PACKAGE`).
- Build status of direct dependents (`./pre-inst-env guix build -k -P1 PACKAGE ...`):
```text
-4
View File
@@ -16,8 +16,6 @@
( ;; primary: "D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F"
"01FD 85F4 1A7B 7F82 0583 06A5 935E BE07 36DC 857E"
(name "avp"))
("5D54 CF25 57B2 38E8 8DC1 80A2 2D22 3241 0AB7 4043"
(name "baleine"))
( ;; primary: "34FF 38BC D151 25A6 E340 A0B5 3453 2F9F AFCA 8B8E"
"A3A4 B419 0074 087C A7DE 5698 BC45 CA67 E2F8 D007"
(name "bavier"))
@@ -25,8 +23,6 @@
(name "cbaines"))
("3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5"
(name "civodul"))
("838A FE0D 55DC 074E 360F 943A 84B6 9CE6 F3F6 B767"
(name "cnx"))
("CCB8 1842 F9D7 058E CD67 377A BF5C DF4D F6BF 6682"
(name "csantosb"))
("510A 8628 E2A7 7678 8F8C 709C 4BC0 2592 5FF8 F4D3"
+7 -17
View File
@@ -32,7 +32,6 @@ gnu/packages/assembly\.scm @guix/build-tools
gnu/packages/autogen\.scm @guix/build-tools
gnu/packages/autotools\.scm @guix/build-tools
gnu/packages/bison\.scm @guix/build-tools
gnu/packages/compiler-tools\.scm @guix/build-tools
gnu/packages/m4\.scm @guix/build-tools
gnu/packages/oyacc\.scm @guix/build-tools
gnu/packages/re2c\.scm @guix/build-tools
@@ -69,7 +68,6 @@ guix/discovery\.scm @guix/core
guix/docker\.scm @guix/core
guix/download\.scm @guix/core
guix/elf\.scm @guix/core
guix/fossil-download\.scm @guix/core
guix/ftp-client\.scm @guix/core
guix/gexp\.scm @guix/core
guix/git-authenticate\.scm @guix/core
@@ -162,8 +160,6 @@ gnu/system/examples/bare-bones\.tmpl @guix/documentation
gnu/system/examples/lightweight-desktop\.tmpl @guix/documentation
gnu/system/examples/desktop\.tmpl @guix/documentation
gnu/packages/dotnet\.scm @guix/dotnet
gnu/packages/electronics\.scm @guix/electronics
gnu/packages/hdl\.scm @guix/electronics
gnu/packages/libftdi\.scm @guix/electronics
@@ -182,7 +178,6 @@ guix/scripts/import/elpa\.scm @guix/emacs
tests/import/elpa\.scm @guix/emacs
gnu/packages/bootloaders\.scm @guix/embedded
gnu/packages/coreboot\.scm @guix/embedded
gnu/packages/firmware\.scm @guix/embedded
gnu/packages/emulators\.scm @guix/games
@@ -244,7 +239,6 @@ tests/guix-home\.sh @guix/home
tests/home-import\.scm @guix/home
tests/home-services\.scm @guix/home
gnu/packages/fabric-management\.scm @guix/hpc
gnu/packages/mpi\.scm @guix/hpc
gnu/packages/oneapi\.scm @guix/hpc
gnu/packages/opencl\.scm @guix/hpc
@@ -267,7 +261,6 @@ gnu/installer(\.scm$|/) @guix/installer
gnu/packages/clojure\.scm @guix/java
gnu/packages/java(-.+|)\.scm$ @guix/java
gnu/packages/maven(-.+|)\.scm$ @guix/java
gnu/packages/netbeans\.scm @guix/java
guix/build/ant-build-system\.scm @guix/java
guix/build/clojure-build-system\.scm @guix/java
guix/build/clojure-utils\.scm @guix/java
@@ -278,7 +271,6 @@ guix/build-system/ant\.scm @guix/java
guix/build-system/clojure\.scm @guix/java
guix/build-system/maven\.scm @guix/java
gnu/packages/javascript\.scm @guix/javascript
gnu/packages/node-xyz\.scm @guix/javascript
gnu/packages/node\.scm @guix/javascript
guix/build-system/node\.scm @guix/javascript
@@ -292,12 +284,12 @@ guix/build-system/julia\.scm @guix/julia
gnu/packages/(kde)(-.+|)\.scm$ @guix/kde
gnu/build/linux-modules\.scm @guix/linux-libre
gnu/packages/aux-files/linux-libre.*$ @guix/linux-libre
gnu/packages/linux\.scm @guix/linux-libre
gnu/tests/linux-modules\.scm @guix/linux-libre
guix/build/linux-module-build-system\.scm @guix/linux-libre
guix/build-system/linux-module\.scm @guix/linux-libre
gnu/build/linux-modules\.scm @guix/kernel
gnu/packages/aux-files/linux-libre.*$ @guix/kernel
gnu/packages/linux\.scm @guix/kernel
gnu/tests/linux-modules\.scm @guix/kernel
guix/build/linux-module-build-system\.scm @guix/kernel
guix/build-system/linux-module\.scm @guix/kernel
gnu/packages/lisp(-.+|)\.scm$ @guix/lisp
guix/build/asdf-build-system\.scm @guix/lisp
@@ -324,7 +316,6 @@ gnu/packages/tor-browsers\.scm @guix/mozilla
gnu/packages/ocaml\.scm @guix/ocaml
gnu/packages/coq\.scm @guix/ocaml
gnu/packages/rocq\.scm @guix/ocaml
guix/build/ocaml-build-system\.scm @guix/ocaml
guix/build/dune-build-system\.scm @guix/ocaml
guix/build-system/ocaml\.scm @guix/ocaml
@@ -341,7 +332,6 @@ guix/build-system/rakudo\.scm @guix/perl
guix/import/cpan\.scm @guix/perl
guix/scripts/import/cpan\.scm @guix/perl
gnu/packages/aux-files/python/.*\.py$ @guix/python
gnu/packages/django\.scm @guix/python
gnu/packages/jupyter\.scm @guix/python
gnu/packages/python(-.+|)\.scm$ @guix/python
@@ -357,6 +347,7 @@ guix/scripts/import/pypi\.scm @guix/python
tests/import/pypi\.scm @guix/python
tests/toml\.scm @guix/python
gnu/ci\.scm @guix/qa-packages
gnu/packages/benchmark\.scm @guix/qa-packages
gnu/packages/check\.scm @guix/qa-packages
gnu/packages/ci\.scm @guix/qa-packages
@@ -493,7 +484,6 @@ gnu/services/version-control\.scm @guix/vcs
gnu/tests/version-control\.scm @guix/vcs
guix/build/bzr\.scm @guix/vcs
guix/build/cvs\.scm @guix/vcs
guix/build/fossil\.scm @guix/vcs
guix/build/git\.scm @guix/vcs
guix/build/hg\.scm @guix/vcs
guix/build/svn\.scm @guix/vcs
+11 -24
View File
@@ -104,7 +104,6 @@ MODULES = \
guix/discovery.scm \
guix/android-repo-download.scm \
guix/bzr-download.scm \
guix/fossil-download.scm \
guix/git-download.scm \
guix/hg-download.scm \
guix/hash.scm \
@@ -237,7 +236,6 @@ MODULES = \
guix/build/asdf-build-system.scm \
guix/build/bzr.scm \
guix/build/copy-build-system.scm \
guix/build/fossil.scm \
guix/build/git.scm \
guix/build/hg.scm \
guix/build/glib-or-gtk-build-system.scm \
@@ -457,8 +455,6 @@ AUX_FILES = \
gnu/packages/aux-files/findclass.php \
gnu/packages/aux-files/guix.vim \
gnu/packages/aux-files/guix-nvim.vim \
gnu/packages/aux-files/linux-libre/7.0-arm64.conf \
gnu/packages/aux-files/linux-libre/7.0-x86_64.conf \
gnu/packages/aux-files/linux-libre/6.19-arm64.conf \
gnu/packages/aux-files/linux-libre/6.19-i686.conf \
gnu/packages/aux-files/linux-libre/6.19-x86_64.conf \
@@ -488,7 +484,6 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/5.10-x86_64.conf \
gnu/packages/aux-files/ovmf/51-edk2-ovmf-2m-raw-x64-nosb.json \
gnu/packages/aux-files/pack-audit.c \
gnu/packages/aux-files/python/pytest_guix.py \
gnu/packages/aux-files/python/sanity-check.py \
gnu/packages/aux-files/python/sitecustomize.py \
gnu/packages/aux-files/renpy/renpy.in \
@@ -807,17 +802,17 @@ EXTRA_DIST += \
etc/manifests/upgrade.scm \
scripts/guix.in \
tests/cve-sample.json \
tests/keys/openpgp/civodul.pub \
tests/keys/openpgp/dsa.pub \
tests/keys/openpgp/ed25519-2.pub \
tests/keys/openpgp/ed25519-2.sec \
tests/keys/openpgp/ed25519-3.pub \
tests/keys/openpgp/ed25519-3.sec \
tests/keys/openpgp/ed25519.pub \
tests/keys/openpgp/ed25519.sec \
tests/keys/openpgp/rsa.pub \
tests/keys/openpgp/signing-key.pub \
tests/keys/openpgp/signing-key.sec \
tests/keys/civodul.pub \
tests/keys/dsa.pub \
tests/keys/ed25519-2.pub \
tests/keys/ed25519-2.sec \
tests/keys/ed25519-3.pub \
tests/keys/ed25519-3.sec \
tests/keys/ed25519.pub \
tests/keys/ed25519.sec \
tests/keys/rsa.pub \
tests/keys/signing-key.pub \
tests/keys/signing-key.sec \
tests/test.drv \
$(TESTS)
@@ -1281,14 +1276,6 @@ $(GIT_HOOKS_DIR):
$(GIT_HOOKS_DIR)/%: etc/git/% | $(GIT_HOOKS_DIR)/
if [ -n "$(GIT_HOOKS_DIR)" ]; then cp "$<" "$@"; fi
# Special-case the pre-push hook installation, to ensure it is always
# up-to-date with its source.
.PHONY: $(GIT_HOOKS_DIR)/pre-push
$(GIT_HOOKS_DIR)/pre-push: etc/git/pre-push | $(GIT_HOOKS_DIR)
@if [ -n "$(GIT_HOOKS_DIR)" ]; then \
cmp "--silent" "$<" "$@" || cp "$<" "$@"; \
fi
$(GIT_CONFIG_FILE): etc/git/gitconfig
if [ -n "$(GIT_CONFIG_FILE)" ]; then \
git config --fixed-value --replace-all include.path \
-5
View File
@@ -17,11 +17,6 @@ Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 1.6.0 (since 1.5.0)
** Distribution
*** GNOME updated to version 48
*** New service for Fossil SCM
*** TeX Live updated to 2026.1
** Programming interfaces
*** New (guix fossil-download) module, for fetching Fossil repositories
* Changes in 1.5.0 (since 1.4.0)
** Package management
+2 -3
View File
@@ -73,8 +73,8 @@ then
# Copy the keys so that the secret key has the right permissions (the
# daemon errors out when this is not the case.)
mkdir -p "$GUIX_CONFIGURATION_DIRECTORY"
cp "@abs_top_srcdir@/tests/keys/openpgp/signing-key.sec" \
"@abs_top_srcdir@/tests/keys/openpgp/signing-key.pub" \
cp "@abs_top_srcdir@/tests/keys/signing-key.sec" \
"@abs_top_srcdir@/tests/keys/signing-key.pub" \
"$GUIX_CONFIGURATION_DIRECTORY"
chmod 400 "$GUIX_CONFIGURATION_DIRECTORY/signing-key.sec"
fi
@@ -120,7 +120,6 @@ running 'guix-daemon $extra_options'" >&2
"@abs_top_builddir@/pre-inst-env" \
"@abs_top_builddir@/guix-daemon" \
$extra_options \
--allow-aslr \
--substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL" &
daemon_pid=$!
+23 -41
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2025 Florian Pelz <pelzflorian@pelzflorian.de>
@@ -324,31 +324,17 @@ actual file name."
((('span ('@ ('class "category")) ;raw Texinfo 6.8
(? string-or-entity?) ...) rest ...)
#t)
((('span ;Texinfo 6, post-processed
('@ ('class "symbol-definition-category"))
(? string-or-entity?) ...) rest ...)
#t)
((('span ;Texinfo 7
('@ ('class "category-def")) _ ...)
('span ('strong ('@ ('class "def-name")) _ ...)
_ ...)
rest ...)
((('span ('@ ('class "symbol-definition-category"))
(? string-or-entity?) ...) rest ...)
#t)
(x
#f))))
(define (definition-class? class)
;; Return true for "deffn def-line", "deftp def-line", etc.
(string-suffix? " def-line" class))
(let ((shtml (call-with-input-file file html->shtml)))
(let loop ((shtml shtml)
(anchors anchors))
(match shtml
((or ('dt ('@ ('id id) _ ...) rest ...) ;Texinfo 6
('dt ('@ ('class (? definition-class?)) ;Texinfo 7
('id id))
rest ...))
(('dt ('@ ('id id) _ ...) rest ...)
(if (and (string-prefix? "index-" id)
(worthy-entry? rest))
(alist-cons (anchor-id->key id)
@@ -519,16 +505,10 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(loop rest (cons str strings)))
((('*ENTITY* "additional" entity) . rest)
(loop rest (cons (entity->string entity) strings)))
((('*ENTITY* "additional-char" entity) . rest)
(loop rest (cons (string
(integer->char (string->number entity)))
strings)))
((('span _ lst ...) . rest) ;for <span class="roman">
(loop (append lst rest) strings))
((('var ('@ _) name) . rest) ;for @var{name} within @lisp
((('var name) . rest) ;for @var{name} within @lisp
(loop rest (cons name strings))) ;XXX: losing formatting
((('var name) . rest) ;likewise (Texinfo 6)
(loop rest (cons name strings)))
(something
(pk 'unsupported-code-snippet something)
(primitive-exit 1)))))
@@ -557,10 +537,7 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(link (@ (rel "stylesheet")
(type "text/css")
(href #$syntax-css-url)))))
((or ('pre ('@ ('class "lisp")) ;Texinfo 6
code-snippet ...)
('pre ('@ ('class "lisp-preformatted"))
code-snippet ...))
(('pre ('@ ('class "lisp")) code-snippet ...)
`(pre (@ (class "lisp"))
,@(highlights->sxml*
(pair-open/close
@@ -568,16 +545,14 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(concatenate-snippets code-snippet)))
anchors)))
;; For Texinfo 6: Replace the ugly <strong> used for @deffn
;; etc., which translate to <dt>, with more stylable
;; markup. No such post-processing is needed for @deffn
;; with Texinfo 7.
;; Replace the ugly <strong> used for @deffn etc., which
;; translate to <dt>, with more stylable markup.
(('dt ('@ ('id id)) ;raw Texinfo 6.8
('span ('@ ('class "category")) category ...)
('span ('strong thing)
anchor))
(highlight-definition id category thing '()))
(('dt ('@ ('id id)) ;ditto
(('dt (@ ('id id))
('span ('@ ('class "category")) category ...)
('span ('strong thing)
(? space?) ('em args ...)
@@ -833,9 +808,16 @@ in SOURCE."
(match sxml
(('*TOP* decl body ...)
`(*TOP* ,decl ,@(map loop body)))
((or ('body ('@ _) elements ...)
('body elements ...))
`(body ,(navigation-bar
(('head elements ...)
;; Add reference to our own manual CSS, which provides
;; support for the language menu.
`(head ,@elements
(link (@ (rel "stylesheet")
(type "text/css")
(href #$manual-css-url)))))
(('body ('@ attributes ...) elements ...)
`(body (@ ,@attributes)
,(navigation-bar
;; TODO: Add "Contribute" menu, to report
;; errors, etc.
(list (menu-dropdown
@@ -970,12 +952,12 @@ makeinfo OPTIONS."
(mkdir-p (string-append #$output "/"
(normalize language)))
(setenv "LANGUAGE" language)
(apply invoke #$(file-append texinfo-7 "/bin/makeinfo")
(apply invoke #$(file-append texinfo "/bin/makeinfo")
"-o" (string-append #$output "/"
(normalize language)
"/html_node")
opts)
(apply invoke #$(file-append texinfo-7 "/bin/makeinfo")
(apply invoke #$(file-append texinfo "/bin/makeinfo")
"--no-split"
"-o"
(string-append #$output "/"
@@ -1427,7 +1409,7 @@ commit date (an integer)."
(string-append #+tar "/bin:"
#+xz "/bin:"
#+zstd "/bin:"
#+texinfo-7 "/bin"))
#+texinfo "/bin"))
(invoke "tar" "xf" #$(package-source guile))
(mkdir-p (string-append #$output "/en/html_node"))
@@ -1446,7 +1428,7 @@ commit date (an integer)."
(string-append #$output "/en/html_node")))))))))
(define %guile-manual-base-url
"https://doc.guix.gnu.org/guile/latest/en")
"https://www.gnu.org/software/guile/manual")
(define (for-all-languages index)
(map (lambda (language)
+7 -114
View File
@@ -618,33 +618,6 @@ enhance @code{scheme-mode} and Geiser. @xref{Introduction,,,
emacs-guix, Emacs-Guix Reference Manual}, to make sure you don't miss
out!
@unnumberedsubsubsec Submitting Pull Requests Following the AGit Workflow
@cindex AGit workflow, for pull requests (Emacs).
@url{https://codeberg.org/halvin/agitjo, Agitjo} is a helper to ease
AGit workflow based patch submission (@pxref{Submitting Patches}).
Install it with:
@example
guix install emacs-agitjo
@end example
Assuming your local checkout is on the branch containing the changes you
would like to submit for inclusion in the @code{master} branch, use
@command{M-x agitjo-push} then:
@itemize
@item
Set options like the title @option{-t} and the session identifier
@option{-s}.
@item
Invoke one of the push commands to execute a @command{git push} operation.
@end itemize
When creating a new pull request, a dedicated buffer will open for
drafting a description. The force-push option @option{-f} is enabled to
push changes to the existing pull request.
@unnumberedsubsubsec Taming Boilerplate with Templates
@cindex code snippets
@@ -733,7 +706,13 @@ Manual}). To set it up, enable it in the relevant modes:
When working from a Git checkout of Guix, setup is automatic:
@code{bug-reference} automatically detects that the project is hosted on
Codeberg and infers the issue and pull request URL from there.
Codeberg@footnote{
@c 'vc-git-repository-url' is used by
@c 'bug-reference-setup-from-vc-alist', which checks for one of these
@c names for the remote.
As of Emacs@tie{}30.2, auto-detection works if and
only if the Git remote is called @code{upstream} or @code{origin}.} and
infers the issue and pull request URL from there.
@node Guile Studio
@subsection Guile Studio
@@ -1688,9 +1667,6 @@ can be turned into a version string via @code{git-version}, for example
@code{rust-pipewire-0.8.0.fd3d8f7} and @code{rust-pubgrub-0.3.0.b70cf70}.
@end table
When contributing Rust packages, we should have all modifications to these
two modules, in the same commit as the package we are contributing.
To avoid merge conflicts with changes from multiple branches, these two modules
are maintained by the Rust team (@pxref{Teams}).
@@ -1720,68 +1696,6 @@ tree.
@xref{Packaging Rust Crates,,, guix-cookbook, GNU Guix Cookbook}, for
packaging workflow.
@subsubsection Commit messages
The commit message must have a general brief mention to entry changes
in @code{(gnu packages rust-crates)}. For changes in @code{(gnu packages
rust-sources)}, the commit message must explicitly mention all changes to the
packages.
Here are some examples for different situations:
@itemize
@item
Adding a new Rust package:
@example
gnu: Add catppuccin-whiskers.
* gnu/packages/rust-apps.scm (catppuccin-whiskers): New variable.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)
[catppuccin-whiskers]: New entry.
@end example
@item
Updating a simple package:
@example
gnu: watchexec: Update to 2.3.2.
* gnu/packages/rust-apps.scm (watchexec): Update to 2.3.2.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[watchexec]:
Update entry.
@end example
@item
Updating a package with sources:
@example
gnu: typst: Update to 0.14.0.
* gnu/packages/rust-apps.scm (typst): Update to 0.14.0.
[arguments]<#:rust>: Use rust-1.88.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[typst]: Update
entry.
[rust-syntect-5]: Rename to rust-syntect-5.2.
[rust-syntect-5.3]: New entry.
* gnu/packages/rust-sources.scm (rust-hypher-0.1): Update to 0.1.6.
(rust-syntect-5): Rename to rust-syntect-5.2.
[inputs]: Rename cargo-inputs rust-syntect-5 to rust-syntect-5.2.
(rust-syntect-5.3): New variable.
@end example
@end itemize
@subsubsection Resolving merge conflicts in Pull Requests
For Rust crates, the recommended way to solve merge conflicts is to drop all
changes to @code{gnu/packages/rust-crates.scm}, rebase onto the desired branch
and run the lockfile importer again, manually adding back all relevant snippets
(if any).
@xref{Common Workflow for Resolving Merge Conflicts on Existing Pull Requests,,, guix-cookbook, GNU Guix Cookbook} for
a suggested workflow on resolving merge conflicts.
@node Elm Packages
@subsection Elm Packages
@@ -2736,7 +2650,6 @@ applications settings page}, granting read/write access to the
@cindex decision making
@cindex consensus seeking
Every contribution to the project involves a form of decision making.
It is expected from all contributors, and even more so from committers,
to help build consensus and make decisions based on consensus. By using
consensus, we are committed to finding solutions that everyone can live
@@ -2751,26 +2664,6 @@ resolve the deadlock. To learn what consensus decision making means and
understand its finer details, you are encouraged to read
@url{https://www.seedsforchange.org.uk/consensus}.
Day-to-day decision making, for instance discussions about pull requests
(@pxref{Reviewing the Work of Others}), happens informally among
interested parties such as contributors and members of the relevant
teams (@pxref{Teams}).
@cindex GCD, Guix Consensus Documents
@cindex Guix Consensus Documents (GCD)
Decisions that are expected to have an impact on most contributors
and/or on the broader user community---e.g., changes to project-wide
policies, to core functionality, and so on---are made following the
@acronym{GCD, Guix Consensus Document} process. The process provides a
framework to formalize proposals and draw attention to them, to leave
time for interested parties to discuss them, and to collectively accept
or withdraw them based on input from participating team members. It is
defined in
@uref{https://consensus.guix.gnu.org/gcd/001-gcd-process.html,
GCD@tie{}001}. Past GCDs can be seen at
@uref{https://consensus.guix.gnu.org}, and discussions take place at
@uref{https://codeberg.org/guix/guix-consensus-documents}.
@node Commit Access
@section Commit Access
+25 -364
View File
@@ -146,8 +146,6 @@ Packaging Rust Crates
* Common Workflow for Rust Packaging::
* Cargo Workspaces and Development Snapshots::
* Using Rust Libraries in Other Build Systems::
* Common Workflow for Updating Existing Rust Packages::
* Common Workflow for Resolving Merge Conflicts on Existing Pull Requests::
System Configuration
@@ -646,11 +644,9 @@ This field contains a description of the source code origin. The
@enumerate
@item The method, here @code{url-fetch} to download via HTTP/FTP, but other methods
exist, such as @code{git-fetch} for Git repositories. @xref{origin
Reference,,, guix, GNU Guix Reference Manual}, for more info on the
available download methods.
exist, such as @code{git-fetch} for Git repositories.
@item The URI, which is typically some @code{https://} location for @code{url-fetch}. Here
the special @code{mirror://gnu} refers to a set of well known locations, all of
the special `mirror://gnu` refers to a set of well known locations, all of
which can be used by Guix to fetch the source, should some of them fail.
@item The @code{sha256} checksum of the requested file. This is essential to ensure
the source is not corrupted. Note that Guix works with base32 strings,
@@ -1118,8 +1114,7 @@ Let's discuss those fields in depth.
@subsubsection @code{git-fetch} method
Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes
a Git repository and a commit (@pxref{origin Reference,,, guix, GNU Guix
Reference Manual}). The commit can be any Git reference such as
a Git repository and a commit. The commit can be any Git reference such as
tags, so if the @code{version} is tagged, then it can be used directly. Sometimes
the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append
"v" version))}.
@@ -1165,7 +1160,7 @@ Snippets might need additional Guile modules which can be imported from the
There are 3 different input types. In short:
@table @code
@table @asis
@item native-inputs
Required for building but not runtime -- installing a package
through a substitute won't install these inputs.
@@ -1233,14 +1228,9 @@ It's advised to separate outputs only when you've shown it's worth it: if the
output size is significant (compare with @code{guix size}) or in case the package is
modular.
@xref{Packages with Multiple Outputs,,, guix, GNU Guix Reference
Manual}, for more info.
@subsubsection Build system arguments
The @code{arguments} is a keyword-value list used to configure the build
process; these arguments are passed to the @dfn{build system}
(@pxref{Build Systems,,, guix, GNU Guix Reference Manual}).
The @code{arguments} is a keyword-value list used to configure the build process.
The simplest argument @code{#:tests?} can be used to disable the test suite when
building the package. This is mostly useful when the package does not feature
@@ -1256,7 +1246,7 @@ following flags
"CC=gcc")
@end lisp
translate into:
translate into
@example
$ make CC=gcc prefix=/gnu/store/...-<out>
@@ -1276,9 +1266,7 @@ Similarly, it's possible to set the configure flags:
The @code{%build-inputs} variable is also generated in scope. It's an association
table that maps the input names to their store directories.
The @code{phases} keyword lists the sequential steps of the build
system. @xref{Build Phases,,, guix, GNU Guix Reference Manual}, for
details; in a nutshell,
The @code{phases} keyword lists the sequential steps of the build system. Typically
phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}. To know
more about those phases, you need to work out the appropriate build system
definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:
@@ -1288,7 +1276,9 @@ definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:
;; Standard build phases, as a list of symbol/procedure pairs.
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
(phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack
(phases separate-from-pid1
set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH
set-paths install-locale unpack
bootstrap
patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
@@ -1310,7 +1300,7 @@ Or from the REPL:
(add-to-load-path "/path/to/guix/checkout")
,use (guix build gnu-build-system)
(map car %standard-phases)
@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
@result{} (separate-from-pid1 set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
@end lisp
If you want to know more about what happens during those phases, consult the
@@ -1393,12 +1383,10 @@ Its return value is ignored.
@subsubsection Code staging
The astute reader may have noticed the hash-tilde and hash-dollar syntax in the
The astute reader may have noticed the quasi-quote and comma syntax in the
argument field. Indeed, the build code in the package declaration should not be
evaluated on the client side, but only when passed to the Guix daemon. This
mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}.
@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for info on the
this mechanism, which is called @dfn{g-expressions}.
@subsubsection Utility functions
@@ -1407,7 +1395,7 @@ equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: com
regular ``Unix-style'' installations.
Some like @code{chmod} are native to Guile.
@xref{File System,,, guile, Guile reference manual} for a complete list.
@xref{,,, guile, Guile reference manual} for a complete list.
Guix provides additional helper functions which prove especially handy in the
context of package management.
@@ -1541,9 +1529,9 @@ The recursive importer won't import packages for which Guix already has package
definitions, except for the very first.
Not all applications can be packaged this way, only those relying on a select
number of supported systems.
@xref{Invoking guix import,,, guix, GNU Guix Reference Manual} for
the full list of importers.
number of supported systems. Read about the full list of importers in
the guix import section of the manual
(@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual}).
@node Automatic update
@subsubsection Automatic update
@@ -1563,9 +1551,6 @@ well:
$ guix refresh hello --update
@end example
@xref{Invoking guix refresh,,, guix, GNU Guix Reference Manual}, for
more info.
@node Inheritance
@subsubsection Inheritance
@@ -1590,9 +1575,7 @@ noticed that a significant number of them have a @code{inherit} field:
All unspecified fields are inherited from the parent package. This is very
convenient to create alternative packages, for instance with different source,
version or compilation options. @xref{Defining Package Variants,,, guix,
GNU Guix Reference Manual}, for a discussion of inheritance and of other
ways to create package variants.
version or compilation options.
@node Getting help
@subsection Getting help
@@ -1633,8 +1616,7 @@ hopefully we will see your contributions soon!
@itemize
@item
@xref{Defining Packages,,, guix, GNU Guix Reference Manual}, for the
@code{package} reference in the manual.
The @uref{https://guix.gnu.org/manual/en/html_node/Defining-Packages.html, package reference in the manual}
@item
@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotrs hacking guide to GNU Guix}
@@ -1667,8 +1649,6 @@ $ guix shell rust rust:cargo cargo-audit cargo-license
* Common Workflow for Rust Packaging::
* Cargo Workspaces and Development Snapshots::
* Using Rust Libraries in Other Build Systems::
* Common Workflow for Updating Existing Rust Packages::
* Common Workflow for Resolving Merge Conflicts on Existing Pull Requests::
@end menu
@node Common Workflow for Rust Packaging
@@ -1727,15 +1707,6 @@ $ cargo audit
$ cargo license
@end example
@quotation Note
Before running @command{cargo generate-lockfile}, make sure you have checked
out the correct tag for the version you are packaging. This ensures that
@code{Cargo.toml} matches the file used in the packages's @code{source} field.
To make sure, you can obtain the exact source with @command{./pre-inst-env guix
build --source <package>} and only then run @command{cargo generate-lockfile} on
that source tree.
@end quotation
@command{cargo generate-lockfile} updates dependencies to compatible versions.
Applying it to all Rust applications helps reduce a great number of Rust
libraries we need to check later. Although sometimes libraries may fail to
@@ -2018,316 +1989,6 @@ method, one of the most popular choices for Traditional Chinese users.")
(license license:lgpl2.1+)))
@end lisp
@node Common Workflow for Updating Existing Rust Packages
@subsubsection Common Workflow for Updating Existing Rust Packages
For this example, we'll update @code{niri}. The package definition looks like
this initially:
@lisp
(define-public niri
(package
(name "niri")
(version "25.08")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/YaLTeR/niri")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"09nsxd211mly8r1ys2lq6ia4jxgb980h1axrbgw748r0knfbbj7n"))))
(build-system cargo-build-system)
...
@end lisp
We start by running the usual @command{guix refresh -u niri}.
The @command{-u} flag will update in place the version and hash for the
@code{niri} package.
The package definition will then look like this:
@lisp
(define-public niri
(package
(name "niri")
(version "25.11")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/YaLTeR/niri")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0752qm245wc2gak0jhp0fnr0rdj3z54m2h97k3cxbjym9pcn658n"))))
(build-system cargo-build-system)
...
@end lisp
This means the source field was updated successfully, thus we can now proceed to
get the updated source with @command{guix build --source niri} as follows:
@example shell
$ cp -r $(./pre-inst-env guix build --source niri) /tmp
$ cd /tmp/<hash>-niri-25.11-checkout/
@end example
@quotation Note
In this specific example, the source is a git checkout, thus a directory. If the
package source is a compressed archive, you would at this point extract it to a
directory to proceed.
@end quotation
Now, given that we have access to the @code{Cargo.toml} file, we can now run
the following inside the checkout:
@example shell
$ guix shell rust rust:cargo -- cargo generate-lockfile
$ guix shell rust rust:cargo -- cargo audit
$ guix shell rust rust:cargo -- cargo license
@end example
@quotation Note
Sometimes the package will require a more up-to-date version of rust, that is
not yet the default rust on guix. For these cases you can use:
@example shell
$ guix shell -e "(@ (gnu packages rust) rust-1.90)" \
-e '`(,(@ (gnu packages rust) rust-1.90) "cargo")'
@end example
@end quotation
The first command will ensure that all cargo dependencies are up to date
and semver compatible, while also providing some other benefits, as further
explained in @ref{Common Workflow for Rust Packaging}.
The following command will warn if there are any known vulnerabilities in the
crates being imported. The last one will output the license information of all
the dependent crates.
If everything looks good, we can now replace the contents of the @code{niri}
indentifier, located inside the @code{lookup-cargo-inputs} variable on the
bottom of the @file{gnu/packages/rust-crates.scm} module, with the newer updated
crates by running the importer on the lockfile as follows:
@example shell
$ guix import -i /path/to/gnu/packages/rust-crates.scm \
crate -f Cargo.lock niri
@end example
@quotation Note
For the purpose of contributing a package to Guix (@pxref{Contributing,,,
guix, GNU Guix Reference Manual}), there is no need to cleanup the leftover
crates as a result of the package update. This is tasked to the rust-team
(@pxref{Teams,,, guix, GNU Guix Reference Manual}) to periodically run a
convenient script in @code{etc/teams/rust} to cleanup unused crates from
@file{gnu/packages/rust-crates.scm}.
@end quotation
We then need to check whether the importer has placed some TODOs for us,
inside @file{gnu/packages/rust-crates.scm} (you can use @command{git diff --
gnu/packages/rust-crates.scm} for this purpose).
There are a few types of TODO messages that you might encounter during this
step, each type requiring you to perform a different action.
The first one we encounter in our example is:
@lisp
(define rust-libdisplay-info-sys-0.3.0
;; TODO REVIEW: Check bundled sources.
(crate-source "libdisplay-info-sys" "0.3.0"
"07xmkc2aqcdn6d58321y87rd3gzdr4nx3ncm1mmrr7w1p1ahsn96"))
@end lisp
This specific TODO message tells us that there is a high probability of
encountering bundled sources within a crate definition generated by the
importer.
We then check if there are any bundled sources within the
@code{rust-libdisplay-info-sys-0.3.0} crate. Since there are none (in our
example), we can simply remove the TODO line, and continue to the next TODO.
If there were any bundled sources inside the crate, we would have to patch
it with a snippet, in order to unbundle it. You can see some examples on
how to unbundle inside @file{gnu/packages/rust-crates.scm} (search for the
@code{#:snippet} keyword).
@quotation Note
If the unbundle is considered too difficult to be executed (e.g. the effort
needed to unbundle is unreasonable), the @code{TODO REVIEW} line should be
converted to a regular TODO comment explicitly stating the unbundle was not done
(e.g. @code{TODO: Unbundle rust-libdisplay-info-sys.}).
@end quotation
Continuing, another TODO message we encounter in this example is the following:
@lisp
(define rust-smithay-0.7.0.d743e1a
;; TODO REVIEW: Define standalone package if this is a workspace.
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/Smithay/smithay.git")
(commit "d743e1a317fa0f01d1c4cadd96d277a1ec7b59d9")))
(file-name (git-file-name "rust-smithay" "0.7.0.d743e1a"))
(sha256 (base32 "11327mhxxf844bs0v5bw1g9bzjssnzhidsissywy6kwng16x727v"))))
@end lisp
This specific TODO message tells us that there is a high probability of the
@code{rust-smithay-0.7.0.d743e1a} crate being a workspace.
After verifying that it is indeed a workspace, we now need to make it an
actual package in @file{gnu/packages/rust-sources.scm}, referencing it in the
crate-source definition (see @ref{Common Workflow for Rust Packaging} for more
details).
@quotation Note
You can verify if a crate is a workspace by cloning the crate repository (in
this case @code{https://github.com/Smithay/smithay.git}), checking out the
specific revision (in this case @command{git checkout d743e1a}), and looking
for @code{[workspace]} in its main @file{Cargo.toml} file. If it does not have a
TOML @code{[workspace]} section, then it is not a workspace.
@end quotation
After defining the separate source package for the workspace in
@file{gnu/packages/rust-sources.scm} (see @ref{Common Workflow for Rust
Packaging} for more details on how to do this), the crate definition for
@code{rust-smithay-0.7.0.d743e1a} would then become the following (notice we
also remove the TODO line):
@lisp
(define rust-smithay-0.7.0.d743e1a package:rust-smithay-0.7.0.d743e1a)
@end lisp
If @code{rust-smithay-0.7.0.d743e1a} was not a workspace, we would simply remove
the TODO line and move on.
We then try to build the package with @command{guix build niri}, and make sure
whether it builds successfully, which it does.
As a good practice, we can further check the output of the
@code{check-for-pregenerated-files} phase to ensure there are no extraneous
pregenerated files inside the crates. If there are any, it is important to
snippet them out, like these:
@lisp
(define rust-winapi-x86-64-pc-windows-gnu-0.4.0
(crate-source "winapi-x86_64-pc-windows-gnu" "0.4.0"
"0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"
#:snippet '(delete-file-recursively "lib")))
(define rust-flate2-1.1.4
(crate-source "flate2" "1.1.4"
"1a8a3pk2r2dxays4ikc47ygydhpd1dcxlgqdi3r9kiiq9rb4wnnw"
#:snippet '(for-each delete-file-recursively '("examples" "tests"))))
(define rust-flo-curves-0.3.1
(crate-source "flo_curves" "0.3.1"
"16x293dp8825jh465kgms4yyvl4960j26gh37h3skflq9zxpy8hw"
#:snippet '(for-each delete-file '("logo-small.png" "logo.png"))))
(define rust-interception-sys-0.1.3
(crate-source "interception-sys" "0.1.3"
"1lgwbml7gzq5a5rriy708w68gx6yiw9cdg7xy2c5vsrrck7pbs5b"
#:snippet '(for-each delete-file (find-files "." "\\.(dll|lib)$"))))
@end lisp
@node Common Workflow for Resolving Merge Conflicts on Existing Pull Requests
@subsubsection Common Workflow for Resolving Merge Conflicts on Existing Pull Requests
Whenever a Rust package change is merged into our target branch from a different
Pull Request, we often encounter many merge conflicts in @code{(gnu packages
rust-crates)} when rebasing the Pull Request on top of the target branch. Since
we should avoid modifying the rust-crates file manually (e.g. using the git
interface to solve merge conflicts), it is recommended (and often much faster)
to drop all changes to @code{(gnu packages rust-crates)} and run the lockfile
importer once again, manually adding back all the manual changes.
This workflow describes one of many ways to do the described procedure.
In this example we'll update the @code{codeberg-cli} package, which has produced
some merge conflicts in @file{gnu/packages/rust-crates.scm} when we tried a git
pull rebase.
Before starting, make sure we're not in a rebase environment, by aborting the
rebase we tried previously (the one which created the merge conflicts by git
pulling):
@example
$ git rebase --abort
@end example
@cindex git rebase --interactive
@cindex interactive rebase
To begin, we interactively rebase our PR branch by marking as
@code{edit} the commit we want to edit, which is the one containing the
@file{gnu/packages/rust-crates.scm} changes:
@example
# Change 1 to the number of relevant commits
$ git rebase -i HEAD~1
@end example
In our example, we would mark the @code{codeberg-cli} commit like so:
@example
edit 6ef4f1ad043 # gnu: codeberg-cli: Update to 0.5.4.
@end example
After that, we'll be in rebase mode, where we can restore the changes made to
@file{gnu/packages/rust-crates.scm}:
@quotation Note
Notice that we will lose all manual changes we have previously made to
@file{gnu/packages/rust-crates.scm} (e.g. snippets, deleting TODO comments,
if there were any). We'll need to manually add them back after we run the guix
lockfile importer once again, so make sure you have them saved somewhere, for
example in your PR link under the @code{Files changed} tab.
@end quotation
@example
$ git restore --source=HEAD~ gnu/packages/rust-crates.scm
@end example
Having restored the file, we can stage the changes, commit, finish the rebase
and pull rebase from the target branch:
@example
$ git add gnu/packages/rust-crates.scm
$ git commit --amend --no-edit
$ git rebase --continue
$ git pull <remote> <target branch>
@end example
We then proceed to run the guix lockfile importer:
@quotation Note
Remember to checkout the correct tag you're packaging in the package repository
checkout. Don't forget to run @code{cargo generate-lockfile} before running
the lockfile importer, see @ref{Common Workflow for Rust Packaging} for more
detailed steps on what to do before running the guix lockfile importer.
@end quotation
@example
$ guix import --insert=gnu/packages/rust-crates.scm \
crate --lockfile=/path/to/Cargo.lock codeberg-cli
@end example
Now is the time we manually add back the snippets and remove the relevant TODOs
we have already checked (if there are any).
After running the lockfile importer and checking if there are any changes to
manually add back, we can finally:
@example
$ git add gnu/packages/rust-crates.scm
# Our target commit is the last one:
$ git commit --amend --no-edit
@end example
We now have a non-conflicting tree, from which we can now update our PR with.
@c *********************************************************************
@node System Configuration
@@ -3274,8 +2935,8 @@ your Linode Summary section.) Now you can run the "install guix from
@example
sudo apt-get install gpg
wget https://codeberg.org/efraim.gpg -qO - | gpg --import -
wget https://guix.gnu.org/guix-install.sh
wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | gpg --import -
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh
guix pull
@@ -3454,7 +3115,7 @@ Now you can run the "install guix from @pxref{Binary Installation,,,
guix, GNU Guix}" steps:
@example
wget https://guix.gnu.org/guix-install.sh
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh
guix pull
@@ -4509,7 +4170,7 @@ network. Assuming your interface is named @samp{enp2s0}, the following
command can be used to do so:
@example sh
# nmcli con add type bridge-slave autoconnect yes ifname enp2s0 master br0
# nmcli con add type bridge-slave ifname enp2s0 master br0
@end example
@quotation Important
@@ -4545,8 +4206,8 @@ bridge interface, as the default is to deny all. Add the following to
your list of services to do so:
@example lisp
(extra-special-file "/etc/qemu/bridge.conf"
(plain-file "bridge.conf" "allow br0\n"))
(extra-special-file "/etc/qemu/host.conf"
(plain-file "host.conf" "allow br0\n"))
@end example
@subsection Invoking QEMU with the right command line options
@@ -4564,7 +4225,7 @@ machine making use of the bridge would cause networking issues.
@example sh
$ qemu-system-x86_64 [...] \
-device virtio-net-pci,netdev=user0,mac=XX:XX:XX:XX:XX:XX \
-netdev bridge,helper=/run/privileged/bin/qemu-bridge-helper,id=user0,br=br0 \
-netdev bridge,id=user0,br=br0 \
[...]
@end example
+193 -947
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -6,7 +6,7 @@
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
# Copyright © 2019 Timothy Sample <samplet@ngyro.com>
# Copyright © 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
#
# This file is part of GNU Guix.
@@ -30,7 +30,7 @@ COOKBOOK_LANGUAGES = de es fr it ko pt_BR ru sk sv ta zh_CN
# Arg1: A list of languages codes.
# Arg2: The file name stem.
lang_to_texinfo = $(foreach lang,$(1),$(srcdir)/%D%/$(2).$(lang).texi)
lang_to_texinfo = $(foreach lang,$(1),%D%/$(2).$(lang).texi)
# Automake does not understand GNU Make non-standard extensions,
# unfortunately, so we cannot use the above patsubst-based function here.
@@ -104,7 +104,7 @@ MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
# reference is not translated, which means it references a section that does not
# exist.
define xref_command
$(top_builddir)/pre-inst-env $(GUILE) --no-auto-compile \
$(top_srcdir)/pre-inst-env $(GUILE) --no-auto-compile \
"$(top_srcdir)/build-aux/convert-xref.scm" \
$@.tmp $<
endef
@@ -116,21 +116,21 @@ dummy_pot = $(shell mktemp --suffix=.pot)
$(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%.texi guix/build/po.go
-$(AM_V_PO4A)$(PO4A) --no-update \
--variable localized="$@.tmp" \
--variable master="$(srcdir)/%D%/guix.texi" \
--variable master="%D%/guix.texi" \
--variable po="$<" \
--variable pot=$(dummy_pot) \
$(srcdir)/po/doc/po4a.cfg
po/doc/po4a.cfg
-sed -i "s|guix\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp"
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
-mv "$@.tmp" "$@"
$(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po guix/build/po.go
-$(AM_V_PO4A)$(PO4A) --no-update \
--variable localized="$@.tmp" \
--variable master="$(srcdir)/%D%/guix-cookbook.texi" \
--variable po="$<" \
-$(AM_V_PO4A)$(PO4A) --no-update \
--variable localized="$@.tmp" \
--variable master="%D%/guix-cookbook.texi" \
--variable po="$<" \
--variable pot=$(dummy_pot) \
$(srcdir)/po/doc/po4a.cfg
po/doc/po4a.cfg
-sed -i "s|guix-cookbook\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp"
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
-mv "$@.tmp" "$@"
@@ -138,16 +138,16 @@ $(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po guix/build/po.go
$(srcdir)/%D%/contributing.%.texi: po/doc/guix-manual.%.po guix/build/po.go
-$(AM_V_PO4A)$(PO4A) --no-update \
--variable localized="$@.tmp" \
--variable master="$(srcdir)/%D%/contributing.texi" \
--variable master="%D%/contributing.texi" \
--variable po="$<" \
--variable pot=$(dummy_pot) \
$(srcdir)/po/doc/po4a.cfg
po/doc/po4a.cfg
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
-mv "$@.tmp" "$@"
%D%/os-config-%.texi: gnu/system/examples/%.tmpl
$(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
sed -e s,@,@@,g "$<" > "$@"
cp "$<" "$@"
infoimagedir = $(infodir)/images
dist_infoimage_DATA = \
+5 -6
View File
@@ -1,4 +1,5 @@
#!/bin/sh
# From Gerrit Code Review 3.11.1.
#
# Part of Gerrit Code Review (https://www.gerritcodereview.com/)
#
@@ -69,9 +70,9 @@ dest="$1.tmp.${random}"
trap 'rm -f "$dest" "$dest-2"' EXIT
if ! sed -e '/>8/q' "$1" | git stripspace --strip-comments > "${dest}" ; then
echo "cannot strip comments from $1"
exit 1
if ! cat "$1" | sed -e '/>8/q' | git stripspace --strip-comments > "${dest}" ; then
echo "cannot strip comments from $1"
exit 1
fi
if test ! -s "${dest}" ; then
@@ -90,7 +91,7 @@ else
pattern=".*"
fi
if git interpret-trailers --no-divider --parse < "$1" | grep -q "^$token: $pattern$" ; then
if git interpret-trailers --parse < "$1" | grep -q "^$token: $pattern$" ; then
exit 0
fi
@@ -98,7 +99,6 @@ fi
# sentinel at the end to make sure there is one.
# Avoid the --in-place option which only appeared in Git 2.8
if ! git interpret-trailers \
--no-divider \
--trailer "Signed-off-by: SENTINEL" < "$1" > "$dest-2" ; then
echo "cannot insert Signed-off-by sentinel line in $1"
exit 1
@@ -110,7 +110,6 @@ fi
# Avoid the --in-place option which only appeared in Git 2.8
# Avoid the --where option which only appeared in Git 2.15
if ! git -c trailer.where=before interpret-trailers \
--no-divider \
--trailer "Signed-off-by: $token: $value" < "$dest-2" |
sed -e "s/^Signed-off-by: \($token: \)/\1/" \
-e "/^Signed-off-by: SENTINEL/d" > "$dest" ; then
+2 -2
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
;;;
@@ -61,7 +61,7 @@ TARGET."
;; from the other package sets.
(fold delete %base-packages
(append (map specification->package
'("kbd" "iproute2" "iw" "wireless-tools"))
'("e2fsprogs" "kbd" "iproute2" "iw" "wireless-tools"))
%base-packages-linux)))
(define %system-packages
+399 -2125
View File
File diff suppressed because it is too large Load Diff
+14 -59
View File
@@ -16,7 +16,6 @@ exec $pre_inst_env_maybe guix repl -- "$0" "$@"
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2025-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2025 jgart <jgart@dismail.de>
;;; Copyright © 2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -514,7 +513,6 @@ of Rebar and Mix build systems and Hex.pm importer."
"gnu/packages/autogen.scm"
"gnu/packages/autotools.scm"
"gnu/packages/bison.scm"
"gnu/packages/compiler-tools.scm"
"gnu/packages/m4.scm"
"gnu/packages/oyacc.scm"
"gnu/packages/re2c.scm")))
@@ -567,7 +565,6 @@ challenges"))
"guix/docker.scm"
"guix/download.scm"
"guix/elf.scm"
"guix/fossil-download.scm"
"guix/ftp-client.scm"
"guix/gexp.scm"
"guix/git-authenticate.scm"
@@ -662,12 +659,6 @@ challenges"))
"gnu/system/examples/lightweight-desktop.tmpl"
"gnu/system/examples/desktop.tmpl")))
(define-team dotnet
(team 'dotnet
#:name ".NET"
#:description ".NET programming environment."
#:scope (list "gnu/packages/dotnet.scm")))
(define-team electronics
(team 'electronics
#:name "Electronics team"
@@ -698,7 +689,6 @@ ecosystem."
(team 'embedded
#:name "Embedded"
#:scope (list "gnu/packages/bootloaders.scm"
"gnu/packages/coreboot.scm"
"gnu/packages/firmware.scm")))
(define-team games
@@ -796,8 +786,7 @@ the haskell-build-system."
(team 'hpc
#:name "High-performance computing team"
#:description "High-performance computing (HPC) related packages."
#:scope (list "gnu/packages/fabric-management.scm"
"gnu/packages/mpi.scm"
#:scope (list "gnu/packages/mpi.scm"
"gnu/packages/oneapi.scm"
"gnu/packages/opencl.scm"
"gnu/packages/parallel.scm"
@@ -835,7 +824,6 @@ and the maven-build-system."
(make-regexp* "^gnu/packages/java(-.+|)\\.scm$")
;; Match maven.scm and maven-*.scm
(make-regexp* "^gnu/packages/maven(-.+|)\\.scm$")
"gnu/packages/netbeans.scm"
"guix/build/ant-build-system.scm"
"guix/build/clojure-build-system.scm"
"guix/build/clojure-utils.scm"
@@ -852,8 +840,7 @@ and the maven-build-system."
#:name "JavaScript team"
#:description
"JavaScript/Node.js packages, the node build system."
#:scope (list "gnu/packages/javascript.scm"
"gnu/packages/node-xyz.scm"
#:scope (list "gnu/packages/node-xyz.scm"
"gnu/packages/node.scm"
"guix/build-system/node.scm"
"guix/build/node-build-system.scm"
@@ -876,8 +863,8 @@ and the maven-build-system."
"The plasma desktop environment, and KDE Applications."
#:scope (list (make-regexp* "^gnu/packages/(kde)(-.+|)\\.scm$"))))
(define-team linux-libre
(team 'linux-libre
(define-team kernel
(team 'kernel
#:name "Linux-libre kernel team"
#:scope (list "gnu/build/linux-modules.scm"
(make-regexp* "^gnu/packages/aux-files/linux-libre.*$")
@@ -954,7 +941,6 @@ importer, and the ocaml-build-system."
#:scope
(list "gnu/packages/ocaml.scm"
"gnu/packages/coq.scm"
"gnu/packages/rocq.scm"
"guix/build/ocaml-build-system.scm"
"guix/build/dune-build-system.scm"
"guix/build-system/ocaml.scm"
@@ -984,8 +970,7 @@ perl-build-system as well as the rakudo-build-system."
#:description
"Python, Python packages, the \"pypi\" importer, and the python-build-system."
#:scope
(list (make-regexp* "^gnu/packages/aux-files/python/.*\\.py$")
"gnu/packages/django.scm"
(list "gnu/packages/django.scm"
"gnu/packages/jupyter.scm"
(make-regexp* "^gnu/packages/python(-.+|)\\.scm$")
"gnu/packages/sphinx.scm"
@@ -1006,7 +991,8 @@ perl-build-system as well as the rakudo-build-system."
#:description
"Quality assurance software (CI/CD, testing, analysis;
no direct relation to Guix's QA)."
#:scope (list "gnu/packages/benchmark.scm"
#:scope (list "gnu/ci.scm"
"gnu/packages/benchmark.scm"
"gnu/packages/check.scm"
"gnu/packages/ci.scm"
"gnu/packages/code.scm"
@@ -1228,7 +1214,6 @@ the \"texlive\" importer."
"gnu/tests/version-control.scm"
"guix/build/bzr.scm"
"guix/build/cvs.scm"
"guix/build/fossil.scm"
"guix/build/git.scm"
"guix/build/hg.scm"
"guix/build/svn.scm")))
@@ -1249,11 +1234,6 @@ the \"texlive\" importer."
"guix/build-system/zig.scm")))
(define-member (person "Anderson Torres"
"anderson.torres.8519@gmail.com"
"AndersonTorres")
community translations)
(define-member (person "Eric Bavier"
"bavier@posteo.net"
"bavier")
@@ -1264,11 +1244,6 @@ the \"texlive\" importer."
"jonsger")
mozilla)
(define-member (person "Denis Carikli"
"GNUtoo@cyberdimension.org"
"GNUtoo")
embedded)
(define-member (person "Ludovic Courtès"
"ludo@gnu.org"
"civodul")
@@ -1298,7 +1273,7 @@ the \"texlive\" importer."
(define-member (person "Leo Famulari"
"leo@famulari.name"
"lfam")
linux-libre)
kernel)
(define-member (person "Efraim Flashner"
"efraim@flashner.co.il"
@@ -1383,7 +1358,7 @@ the \"texlive\" importer."
(define-member (person "Vagrant Cascadian"
"vagrant@debian.org"
"vagrantc")
debian embedded linux-libre)
debian embedded kernel)
(define-member (person "Vagrant Cascadian" ;XXX: duplicate
"vagrant@reproducible-builds.org"
@@ -1537,7 +1512,7 @@ the \"texlive\" importer."
(define-member (person "Rodion Goritskov"
"rodion@goritskov.com"
"rodion-goritskov")
games java kde linux-libre release)
games java kde kernel release)
(define-member (person "Jason Conroy"
"jconroy@tscripta.net"
@@ -1557,7 +1532,7 @@ the \"texlive\" importer."
(define-member (person "Danny Milosavljevic"
"dannym@friendly-machines.com"
"daym")
bootstrap dotnet hpc python rust science)
bootstrap hpc python rust science)
(define-member (person "Andy Tai"
"atai@atai.org"
@@ -1577,7 +1552,7 @@ the \"texlive\" importer."
(define-member (person "Nguyễn Gia Phong"
"cnx@loang.net"
"cnx")
build-tools lua qa-packages sysadmin vcs)
build-tools python qa-packages sysadmin vcs)
(define-member (person "Lilah Tascheter"
"lilah@lunabee.space"
@@ -1622,7 +1597,7 @@ the \"texlive\" importer."
(define-member (person "Wilko Meyer"
"w@wmeyer.eu"
"theesm")
linux-libre perl)
kernel perl)
(define-member (person "Untrusem"
"mysticmoksh@riseup.net"
@@ -1652,7 +1627,7 @@ the \"texlive\" importer."
(define-member (person "Thanos Apollo"
"public@thanosapollo.org"
"thanosapollo")
vcs emacs)
vcs)
(define-member (person "Ashish SHUKLA"
"ashish.is@lostca.se"
@@ -1674,26 +1649,6 @@ the \"texlive\" importer."
"tok")
electronics)
(define-member (person "gemmaro"
"gemmaro.dev@gmail.com"
"gemmaro")
ruby)
(define-member (person "bdunahu"
"bdunahu@operationnull.com"
"bdunahu")
games)
(define-member (person "Nomike"
"nomike@nomike.com"
"nomike")
dotnet)
(define-member (person "Fabio Natali"
"me@fabionatali.com"
"fnat")
emacs)
(define (find-team name)
(or (hash-ref %teams (string->symbol name))
-44
View File
@@ -1,44 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2026 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;; This manifest lists all MPI-related packages: useful for 'guix refresh',
;; 'guix build', etc.
(use-modules (guix)
(gnu packages fabric-management)
(gnu packages linux)
(gnu packages mpi)
(gnu packages parallel))
;; The packages below are what constitutes the MPI stack: helper libraries,
;; interconnect drivers, and MPI implementations.
(packages->manifest
(list cassini-headers
cxi-driver
hwloc
libcxi
libfabric
mpich
openmpi-5
openpmix
opensm
prrte
psm
psm2
rdma-core
ucx))
+24 -63
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env -S gawk -f
# GNU Guix --- Functional package management for GNU
# Copyright © 2025, 2026 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2025 Efraim Flashner <efraim@flashner.co.il>
#
# This file is part of GNU Guix.
#
@@ -21,22 +21,20 @@
# ./etc/teams/rust/audit-rust-crates ./path/to/file.scm
# Prints the output of cargo-audit to the shell.
# Make sure we have cargo-audit in our PATH
BEGIN {
"which cargo-audit" | getline cargoAudit
close("which cargo-audit")
cargoAudit = cargoAudit " audit --file -"
if (system("which cargo-audit 1> /dev/null"))
exit 1;
# Parse a record at a time.
RS = "\n\n"
cargoAudit = "cargo-audit audit --file -"
}
# Check the crate-source origin-only inputs, like in rust-crates.scm
# Check the crate-source origin-only inputs
/crate-source/ {
for(i=3; i <= NF-2; i++) {
if($i == "(crate-source") {
crateName = $(i+1)
crateVersion = $(i+2)
cargoLock = cargoLock "[[package]]\nname = " crateName "\nversion = " crateVersion "\n"
cargoLock = cargoLock "[[package]]\nname = " $(i+1) "\nversion = " $(i+2) "\n"
next
}
}
@@ -46,64 +44,27 @@ BEGIN {
/crate-uri/ {
for(i=3; i <= NF; i++) {
if($i == "(version")
crateVersion = $(i+1)
crateVersion = $(i+1)
if($i == "(crate-uri")
crateName = $(i+1)
crateName = $(i+1)
}
gsub(/)/, "", crateVersion)
cargoLock = cargoLock "[[package]]\nname = " crateName "\nversion = " crateVersion "\n"
next
}
# Parse the crates created from packages using 'cargo package'
/package:rust/ {
pkg = $2
split(pkg, name_version, "-")
crateVersion = name_version[length(name_version)]
crateName = substr(pkg, 6, (length(pkg) - length(crateVersion) - 6))
split(crateVersion, versionDots, ".")
if(crateVersion && (crateVersion != "(git-version") && (length(versionDots) == 3) && crateName) {
cargoLock = cargoLock "[[package]]\nname = \"" crateName "\"\nversion = \"" crateVersion "\"\n"
} else {
untested++
#print("Unable to test " $0)
}
next
}
# The xxxx-cargo-input variables have a set style
# TODO: Replace the last dash between the name and the version with a space!
# This doesn't take into account swapping between "-" and "_" so we skip it.
#( $2 ~ /-cargo-inputs/ ) {
# sub(/-cargo-inputs/, "", $2)
# gsub(/)/, "", $0)
# gsub(/rust-/, "", $0)
# #gensub(/([[:alpha:]])-([[:digit:]]+)/, "\\1 \\2", "g", $i)
# print "[[package]]\nname = \"" $2 "\"\nversion = \"1.0.0\"\ndependencies = ["
# for (i = 4; i <= NF; i++) {
# print "\"" $i "\","
# }
# print "]"
#}
# We make an attempt to create the crate name from the package name otherwise
/git-reference/ {
for(i=3; i <= NF; i++) {
if($i == "(version")
crateVersion = $(i+1)
if($i == "(name")
crateName = $(i+1)
if($i == "(git-file-name") {
crateName = $(i+1)
crateVersion = $(i+2)
}
}
gsub(/)/, "", crateVersion)
gsub(/)/, "", crateName)
sub(/rust-/, "", crateName)
# The crate version MUST be major.minor.patch
split(crateVersion, versionParts, ".")
if(crateVersion && (crateVersion != "(git-version") && (length(versionParts) == 3) && crateName) {
cargoLock = cargoLock "[[package]]\nname = " crateName "\nversion = " crateVersion "\n"
} else {
untested++
#print("Unable to test " $0)
}
next
}
# Note those which we were unable to parse
/define rust/ {
if($3 == "#f)")
next
print("Unable to parse " $0)
}
{ untested++ }
END { print("Number of crates untested: " untested); print cargoLock | cargoAudit }
END { print cargoLock | cargoAudit }
+1
View File
@@ -26,6 +26,7 @@
(define %sundry-texlive-packages
(list bibtool
dvisvgm
rubber
texmaker
texstudio
+3 -14
View File
@@ -404,10 +404,7 @@ when booting a root file system on a Btrfs subvolume."
(initrd (normalize-file (menu-entry-initrd entry)
device-mount-point
store-directory-prefix))
(extra-initrd (bootloader-configuration-extra-initrd config))
(luks-script-initrd
(and (pair? store-crypto-devices)
"newc:etc/luks_script:(proc)/luks_script")))
(extra-initrd (bootloader-configuration-extra-initrd config)))
;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
;; Use the right file names for LINUX and INITRD in case
;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
@@ -415,20 +412,14 @@ when booting a root file system on a Btrfs subvolume."
;; When STORE-DIRECTORY-PREFIX is defined, prepend it the linux and
;; initrd paths, to allow booting from a Btrfs subvolume.
;; When the store is on an encrypted device, inject GRUB's
;; (proc)/luks_script into the initrd as /etc/luks_script so the
;; initrd can use the already-decrypted master key to open LUKS
;; volumes without prompting for the password a second time.
#~(format port "menuentry ~s {
~a
linux ~a ~a
initrd ~a ~a ~a
initrd ~a ~a
}~%"
#$label
#$(grub-root-search device linux)
#$linux (string-join (list #$@arguments))
(or #$luks-script-initrd "")
(or #$extra-initrd "")
#$initrd)))
(multiboot-kernel
@@ -446,11 +437,9 @@ when booting a root file system on a Btrfs subvolume."
(modules (menu-entry-multiboot-modules entry)))
#~(format port "
menuentry ~s {
~a
multiboot ~a root=~a~a~a
}~%"
#$label
#$(grub-root-search device kernel)
#$kernel
#$(device-name->hurd-device-name device-name #:disk disk)
(string-join (list #$@arguments) " " 'prefix)
@@ -475,7 +464,7 @@ menuentry ~s {
;; Other type of devices aren't implemented.
#~()))
(let ((devices (map crypto-device->cryptomount store-crypto-devices))
(modules #~(format port "insmod procfs~%insmod luks~%insmod luks2~%")))
(modules #~(format port "insmod luks~%insmod luks2~%")))
(if (null? devices)
devices
(cons modules devices))))
+5 -12
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014-2018, 2020-2022, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@@ -1226,12 +1226,10 @@ file name or an nfs-root containing ':/')."
(match spec
((? string?)
(if (string-match "^/dev/[a-zA-Z0-9]+$" spec)
(if (string-prefix? "/dev/" spec)
;; Nothing to do, but wait until SPEC shows up.
(resolve device-exists? spec identity)
;; Do not resolve NFS / CIFS / tmpfs devices
;; or bcachefs multi-device specifications.
spec))
spec)) ; do not resolve NFS / CIFS / tmpfs devices
((? file-system-label?)
;; Resolve the label.
(resolve find-partition-by-label
@@ -1457,14 +1455,9 @@ corresponds to the symbols listed in FLAGS."
(raise c)))
((system-error? c)
(format (current-error-port)
"could not mount partition '~a': ~a~%"
"could not mount partition ~a: ~a~%"
(file-system-device fs)
(string-trim-both
(call-with-output-string
(lambda (port)
(print-exception port #f
(exception-kind c)
(exception-args c))))))
(exception-message c))
(unless (file-system-mount-may-fail? fs)
(raise c))))
(let* ((type (file-system-type fs))
+24 -90
View File
@@ -74,37 +74,16 @@ Return the value associated with OPTION, or #f on failure."
(loop (absolute target) (+ depth 1))
file))))))
(define* (make-hurd-device-nodes #:key (root "/") (hurd "/hurd"))
(define* (make-hurd-device-nodes #:optional (root "/"))
"Make some of the nodes needed on GNU/Hurd."
(define (scope dir)
(in-vicinity root dir))
(define scope-set-translator
(match-lambda
((file-name command)
(scope-set-translator (list file-name command #o600)))
((file-name command mode)
(let ((mount-point (scope file-name)))
(set-translator mount-point command mode)))))
(string-append root (if (string-suffix? "/" root) "" "/") dir))
(mkdir-p (scope "dev"))
;; XXX: We must have `/dev/console` otherwise `console-run` tries to
;; create it while the file-system is still read-only.
(for-each (lambda (file)
(call-with-output-file (scope file)
(lambda (port)
(display file port) ;avoid hard-linking
(chmod port #o666))))
'("dev/console"
;; XXX What about vcs?
;; Don't create /dev/null etc just yet; the store
;; messes-up the permission bits.
;; "dev/null"
;; "dev/zero"
;; "dev/full"
;; "dev/random"
;; "dev/urandom"
))
;; Don't create /dev/null etc just yet; the store
;; messes-up the permission bits.
;; Don't create /dev/console, /dev/vcs, etc.: they are created by
;; console-run on first boot.
(mkdir-p (scope "servers"))
(for-each (lambda (file)
@@ -122,47 +101,22 @@ Return the value associated with OPTION, or #f on failure."
"suspend"))
(mkdir-p (scope "servers/socket"))
(mkdir-p (scope "servers/bus/pci"))
;; Set the 'gnu.translator' extended attribute for passive translator
;; settings for pipes (servers/socet/1) and mount information (proc/mounts).
;; Pipes are needed for guile-3.0.11 to startup, this enables moving
;; "runsystem" to guile.
;; XXX TODO: Set more passive xattr translators?
(define servers
`(
;; ("servers/bus/pci" ("/hurd/pci-arbiter"))
;; ("servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
;; ("servers/crash-kill" ("/hurd/crash" "--kill"))
;; ("servers/crash-suspend" ("/hurd/crash" "--suspend"))
;; ("servers/password" ("/hurd/password"))
;; PIPE -- for running runsystem as Guile
("servers/socket/1" (,(in-vicinity hurd "pflocal")))
;; /servers/socket/2 and /26 are created by 'static-networking-service'.
;; XXX: Spawn pfinet without arguments on these nodes so that a DHCP
;; client has someone to talk to?
("proc" (,(in-vicinity hurd "procfs") "--stat-mode=444"))))
;; Don't create /servers/socket/1 & co: runsystem does that on first boot.
(for-each scope-set-translator servers)
(define devices
'())
(for-each scope-set-translator devices))
;; TODO: Set the 'gnu.translator' extended attribute for passive translator
;; settings?
(mkdir-p (scope "servers/bus/pci")))
(define (passive-translator-xattr? file-name)
"Return true if FILE-NAME has an extended @code{gnu.translator} attribute
set.
Note that reading \"gnu.*\" xattrs on Linux only work with ext4; for tmpfs,
used during image creation, linux-7.0 with linux-shmem-hurd-xattr patch is
needed."
(and (file-exists? file-name)
(catch 'system-error
(lambda _ (not (string-null? (getxattr file-name "gnu.translator"))))
(lambda args
(if (= ENODATA (system-error-errno args))
#f
(apply throw args))))))
set."
(catch 'system-error
(lambda _ (not (string-null? (getxattr file-name "gnu.translator"))))
(lambda args
(if (= ENODATA (system-error-errno args))
#f
(apply throw args)))))
(define (passive-translator-installed? file-name)
"Return true if @file{showtrans} finds a translator installed on FILE-NAME."
@@ -182,11 +136,7 @@ needed."
(passive-translator-installed? file-name)))
(define* (set-translator file-name command #:optional (mode #o600))
"Setup translator COMMAND on FILE-NAME.
Note that setting \"gnu.*\" xattrs on Linux only work with ext4; for tmpfs,
used during image creation, linux-7.0 with linux-shmem-hurd-xattr patch is
needed."
"Setup translator COMMAND on FILE-NAME."
(unless (translated? file-name)
(let ((dir (dirname file-name)))
(unless (directory-exists? dir)
@@ -218,7 +168,7 @@ needed."
"Make some of the device nodes needed on GNU/Hurd."
(define (scope dir)
(in-vicinity root dir))
(string-append root (if (string-suffix? "/" root) "" "/") dir))
(define scope-set-translator
(match-lambda
@@ -230,19 +180,8 @@ needed."
(define (mkdir* dir)
(let ((dir (scope dir)))
(unless (file-exists? dir)
(mkdir-p dir))))
;; (define random-seed "/var/lib/random-seed")
;; ;; Create seed file to avoid
;; ;; /gnu/store/...-hurd-x.y.z/hurd/random: Warning: Failed to read random seed file /var/lib/random-seed: No such file or directory
;; (let ((file (scope random-seed)))
;; (mkdir-p (dirname file))
;; (call-with-output-file file
;; (lambda (port)
;; (display (iota 1000) port)
;; (chmod port #o600))))
(unless (file-exists? dir)
(mkdir-p dir))))
(define servers
'(("servers/bus/pci" ("/hurd/pci-arbiter"))
@@ -259,14 +198,8 @@ needed."
(define devices
`(("dev/full" ("/hurd/null" "--full") #o666)
("dev/null" ("/hurd/null") #o666)
;; The random translators, especially /dev/urandom, need to be non-passive
;; When they exist in the file-system and reference /var/lib/random-seed
;; while / is read-only. console-run will hang.
;; ("dev/random" ("/hurd/random" "--seed-file" ,random-seed)
;; #o644)
;; ("dev/urandom" ("/hurd/random" "--seed-file" ,random-seed
;; "--fast")
;; #o644)
("dev/random" ("/hurd/random" "--seed-file" "/var/lib/random-seed")
#o644)
("dev/zero" ("/hurd/storeio" "--store-type=zero") #o666)
("dev/console" ("/hurd/term" "/dev/console" "device" "console"))
@@ -351,6 +284,7 @@ needed."
(rename-file (scope "dev/console") (scope "dev/console-")))
(for-each scope-set-translator devices)
(false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
(false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
(false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
(false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr")))
+1 -1
View File
@@ -322,7 +322,7 @@ register-closure."
;; Populate /dev.
(when make-device-nodes
(make-device-nodes #:root root))
(make-device-nodes root))
(when register-closures?
(unless copy-closures?
+3 -7
View File
@@ -445,14 +445,10 @@ load path must be adjusted as needed."
;; Behave like an init process: create a sub-process that calls
;; THUNK, and wait for child processes. Furthermore, forward
;; RELAYED-SIGNALS to the child process.
;; We presently use `safe-clone` here due to a bug in the interaction
;; between Guix and `primitive-fork` in Guile 3.0.11:
;; https://codeberg.org/guix/guix/issues/7690#issuecomment-12744123
(safe-clone
SIGCHLD
(lambda ()
(match (primitive-fork)
(0
(call-with-clean-exit thunk))
(lambda (pid)
(pid
(install-signal-handlers pid)
(let loop ()
(match (wait-child-process)
+1 -10
View File
@@ -173,16 +173,7 @@ SYSTEM."
(define (core-packages system)
"Return the 'core' package set suitable for SYSTEM, which might be a system
type or a GNU triplet."
(cond ((target-linux? system)
(append %core-packages
%linux-packages
(cond ((target-arm32? system)
(list linux-libre-arm-generic))
((target-aarch64? system)
(list linux-libre-arm64-generic))
((target-riscv64? system)
(list linux-libre-riscv64-generic))
(else '()))))
(cond ((target-linux? system) (append %core-packages %linux-packages))
((target-hurd? system) (append %core-packages %hurd-packages))
((target-mingw? system) %core-packages-for-mingw)
(else '())))
+10 -19
View File
@@ -81,10 +81,7 @@ entry will be expired even if it has been accessed recently.")
"Maximum time a cache entry for SSH keys is valid, in seconds.")
(extra-content
(raw-configuration-string "")
"Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}.")
(shepherd-requirement
(list-of-symbols '())
"List of services that should be started before this service."))
"Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}."))
(define (home-gpg-agent-configuration-file config)
"Return the @file{gpg-agent.conf} file for @var{config}."
@@ -107,7 +104,7 @@ entry will be expired even if it has been accessed recently.")
(define (home-gpg-agent-shepherd-services config)
"Return the possibly-empty list of Shepherd services for @var{config}."
(match-record config <home-gpg-agent-configuration>
(gnupg ssh-support? shepherd-requirement)
(gnupg ssh-support?)
;; 'gpg-agent' is started on demand by GnuPG's programs, but it has to be
;; started explicitly when OpenSSH support is enabled (info "(gnupg) Agent
;; Options").
@@ -122,21 +119,15 @@ entry will be expired even if it has been accessed recently.")
#:socket-directory-permissions #o700))))
(list (shepherd-service
(provision '(gpg-agent ssh-agent))
(requirement shepherd-requirement)
(modules '((shepherd support))) ;for '%user-runtime-dir'
(start
#~(lambda args
((make-systemd-constructor
(list #$(file-append gnupg "/bin/gpg-agent")
"--supervised" "--enable-ssh-support")
(list #$(endpoint "ssh" "S.gpg-agent.ssh")
#$(endpoint "browser" "S.gpg-agent.browser")
#$(endpoint "extra" "S.gpg-agent.extra")
;; #$(endpoint "scdaemon" "S.scdaemon")
#$(endpoint "std" "S.gpg-agent"))
;; Inherit graphical session environment.
#:environment-variables (environ))
args)))
(start #~(make-systemd-constructor
(list #$(file-append gnupg "/bin/gpg-agent")
"--supervised" "--enable-ssh-support")
(list #$(endpoint "ssh" "S.gpg-agent.ssh")
#$(endpoint "browser" "S.gpg-agent.browser")
#$(endpoint "extra" "S.gpg-agent.extra")
;; #$(endpoint "scdaemon" "S.scdaemon")
#$(endpoint "std" "S.gpg-agent"))))
(stop #~(make-systemd-destructor))
(documentation "Start 'gpg-agent', the GnuPG passphrase
agent, with support for handling OpenSSH material."))))
+3 -7
View File
@@ -19,7 +19,6 @@
(define-module (gnu home services niri)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (gnu home services desktop)
#:use-module (gnu packages bash)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
@@ -41,15 +40,14 @@
(define (home-niri-shepherd-service config)
"Return a shepherd service that runs Niri, a scrollable tiling Wayland
compositor. The service starts Niri with appropriate environment variables
set for a Wayland desktop session."
compositor. The service starts Niri in a DBus session with appropriate
environment variables set for a Wayland desktop session."
(list (shepherd-service
(documentation "Run Niri scrollable tiling Wayland compositor.")
(provision '(niri))
(requirement '(dbus))
(start #~(make-forkexec-constructor
(list #$(file-append bash "/bin/bash") "-l"
"-c" "exec niri --session")
"-c" "exec dbus-run-session niri --session")
#:environment-variables
(append (list #$@(niri-configuration-environment-variables config))
'("DESKTOP_SESSION=niri"
@@ -68,8 +66,6 @@ set for a Wayland desktop session."
(extensions
(list (service-extension home-shepherd-service-type
home-niri-shepherd-service)
(service-extension home-dbus-service-type
(const '()))
(service-extension home-profile-service-type
(lambda (config)
(list dbus
-68
View File
@@ -70,11 +70,6 @@
openssh-host-proxy-command
openssh-host-host-key-algorithms
openssh-host-accepted-key-types
openssh-host-control-master
openssh-host-control-file-name
openssh-host-control-persist
openssh-host-sent-environment-variables
openssh-host-environment-variables
openssh-host-extra-content
proxy-jump
proxy-jump-host-name
@@ -89,9 +84,6 @@
(define (serialize-field-name name)
(match name
('accepted-key-types "PubkeyAcceptedKeyTypes")
('sent-environment-variables "SendEnv")
('environment-variables "SetEnv")
('control-file-name "ControlPath")
(_
(let ((name (let ((str (symbol->string name)))
(if (string-suffix? "?" str)
@@ -138,14 +130,6 @@
(define-maybe string)
(define-maybe natural-number)
(define (serialize-symbol field value)
(if (maybe-value-set? value)
(string-append " " (serialize-field-name field) " "
(symbol->string value) "\n")
""))
(define-maybe symbol)
(define (serialize-raw-configuration-string field value)
(string-append value "\n"))
(define raw-configuration-string? string?)
@@ -158,33 +142,6 @@
(define-maybe string-list)
(define (env-list? lst)
(string-list? lst))
(define (serialize-env-list field lst)
(string-append " " (serialize-field-name field) " "
(string-join lst " ") "\n"))
(define-maybe env-list)
(define (string-alist? lst)
(and (list? lst)
(every (lambda (x)
(and (pair? x)
(string? (car x))
(string? (cdr x))))
lst)))
(define (serialize-string-alist field lst)
(string-append " " (serialize-field-name field) " "
(string-join
(map (match-lambda
((key . value)
(format #nil "~s" (string-append key "=" value))))
lst) " ") "\n"))
(define-maybe string-alist)
(define-record-type <proxy-command>
(proxy-command command)
proxy-command?
@@ -318,31 +275,6 @@ through before connecting to the server.")
(accepted-key-types
maybe-string-list
"The list of accepted user public key types.")
(control-master
maybe-symbol
"Enables the sharing of multiple sessions over a single network connection.
Acceptable values are @code{'no}, @code{'yes}, @code{'auto}, @code{'ask}, and
@code{'autoask}.")
(control-file-name
maybe-string
"The file name of the control socket used for connection sharing, or
@code{\"none\"} to disable connection sharing.")
(control-persist
maybe-string
"When used in conjunction with @env{control-master}, specifies that the
master connection should remain open in the background (waiting for future
client connections) after the initial client connection has been closed.")
(sent-environment-variables
maybe-env-list
"Specifies which variables from the local environment should be sent to the
server. The server must also support it, and the server must be configured to
accept those environment variables.")
(environment-variables
maybe-string-alist
"List of environment variables with corresponding values to send to the
server, as an alist of strings of the form @code{'(\"@var{variable}\"
. \"@var{value}\")}. The server must also support it, and the server must be
configured to accept those environment variables.")
(extra-content
(raw-configuration-string "")
"Extra content appended as-is to this @code{Host} block in
+47 -91
View File
@@ -56,8 +56,7 @@
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
# Copyright © 2022 ( <paren@disroot.org>
# Copyright © 2022, 2026 jgart <jgart@dismail.de>
# Copyright © 2022-2023, 2025-2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# Copyright © 2023-2026 Zheng Junjie <z572@z572.online>
# Copyright © 2023-2025 Zheng Junjie <z572@z572.online>
# Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
# Copyright © 2023 Andy Tai <atai@atai.org>
# Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
@@ -76,7 +75,7 @@
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
# Copyright © 2025 bdunahu <bdunahu@operationnull.com>
# Copyright © 2026 Simen Endsjø <contact@simendsjo.me>
# Copyright © 2025 Nikita Mitasov <me@ch4og.com>
#
# This file is part of GNU Guix.
#
@@ -209,7 +208,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cobol.scm \
%D%/packages/code.scm \
%D%/packages/commencement.scm \
%D%/packages/compiler-tools.scm \
%D%/packages/compression.scm \
%D%/packages/compton.scm \
%D%/packages/computer-architecture.scm \
@@ -219,7 +217,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/convmv.scm \
%D%/packages/codex.scm \
%D%/packages/coq.scm \
%D%/packages/coreboot.scm \
%D%/packages/cpio.scm \
%D%/packages/cpp.scm \
%D%/packages/cppi.scm \
@@ -236,7 +233,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/darwin.scm \
%D%/packages/data-language.scm \
%D%/packages/databases.scm \
%D%/packages/datalog.scm \
%D%/packages/datamash.scm \
%D%/packages/datastructures.scm \
%D%/packages/dav.scm \
@@ -344,7 +340,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/golang-check.scm \
%D%/packages/golang-compression.scm \
%D%/packages/golang-crypto.scm \
%D%/packages/golang-graphics.scm \
%D%/packages/golang-maths.scm \
%D%/packages/golang-vcs.scm \
%D%/packages/golang-web.scm \
@@ -429,7 +424,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/kde-utils.scm \
%D%/packages/kerberos.scm \
%D%/packages/kodi.scm \
%D%/packages/kubernetes.scm \
%D%/packages/language.scm \
%D%/packages/lc0.scm \
%D%/packages/lean.scm \
@@ -506,7 +500,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/myrddin.scm \
%D%/packages/ncdu.scm \
%D%/packages/ncurses.scm \
%D%/packages/netbeans.scm \
%D%/packages/netpbm.scm \
%D%/packages/nettle.scm \
%D%/packages/networking.scm \
@@ -615,7 +608,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/rocm-apps.scm \
%D%/packages/rocm-libs.scm \
%D%/packages/rocm-tools.scm \
%D%/packages/rocq.scm \
%D%/packages/rpc.scm \
%D%/packages/rpm.scm \
%D%/packages/rrdtool.scm \
@@ -733,6 +725,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/zig.scm \
%D%/packages/zig-xyz.scm \
%D%/packages/zile.scm \
%D%/packages/zwave.scm \
\
%D%/services.scm \
%D%/services/admin.scm \
@@ -745,8 +738,6 @@ GNU_SYSTEM_MODULES = \
%D%/services/cgit.scm \
%D%/services/ci.scm \
%D%/services/configuration.scm \
%D%/services/configuration/environment-variables.scm \
%D%/services/configuration/utils.scm \
%D%/services/containers.scm \
%D%/services/cuirass.scm \
%D%/services/cups.scm \
@@ -759,7 +750,6 @@ GNU_SYSTEM_MODULES = \
%D%/services/docker.scm \
%D%/services/authentication.scm \
%D%/services/file-sharing.scm \
%D%/services/firmware.scm \
%D%/services/games.scm \
%D%/services/ganeti.scm \
%D%/services/getmail.scm \
@@ -1004,9 +994,7 @@ dist_patch_DATA = \
%D%/packages/patches/akonadi-not-relocatable.patch \
%D%/packages/patches/akonadi-timestamps.patch \
%D%/packages/patches/alure-dumb-2.patch \
%D%/packages/patches/amd-smi-newer-libdrm.patch \
%D%/packages/patches/amd-smi-python.patch \
%D%/packages/patches/angband-remove-nonfree-tile-options.patch \
%D%/packages/patches/ibus-anthy-fix-tests.patch \
%D%/packages/patches/ibus-table-paths.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \
@@ -1023,7 +1011,6 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \
%D%/packages/patches/aubio-waflib-python312-compat.patch \
%D%/packages/patches/audacity-ffmpeg-fallback.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
%D%/packages/patches/audiofile-fix-sign-conversion.patch \
@@ -1048,7 +1035,6 @@ dist_patch_DATA = \
%D%/packages/patches/azr3.patch \
%D%/packages/patches/azr3-remove-lash.patch \
%D%/packages/patches/barony-fix-textures.patch \
%D%/packages/patches/bam-python3-compat.patch \
%D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bash-linux-pgrp-pipe.patch \
%D%/packages/patches/basis-universal-unbundle-libs.patch \
@@ -1078,6 +1064,7 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-2.41-fix-cross.patch \
%D%/packages/patches/binutils-reproducible-tar.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bmake-run-check-separately.patch \
%D%/packages/patches/boolector-find-googletest.patch \
@@ -1101,11 +1088,11 @@ dist_patch_DATA = \
%D%/packages/patches/catdoc-CVE-2017-11110.patch \
%D%/packages/patches/chez-irregex-import-cond-expand.patch \
%D%/packages/patches/chez-scheme-bin-sh.patch \
%D%/packages/patches/cianna-remove-error-for-missing-cuda.patch \
%D%/packages/patches/circos-remove-findbin.patch \
%D%/packages/patches/cdparanoia-fpic.patch \
%D%/packages/patches/cdrkit-libre-cross-compile.patch \
%D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \
%D%/packages/patches/ceph-fix-cmake.patch \
%D%/packages/patches/cf-tool-add-languages.patch \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/cl-ana-pr-49.patch \
@@ -1138,8 +1125,10 @@ dist_patch_DATA = \
%D%/packages/patches/clog-fix-shared-build.patch \
%D%/packages/patches/clucene-gcc-14.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/codex-acp-0.11.1-disable-code-mode.patch \
%D%/packages/patches/codex-acp-0.11.1-remove-patch-sections.patch \
%D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/codex-acp-0.9.2-remove-patch-sections.patch \
%D%/packages/patches/codex-acp-0.9.2-replace-result-flatten.patch \
%D%/packages/patches/codex-0.98.0-remove-patch-sections.patch \
%D%/packages/patches/cogl-fix-double-free.patch \
%D%/packages/patches/collada-dom-boost.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
@@ -1171,6 +1160,7 @@ dist_patch_DATA = \
%D%/packages/patches/cryfs-boost-1.89-fix.patch \
%D%/packages/patches/csvkit-set-locale-for-tests.patch \
%D%/packages/patches/ctranslate2-local-build.patch \
%D%/packages/patches/ctune-cmake-disable-git-clone.patch \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/cups-relax-root-ownership-check.patch \
%D%/packages/patches/cura-engine-gcc-14.patch \
@@ -1190,7 +1180,6 @@ dist_patch_DATA = \
%D%/packages/patches/date-output-pkg-config-files.patch \
%D%/packages/patches/dbacl-include-locale.h.patch \
%D%/packages/patches/dbacl-icheck-multiple-definitions.patch \
%D%/packages/patches/dblatex-importlib.patch \
%D%/packages/patches/dblatex-inkscape-1.0.patch \
%D%/packages/patches/dbus-helper-search-path.patch \
%D%/packages/patches/ddd-build.patch \
@@ -1244,7 +1233,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-treelib-remove-python2-compat.patch \
%D%/packages/patches/elm-offline-package-registry.patch \
%D%/packages/patches/elm-reactor-static-files.patch \
%D%/packages/patches/emacs-agent-shell-fix-tests.patch \
%D%/packages/patches/emacs-buttercup-1.38-native-comp-spy-on-trampoline-scope.patch \
%D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \
%D%/packages/patches/emacs-disable-jit-compilation.patch \
%D%/packages/patches/emacs-doc-toc-shell-commands.patch \
@@ -1301,7 +1290,6 @@ dist_patch_DATA = \
%D%/packages/patches/fbgemm-use-system-libraries.patch \
%D%/packages/patches/fbreader-curl-7.62.patch \
%D%/packages/patches/fbreader-fix-icon.patch \
%D%/packages/patches/fdroidcl-fix-tests.patch \
%D%/packages/patches/fenics-dolfin-algorithm.patch \
%D%/packages/patches/fenics-dolfin-demo-init.patch \
%D%/packages/patches/fenics-dolfin-boost.patch \
@@ -1332,6 +1320,7 @@ dist_patch_DATA = \
%D%/packages/patches/flatpak-fix-fonts-icons.patch \
%D%/packages/patches/flatpak-fix-icon-validation.patch \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/flex-fix-make-dependencies.patch \
%D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \
%D%/packages/patches/fluxbox-1.3.7-gcc.patch \
%D%/packages/patches/fmt-9-overspecified-tests.patch \
@@ -1368,8 +1357,16 @@ dist_patch_DATA = \
%D%/packages/patches/ganeti-disable-version-symlinks.patch \
%D%/packages/patches/ganeti-haskell-pythondir.patch \
%D%/packages/patches/ganeti-lens-compat.patch \
%D%/packages/patches/ganeti-openssh-test-fix.patch \
%D%/packages/patches/ganeti-pyyaml-compat.patch \
%D%/packages/patches/ganeti-procps-compat.patch \
%D%/packages/patches/ganeti-reorder-arbitrary-definitions.patch \
%D%/packages/patches/ganeti-relax-dependencies.patch \
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
%D%/packages/patches/ganeti-shepherd-support.patch \
%D%/packages/patches/ganeti-sphinx-import.patch \
%D%/packages/patches/ganeti-template-haskell-2.17.patch \
%D%/packages/patches/ganeti-template-haskell-2.18.patch \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
@@ -1381,6 +1378,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-fix-texi2pod.patch \
%D%/packages/patches/gcc-hurd-split-stack.patch \
%D%/packages/patches/gcc-libstdc++-newer-gcc.patch \
%D%/packages/patches/gcc-mangle-guix-store.patch \
%D%/packages/patches/gcc-4.8-libsanitizer-fix.patch \
%D%/packages/patches/gcc-4.9-inline.patch \
%D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \
@@ -1448,7 +1446,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-basement-fix-32-bit.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-testsuite-grep-compat.patch \
%D%/packages/patches/ghc-testsuite-recomp015-execstack.patch \
%D%/packages/patches/ghc-aeson-encodeDouble.patch \
%D%/packages/patches/ghc-basement-fix-32bit.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
@@ -1465,6 +1462,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/gimp-fix-metadata-editor.patch \
%D%/packages/patches/gimp-fix-tiff-load.patch \
%D%/packages/patches/git-clar-path-max.patch \
%D%/packages/patches/git-filter-repo-generate-doc.patch \
%D%/packages/patches/gklib-suitesparse.patch \
%D%/packages/patches/glib-appinfo-watch.patch \
@@ -1489,6 +1487,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-cross-objdump.patch \
%D%/packages/patches/glibc-dl-cache.patch \
%D%/packages/patches/glibc-guix-locpath.patch \
%D%/packages/patches/glibc-fix-path-attribute-in-getconf.patch \
%D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
%D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
@@ -1509,8 +1508,6 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \
%D%/packages/patches/glibc-supported-locales.patch \
%D%/packages/patches/glibc-versioned-locpath.patch \
%D%/packages/patches/glog-windows-h-nonwindows.patch \
%D%/packages/patches/glycin-sandbox-Adapt-bwrap-invocation.patch \
%D%/packages/patches/gmime-disable-tests.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
%D%/packages/patches/gmp-faulty-test.patch \
@@ -1585,9 +1582,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
%D%/packages/patches/gtk4-demo-reproducible.patch \
%D%/packages/patches/gtk4-needs-udmabuf.patch \
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
@@ -1618,6 +1613,7 @@ dist_patch_DATA = \
%D%/packages/patches/hurd-refcounts-assert.patch \
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
%D%/packages/patches/hurd-startup.patch \
%D%/packages/patches/hwloc-1-test-btrfs.patch \
%D%/packages/patches/hwloc-add-with-opencl.patch \
%D%/packages/patches/i3lock-blur-fix-build-on-gcc-10.patch \
%D%/packages/patches/i7z-gcc-10.patch \
@@ -1653,19 +1649,18 @@ dist_patch_DATA = \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/inetutils-drop-test.patch \
%D%/packages/patches/inferno-fix-crash.patch \
%D%/packages/patches/iniparser-remove-fetchcontent-usage.patch \
%D%/packages/patches/inkscape-libxml2.patch \
%D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/inetutils-hurd64.patch \
%D%/packages/patches/insight-toolkit-fix-build.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/ispell-for-linphone-cmake.patch \
%D%/packages/patches/jami-avutil-link.patch \
%D%/packages/patches/jami-libjami-cmake.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@@ -1677,7 +1672,6 @@ dist_patch_DATA = \
%D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-guava-remove-annotation-deps.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \
%D%/packages/patches/java-jtidy-remove-xerces-dependency.patch \
%D%/packages/patches/java-openjfx-build-jdk_version.patch \
%D%/packages/patches/java-powermock-fix-java-files.patch \
%D%/packages/patches/java-simple-xml-fix-tests.patch \
@@ -1686,14 +1680,13 @@ dist_patch_DATA = \
%D%/packages/patches/java-xerces-build_dont_unzip.patch \
%D%/packages/patches/java-xerces-xjavac_taskdef.patch \
%D%/packages/patches/jbr-17-xcursor-no-dynamic.patch \
%D%/packages/patches/jbr-25-wayland-drag-icon.patch \
%D%/packages/patches/jbr-25-wayland-intra-jvm-dnd.patch \
%D%/packages/patches/jdk-currency-time-bomb.patch \
%D%/packages/patches/jdk-currency-time-bomb2.patch \
%D%/packages/patches/jfsutils-add-sysmacros.patch \
%D%/packages/patches/jfsutils-gcc-compat.patch \
%D%/packages/patches/jfsutils-include-systypes.patch \
%D%/packages/patches/john-the-ripper-jumbo-with-gcc-11.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/jsonnet-include-cstdint-for-gcc-13-builds.patch \
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
@@ -1748,8 +1741,9 @@ dist_patch_DATA = \
%D%/packages/patches/kio-search-smbd-on-PATH.patch \
%D%/packages/patches/kismet-unbundle-boost.patch \
%D%/packages/patches/kissfft-tflite-micro.patch \
%D%/packages/patches/kitty-fix-wayland-protocols.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kmscon-8-runtime-keymap-switch.patch \
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
%D%/packages/patches/knot-remove-runtime-deps.patch \
%D%/packages/patches/kobodeluxe-paths.patch \
%D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \
@@ -1764,7 +1758,6 @@ dist_patch_DATA = \
%D%/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch\
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/laby-use-tmpdir-from-runtime.patch \
%D%/packages/patches/ldc-i686-int128-alignment.patch \
%D%/packages/patches/ldns-drill-examples.patch \
%D%/packages/patches/leela-zero-gtest.patch \
%D%/packages/patches/less-hurd-path-max.patch \
@@ -1818,6 +1811,7 @@ dist_patch_DATA = \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/libsepol-versioned-docbook.patch \
%D%/packages/patches/libskk-fix-invalid-escape.patch \
%D%/packages/patches/libsoup-auth-digest-fix-crash.patch \
%D%/packages/patches/libsoup-deadlock-in-add_listener_in_thread.patch \
%D%/packages/patches/libsoup-fix-merge-of-ranges.patch \
@@ -1834,8 +1828,6 @@ dist_patch_DATA = \
%D%/packages/patches/libtiff-CVE-2022-34526.patch \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.patch \
%D%/packages/patches/libtool-grep-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libtree-fix-check-non-x86.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \
@@ -1862,7 +1854,6 @@ dist_patch_DATA = \
%D%/packages/patches/linux-libre-arm64-mnt-reform-revert-vop2-display-modes.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/linux-pam-unix_chkpwd.patch \
%D%/packages/patches/linux-shmem-hurd-xattr.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-13-gcc-14.patch \
@@ -1881,10 +1872,10 @@ dist_patch_DATA = \
%D%/packages/patches/lua-5.4-pkgconfig.patch \
%D%/packages/patches/lua-5.4-liblua-so.patch \
%D%/packages/patches/lua-5.4-search-paths.patch \
%D%/packages/patches/lua-5.5-search-paths.patch \
%D%/packages/patches/lua-5.x-search-path-helpers.patch \
%D%/packages/patches/lua-lgi-fix-pango.patch \
%D%/packages/patches/lua-lgi-fix-ref.patch \
%D%/packages/patches/luanti-paths.patch \
%D%/packages/patches/lugaru-fix-sound.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lxc-no-static-bin.patch \
@@ -1943,6 +1934,7 @@ dist_patch_DATA = \
%D%/packages/patches/modglue-fix-build.patch \
%D%/packages/patches/modem-manager-fix-test-wrapper.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mono-1.2.6-bootstrap.patch \
%D%/packages/patches/mono-1.9.1-add-MONO_CREATE_IMAGE_VERSION.patch \
%D%/packages/patches/mono-1.9.1-fixes.patch \
@@ -1967,7 +1959,7 @@ dist_patch_DATA = \
%D%/packages/patches/mswebrtc-cmake.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/musl-CVE-2026-40200.patch \
%D%/packages/patches/musl-cross-locale.patch \
%D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch \
%D%/packages/patches/nanosvg-prusa-slicer.patch \
@@ -1978,12 +1970,6 @@ dist_patch_DATA = \
%D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netdde-build-fix.patch \
%D%/packages/patches/netdde-csum.patch \
%D%/packages/patches/java-apache-xml-commons-resolver-1.2-netbeans.patch \
%D%/packages/patches/java-simplevalidation-1.14.1.patch \
%D%/packages/patches/netbeans-25-nativeexecution-paths.patch \
%D%/packages/patches/netbeans-25-terminal-no-login-shell.patch \
%D%/packages/patches/netbeans-25-source-only-build.patch \
%D%/packages/patches/netbeans-25-wayland-font-rendering.patch \
%D%/packages/patches/netpbm-CVE-2017-2586.patch \
%D%/packages/patches/netpbm-CVE-2017-2587.patch \
%D%/packages/patches/netsurf-message-timestamp.patch \
@@ -1991,11 +1977,8 @@ dist_patch_DATA = \
%D%/packages/patches/netsurf-y2038-tests.patch \
%D%/packages/patches/netsurf-longer-test-timeout.patch \
%D%/packages/patches/nhc98-c-update.patch \
%D%/packages/patches/nheko-0-12-1-fix-rendering-replies.patch \
%D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nlohmann_json_fix_char8_t.patch \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/neovim-tree-sitter-grammar-path.patch \
%D%/packages/patches/network-manager-plugin-ownership.patch \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/newlib-getentropy.patch \
@@ -2010,13 +1993,10 @@ dist_patch_DATA = \
%D%/packages/patches/nss-3.115-disable-broken-tests.patch \
%D%/packages/patches/nss-3.115-disable-pkix-ocsp-tests.patch \
%D%/packages/patches/ntp-fix-dereferencing-the-wrong-variable.patch \
%D%/packages/patches/ntfs-3g-autoconf-sbin-helpers.patch \
%D%/packages/patches/ntfs-3g-consistent-sbindir-usage.patch \
%D%/packages/patches/nvi-add-function-prototypes.patch \
%D%/packages/patches/nvi-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
%D%/packages/patches/nvi-db4.patch \
%D%/packages/patches/obs-advanced-masks-nlohmann-json.patch \
%D%/packages/patches/obs-modules-location.patch \
%D%/packages/patches/ocaml-ctypes-test-oo.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \
@@ -2024,6 +2004,7 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-multiple-definitions.patch \
%D%/packages/patches/ogs-6.5.7-netcdfconverter.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/oneko-remove-nonfree-characters.patch \
%D%/packages/patches/onetbb-other-arches.patch \
@@ -2078,9 +2059,9 @@ dist_patch_DATA = \
%D%/packages/patches/openssl-3.0-c-rehash-in.patch \
%D%/packages/patches/openssl-hurd64.patch \
%D%/packages/patches/opentaxsolver-file-browser-fix.patch \
%D%/packages/patches/open-zwave-hidapi.patch \
%D%/packages/patches/opusfile-CVE-2022-47021.patch \
%D%/packages/patches/orbit2-fix-array-allocation-32bit.patch \
%D%/packages/patches/orca-fix-gst-init-check-call.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/ots-no-include-missing-file.patch \
%D%/packages/patches/owncloud-disable-updatecheck.patch \
@@ -2111,7 +2092,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-3.11-fix-tests.patch \
%D%/packages/patches/python-3.12-fix-tests.patch \
%D%/packages/patches/python-anyio-unuse-exceptiongroup-in-test.patch \
%D%/packages/patches/python-beangulp-click-8.2-compat.patch \
%D%/packages/patches/python-bed-reader-use-store-samples.patch \
%D%/packages/patches/python-chai-drop-python2.patch \
%D%/packages/patches/python-clarabel-blas.patch \
@@ -2129,25 +2109,20 @@ dist_patch_DATA = \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-pillow-use-zlib-1.3.patch \
%D%/packages/patches/python-pydocstyle-add-support-for-pep701.patch \
%D%/packages/patches/python-pynvim-fix-test-command-error.patch \
%D%/packages/patches/python-pypytools-python-3-fixes.patch \
%D%/packages/patches/python-pyreadstat-link-libiconv.patch \
%D%/packages/patches/python-sip-include-dirs.patch \
%D%/packages/patches/python-scikit-build-setuptools-compat.patch \
%D%/packages/patches/python-scikit-image-fix-python-pillow.patch \
%D%/packages/patches/python-sgmllib3k-assertions.patch \
%D%/packages/patches/python-sphobjinv-defer-ssl-import.patch \
%D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \
%D%/packages/patches/python-sshtunnel-pep518.patch \
%D%/packages/patches/python-zeroc-ice-3.6.5-python-3.11-support.patch \
%D%/packages/patches/python-zeroc-ice-3.6.5-python-3.12-support.patch \
%D%/packages/patches/python-zipfile2-python-3.12-support.patch \
%D%/packages/patches/qcodeeditor-qt6.patch \
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \
%D%/packages/patches/qtlocation-5.15.8-mapboxgl-gcc13.patch \
%D%/packages/patches/qtwebengine-revert-egl.patch \
%D%/packages/patches/qtwebengine5-python312-six-compat.patch \
%D%/packages/patches/quodlibet-disable-bundled-packages.patch \
%D%/packages/patches/qxlsx-fix-include-directory.patch \
%D%/packages/patches/schiffbruch-fix-build-for-gcc-13.patch \
@@ -2188,8 +2163,6 @@ dist_patch_DATA = \
%D%/packages/patches/perl-www-curl-remove-symbol.patch \
%D%/packages/patches/perl-xml-libxml-fix-function-prototypes.patch \
%D%/packages/patches/phoronix-test-suite-fsdg.patch \
%D%/packages/patches/php-01-fix-expired-certificate.patch \
%D%/packages/patches/php-02-fix-sni-tests.patch \
%D%/packages/patches/picprog-non-intel-support.patch \
%D%/packages/patches/pidgin-add-search-path.patch \
%D%/packages/patches/pinball-system-ltdl.patch \
@@ -2257,7 +2230,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pillow-CVE-2022-45199.patch \
%D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-lsp-server-python-3.13-compatibility.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mslice-matplotlib-3.6-compatibility.patch \
%D%/packages/patches/python-packaging-test-arch.patch \
@@ -2273,14 +2245,12 @@ dist_patch_DATA = \
%D%/packages/patches/python-pytorch-system-libraries.patch \
%D%/packages/patches/python-pytorch-without-kineto.patch \
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
%D%/packages/patches/python-py-ubjson-recursion-test.patch \
%D%/packages/patches/python-vaex-core-fix-tsl-use.patch \
%D%/packages/patches/python-vega-datasets-remove-la-riots-code.patch \
%D%/packages/patches/python-versioneer-guix-support.patch \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/qdigidoc-bundle-config-files.patch \
%D%/packages/patches/qdigidoc-bundle-tsl-files.patch \
%D%/packages/patches/qdigidoc-fix-icon.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \
%D%/packages/patches/qemu-fix-test-virtio-version.patch \
@@ -2295,6 +2265,8 @@ dist_patch_DATA = \
%D%/packages/patches/qtbase-5-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quickjs-ng-64-bits-precision-on-i686.patch \
%D%/packages/patches/quickjs-ng-fix-atomics.pause-on-32-bit.patch \
%D%/packages/patches/quilt-grep-compat.patch \
%D%/packages/patches/qmk-firmware-fix-hacker-dvorak.patch \
%D%/packages/patches/qtwayland-update-wayland-xml.patch \
@@ -2363,6 +2335,7 @@ dist_patch_DATA = \
%D%/packages/patches/rapidcheck-fix-libs.patch \
%D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/retroarch-unbundle-spirv-cross.patch \
%D%/packages/patches/rct-add-missing-headers.patch \
%D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/renpy-python-3.11-compat.patch \
%D%/packages/patches/renpy-fix-integer-slots.patch \
@@ -2372,6 +2345,7 @@ dist_patch_DATA = \
%D%/packages/patches/r-sapa-lapack.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/rtosc-0.3.1-fix-invalid-comparison-operator.patch \
%D%/packages/patches/racket-chez-scheme-bin-sh.patch \
%D%/packages/patches/racket-launcher-config-dir.patch \
@@ -2404,19 +2378,16 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-flores-fix-deprecations.patch \
%D%/packages/patches/ruby-latex-decode-fix-test.patch \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-pg-fix-connect-timeout.patch \
%D%/packages/patches/ruby-x25519-automatic-fallback-non-x86_64.patch \
%D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-1.70-fix-rustix-build.patch \
%D%/packages/patches/rust-1.78-unwinding-fix.patch \
%D%/packages/patches/rust-1.81-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-candle-0.9.1-add-candle-onnx-to-workspace.patch \
%D%/packages/patches/rust-codex-0.98.0-core-remove-self-dep.patch \
%D%/packages/patches/rust-codex-0.98.0-test-shebangs.patch \
%D%/packages/patches/rust-codex-0.117.0-core-remove-self-dep.patch \
%D%/packages/patches/rust-codex-0.120.0-remove-libwebrtc.patch \
%D%/packages/patches/rust-codex-0.120.0-test-timeout.patch \
%D%/packages/patches/rust-codex-0.124.0-code-mode-stub-toolname.patch \
%D%/packages/patches/rust-codex-0.124.0-remove-patch-sections.patch \
%D%/packages/patches/rust-librocksdb-sys-unbundled-sources.patch \
%D%/packages/patches/rust-codex-0.98.0-test-timeout.patch \
%D%/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch \
%D%/packages/patches/rust-ring-0.17-ring-core.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
@@ -2426,6 +2397,7 @@ dist_patch_DATA = \
%D%/packages/patches/sajson-build-with-gcc10.patch \
%D%/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch \
%D%/packages/patches/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-fix-arm64-shared-lib.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
%D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \
@@ -2451,10 +2423,10 @@ dist_patch_DATA = \
%D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/libsequoia-fix-ffi-Makefile.patch \
%D%/packages/patches/libsequoia-remove-store.patch \
%D%/packages/patches/shakespeare-spl-fix-grammar.patch \
%D%/packages/patches/shared-mime-info-xdgmime-path.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/showtime-python-3.11-compat.patch \
%D%/packages/patches/simpleitk-r-4.6.0.patch \
%D%/packages/patches/sipwitch-fix-build-with-exosip5.patch \
%D%/packages/patches/slim-config.patch \
%D%/packages/patches/slim-gcc-14.patch \
@@ -2489,7 +2461,6 @@ dist_patch_DATA = \
%D%/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch \
%D%/packages/patches/swift-llvm-5.7.3-linux.patch \
%D%/packages/patches/swig-support-gcc-12.patch \
%D%/packages/patches/swig-support-r-4.6.0.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \
@@ -2498,7 +2469,6 @@ dist_patch_DATA = \
%D%/packages/patches/t4k-common-libpng16.patch \
%D%/packages/patches/tao-add-missing-headers.patch \
%D%/packages/patches/tao-fix-parser-types.patch \
%D%/packages/patches/tao-synth-include-string-you-use.patch \
%D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.patch \
%D%/packages/patches/taskwarrior-link-taskchampion-cpp-with-sqlite3.patch \
@@ -2522,6 +2492,7 @@ dist_patch_DATA = \
%D%/packages/patches/texmacs-wayland-hidpi.patch \
%D%/packages/patches/tflite-micro_disable_download.patch \
%D%/packages/patches/thefuck-test-environ.patch \
%D%/packages/patches/thefuck-remove-broken-tests.patch \
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
%D%/packages/patches/timewarrior-time-sensitive-tests.patch \
%D%/packages/patches/tinydir-fix-cbehave-test.patch \
@@ -2537,7 +2508,6 @@ dist_patch_DATA = \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \
%D%/packages/patches/tuir-python-3.12-support.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/tvm_fix_cpptest_build.patch \
%D%/packages/patches/twinkle-bcg729.patch \
@@ -2547,11 +2517,10 @@ dist_patch_DATA = \
%D%/packages/patches/ultrastar-deluxe-no-freesans.patch \
%D%/packages/patches/unity-test-set-subdir-correctly.patch \
%D%/packages/patches/unity-test-support-int64.patch \
%D%/packages/patches/ungoogled-chromium-custom-compiler.patch \
%D%/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/ungoogled-chromium-unbundle-icu-target.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
%D%/packages/patches/unknown-horizons-python-3.9.patch \
%D%/packages/patches/unknown-horizons-python-3.10.patch \
@@ -2615,7 +2584,6 @@ dist_patch_DATA = \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch \
%D%/packages/patches/webrtc-audio-processing-x86-no-sse.patch \
%D%/packages/patches/websocketpp-boost-compat.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-dont-inline-draw-fire.patch \
@@ -2628,7 +2596,6 @@ dist_patch_DATA = \
%D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/x265-4-arm-flags.patch \
%D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\
%D%/packages/patches/xdmf-3.0.0-hdf5.patch \
%D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
%D%/packages/patches/xfig-Enable-error-message-for-missing-libraries.patch \
%D%/packages/patches/xfig-Fix-double-free-when-requesting-MediaBox.patch \
@@ -2654,17 +2621,6 @@ dist_patch_DATA = \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/ypsilon-Use-GNU-toolchain-as-default.patch \
%D%/packages/patches/zabbix-agent2-test-timezone-fix.patch \
%D%/packages/patches/zed-0.225.10-add-message-notification-action.patch \
%D%/packages/patches/zed-0.225.10-add-guix-container-support.patch \
%D%/packages/patches/zed-0.225.10-collapse-multiline-git-deps.patch \
%D%/packages/patches/zed-0.225.10-exclude-libwebrtc-from-audio.patch \
%D%/packages/patches/zed-0.225.10-disable-dlopen.patch \
%D%/packages/patches/zed-0.225.10-fix-sqlite-memory-mode.patch \
%D%/packages/patches/zed-0.225.10-fix-test-db-isolation.patch \
%D%/packages/patches/zed-0.225.10-fix-workspace-race.patch \
%D%/packages/patches/zed-0.225.10-keep-regular-file-workspaces.patch \
%D%/packages/patches/zed-0.225.10-remove-patch-crates-io.patch \
%D%/packages/patches/zed-0.225.10-use-mock-livekit-on-linux.patch \
%D%/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.9-fix-runpath.patch \
%D%/packages/patches/zig-0.9-riscv-support.patch \
+86 -205
View File
@@ -2,7 +2,6 @@
;;; Copyright © 2024 Roman Scherer <roman@burningswell.com>
;;; Copyright © 2025 Owen T. Heisler <writer@owenh.net>
;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2026 Maxim Cournoyer <maxim@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,7 +36,6 @@
#:use-module (gnu system)
#:use-module (guix base32)
#:use-module (guix colors)
#:use-module (guix deprecation)
#:use-module (guix derivations)
#:use-module (guix diagnostics)
#:use-module (guix gexp)
@@ -57,7 +55,6 @@
#:use-module (ice-9 string-fun)
#:use-module (ice-9 textual-ports)
#:use-module (json)
#:use-module ((rnrs base) #:select (assert))
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-34)
@@ -69,10 +66,8 @@
#:use-module (ssh session)
#:use-module (ssh sftp)
#:use-module (ssh shell)
#:export (%hetzner-os-arm ;deprecated
%hetzner-os-x86 ;deprecated
make-hetzner-os
#:export (%hetzner-os-arm
%hetzner-os-x86
deploy-hetzner
hetzner-configuration
hetzner-configuration-allow-downgrades?
@@ -87,7 +82,6 @@
hetzner-configuration-server-type
hetzner-configuration-ssh-key
hetzner-configuration-ssh-public-key
hetzner-configuration-user
hetzner-configuration?
hetzner-environment-type))
@@ -104,7 +98,7 @@
;; Operating system for arm servers using UEFI boot mode.
(define %hetzner-os-arm/efi
(define %hetzner-os-arm
(operating-system
(host-name "guix-arm")
(bootloader
@@ -134,9 +128,9 @@
;; Operating system for x86 servers using BIOS boot mode.
(define %hetzner-os-x86/bios
(define %hetzner-os-x86
(operating-system
(inherit %hetzner-os-arm/efi)
(inherit %hetzner-os-arm)
(host-name "guix-x86")
(bootloader
(bootloader-configuration
@@ -152,51 +146,6 @@
(type "ext4"))
%base-file-systems))))
(define %hetzner-os-x86/efi
(operating-system
(inherit %hetzner-os-arm/efi)
(host-name "guix-x86")
(initrd-modules
(cons "virtio_scsi" %base-initrd-modules))))
(define (server-type-name->arch type-name)
"Return a symbol corresponding to the server type architecture, e.g.
@code{'x86} or @code{'arm}."
(cond
((string-prefix-ci? "cax" type-name)
'arm)
(else
'x86)))
(define (server-type-name->bootloader type-name)
"Return a symbol corresponding to the bootloader type, e.g.
@code{'efi} or @code{'bios}."
(if (eq? 'arm (server-type-name->arch type-name))
'efi
(cond
((string-prefix-ci? "cx" type-name)
'bios) ;old, cost-optimized x86 servers
(else
'efi)))) ;newer, regular performance/general purpose servers
(define* (make-hetzner-os server-type-name)
"Return an operating server customized for SERVER-TYPE-NAME, a string like
\"cx23\" or \"cax11\", denoting the Hetzner virtual server type."
(match (server-type-name->arch server-type-name)
('arm %hetzner-os-arm/efi)
('x86
(match (server-type-name->bootloader server-type-name)
('bios %hetzner-os-x86/bios)
('efi %hetzner-os-x86/efi)))))
(define-deprecated %hetzner-os-x86
make-hetzner-os
%hetzner-os-x86/bios)
(define-deprecated %hetzner-os-arm
make-hetzner-os
%hetzner-os-arm/efi)
(define (operating-system-authorize os)
"Authorize the OS with the public signing key of the current machine."
(if (file-exists? %public-key-file)
@@ -242,11 +191,6 @@ Have you run 'guix archive --generate-key'?")
;;; Hetzner configuration.
;;;
;;; This parameter overrides the value returned by
;;; `hetzner-configuration-ssh-key'.
(define %hetzner-ssh-key-file
(make-parameter #f))
(define-record-type* <hetzner-configuration> hetzner-configuration
make-hetzner-configuration hetzner-configuration? this-hetzner-configuration
(allow-downgrades? hetzner-configuration-allow-downgrades? ; boolean
@@ -258,7 +202,7 @@ Have you run 'guix archive --generate-key'?")
(build-locally? hetzner-configuration-build-locally? ; boolean
(default #t))
(delete? hetzner-configuration-delete? ; boolean
(default #t))
(default #f))
(labels hetzner-configuration-labels ; list of strings
(default '()))
(location hetzner-configuration-location ; #f | string
@@ -269,39 +213,26 @@ Have you run 'guix archive --generate-key'?")
(default #t))
(ipv6 hetzner-configuration-ipv6 ; boolean | string
(default #t))
(ssh-public-key hetzner-configuration-ssh-public-key* ; #f | public-key | string
(ssh-public-key hetzner-configuration-ssh-public-key ; public-key | string
(thunked)
(default (and=> (hetzner-configuration-ssh-key
this-hetzner-configuration)
public-key-from-file))
(sanitize (lambda (value)
(if (string? value)
(public-key-from-file value)
value))))
(ssh-key hetzner-configuration-ssh-key* ; #f | string
(default #f))
(user hetzner-configuration-user ;string
(default "root")))
(default (public-key-from-file (hetzner-configuration-ssh-key this-hetzner-configuration)))
(sanitize
(lambda (value)
(if (string? value) (public-key-from-file value) value))))
(ssh-key hetzner-configuration-ssh-key
(default #f))) ; #f | string
(define (hetzner-configuration-ssh-key config)
(or (%hetzner-ssh-key-file)
(hetzner-configuration-ssh-key* config)))
(define (hetzner-configuration-ssh-public-key config)
(or (and=> (%hetzner-ssh-key-file) public-key-from-file)
(hetzner-configuration-ssh-public-key* config)))
(define (public-key->fingerprint public-key)
"Return the SSH public key fingerprint of PUBLIC-KEY, a Guile-SSH public key
object, in the expected format for the Hetzner API."
(let ((hash (get-public-key-hash public-key 'md5)))
(define (hetzner-configuration-ssh-key-fingerprint config)
"Return the SSH public key fingerprint of CONFIG as a string."
(and-let* ((pubkey (hetzner-configuration-ssh-public-key config))
(hash (get-public-key-hash pubkey 'md5)))
(bytevector->hex-string hash)))
(define (public-key->string-with-type public-key)
"Return the SSH public key string of PUBLIC-KEY, a Guile-SSH public key
object, in the expected format for the Hetzner API."
(format #f "ssh-~a ~a" (get-key-type public-key)
(public-key->string public-key)))
(define (hetzner-configuration-ssh-key-public config)
"Return the SSH public key of CONFIG as a string."
(let ((public-key (hetzner-configuration-ssh-public-key config)))
(format #f "ssh-~a ~a" (get-key-type public-key)
(public-key->string public-key))))
;;;
@@ -314,26 +245,21 @@ object, in the expected format for the Hetzner API."
;; Get the operating system WITHOUT the provenance service to avoid a
;; duplicate symlink conflict in the store.
(os ((@@ (gnu machine) %machine-operating-system) target)))
(match-record config <hetzner-configuration>
( authorize? allow-downgrades? build-locally? user)
(machine
(inherit target)
(operating-system
(if authorize?
(operating-system-authorize os)
os))
(environment managed-host-environment-type)
(configuration
(machine-ssh-configuration
(allow-downgrades? allow-downgrades?)
(authorize? authorize?)
(build-locally? build-locally?)
(host-name (hetzner-server-public-ipv4 server))
;; XXX: match-record doesn't make use of custom accessors to obtain
;; the value, so we can't bind SSH-KEY with it.
(identity (hetzner-configuration-ssh-key config))
(system (hetzner-server-system server))
(user user)))))))
(machine
(inherit target)
(operating-system
(if (hetzner-configuration-authorize? config)
(operating-system-authorize os)
os))
(environment managed-host-environment-type)
(configuration
(machine-ssh-configuration
(allow-downgrades? (hetzner-configuration-allow-downgrades? config))
(authorize? (hetzner-configuration-authorize? config))
(build-locally? (hetzner-configuration-build-locally? config))
(host-name (hetzner-server-public-ipv4 server))
(identity (hetzner-configuration-ssh-key config))
(system (hetzner-server-system server)))))))
(define (hetzner-machine-location machine)
"Find the location of MACHINE on the Hetzner API."
@@ -437,43 +363,45 @@ Available locations:~%~%~a~%~%For more details, see: ~a")
"Return the form to bootstrap an operating system on SERVER."
(let* ((os (machine-operating-system machine))
(system (hetzner-server-system server))
(type-name (hetzner-server-type-name (hetzner-server-type server)))
(arm? (equal? "arm" (hetzner-server-architecture server)))
(x86? (equal? "x86" (hetzner-server-architecture server)))
(efi? (equal? 'efi (server-type-name->bootloader type-name)))
(root-fs-type (operating-system-root-file-system-type os)))
`(operating-system
(host-name ,(operating-system-host-name os))
(timezone "Etc/UTC")
(bootloader (bootloader-configuration
(bootloader ,(if efi?
'grub-efi-bootloader
'grub-bootloader))
(targets ,(if efi?
'(list "/boot/efi")
'(list "/dev/sda")))
(terminal-outputs '(console))))
(bootloader ,(cond (arm? 'grub-efi-bootloader)
(x86? 'grub-bootloader)))
(targets ,(cond (arm? '(list "/boot/efi"))
(x86? '(list "/dev/sda"))))
(terminal-outputs '(console))))
(initrd-modules (append
,(cond (arm? '(list "sd_mod" "virtio_scsi"))
(x86? '(list "virtio_scsi")))
%base-initrd-modules))
(file-systems (cons* (file-system
(mount-point "/")
(device "/dev/sda1")
(type ,root-fs-type))
,@(if efi?
'((file-system
(mount-point "/boot/efi")
(device "/dev/sda15")
(type "vfat")))
'())
%base-file-systems))
(file-systems ,(cond
(arm? `(cons* (file-system
(mount-point "/")
(device "/dev/sda1")
(type ,root-fs-type))
(file-system
(mount-point "/boot/efi")
(device "/dev/sda15")
(type "vfat"))
%base-file-systems))
(x86? `(cons* (file-system
(mount-point "/")
(device "/dev/sda1")
(type ,root-fs-type))
%base-file-systems))))
(services
(cons* (service dhcpcd-service-type)
;; guix 1.4.0 does not have dhcpcd-service-type,
;; so we use dhcp-client-service-type here.
(cons* (service dhcp-client-service-type)
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
(permit-root-login 'prohibit-password)))
(openssh openssh-sans-x)
(permit-root-login 'prohibit-password)))
%base-services)))))
(define (rexec-verbose session cmd)
@@ -495,9 +423,8 @@ values: list of output lines returned by CMD and its exit code."
(define (hetzner-machine-ssh-key machine)
"Find the SSH key for MACHINE on the Hetzner API."
(and-let* ((config (machine-configuration machine))
(public-key (hetzner-configuration-ssh-public-key config))
(expected (public-key->fingerprint public-key)))
(let* ((config (machine-configuration machine))
(expected (hetzner-configuration-ssh-key-fingerprint config)))
(find (lambda (ssh-key)
(equal? expected (hetzner-ssh-key-fingerprint ssh-key)))
(hetzner-api-ssh-keys
@@ -510,12 +437,10 @@ values: list of output lines returned by CMD and its exit code."
(format #t "creating ssh key for '~a'...\n" name)
(let* ((config (machine-configuration machine))
(api (hetzner-configuration-api config))
(pubkey (hetzner-configuration-ssh-public-key config))
(_ (assert pubkey))
(ssh-key (hetzner-api-ssh-key-create
api
(public-key->fingerprint pubkey)
(public-key->string-with-type pubkey)
(hetzner-configuration-api config)
(hetzner-configuration-ssh-key-fingerprint config)
(hetzner-configuration-ssh-key-public config)
#:labels (hetzner-configuration-labels config))))
(format #t "successfully created ssh key for '~a'\n" name)
ssh-key)))
@@ -541,16 +466,6 @@ values: list of output lines returned by CMD and its exit code."
(formatted-message (G_ "primary ip '~a' does not exist.")
name))))
(define temporary-ssh-key-file
(let ((ssh-key-file (port-filename (mkstemp "/tmp/hetzner-key-XXXXXX")))
(ssh-key #f))
(lambda ()
"Return a dynamically created, temporary private SSH key."
(unless ssh-key
(set! ssh-key (make-keypair 'ed25519))
(private-key-to-file ssh-key ssh-key-file))
ssh-key-file)))
(define (hetzner-machine-create-server machine)
"Create the Hetzner server for MACHINE."
(let* ((config (machine-configuration machine))
@@ -558,14 +473,13 @@ values: list of output lines returned by CMD and its exit code."
(server-type (hetzner-configuration-server-type config)))
(format #t "creating '~a' server for '~a'...\n" server-type name)
(let* ((ssh-key (hetzner-machine-ssh-key machine))
(_ (assert ssh-key)) ;required during provisioning
(ipv4 (hetzner-configuration-ipv4 config))
(ipv6 (hetzner-configuration-ipv6 config))
(api (hetzner-configuration-api config))
(server (hetzner-api-server-create
api
(machine-display-name machine)
#:ssh-keys (list ssh-key)
(list ssh-key)
#:ipv4 (if (string? ipv4)
(hetzner-primary-ip-id (hetzner-resolve-ip api ipv4))
ipv4)
@@ -613,15 +527,13 @@ values: list of output lines returned by CMD and its exit code."
(write-known-host! ssh-session)))
(define (hetzner-machine-enable-rescue-system machine server)
"Enable the rescue system on the Hetzner SERVER for MACHINE, provisioning it
with the configured SSH key, or a dynamically created temporary one."
"Enable the rescue system on the Hetzner SERVER for MACHINE."
(let* ((name (machine-display-name machine))
(config (machine-configuration machine))
(api (hetzner-configuration-api config))
(ssh-keys (and=> (hetzner-machine-ssh-key machine) list)))
(ssh-keys (list (hetzner-machine-ssh-key machine))))
(format #t "enabling rescue system on '~a'...\n" name)
(let ((action (hetzner-api-server-enable-rescue-system
api server #:ssh-keys ssh-keys)))
(let ((action (hetzner-api-server-enable-rescue-system api server ssh-keys)))
(format #t "successfully enabled rescue system on '~a'\n" name)
action)))
@@ -657,7 +569,6 @@ with the configured SSH key, or a dynamically created temporary one."
(set! hetzner-machine-ssh-run-script hetzner-machine-ssh-run-script)
(define (hetzner-machine-rescue-install-os machine ssh-session server)
"Init a minimal Guix System to bootstrap from."
(let ((name (machine-display-name machine))
(os (hetzner-machine-bootstrap-os-form machine server)))
(format #t "installing guix operating system on '~a'...\n" name)
@@ -676,9 +587,9 @@ chmod 600 /mnt/root/.ssh/authorized_keys
# Small instance don't have much disk space. Bind mount the store of the
# rescue system to the tmp directory of the new Guix system.
mkdir -p /mnt/tmp/gnu
mkdir -p /gnu
mount --bind /mnt/tmp/gnu /gnu
mkdir -p /mnt/tmp/gnu/store
mkdir -p /gnu/store
mount --bind /mnt/tmp/gnu/store /gnu/store
wget -O /tmp/guix-install.sh https://guix.gnu.org/guix-install.sh
chmod +x /tmp/guix-install.sh
@@ -754,8 +665,7 @@ apt-get install cloud-initramfs-growroot uidmap --assume-yes"))
action)))
(define (hetzner-machine-provision machine)
"Provision a Guix System bootstrap server for MACHINE on the Hetzner Cloud
service."
"Provision a server for MACHINE on the Hetzner Cloud service."
(with-exception-handler
(lambda (exception)
(let ((config (machine-configuration machine))
@@ -770,10 +680,12 @@ service."
(let ((ssh-session (hetzner-machine-wait-for-ssh machine server)))
(hetzner-machine-rescue-install-packages machine ssh-session)
(hetzner-machine-rescue-partition machine ssh-session)
(hetzner-machine-rescue-install-os machine ssh-session server))
(hetzner-machine-reboot machine server)
(hetzner-machine-authenticate-host machine server)
server))))
(hetzner-machine-rescue-install-os machine ssh-session server)
(hetzner-machine-reboot machine server)
(sleep 5)
(hetzner-machine-authenticate-host machine server)
server)))
#:unwind? #t))
(define (machine-not-provisioned machine)
(formatted-message
@@ -799,47 +711,16 @@ an environment type of 'hetzner-environment-type'."
;;; System deployment.
;;;
(define (cleanup-temporary-ssh-key/maybe api ssh-key)
"Delete the temporary SSH private key file from the file system and the
Hetzner API, if one was created used."
(when (%hetzner-ssh-key-file)
(format #t "cleaning up temporary ssh key~%")
(delete-file (%hetzner-ssh-key-file))
(%hetzner-ssh-key-file #f)
(hetzner-api-ssh-key-delete api ssh-key)))
(define (deploy-hetzner machine)
"Internal implementation of 'deploy-machine' for 'machine' instances with an
environment type of 'hetzner-environment-type'."
(hetzner-machine-validate machine)
(unless (hetzner-machine-ssh-key machine)
(hetzner-machine-ssh-key-create machine))
(let ((server (or (hetzner-machine-server machine)
(hetzner-machine-provision machine))))
(deploy-machine (hetzner-machine-delegate machine server))))
(define server (hetzner-machine-server machine))
(define config (machine-configuration machine))
(define api (hetzner-configuration-api config))
(define ssh-key #f) ;hetzner API key
;; Provisioning requires uploading an SSH key via the Hetzner API to
;; authenticate non-interactively with the newly created server.
(unless server ;provisioning?
(unless (hetzner-configuration-ssh-public-key config)
(format #t "using a temporary ssh key for provisioning~%")
(%hetzner-ssh-key-file (temporary-ssh-key-file)))
(set! ssh-key (or (hetzner-machine-ssh-key machine)
(hetzner-machine-ssh-key-create machine))))
;; Cleaning-up here is a bit tricky, as `deploy-machine' returns a monadic
;; value immediately, to be executed later; this means the clean-up must be
;; delayed until monadic evaluation time.
(let* ((server (or server (hetzner-machine-provision machine)))
(delegate-machine (hetzner-machine-delegate machine server)))
;; FIXME: The clean-up in the guard does not run even when
;; `deploy-machine' fails.
(guard (c (#t (cleanup-temporary-ssh-key/maybe api ssh-key)
(raise c)))
(mlet %store-monad
((value (deploy-machine delegate-machine)))
(cleanup-temporary-ssh-key/maybe api ssh-key)
(return value)))))
;;;
+8 -90
View File
@@ -1,6 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Roman Scherer <roman@burningswell.com>
;;; Copyright © 2026 Maxim Cournoyer <maxim@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,7 +19,6 @@
(define-module (gnu machine hetzner http)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (guix memoization)
#:use-module (guix records)
#:use-module (ice-9 iconv)
#:use-module (ice-9 match)
@@ -53,7 +51,6 @@
hetzner-api-action-wait
hetzner-api-actions
hetzner-api-create-ssh-key
hetzner-api-images
hetzner-api-locations
hetzner-api-primary-ips
hetzner-api-request-body
@@ -84,23 +81,6 @@
hetzner-error-code
hetzner-error-message
hetzner-error?
hetzner-image?
hetzner-image-id
hetzner-image-type
hetzner-image-status
hetzner-image-name
hetzner-image-description
hetzner-image-disk-size
hetzner-image-created
hetzner-image-created-from
hetzner-image-bound-to
hetzner-image-os-flavor
hetzner-image-os-version
hetzner-image-rapid-deploy
hetzner-image-protection
hetzner-image-deprecated
hetzner-image-deleted
hetzner-image-architecture
hetzner-ipv4-blocked?
hetzner-ipv4-dns-ptr
hetzner-ipv4-id
@@ -168,7 +148,6 @@
hetzner-ssh-key?
make-hetzner-action
make-hetzner-error
make-hetzner-image
make-hetzner-ipv4
make-hetzner-ipv6
make-hetzner-location
@@ -189,19 +168,7 @@
(make-parameter (getenv "GUIX_HETZNER_API_TOKEN")))
;; Ideally this would be a Guix image. Maybe one day.
(define %hetzner-default-server-image
(mlambda (api)
"Return the latest Debian image available. This image gets used for the
initial system provisioning phase, before Guix System takes over."
(let ((debian-images (filter (lambda (image)
(string=? "debian"
(hetzner-image-os-flavor image)))
(hetzner-api-images api))))
(hetzner-image-name
(last (sort debian-images
(lambda (x y)
(< (string->number (hetzner-image-os-version x))
(string->number (hetzner-image-os-version y))))))))))
(define %hetzner-default-server-image "debian-11")
;; Falkenstein, Germany
(define %hetzner-default-server-location "fsn1")
@@ -323,43 +290,6 @@ initial system provisioning phase, before Guix System takes over."
(server-type hetzner-server-type "server_type"
json->hetzner-server-type)) ; <hetzner-server-type>
(define-json-mapping <hetzner-image>
make-hetzner-image hetzner-image? json->hetzner-image
(id hetzner-image-id) ;integer
(type hetzner-image-type) ;string
(status hetzner-image-status) ;string
(name hetzner-image-name "name" (null-or identity)) ;string | null
(description hetzner-image-description) ;string
(image-size hetzner-image-size "image_size" ;number | null (GiB)
(null-or identity))
(disk-size hetzner-image-disk-size "disk_size") ;number (GiB)
(created hetzner-image-created) ;string (date)
(created-from hetzner-image-created-from "created_from" ;object | null
(null-or json->hetzner-image-created-from))
(bound-to hetzner-image-bound-to "bound_to" (null-or identity)) ;integer | null
(os-flavor hetzner-image-os-flavor "os_flavor") ;string
(os-version hetzner-image-os-version "os_version" ;string | null
(null-or identity))
(rapid-deploy hetzner-image-rapid-deploy "rapid_deploy") ;boolean
(protection hetzner-image-protection "protection" ;object
json->hetzner-image-protection)
(deprecated hetzner-image-deprecated) ;string
(deleted hetzner-image-deleted "deleted" (null-or identity)) ;null | string
(architecture hetzner-image-architecture)) ;string
(define (null-or parser)
(lambda (value)
(if (eq? 'null value)
*unspecified*
(parser value))))
(define-json-type <hetzner-image-created-from>
(id) ;integer
(name)) ;string
(define-json-type <hetzner-image-protection>
(delete)) ;boolean
(define-json-mapping <hetzner-server-type>
make-hetzner-server-type hetzner-server-type? json->hetzner-server-type
(architecture hetzner-server-type-architecture) ; string
@@ -668,11 +598,11 @@ initial system provisioning phase, before Guix System takes over."
(apply hetzner-api-list api "/locations" "locations" json->hetzner-location options))
(define* (hetzner-api-server-create
api name #:key
ssh-keys
api name ssh-keys
#:key
(ipv4 #f)
(ipv6 #f)
(image (%hetzner-default-server-image api))
(image %hetzner-default-server-image)
(labels '())
(location %hetzner-default-server-location)
(server-type %hetzner-default-server-type)
@@ -690,11 +620,7 @@ initial system provisioning phase, before Guix System takes over."
,@(if (integer? ipv6) `(("ipv6" . ,ipv6)) '())))
("location" . ,location)
("server_type" . ,server-type)
,@(if ssh-keys
`(("ssh_keys" .
,(apply vector (map hetzner-ssh-key-id
ssh-keys))))
'())
("ssh_keys" . ,(apply vector (map hetzner-ssh-key-id ssh-keys)))
("start_after_create" . ,start-after-create?)))))
(hetzner-api-action-wait api (hetzner-api-body-action body))
(json->hetzner-server (assoc-ref body "server"))))
@@ -705,15 +631,12 @@ initial system provisioning phase, before Guix System takes over."
(hetzner-api-action-wait api (hetzner-api-body-action body))))
(define* (hetzner-api-server-enable-rescue-system
api server #:key ssh-keys (type "linux64"))
api server ssh-keys #:key (type "linux64"))
"Enable the rescue system for SERVER with the Hetzner API."
(let* ((ssh-keys (and ssh-keys
(apply vector (map hetzner-ssh-key-id ssh-keys))))
(let* ((ssh-keys (apply vector (map hetzner-ssh-key-id ssh-keys)))
(body (hetzner-api-post
api (hetzner-server-path server "/actions/enable_rescue")
#:body `(,@(if ssh-keys
`(("ssh_keys" . ,ssh-keys))
'())
#:body `(("ssh_keys" . ,ssh-keys)
("type" . ,type)))))
(hetzner-api-action-wait api (hetzner-api-body-action body))))
@@ -764,8 +687,3 @@ initial system provisioning phase, before Guix System takes over."
"Get server types from the Hetzner API."
(apply hetzner-api-list api "/server_types" "server_types"
json->hetzner-server-type options))
(define* (hetzner-api-images api . options)
"Get image types from the Hetzner API."
(apply hetzner-api-list api "/images" "images"
json->hetzner-image options))
+3 -10
View File
@@ -164,12 +164,6 @@ flags."
%default-package-module-path
channels-scm))))
(define (strip-trailing-slash s)
;; Strip the trailing slash of a string, if present.
(if (string-suffix? "/" s)
(string-drop-right s 1)
s))
(define %patch-path
;; Define it after '%package-module-path' so that '%load-path' contains user
;; directories, allowing patches in $GUIX_PACKAGE_PATH to be found.
@@ -178,7 +172,7 @@ flags."
(if (string=? directory %distro-root-directory)
(string-append directory "/gnu/packages/patches")
directory))
(map strip-trailing-slash %load-path))))
%load-path)))
;; This procedure is used by Emacs-Guix up to 0.5.1.1, so keep it for now.
;; See <https://github.com/alezost/guix.el/issues/30>.
@@ -524,9 +518,8 @@ return its return value."
(location->string (package-location pkg))))
(match (package-superseded pkg)
((? package? new)
(unless (assoc-ref (package-properties pkg) 'supress-supersession-info?)
(info (G_ "package '~a' has been superseded by '~a'~%")
(package-name pkg) (package-name new)))
(info (G_ "package '~a' has been superseded by '~a'~%")
(package-name pkg) (package-name new))
new)
(#f
pkg)))
+1 -4
View File
@@ -51,7 +51,6 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages java)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages tcl)
#:use-module (gnu packages xml)
@@ -186,9 +185,7 @@ terminals.")
(native-inputs
(append
(list clisp
;; See: <https://bugzilla.redhat.com/show_bug.cgi?id=2231865>.
python-cython-0
python-setuptools ;remove with next update
python-cython
doxygen
gettext-minimal)
;; icedtea doesn't build reliably on all architectures.
+3 -2
View File
@@ -37,12 +37,13 @@
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix utils))
(define-public acl
(package
(name "acl")
(version "2.3.1")
(version "2.3.2")
(source
(origin
(method url-fetch)
@@ -50,7 +51,7 @@
version ".tar.gz"))
(sha256
(base32
"1bqi7hj0xkpivwg7lx5cv3yvs9ks1i6azvpgbvfpzcq1i736233n"))))
"0z1gi82zc2xcbchfagd7apn2s7camaagj8y6hmysl1wpcanxnasz"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
+211 -292
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015-2018, 2020-2023 Eric Bavier <bavier@posteo.net>
@@ -109,6 +109,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix build-system ruby)
@@ -144,7 +145,7 @@
#:use-module (gnu packages elf)
#:use-module (gnu packages file)
#:use-module (gnu packages file-systems)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
@@ -743,7 +744,7 @@ manager.")
(define-public swineherd
(package
(name "swineherd")
(version "0.0.5")
(version "0.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -752,7 +753,7 @@ manager.")
(file-name (git-file-name name version))
(sha256
(base32
"1w3fvkdmqvbzqfx3xindm8qgam54wja46isgwasaiqmmhnla7p52"))))
"0iij1pl0y410k1dk1ifa56dxmjb1blv0y3k5rxy794gwg6w6c480"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--localstatedir=/var")
@@ -766,7 +767,7 @@ manager.")
guile-netlink
guile-3.0
guix
shepherd-1.0))
shepherd-0.10))
(home-page "https://github.com/BIMSBbioinfo/swineherd")
(synopsis "System container manager")
(description
@@ -1084,7 +1085,7 @@ console.")
(define-public btop
(package
(name "btop")
(version "1.4.7")
(version "1.4.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1093,7 +1094,7 @@ console.")
(file-name (git-file-name name version))
(sha256
(base32
"0d3cr5l6gpcwhxgnrizny5b5kg6fys2hy9a58bc68w4n2hc040fy"))))
"1nj58dbv3c0rj8fngldkyrmdmacmjnbg8ch1c07ik97kqnnzd3l7"))))
(build-system gnu-build-system)
(native-inputs (list lowdown))
(arguments
@@ -1157,7 +1158,7 @@ on memory usage on GNU/Linux systems.")
(define-public htop
(package
(name "htop")
(version "3.5.1")
(version "3.4.1")
(source
(origin
(method git-fetch)
@@ -1165,7 +1166,7 @@ on memory usage on GNU/Linux systems.")
(url "https://github.com/htop-dev/htop")
(commit version)))
(sha256
(base32 "187gyj081n6qsidll5wdri3jkr4m2i4m461z3xv03y342f5yj3lv"))
(base32 "058y4a4mvx9m179dyr4wi8mlm6i4ybywshadaj4cvfn9fv0r0nkx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -1301,15 +1302,14 @@ re-executing them as necessary.")
(define-public inetutils
(package
(name "inetutils")
(version "2.7")
(version "2.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/inetutils/inetutils-"
version ".tar.gz"))
(sha256
(base32
"11n01vsd51r7qraaaylhhx04hq4s6vcq0896zkz0yp1wvqfbwmm1"))
(patches (search-patches "inetutils-drop-test.patch"))))
"0q1257ci22g2jbdiqs00mharc1lqkbibdlkhj23f3si6qjxkn17s"))))
(build-system gnu-build-system)
(arguments
(list
@@ -1340,7 +1340,17 @@ re-executing them as necessary.")
"\\\""))
;; On some systems, 'libls.sh' may fail with an error such as:
;; "Failed to tell switch -a apart from -A".
#:parallel-tests? #f))
#:parallel-tests? #f
#:phases (if (target-hurd64?)
#~(modify-phases %standard-phases
(add-after 'unpack 'apply-hurd64-patch
(lambda _
(let ((patch
#$(local-file
(search-patch
"inetutils-hurd64.patch"))))
(invoke "patch" "--force" "-p1" "-i" patch)))))
#~%standard-phases)))
(inputs
(list coreutils
shadow ;for login (used in telnetd and rlogind)
@@ -1363,7 +1373,7 @@ hostname.")
(define-public shadow
(package
(name "shadow")
(version "4.19.0")
(version "4.13")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1371,7 +1381,7 @@ hostname.")
"download/" version "/shadow-" version ".tar.xz"))
(sha256
(base32
"0crbcfdp7ayyii33srinwd0yr27dkx9mbzglx1d0mvhr1z28xclw"))))
"0b6xz415b4y3y5nk3pw9xibv05kln4cjbmhybyncmrx2g5fj9zls"))))
(build-system gnu-build-system)
(arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -1380,9 +1390,7 @@ hostname.")
'(,@(if (target-hurd?)
'()
'("--with-libpam"))
"--disable-logind" ;; no systemd
"--without-libbsd" ;; no libbsd
"shadow_cv_logdir=/var/log"
"shadow_cv_logdir=/var/log"
"ac_cv_func_setpgrp_void=yes")
#:phases
(modify-phases %standard-phases
@@ -1418,8 +1426,15 @@ hostname.")
;; The top-level Makefile.am wrongfully has "SUBDIRS += man"
;; under "if ENABLE_REGENERATE_MAN", even though prebuilt man
;; pages are available. Thus, install them manually.
(invoke "make" "-C" "man" "install"))))))
(native-inputs (list pkg-config))
(invoke "make" "-C" "man" "install")))
(add-after 'install-man-pages 'remove-groups
(lambda* (#:key outputs #:allow-other-keys)
;; Remove `groups', which is already provided by Coreutils.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man")))
(delete-file (string-append bin "/groups"))
(for-each delete-file (find-files man "^groups\\."))))))))
(inputs
(append (if (target-hurd?)
'()
@@ -1971,7 +1986,7 @@ maintenance releases.")
(define-public dhcpcd
(package
(name "dhcpcd")
(version "10.3.2")
(version "10.3.0")
(source
(origin
(method git-fetch)
@@ -1980,7 +1995,7 @@ maintenance releases.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1z5rpi0n2vwhkh3c4d0dxwp38fl18br58jpy7kzh97gzg3gpk5dl"))))
(base32 "058k8wbzbjb6mm6qklv40z1y4k6sdb4ysap1xk6pny1m1f9xkdax"))))
(inputs (list bash-minimal coreutils-minimal eudev sed))
(build-system gnu-build-system)
(arguments
@@ -2979,7 +2994,7 @@ system is under heavy load.")
(define-public stress-ng
(package
(name "stress-ng")
(version "0.21.01")
(version "0.20.01")
(source
(origin
(method git-fetch)
@@ -2988,7 +3003,7 @@ system is under heavy load.")
(commit (string-append "V" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11w8xjm53lgnxfvg286lavqjh0il3bfr1fsgyk915167r4vlabqq"))))
(base32 "1jkinrxh9ppv7xfii9xlisnd2679wnj4ljq12h8y0nvwrm8fkm0b"))))
(build-system gnu-build-system)
(arguments
;; XXX The test suite seems to cause instability on the VisionFive 2
@@ -3141,7 +3156,7 @@ track changes in important system configuration files.")
(define-public libcap-ng
(package
(name "libcap-ng")
(version "0.9.3")
(version "0.9")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3150,20 +3165,12 @@ track changes in important system configuration files.")
(file-name (git-file-name name version))
(sha256
(base32
"13iy7dddcslpmmdhybgvfcgznsvpaa4r3fp9ldlpkq592lw8yyva"))))
"0izrrh2kmhi6dcy5iqcccmx90nwlaqcglhc60sl8n5ds8il14pi8"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "--disable-static"
"--without-python")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-configure-ac
(lambda _
(substitute* "configure.ac"
(("linux/sock_diag.h" all)
(string-append all " \\"))))))))
`(#:configure-flags
(list "--disable-static"
"--without-python")))
(inputs
(list libbpf))
(native-inputs
@@ -3405,7 +3412,7 @@ provides the following commands:
;; variable in the tests/import/cpan.scm test.
(list (search-path-specification
(variable "GUIX_PYTHONPATH")
(files (list "lib/python3.12/site-packages")))))
(files (list "lib/python3.11/site-packages")))))
(home-page "https://www.ansible.com/")
(synopsis "Radically simple IT automation")
(description "Ansible aims to be a radically simple IT automation system.
@@ -3423,7 +3430,7 @@ modules and plugins that extend Ansible.")
(define-public debops
(package
(name "debops")
(version "3.3.0")
(version "3.2.5")
(source
(origin
(method git-fetch)
@@ -3432,7 +3439,7 @@ modules and plugins that extend Ansible.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0z6wck5kax5h2bjv1vw8pbd7fdcdhx87bj9fakh3h0rar9d2qksj"))
(base32 "15wfhha2b315i15l40j3sylyvs3mdrfw5awzq4cix51l5jppx8z5"))
(patches
(search-patches "debops-setup-py-avoid-git.patch"))))
(build-system pyproject-build-system)
@@ -3441,7 +3448,7 @@ modules and plugins that extend Ansible.")
(list ansible
bash-minimal
encfs
fuse
fuse-2
util-linux ;; for umount
findutils
git
@@ -3454,8 +3461,8 @@ modules and plugins that extend Ansible.")
python-future
python-gitpython
python-jinja2
python-pyxdg
python-pyyaml
python-pyxdg
python-toml))
(arguments
(list
@@ -3470,7 +3477,7 @@ modules and plugins that extend Ansible.")
`("PATH" ":" prefix
,(map dirname
(map (cut search-input-file inputs <>)
(list ;; "bin/ansible" ;see above
(list "bin/ansible"
"bin/gpg"
"bin/git"
"bin/git-crypt"
@@ -3750,68 +3757,59 @@ summarizes network bandwidth by process and remote host.")
(define-public munge
(package
(name "munge")
(version "0.5.18")
(version "0.5.14")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dun/munge")
(commit (string-append "munge-" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://github.com/dun/munge/releases/"
"download/munge-" version "/munge-"
version ".tar.xz"))
(sha256
(base32
"1b7gm680dlvmgvj9vxy7n0cqmnv1rl9n4563vasxdxx54f78j30s"))
"0h06sghb4rqvv1ywyd6mzsmbcgh712v6ygrff0gzm440y4ca41k6"))
(modules '((guix build utils)))
(snippet
;; Don't insist on write access to /var.
#~(substitute* "src/etc/Makefile.am"
(("\\$\\(MKDIR_P\\) .*(local|run)statedir.*" all)
(string-append ": " all))))))
'(begin
;; Don't insist on write access to /var.
(substitute* "src/etc/Makefile.in"
(("\\$\\(INSTALL\\)(.*)localstatedir" _ middle)
(string-append "-$(INSTALL)" middle "localstatedir"))
(("\\$\\(MKDIR_P\\) .*(local|run)statedir.*")
""))
#t))))
(inputs
(list openssl libgcrypt))
(native-inputs
(list autoconf
automake
libtool
procps)) ;for tests
(build-system gnu-build-system)
(arguments
(list #:configure-flags
#~(list "--localstatedir=/var"
"--disable-static"
#$@(if (%current-target-system)
;; Assume yes on pipes when cross compiling.
`("ac_cv_file__dev_spx=yes"
"x_ac_cv_check_fifo_recvfd=yes")
'())
;; The '.pc' file is not installed when omitting this flag.
(string-append "--with-pkgconfigdir="
#$output "/lib/pkgconfig"))
#:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'pre-bootstrap
(lambda _
(for-each patch-shebang (find-files "build-aux"))))
(add-after 'unpack 'skip-failing-tests
(lambda _
;; Pass '--force' to 'munged'; without it, it fails with "Socket
;; is inaccessible" due to the build directory not being
;; world-readable.
(substitute* "tests/sharness.d/03-munged.sh"
(("--group-update-time=-1" all)
(string-append all " --force")))
;; The tests below invoke 'sudo' or have special expectations
;; about network interfaces.
(for-each (lambda (test)
(substitute* "tests/Makefile.am"
(((string-append test "\\.t "))
"")))
(list "0100-munged-lock"
"0101-munged-security-socket"
"0102-munged-security-keyfile"
"0103-munged-security-logfile"
"0110-munged-origin-addr")))))))
`(#:configure-flags
(list "--localstatedir=/var"
(string-append "--with-pkgconfigdir="
(assoc-ref %outputs "out") "/lib/pkgconfig")
(string-append "--with-libgcrypt-prefix="
(assoc-ref %build-inputs "libgcrypt"))
,@(if (%current-target-system)
;; Assume yes on pipes when cross compiling.
`("ac_cv_file__dev_spx=yes"
"x_ac_cv_check_fifo_recvfd=yes")
'()))
#:phases
(modify-phases %standard-phases
;; XXX Many test series fail. Some might be fixable, others do no-no
;; things like invoking sudo.
(add-after 'unpack 'skip-failing-tests
(lambda _
(for-each (lambda (test)
(substitute* "t/Makefile.in"
(((string-append test "\\.t ")) "")))
(list "0100-munged-lock"
"0010-basic"
"0011-munged-cmdline"
"0012-munge-cmdline"
"0013-unmunge-cmdline"
"0101-munged-security-socket"
"0102-munged-security-keyfile"
"0103-munged-security-logfile"
"0110-munged-origin-addr"))
#t)))))
(home-page "https://dun.github.io/munge/")
(synopsis "Cluster computing authentication service")
(description
@@ -3926,18 +3924,6 @@ rules is done with the @code{auditctl} utility.")
(wrap-program (string-append ndiff "/bin/ndiff")
`("GUIX_PYTHONPATH" prefix
(,(python-path ndiff)))))))
(add-before 'check 'fix-tests-for-python-3.12
(lambda _
(substitute* "ndiff/ndifftest.py"
(("import imp")
"import importlib.util")
(("ndiff = imp\\.load_source\\(\"ndiff\", \"ndiff\\.py\"\\)")
(string-join
'("spec = \
importlib.util.spec_from_file_location(\"ndiff\", \"ndiff.py\")"
"ndiff = importlib.util.module_from_spec(spec)"
"spec.loader.exec_module(ndiff)")
"\n")))))
;; These are the tests that do not require network access.
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
@@ -4067,59 +4053,51 @@ plug-in architecture to allow monitoring other system metrics.")
(license license:gpl2+)))
(define-public thefuck
;; Latest release, 3.32, is not compatible with Python 3.12.
(let ((revision "0")
(commit "c7e7e1d884d3bb241ea6448f72a989434c2a35ec"))
(package
(name "thefuck")
(version (git-version "3.32" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nvbn/thefuck")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1l3i2cpdf3vznpbzqw7b18l23xikqs7andx6yzqvm5415snaqg06"))
(patches (search-patches "thefuck-test-environ.patch"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list
"--deselect=tests/test_utils.py::TestGetValidHistoryWithoutCurrent"
"--ignore=tests/functional/conftest.py")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
;; ModuleNotFoundError: No module named 'pytest_docker_pexpect'
(delete-file "tests/functional/conftest.py")
;; Tests look for installed package
;; Some tests need write access to $HOME.
(setenv "HOME" "/tmp")
;; Even with that, this function tries to mkdir /.config.
(substitute* "tests/test_utils.py"
(("settings\\.init\\(\\)") "")))))))
(native-inputs
(list go
python-mock
;; Uses test markers that are incompatible with pytest 9.
python-pytest-8
python-pytest-mock
python-setuptools))
(inputs
(list python-colorama
python-decorator
python-psutil
python-pyte))
(home-page "https://github.com/nvbn/thefuck")
(synopsis "Correct mistyped console command")
(description
"The Fuck tries to match a rule for a previous, mistyped command, creates
(package
(name "thefuck")
(version "3.32")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nvbn/thefuck")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "18ipa1bm6q1n5drbi8i65726hhqhl1g41390lfqrc11hkbvv443d"))
(patches (search-patches "thefuck-test-environ.patch"
"thefuck-remove-broken-tests.patch"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
;; Tests look for installed package
;; Some tests need write access to $HOME.
(setenv "HOME" "/tmp")
;; Even with that, this function tries to mkdir /.config.
(substitute* "tests/test_utils.py"
(("settings\\.init\\(\\)") "")))))))
(native-inputs
(list go
python-mock
python-pytest-8
python-pytest-mock
python-setuptools
python-wheel))
(inputs
(list python-colorama
python-decorator
python-psutil
python-pyte))
(home-page "https://github.com/nvbn/thefuck")
(synopsis "Correct mistyped console command")
(description
"The Fuck tries to match a rule for a previous, mistyped command, creates
a new command using the matched rule, and runs it.")
(license license:x11))))
(license license:x11)))
(define-public di
(package
@@ -4434,7 +4412,7 @@ buffers.")
(define-public igt-gpu-tools
(package
(name "igt-gpu-tools")
(version "2.4")
(version "2.3")
(source
(origin
(method git-fetch)
@@ -4443,7 +4421,7 @@ buffers.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ijvfa5wamihzbl8l29sc27ml0kmgzlld83jm5mln6bb4bvny4gs"))))
(base32 "1vyqrsvxraib98r4i6cjmxq7nis480s2ns95v78dscygcci42i8a"))))
(build-system meson-build-system)
(arguments
`(#:tests? #f ; many of the tests try to load kernel modules
@@ -4461,7 +4439,6 @@ buffers.")
libdrm
libpciaccess
libunwind
pciutils
procps
python))
(native-inputs
@@ -4731,7 +4708,7 @@ information tool.")
(define-public fastfetch-minimal
(package
(name "fastfetch-minimal")
(version "2.63.1")
(version "2.60.0")
(source
(origin
(method git-fetch)
@@ -4740,7 +4717,7 @@ information tool.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "13a5maf8jxyga5bga96s40binqp2i54pjlipsnqgfj85q01yzkg9"))
(base32 "089577qgxd63zqzd00fz381bfpmj6pwlmy2zfan9r6gbm1jvj4i8"))
(modules '((guix build utils)))
(snippet '(begin
(delete-file-recursively "src/3rdparty")
@@ -5011,16 +4988,16 @@ Python loading in HPC environments.")
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.3.40-1")
(version "3.3.31-2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/smxi/inxi")
(url "https://github.com/smxi/inxi")
(commit version)))
(file-name (git-file-name real-name version))
(sha256
(base32 "0ivj0dcx7d2hmmkhyql156sb08385rzw640z9kyq4cv1n8ndz58s"))))
(base32 "1fca5minalpmizbxh5kmjiv8xrl7k6g91zn8d84fxmbhsk8vn3kk"))))
(build-system trivial-build-system)
(inputs
(list bash-minimal
@@ -5046,8 +5023,8 @@ Python loading in HPC environments.")
(copy-recursively (assoc-ref %build-inputs "source")
,(string-append real-name "-" version))
(with-directory-excursion ,(string-append real-name "-" version)
(patch-shebang "inxi" (list (dirname (search-input-file
%build-inputs "bin/perl"))))
(with-fluids ((%default-port-encoding #f))
(substitute* "inxi" (("/usr/bin/env perl") (which "perl"))))
(let ((bin (string-append %output "/bin")))
(install-file "inxi" bin)
(wrap-program (string-append bin "/inxi")
@@ -5062,8 +5039,7 @@ Python loading in HPC environments.")
((member name '("util-linux"))
(string-append (store-append "/bin") ":"
(store-append "/sbin")))
((member name '("dmidecode" "iproute2" "lvm2"
"mdadm"))
((member name '("dmidecode" "iproute2"))
(store-append "/sbin"))
(else (store-append "/bin")))))))
%build-inputs)))
@@ -5091,7 +5067,6 @@ support forum. It runs with the @code{/exec} command in most IRC clients.")
(name "inxi")
(inputs
`(("dmidecode" ,dmidecode)
("eudev" ,eudev)
("file" ,file)
("bind:utils" ,isc-bind "utils") ; dig
("gzip" ,gzip)
@@ -5117,14 +5092,11 @@ support forum. It runs with the @code{/exec} command in most IRC clients.")
("perl-time-hires" ,perl-time-hires)
("lvm2" ,lvm2) ; lvs
("mdadm" ,mdadm)
("wayland-utils" ,wayland-utils)
;; TODO: Add more inputs:
;; ipmi-sensors
;; hddtemp
;; perl-xml-dumper
;; ipmitool
;; wlr-randr
;; vulkan-tools
,@(package-inputs inxi-minimal)))))
(define-public pscircle
@@ -5630,61 +5602,69 @@ representation to stdout.")
(define-public hosts
(package
(name "hosts")
(version "3.6.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xwmx/hosts")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1kzd4lxlflam87dhbx1jx7bj6v6sa4f2024mfxj2768kp9qapraj"))))
(build-system copy-build-system)
(native-inputs
(list bats)) ;for tests
(version "3.6.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xwmx/hosts")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1ni4z89kxzgwm26hhx908g04f2h0fypy7lgfa0rvsz8d0wslgcsn"))))
(build-system trivial-build-system)
(inputs
(list gawk
bash-minimal
coreutils
diffutils
grep
ncurses ;for tput
sed))
`(("bats" ,bats) ;for test
("awk" ,gawk)
("bash" ,bash)
("coreutils" ,coreutils)
("diffutils" ,diffutils)
("grep" ,grep)
("ncurses" ,ncurses) ;tput
("sed" ,sed)))
(arguments
(list
#:install-plan
#~'(("hosts" "bin/hosts")
("etc/hosts-completion.bash" "/etc/bash_completion.d/hosts")
("etc/hosts-completion.zsh" "/share/zsh/site-functions/_hosts")
("README.md"
#$(string-append "/share/doc/" name "-" version "/README.md")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-hosts
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "test/test_helper.bash"
(("export _HOSTS=.*")
(string-append "export _HOSTS=" #$output "/bin/hosts")))
(substitute* (cons* "hosts"
;; *.bash and *.bats.
(find-files "test" "\\.bat?sh?.*$"))
(("\\btput\\b") (search-input-file inputs "bin/tput"))
(("\\bsed\\b") (search-input-file inputs "bin/sed"))
(("\\bawk\\b") (search-input-file inputs "bin/awk"))
(("\\bgrep\\b") (search-input-file inputs "bin/grep"))
(("\\bdiff\\b") (search-input-file inputs "bin/diff"))
(("\\bcp\\b") (search-input-file inputs "bin/cp"))
(("\\bchmod\\b") (search-input-file inputs "bin/chmod")))))
(add-after 'install 'check
(lambda* (#:key tests? inputs #:allow-other-keys)
(if tests?
(begin
(delete-file "hosts") ;Ensure installed hosts is checked.
(setenv "PATH" "") ;Ensure substitutions were correct.
(setenv "TERM" "linux") ;Set to tty for test.
(invoke (search-input-file inputs "/bin/bats")
"test"))))))))
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
;; copy source
(copy-recursively (assoc-ref %build-inputs "source") ".")
;; patch-shebang phase
(setenv "PATH"
(string-append (assoc-ref %build-inputs "bash") "/bin"
":" (assoc-ref %build-inputs "awk") "/bin"
":" (assoc-ref %build-inputs "coreutils") "/bin"
":" (assoc-ref %build-inputs "diffutils") "/bin"
":" (assoc-ref %build-inputs "grep") "/bin"
":" (assoc-ref %build-inputs "ncurses") "/bin"
":" (assoc-ref %build-inputs "sed") "/bin"
":" "/run/privileged/bin"
":" (getenv "PATH")))
(substitute* "hosts"
(("#!/usr/bin/env bash")
(string-append "#!" (which "bash")
"\nPATH=" (getenv "PATH"))))
;; check phase
(setenv "TERM" "linux") ;set to tty for test
(invoke (search-input-file %build-inputs "/bin/bats")
"test")
;; install phase
(install-file "hosts" (string-append %output "/bin"))
(let ((bash-completion
(string-append %output "/etc/bash_completion.d")))
(mkdir-p bash-completion)
(copy-file "etc/hosts-completion.bash"
(string-append bash-completion "/hosts")))
(let ((zsh-completion
(string-append %output "/share/zsh/site-functions")))
(mkdir-p zsh-completion)
(copy-file "etc/hosts-completion.zsh"
(string-append zsh-completion "/_hosts")))
(let ((doc (string-append %output "/share/doc/" ,name "-" ,version)))
(mkdir-p doc)
(install-file "LICENSE" doc)
(install-file "README.md" doc))
#t)))
(home-page "https://github.com/xwmx/hosts/")
(synopsis "Script for editing a foreign distro's @file{/etc/hosts} file")
(description "Hosts is a command line program for managing
@@ -7072,7 +7052,7 @@ network, which causes enabled computers to power on.")
(define-public witr
(package
(name "witr")
(version "0.3.2")
(version "0.1.7")
(source
(origin
(method git-fetch)
@@ -7081,7 +7061,7 @@ network, which causes enabled computers to power on.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "06vxrgd0j2v6s4snmyviwpp66hm5zai7xca9318inhyg4jw3ngg5"))))
(base32 "18xx01lxd5j019gy9jmpms3awv4snlr028w01bfkyfid6hlwxbq2"))))
(build-system go-build-system)
(arguments
(list
@@ -7199,67 +7179,6 @@ stored in an SQL database.")
(connects via USB OTG).")
(license license:expat)))
(define-public yoctofetch
(package
(name "yoctofetch")
(version "2.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/Phosphenius/yoctofetch.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0smkaydv74p2231gafibvqbwsy469w56hya8gz8wq0gw7m2l7zh3"))))
; Support for other platforms not available per upstream:
; https://codeberg.org/Phosphenius/yoctofetch#supported-platforms
(supported-systems '("x86_64-linux" "aarch64-linux"))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f)) ; No tests available.
(home-page "https://codeberg.org/Phosphenius/yoctofetch")
(synopsis "Fast and low footprint system fetch tool for the Linux UAPI")
(description
"This package provides a system fetch tool, similar to
@command{neofetch}, @command{fastfetch}, etc. It is lightweight and
has a focus on performance. It can be used as a greeter by starting
it from @file{~/.bashrc} for example.")
(license license:agpl3+)))
(define-public zeptofetch
(package
(name "zeptofetch")
(version "1.21")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.archlinux.org/gurov/zeptofetch")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1f1dm9nrp0z0prqy90csrkbk98ixp0jx76ax473qb0qsbb7ys4g7"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; No tests available.
#:make-flags
#~(list (string-append "PREFIX="
#$output))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)))) ; No configure script.
(home-page "https://gitlab.archlinux.org/gurov/zeptofetch")
(synopsis
"Fast, minimal system information tool for Linux.")
(description
"This package provides a system fetch tool, similar to
@command{neofetch}, @command{fastfetch}, etc. It is lightweight and
has a focus on performance.")
(license license:gpl3+)))
(define-public zzz
(package
(name "zzz")
+157 -13
View File
@@ -1,5 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,20 +21,160 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages adns)
#:use-module (gnu packages dns)
#:use-module (guix deprecation))
#:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages m4)
#:use-module (gnu packages pkg-config))
(define-deprecated/public-alias adns
(@ (gnu packages dns) adns))
(define-public adns
(package
(name "adns")
(version "1.6.1")
(source (origin
(method url-fetch)
(uri (list (string-append "mirror://gnu/adns/adns-"
version ".tar.gz")
(string-append
"https://www.chiark.greenend.org.uk/~ian/adns/ftp/adns-"
version ".tar.gz")))
(sha256
(base32
"1k81sjf0yzv6xj35vcxp0ccajxrhhmyly7a57xlbs1kmkdwb6f3i"))))
(build-system gnu-build-system)
(arguments
;; Make sure the programs under bin/ fine libadns.so.
'(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath -Wl,"
(assoc-ref %outputs "out")
"/lib"))
(define-deprecated/public-alias c-ares
(@ (gnu packages dns) c-ares))
;; XXX: Tests expect real name resolution to work.
#:tests? #f))
(native-inputs
(list m4))
(home-page "https://www.gnu.org/software/adns/")
(synopsis "Asynchronous DNS client library and utilities")
(description
"GNU adns is a C library that provides easy-to-use DNS resolution
functionality. The library is asynchronous, allowing several concurrent
calls. The package also includes several command-line utilities for use in
scripts.")
(license gpl3+)))
(define-deprecated/public-alias c-ares-for-node-lts
(@ (gnu packages dns) c-ares-for-node-lts))
(define-public c-ares
(package
(name "c-ares")
(version "1.34.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/c-ares/c-ares/releases/download/v"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"0br2msk3bpl5myhjp9vr5j2scpspvbg2fpnz69dcrr4ycpnxnf7s"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'filter-live-tests
(lambda _
;; Filter tests that require internet access.
(setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))
#$@(if (system-hurd?)
#~((add-after 'unpack 'skip-tests
(lambda _
(substitute* "test/ares-test-main.cc"
(("(^| )main *\\(.*" all)
(string-append all " exit (77);\n")))))
(add-after 'filter-live-tests 'filter-hurd-tests
(lambda _
(setenv "GTEST_FILTER"
(string-append
(getenv "GTEST_FILTER")
":.*Basic/2"
":.*CancelImmediate/2"
":.*CancelImmediateGetHostByAddr/2"
":.*CancelLater/1"
":.*FamilyUnspecified/2"
":.*FamilyV6/2"
":.*GetAddrInfoParallelLookups/1"
":.*GetHostByAddrDestroy/2"
":.*GetHostByNameCNAMENoData/2"
":.*GetHostByNameDestroyAbsolute/2"
":.*GetHostByNameDestroyRelative/2"
":.*GetHostByNameParallelLookups/1"
":.*HostAlias/2"
":.*HostAliasMissing/2"
":.*HostAliasMissingFile/2"
":.*NotImplResponse/2"
":.*RefusedResponse/2"
":.*Resend/1"
":.*RetryWithoutEDNS/2"
":.*SearchDomains/2"
":.*SearchDomainsBare/2"
":.*SearchDomainsServFailOnAAAA/2"
":.*SearchDomainsWithResentReply/1"
":.*SearchHighNdots/2"
":.*SearchNoDataThenFail/2"
":.*SearchNoDataThenNoDataBare/2"
":.*SearchNoDataThenSuccess/2"
":.*ServFailResponse/2"
":.*SimpleQuery/2"
":.*SockCallback/2"
":.*SockConfigureCallback/2"
":.*SortListV4/2"
":.*SortListV6/2"
":.*ThirdServer/2"
":.*TruncationRetry/1"
":.*UnspecifiedFamilyCname6A4/2"
":.*UnspecifiedFamilyV4/2"
":.*UnspecifiedFamilyV6/2")))))
#~()))))
(native-inputs
(list pkg-config))
(home-page "https://c-ares.haxx.se/")
(synopsis "C library for asynchronous DNS requests")
(description
"C-ares is a C library that performs DNS requests and name resolution
asynchronously. It is intended for applications which need to perform DNS
queries without blocking, or need to perform multiple DNS queries in parallel.
The primary examples of such applications are servers which communicate with
multiple clients and programs with graphical user interfaces.")
(license (x11-style "https://c-ares.haxx.se/license.html"))))
(define-deprecated/public-alias c-ares-for-node-bootstrap
(@ (gnu packages dns) c-ares-for-node-bootstrap))
(define-public c-ares-for-node-lts
(hidden-package c-ares))
(define-deprecated/public-alias c-ares/cmake
(@ (gnu packages dns) c-ares/cmake))
(define-public c-ares-for-node-bootstrap
(hidden-package
(package
(inherit c-ares)
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://c-ares.haxx.se/download/c-ares-" version
".tar.gz"))
(sha256
(base32
"1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s")))))))
;; gRPC requires a c-ares built with CMake in order to get the .cmake modules.
;; We can not build c-ares itself with CMake because that would introduce a
;; circular dependency through nghttp2.
;; XXX: It would be nice if we could extract the modules somehow and make them
;; work with the "normal" c-ares package instead of building a whole new library.
(define-public c-ares/cmake
(hidden-package
(package
(inherit c-ares)
(build-system cmake-build-system)
(arguments
`(;; XXX: Tests require name resolution (the normal variant runs no tests).
#:tests? #f)))))
+3 -3
View File
@@ -117,7 +117,7 @@ Features:
(define-public python-zbarlight
(package
(name "python-zbarlight")
(version "4.0")
(version "3.0")
(source
(origin
(method git-fetch)
@@ -126,7 +126,7 @@ Features:
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1q1nfc7g7bl9y63fwvnq1fcgqk79inc2hhw3ilvyw0nk0g74v8cm"))))
(base32 "1radfpfhfhkx3xnz01bqr5l9pl2zv70zis6l2kw1gwqbfw65r6w6"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-pillow))
(inputs (list zbar))
@@ -370,7 +370,7 @@ This package includes the following programs:
libjpeg-turbo
perl
python
v4l-utils))
v4l-utils-minimal))
(propagated-inputs
;; These are in 'requires' field of .pc files.
(list glib gtk+))
+6 -5
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022, 2023, 2024, 2025 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016-2026 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016-2025 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
@@ -52,7 +52,7 @@
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
@@ -88,6 +88,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system pyproject)
#:use-module ((guix build-system python) #:select (pypi-uri))
#:use-module (guix build-system r)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -405,7 +406,7 @@ precision.")
(define-public giac
(package
(name "giac")
(version "2.0.0-21")
(version "2.0.0-10")
(source
(origin
(method url-fetch)
@@ -417,7 +418,7 @@ precision.")
"https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/"
"stable/main/source/giac_" version ".tar.gz"))
(sha256
(base32 "1j6bip76hhqvycapf7xy26y0b8g5zzx4gwkfsr7bf6m2h71a2zry"))))
(base32 "1lzb0jjmkg5ml1qfl0m00qqng4sxgfqwrbq10gpkp4b301k2ckv1"))))
(build-system gnu-build-system)
(arguments
(list
@@ -457,7 +458,7 @@ precision.")
(inputs
;; TODO: Unbundle "libmicropython.a".
(list ao
fltk
fltk-1.3
glpk
gmp
gsl
+36 -35
View File
@@ -41,6 +41,7 @@
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
@@ -764,7 +765,7 @@ file system.")
(sha256
(base32 "0r3xwk8xsfxvmxyw3d57sy2i9by24g0l1jl40735jiac9mypcg7n"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-requests python-argcomplete python-urllib3
(inputs (list python-requests python-argcomplete python-urllib3
python-looseversion gnupg))
(native-inputs (list python-setuptools python-wheel python-requests-cache
python-defusedxml))
@@ -772,7 +773,8 @@ file system.")
(list $SSL_CERT_FILE))
(arguments
(list
#:test-backend #~'unittest
#:test-flags
#~(list "-k" "test_*")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
@@ -791,7 +793,11 @@ file system.")
(lambda _
(substitute* "sdkmanager.py"
(("gpgv")
(string-append #$(this-package-input "gnupg") "/bin/gpgv"))))))))
(string-append #$(this-package-input "gnupg") "/bin/gpgv")))))
(replace 'check
(lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests?
(apply invoke "python" "-m" "unittest" test-flags)))))))
(home-page "https://gitlab.com/fdroid/sdkmanager")
(synopsis "Replacement for Android sdkmanager written in Python")
(description
@@ -1176,16 +1182,14 @@ for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
(define-public fdroidserver
(package
(name "fdroidserver")
(version "2.4.3")
(version "2.4.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/fdroid/fdroidserver")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (pypi-uri "fdroidserver" version))
(sha256
(base32 "1745fqxr2qfrls4wr6x9w1262b9pxmw9yvzd9b71ya2qmj74q17n"))))
(base32
"06xybginrwi5c7bw000wz5s5hzi0aqrxskzwh8qc6wv463w2djax"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -1196,17 +1200,22 @@ for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
(lambda _
(setenv "HOME" "/tmp"))))))
(propagated-inputs
(list python-platformdirs
python-androguard
(list python-androguard
python-apache-libcloud
python-argcomplete
python-asn1crypto
python-clint
python-defusedxml
python-docker
python-gitpython
python-mwclient
python-oscrypto
python-paramiko
python-pillow
python-platformdirs
python-puremagic
python-pyasn1
python-pyasn1-modules
python-pyyaml
python-qrcode
python-requests
@@ -1229,35 +1238,28 @@ main repository.")
(define-public fdroidcl
(package
(name "fdroidcl")
(version "0.8.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Hoverth/fdroidcl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1bflahcsjarv4v6r61knl5gc5iydh1lwvqjgffhxr4pis4qfsqsa"))
;; XXX: Reported upstream.
;; See: <https://github.com/Hoverth/fdroidcl/pull/92>.
(patches (search-patches "fdroidcl-fix-tests.patch"))))
(version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mvdan/fdroidcl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1s3fszlyyab9gbdrg52zcbafsb1mgb770skg7b3gj7f3pzfnra5n"))))
(build-system go-build-system)
(arguments
(list
#:install-source? #f
#:import-path "mvdan.cc/fdroidcl"))
(inputs
(list go-github-com-kr-pretty
go-github-com-pelletier-go-toml-v2
go-github-com-rogpeppe-go-internal
go-github-com-schollz-progressbar-v3))
(home-page "https://github.com/Hoverth/fdroidcl")
`(#:import-path "mvdan.cc/fdroidcl"
#:tests? #f ;requires internet access
#:install-source? #f))
(inputs (list go-github-com-kr-pretty go-github-com-schollz-progressbar-v3))
(synopsis "F-Droid desktop client")
(description
"While the Android client integrates with the system with regular update
checks and notifications, this is a simple command line client that talks to
connected devices via ADB.")
(home-page "https://github.com/mvdan/fdroidcl")
(license license:bsd-3)))
(define-public emacs-fdroid
@@ -1385,7 +1387,6 @@ mounted via FUSE.")
(uri (git-reference
(url "https://github.com/anestisb/android-simg2img")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0drwvqxbhajka580j93z8ldckhjlpr0i84nh20krdpxcp54xvldh"))))
+6 -6
View File
@@ -238,12 +238,12 @@ contains the graphical user interface for synfig.")
(when tests?
(invoke "./tests")))))))
(native-inputs
(cons* gettext-minimal
`(,glib "bin")
perl
pkg-config
python-wrapper
(maybe-nasm)))
(list gettext-minimal
`(,glib "bin")
nasm
perl
pkg-config
python-wrapper))
(inputs
(list cairo
curl
+3 -2
View File
@@ -33,8 +33,9 @@
;; The URI does not appear to be easily guessable. For
;; example, you cannot download version "9100g" simply
;; by replacing "9100h" in the URI.
(uri (string-append "https://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
"distfiles/31/anthy-9100h.tar.gz"))
(uri (list (string-append "https://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
"distfiles/31/anthy-9100h.tar.gz")
"https://osdn.dl.osdn.net/anthy/37536/anthy-9100h.tar.gz"))
(sha256
(base32 "0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj"))))
(build-system gnu-build-system)
+13 -21
View File
@@ -30,26 +30,20 @@
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages algebra)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages maths)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages xorg))
#:use-module (gnu packages sqlite))
(define-public apl
(let ((revision 1977))
(let ((revision 1550))
(package
(name "apl")
(version (string-append "2.0.1-r" (number->string revision)))
(version (string-append "1.8-r" (number->string revision)))
(source
(origin
(method svn-fetch)
@@ -58,18 +52,12 @@
(revision revision)))
(file-name (git-file-name name version))
(sha256
(base32 "1llm1hqpfd71jrhd4pizhmvvca5wr18v8zqfajwmvjjxcmzfkvv1"))))
(base32 "1bgc3a09f35zrqq2irhm1hspppnxjqas0fmcw14hkc7910br9ip3"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/apl/")
(native-inputs (list gettext-minimal which pkg-config))
(inputs
(list gettext-minimal
libxcb
fftw
openblas
gsl
libpng
gtk+
pcre2
readline
sqlite))
@@ -81,11 +69,15 @@
#~(modify-phases %standard-phases
(add-before 'configure 'fix-configure
(lambda _
(substitute* "configure"
;; Manually set the SVN revision, since the directory
;; is unversioned and we know it anyway.
(("\\$apl_ARCHIVE_SVNINFO")
#$(number->string revision))))))))
(substitute* "buildtag.sh"
;; Don't exit on failed SVN-related calls.
(("^ +return 0\n") "")
;; Manually set the SVN revision, since the directory is
;; unversioned and we know it anyway.
(("^SVNINFO=.*")
(string-append "SVNINFO=" #$(number->string revision) "\n"))
;; Requires running svn info on a versioned directory.
(("\\\\\"\\$ARCHIVE_SVNINFO\\\\\"") "\\\"\\\"")))))))
(synopsis "APL interpreter")
(description
"GNU APL is a free interpreter for the programming language APL. It is
+2 -2
View File
@@ -22,7 +22,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages linux)
@@ -180,7 +180,7 @@ supported by Canonical since 2009.")
(list libapparmor))
;; Python module `readline' needed
(native-inputs
(list bison flex gettext-minimal perl python python-setuptools which))
(list bison flex gettext-minimal perl python which))
(license license:gpl2))))
(define-public pam-apparmor
+9 -19
View File
@@ -19,11 +19,9 @@
(define-module (gnu packages appimage)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages base)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages file-systems)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -32,9 +30,9 @@
#:use-module (guix utils))
(define-public appimage-type2-runtime
(let ((revision "1")
(let ((revision "0")
;; No releases, just the latest commit.
(commit "caf24f9f712084686bfc24a70b75e50df0aefb9c"))
(commit "47b665594856b4e8928f8932adcf6d13061d8c30"))
(package
(name "appimage-type2-runtime")
(version (git-version "continuous" revision commit))
@@ -46,16 +44,16 @@
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "17z0byws3dp375wcyq5xwy5npqy7hslqw21n677dp38z4f940nzv"))))
(base32 "0954crhlbapxis96g1s0vfpf78ybr64zvjalak387ksxj560g44x"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; No tests
#:make-flags
#~(list "-Csrc/runtime" "runtime"
#~(list "-Csrc/runtime" "runtime-fuse3"
(string-append "CC=" #$(cc-for-target))
(string-append
"CFLAGS=" "-I" #$(this-package-input "fuse") "/include/fuse3/"
"CFLAGS=" "-I" #$(this-package-input "fuse") "/include/fuse/"
" -DGIT_COMMIT='\"" "guix-" #$version "\"'"
" -D_FILE_OFFSET_BITS=64"
" -static"
@@ -66,22 +64,17 @@
(ice-9 binary-ports))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-pkgconfig-flags
(lambda _
(substitute* "src/runtime/Makefile"
(("-lmimalloc")
"$(pkg-config --cflags mimalloc)"))))
(delete 'configure)
(replace 'install
(lambda _
(install-file "src/runtime/runtime"
(install-file "src/runtime/runtime-fuse3"
(string-append #$output "/bin"))))
;; Must be after all elf reliant phases. Used to identify the
;; executable as an AppImage as per the specification.
(add-after 'make-dynamic-linker-cache 'set-magic-bytes
(lambda _
(let ((port (open (string-append #$output
"/bin/runtime")
"/bin/runtime-fuse3")
(logior O_WRONLY))))
(seek port 8 SEEK_SET)
(put-bytevector port #vu8(#x41 #x49 #x02))
@@ -91,12 +84,9 @@
(this-package-input "fuse")
(gexp-input (this-package-input "zstd") "static")
(gexp-input (this-package-input "zlib") "static"))))
(native-inputs (list pkg-config))
;; Only needed at build time.
(inputs (list `(,fuse "out")
`(,fuse "static")
mimalloc
squashfuse-for-appimage
(inputs (list squashfuse-for-appimage
fuse-for-appimage
`(,zstd "static")
`(,zlib "static")))
(synopsis "Runtime for executing AppImages")
+2 -2
View File
@@ -34,14 +34,14 @@
(define-public apr
(package
(name "apr")
(version "1.7.6")
(version "1.7.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/apr/apr-"
version ".tar.bz2"))
(sha256
(base32
"0cpbbmng9ir8rjl9nxwljkzmrkpk4b1nsj8vg4ssfpapsa90s0s9"))
"0xsmqgjiyw3s6va5dm86djnjzg9r0qc1zsldwz4sd8pkhglqsr7w"))
(patches
(search-patches "apr-skip-getservbyname-test.patch"))
(patch-flags '("-p0"))))
+2 -13
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2020, 2021, 2025, 2026 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020, 2021, 2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20172022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; Copyright © 2019, 2022, 2024 Andy Tai <atai@atai.org>
@@ -43,14 +43,13 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
@@ -249,16 +248,6 @@ complex. It supports all currently known x86 architectural extensions, and
has strong support for macros.")
(license license:bsd-2)))
(define* (maybe-nasm #:optional
(system (or (%current-target-system)
(%current-system))))
;; For some packages nasm is only needed when compiling to/for x86/x86_64.
(if (target-x86? system)
(list nasm)
'()))
(export maybe-nasm)
(define-public yasm
(package
(name "yasm")
+545 -1420
View File
File diff suppressed because it is too large Load Diff
+157 -426
View File
@@ -42,7 +42,7 @@
;;; Copyright © 2022 Andy Tai <atai@atai.org>
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2023, 2025-2026 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Parnikkapore <poomklao@yahoo.com>
@@ -51,7 +51,7 @@
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
;;; Copyright © 2024 Roman Scherer <roman@burningswell.com>
;;; Copyright © 2024 Sughosha <sughosha@disroot.org>
;;; Copyright © 2025, 2026 Junker <dk@junkeria.club>
;;; Copyright © 2025 Junker <dk@junkeria.club>
;;; Copyright © 2025 Sughosha <sughosha@disroot.org>
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
;;; Copyright © 2025 Kjartan Oli Agustsson <kjartanoli@outlook.com>
@@ -62,8 +62,6 @@
;;; Copyright © 2026 Luis Guilherme Coelho <lgcoelho@disroot.org>
;;; Copyright © 2026 Noé Lopez <noelopez@free.fr>
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2026 Daniel Martins <email@danielfm.me>
;;; Copyright © 2026 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -103,7 +101,7 @@
#:use-module (gnu packages elf)
#:use-module (gnu packages emacs)
#:use-module (gnu packages file)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
@@ -128,7 +126,6 @@
#:use-module (gnu packages linphone)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
@@ -137,6 +134,7 @@
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages oneapi)
#:use-module (gnu packages perl)
@@ -145,7 +143,6 @@
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
@@ -181,6 +178,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
@@ -195,45 +193,6 @@
#:use-module (srfi srfi-26)
#:use-module (ice-9 match))
(define-public adplug
(package
(name "adplug")
(version "2.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/adplug/adplug")
(commit (string-append "adplug-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0l31ya42g3q7ry2m0y5djgjb9ax8ciy8jn86252vdjkjswwqgscd"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags
#~(list "-DBUILD_SHARED_LIBS=ON")
#:modules
'((guix build cmake-build-system)
(guix build utils)
(srfi srfi-26)) ;for cute
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-headers
(lambda _
(for-each (cute install-file <>
(string-append #$output "/include/adplug"))
(find-files "../source/src" "\\.h$")))))))
(propagated-inputs
(list libbinio))
(home-page "https://adplug.github.io/")
(synopsis "AdLib sound player library")
(description
"AdPlug is a hardware independent AdLib sound player library, mainly
written in C++. AdPlug plays sound data, originally created for the AdLib
(OPL2/3) audio board, on top of an OPL2/3 emulator or by using the real
hardware. No OPL2/3 chips are required for playback.")
(license license:lgpl2.1+)))
(define-public opensles
(package
(name "opensles")
@@ -820,8 +779,7 @@ Filter) modules follow the convention of 1V / Octave.")
"https://aubio.org/pub/aubio-" version ".tar.bz2"))
(sha256
(base32
"1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl"))
(patches (search-patches "aubio-waflib-python312-compat.patch"))))
"1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl"))))
(build-system waf-build-system)
(arguments
(list
@@ -1251,7 +1209,7 @@ PulseAudio clients, featuring:
(define-public ardour
(package
(name "ardour")
(version "9.2")
(version "9.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1268,7 +1226,7 @@ PulseAudio clients, featuring:
namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \"\"; }")))))
(sha256
(base32
"14s6cq3x7l7b682ah9k8cdr6plfirlgm882dc2nm51lxwl91zcfd"))
"00bramm8dq0ihr376n7l9rg0mjzxmzw6lxvsbsdlrdsimfwsy16p"))
(file-name (git-file-name name version))))
(build-system waf-build-system)
(arguments
@@ -2135,17 +2093,7 @@ envelope follower, distortion effects, tape effects and more.")
(base32
"01hnx4hhbz3ap3bw15s42q4q1mw1mhdjwygq4550wvjfg6k4ga8w"))))
(build-system waf-build-system)
(arguments
(list
#:tests? #false ;There are no tests.
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'python3.12-compatibility
(lambda _
(substitute* "waflib/Context.py"
(("imp.new_module") "types.ModuleType")
(("import os, re, imp, sys")
"import os, re, types, sys")))))))
(arguments (list #:tests? #false)) ;There are no tests.
(inputs (list lv2))
(native-inputs (list pkg-config))
(home-page "https://git.drobilla.net/cgit.cgi/omins.lv2.git/")
@@ -2368,13 +2316,13 @@ object library.")
(file-name (git-file-name name version))
(sha256
(base32
"1jds2l3cb96b02jxd7lmrjjl9s7mylnrvg6fpw0j8c141bk8vyg3"))
(patches
(search-patches "tao-synth-include-string-you-use.patch"))))
"1jds2l3cb96b02jxd7lmrjjl9s7mylnrvg6fpw0j8c141bk8vyg3"))))
(build-system cmake-build-system)
(arguments (list #:tests? #false)) ;there are no tests
(inputs
(list glfw freeglut))
(native-inputs
(list gcc-7))
(home-page "https://github.com/lucasw/tao_synth")
(synopsis "Sound synthesis with physical models")
(description "Tao is a software package for sound synthesis using physical
@@ -3289,27 +3237,30 @@ synchronous execution of all clients, and low latency operation.")
(package
(inherit jack-1)
(name "jack2")
;; 1.9.22 does not compile with Python 3.12, use the latest commit instead.
(properties '((commit . "17959465a722225a36a8b612aed26764036f258e")
(revision . "0")))
(version (git-version "1.9.22"
(assoc-ref properties 'revision)
(assoc-ref properties 'commit)))
(version "1.9.21")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jackaudio/jack2")
(commit (assoc-ref properties 'commit))))
(url "https://github.com/jackaudio/jack2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"18dbjq9y8mcp27j9aaqdlg4976hrisr7b88lk84ck09gmzlwqalp"))))
"0sbrffmdbajvrk7iqvsvrnwnpvmicvbjyq3f52r6ashdsznsz03b"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target
#:configure-flags '("--dbus" "--alsa")
#:phases
(modify-phases %standard-phases
;; Python 3.11 has removed the 'U' (universal newline) mode. It has
;; been the default since Python 3.3.
(add-after 'unpack 'python-compatibility
(lambda _
(substitute* '("waflib/Context.py"
"waflib/ConfigSet.py")
(("m='rU'") "m='r'")
(("read\\('rU'") "read('r'"))))
(add-before 'configure 'set-linkflags
(lambda _
;; Ensure -lstdc++ is the tail of LDFLAGS or the simdtests.cpp
@@ -3335,7 +3286,7 @@ synchronous execution of all clients, and low latency operation.")
expat
libsamplerate
opus
python-dbus
python-dbus-1.2
readline))
(native-inputs
(list pkg-config))
@@ -3478,7 +3429,7 @@ from being able to mix multiple JACK audio streams.")
(define-public pipemixer
(package
(name "pipemixer")
(version "0.5.0")
(version "0.4.1")
(source
(origin
(method git-fetch)
@@ -3487,8 +3438,19 @@ from being able to mix multiple JACK audio streams.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "104h2zdhqx5gdddnb7v7rhrflznh4v7d4g3s6vk2mxwf938zgm72"))))
(base32 "08ji4lg24flzi6g3yaavfq8hz3kr98q2ripk5m4qk9z172qxbbc9"))))
(build-system meson-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-pw-device
(lambda _
(substitute* "src/pw/device.c"
;; TODO: Report upstream:
;; ../source/src/pw/device.c:328:80: error: expected
;; ; before { token
(("iter\\) \\{") "iter); {")))))))
(native-inputs
(list pkg-config))
(inputs
@@ -3741,44 +3703,6 @@ compensation, (de)interleaving, and byte-swapping
;; original developer.
(license license:expat)))
(define-public rtcqs
(package
(name "rtcqs")
(version "0.6.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/rtcqs/rtcqs")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1kc3niyaq4m8di68832pgfb1b0m54q5gm68dwlzwwilgxi61ifzc"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-gui
(lambda _
(substitute* "pyproject.toml"
(("\"FreeSimpleGUI\",?")
"")
(("rtcqs_gui = \"rtcqs\\.rtcqs_gui:main\"")
""))
(delete-file "src/rtcqs/rtcqs_gui.py")
(delete-file "src/rtcqs/rtcqs_qt_gui.py"))))))
(native-inputs (list python-setuptools))
(home-page "https://codeberg.org/rtcqs/rtcqs")
(synopsis "Linux audio real-time performance analyzer")
(description
"rtcqs analyzes a Linux system to detect possible bottlenecks that could
have a negative impact on real-time audio performance. It checks kernel
configuration, IRQ priorities, CPU governor, swappiness, and other settings
relevant to low-latency audio work.")
(license license:expat)))
(define-public rtosc
(package
(name "rtosc")
@@ -3888,58 +3812,6 @@ provided by Pipewire.")
cross-platform audio input/output stream library.")
(license license:expat)))
(define-public python-pyroomacoustics
(package
(name "python-pyroomacoustics")
(version "0.10.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/LCAV/pyroomacoustics")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0546506lg93nrybvilc4wgrgvn317w9zxv2jwikhpfy1i0qyrnkk"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list
;; Want to download data from the internet:
"--ignore"
"pyroomacoustics/directivities/tests/test_sofa_directivities.py"
"--ignore"
"pyroomacoustics/datasets/tests/test_download_uncompress.py"
;; May fail because of slight numerical imprecision.
"--ignore"
"pyroomacoustics/experimental/tests/test_measure_rt60.py")
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-extra-include-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(search-input-directory inputs "include/eigen3")
":"
(or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
(propagated-inputs (list python-scipy))
(native-inputs (list eigen
pybind11
python-cython
python-matplotlib
python-numpy
python-pytest
python-setuptools
python-sofa))
(inputs (list nanoflann))
(home-page "https://github.com/LCAV/pyroomacoustics")
(synopsis "Python library for room acoustics")
(description "@code{pyroomacoustics} is a framework for simulating the
acustic behaviour of rooms, such as computing the impulse response using
different simulation methods.")
(license license:expat)))
(define-public python-pulsectl
(package
(name "python-pulsectl")
@@ -4044,40 +3916,6 @@ to send and receive OSC messages using a nice and simple Python API. Also
included are the command line utilities @code{send_osc} and @code{dump_osc}.")
(license license:lgpl2.1+)))
(define-public python-sofa
(package
(name "python-sofa")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/spatialaudio/python-sofa/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0n6mdck2dawfm6napqhhxi8gjyvs6121pblcr7zjl37a8ldqvg29"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;No tests
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-wrong-dependency
(lambda _
(substitute* "setup.py"
(("'datetime'")
"")))))))
(propagated-inputs (list python-netcdf4 python-numpy python-scipy))
(native-inputs (list python-setuptools))
(home-page "https://github.com/spatialaudio/python-sofa/")
(synopsis
"Python @acronym{Spatially Oriented Format for Acoustics, SOFA} API")
(description
"Python API for @acronym{Spatially Oriented Format for Acoustics, SOFA} files
as specified in @url{https://www.sofaconventions.org, SOFA conventions}.")
(license license:expat)))
(define-public python-soundfile
(package
(name "python-soundfile")
@@ -4213,7 +4051,9 @@ one-dimensional sample-rate conversion library.")
(string-append "'" #$(this-package-input "libsndfile")
"/lib/libsndfile"))))))))
(native-inputs
(list python-pytest python-setuptools))
(list python-pytest
python-pytest-cov
python-setuptools))
(inputs
(list libsndfile
portaudio))
@@ -4586,33 +4426,6 @@ This includes device enumeration and initialization, file loading, and
streaming.")
(license license:expat)))
(define-public wp-notifyd
(package
(name "wp-notifyd")
(version "1.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/LDAP/wp-notifyd")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1nkndz0li15maf0dc9x631p0dr8085wzz5358552wljv7chywrza"))))
(build-system meson-build-system)
(arguments
(list #:tests? #f)) ;there are no tests
(inputs (list libnotify
wireplumber-minimal
pipewire
spdlog))
(native-inputs (list pkg-config))
(home-page "https://github.com/LDAP/wp-notifyd")
(synopsis "Notification daemon for Wireplumber")
(description "@command{wp-notifyd} is a lightweight notification daemon for
@dfn{WirePlumber} (the session and policy manager for PipeWire).")
(license license:expat)))
(define-public pa-notify
(package
(name "pa-notify")
@@ -5017,42 +4830,6 @@ using Guix System.")
;; GNU Library (not Lesser) General Public License.
(license license:lgpl2.0+)))
(define-public hiir
(let ((commit "4a9a1e67fa6f8ce7688e1c0c8a2b017cecd206a3")
(revision "0"))
(package
(name "hiir")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/LostRobotMusic/hiir")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1wzlg0di768mzcik6fij4pd6dnpmbw8q236h478c057d10qfp44g"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~`(("." "/include/hiir"))))
(home-page "https://github.com/LostRobotMusic/hiir")
(synopsis "Header-only version of Laurent de Soras's HIIR 1.40 library")
(description
"This package provides a header-only version of the
@uref{http://ldesoras.free.fr/prod.html#src_hiir, HIIR library by Laurent De
Soras}, updated to version 1.40. HIIR is a C++ library for changing the
sampling rate of a signal by a factor two, in both directions (upsampling and
downsampling), obtaining two signals with a π/2 phase difference (Hilbert
transform). It is made of a two-path polyphase IIR filter, implemented with
FPU, 3DNow!, SSE, SSE2, AVX, AVX-512 and NEON instruction sets.
This package contains the same as the original library, except with the
contents of one source file moved into a header file (and set as inline) to
make the library header-only, and with the test folder removed.")
(license license:wtfpl2))))
(define-public redumper
(package
(name "redumper")
@@ -6581,59 +6358,6 @@ It is currently fairly complete for PCM devices, and has some support for
mixers.")
(license license:psfl)))
(define-public python-pyo
(package
(name "python-pyo")
(version "1.0.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/belangeo/pyo")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1igz75kv94dav28rzz19gckgfgdli05q5ghadlvm03ia7xd9l5zm"))))
(build-system pyproject-build-system)
(arguments
(list
;; TODO: collecting ... Fatal Python error: Segmentation fault
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-before 'sanity-check 'set-HOME
(lambda _
(setenv "HOME" "/tmp"))))))
(native-inputs
(list python-pytest
python-setuptools))
(inputs
(list liblo
libsndfile
portaudio
portmidi))
(propagated-inputs
(list python-wxpython))
(home-page "https://github.com/belangeo/pyo")
(synopsis "Python module to build digital signal processing program")
(description
"pyo is a Python module containing classes for a wide variety of audio
signal processing types.
With pyo, user will be able to include signal processing chains directly in
Python scripts or projects, and to manipulate them in real time through the
interpreter. Tools in pyo module offer primitives, like mathematical
operations on audio signal, basic signal processing (filters, delays,
synthesis generators, etc.), but also complex algorithms to create sound
granulation and others creative audio manipulations.
pyo supports OSC protocol (Open Sound Control), to ease communications between
softwares, and MIDI protocol, for generating sound events and controlling
process parameters. pyo allows creation of sophisticated signal processing
chains with all the benefits of a mature, and widely used, general programming
language.")
(license license:lgpl3+)))
(define-public ldacbt
(package
(name "ldacbt")
@@ -6713,23 +6437,22 @@ on the ALSA software PCM plugin.")
(define-public snd
(package
(name "snd")
(version "26.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://ccrma.stanford.edu/software/snd/snd-"
version ".tar.gz"))
(sha256
(base32
"1d573mjlrn9rhl9g0a3d1rkar34q60ln8mwlbibfalpn8lsz59a0"))))
(version "25.2")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
"0fgxqk0byxdj6059mb9d5qic2dqjabz49j0szsrn2y3c9nz6iyq4"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; No tests.
#:out-of-source? #f ; Required by 'install-doc'.
#:tests? #f ; no tests
#:out-of-source? #f ; for the 'install-doc' phase
#:configure-flags
#~(let
((docdir (string-append #$output "/share/doc/snd-" #$version)))
#~(let ((docdir (string-append #$output "/share/doc/"
#$name "-" #$version)))
(list "--with-alsa"
"--with-jack"
"--with-gmp"
@@ -6737,20 +6460,18 @@ on the ALSA software PCM plugin.")
(string-append "--with-doc-dir=" docdir)))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-s7-h
(add-after 'install 'install-s7
(lambda _
(install-file "s7.h" (string-append #$output
"/include"))))
(install-file "s7.h" (string-append #$output "/include"))))
(add-after 'install 'install-doc
(lambda _
(let
((docdir (string-append #$output "/share/doc/snd-"
#$version)))
(let ((doc (string-append #$output "/share/doc/"
#$name "-" #$version)))
(for-each
(lambda (f)
(install-file f docdir))
(install-file f doc))
(find-files "." "\\.html$"))
(copy-recursively "pix" (string-append docdir "/pix"))))))))
(copy-recursively "pix" (string-append doc "/pix"))))))))
(native-inputs
(list pkg-config))
(inputs
@@ -6769,16 +6490,13 @@ on the ALSA software PCM plugin.")
timidity++
vorbis-tools
wavpack))
(home-page "https://ccrma.stanford.edu/software/snd/snd/snd.html")
(synopsis "Sound editor")
(home-page "https://ccrma.stanford.edu/software/snd/")
(description
"Snd is a sound editor modelled loosely after Emacs. It can be
customized and extended using either the s7 Scheme implementation (included in
the Snd sources), Ruby, or Forth.")
(license
;; INFO: pkgsrc classifies this as `esdl-license', a license not included
;; in OSI or FSF lists, despite being similar to ISC.
(license:non-copyleft "file://COPYING"))))
(license (license:non-copyleft "file://COPYING"))))
(define-public libspecbleach
(package
@@ -7213,6 +6931,32 @@ developing fully accurate DirectX Audio runtime libraries.")
license:expat
license:public-domain))))
(define-public gnaural
(package
(name "gnaural")
(version "20110606")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnaural/Gnaural/gnaural_"
version ".tar.xz"))
(sha256
(base32
"1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
(build-system gnu-build-system)
(inputs
(list alsa-lib gtk+-2 libsndfile portaudio))
(native-inputs
(list pkg-config))
(home-page "https://gnaural.sourceforge.net/")
(synopsis "Binaural beat synthesizer")
(description "Gnaural is a programmable auditory binaural beat synthesizer
intended to be used for brainwave entrainment. Gnaural supports creation of
binaural beat tracks of different frequencies and exporting of tracks into
different audio formats. Gnaural can also be linked over the internet with
other Gnaural instances, allowing synchronous sessions between many users.")
(license license:gpl2+)))
(define-public darkice
(package
(name "darkice")
@@ -7423,7 +7167,6 @@ as is the case with audio plugins.")
(find-files "bin")))))))))
(inputs
(list alsa-lib
bash-minimal
ffmpeg
fluidsynth
file
@@ -7481,8 +7224,8 @@ default and preferred audio driver but also supports native drivers like ALSA.")
;;; This package variant tracks the latest in-development 2.6 release.
(define-public carla-2.6
(let ((commit "294a80145e39c0755ab9073d90fd8b9524fbfc84")
(revision "1"))
(let ((commit "aa400535b31c67f4b6c1b28e6e20e4d4f82111a3")
(revision "0"))
(package
(inherit carla)
(name "carla")
@@ -7496,12 +7239,7 @@ default and preferred audio driver but also supports native drivers like ALSA.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "053yfwf9l9vqvq95c354by6nm8ym0wgkv3fr1434x5w9n1344z0z"))))
(inputs
(modify-inputs (package-inputs carla)
(replace "python-pyqt" python-pyqt-6)
(replace "qtbase" qtbase)
(replace "qtwayland" qtwayland))))))
(base32 "0cnj2sgr60f5h6wdfmihc214wf3n74686sipl3iyzmylqrcyhbjn")))))))
;; This source is a fork of vst3sdk with the documentation and VSTGUI
;; submodules removed and a dummy `meson.build` file that just lists all
@@ -7991,59 +7729,60 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
(delete-file-recursively "third_party")
(delete-file-recursively "modules")))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DLINK_BUILD_QT_EXAMPLES=ON"
"-DLINK_BUILD_JACK=ON")
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs tests? #:allow-other-keys)
(when tests?
(let* ((python (search-input-file inputs "/bin/python3"))
(run-tests "../source/ci/run-tests.py"))
(invoke python run-tests "--target" "LinkCoreTest")
(invoke python run-tests "--target" "LinkDiscoveryTest")))))
(add-before 'install 'patch-cmake
(lambda* (#:key inputs #:allow-other-keys)
(let* ((source "../source/"))
(substitute* (string-append source
"cmake_include/AsioStandaloneConfig.cmake")
(((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
"modules/asio-standalone/asio/include"))
(dirname (search-input-file inputs "include/asio.hpp"))))
(substitute* (string-append source "AbletonLinkConfig.cmake")
(("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include")
"${CMAKE_CURRENT_LIST_DIR}/../../../include")
(("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp")
"${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")))))
(replace 'install
(lambda _
(let* ((out #$output)
(lib-cmake (string-append out "/lib/cmake/ableton-link"))
(source "../source"))
(for-each delete-file
'("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
(copy-recursively "bin" (string-append out "/bin"))
(copy-recursively (string-append source "/include/ableton")
(string-append out "/include/ableton"))
(install-file (string-append source "/AbletonLinkConfig.cmake")
lib-cmake)
(install-file (string-append source
"/cmake_include/AsioStandaloneConfig.cmake")
(string-append lib-cmake "/cmake_include"))))))))
(native-inputs
(list catch-framework
portaudio ;for portaudio examples
python ;for running tests
python-setuptools)) ;for running tests
python ;for running tests
portaudio)) ;for portaudio examples
(inputs
(list jack-1)) ;for JACK examples
(propagated-inputs
;; This is because include/ableton/platforms/asio/AsioWrapper.hpp
;; contains '#include <asio.hpp>'.
(list asio-1.28))
(arguments
`(#:configure-flags
'("-DLINK_BUILD_QT_EXAMPLES=ON"
"-DLINK_BUILD_JACK=ON")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs tests? #:allow-other-keys)
(when tests?
(let* ((python (search-input-file inputs "/bin/python3"))
(run-tests "../source/ci/run-tests.py"))
(invoke python run-tests "--target" "LinkCoreTest")
(invoke python run-tests "--target" "LinkDiscoveryTest")))))
(add-before 'install 'patch-cmake
(lambda* (#:key inputs #:allow-other-keys)
(let* ((source "../source/"))
(substitute* (string-append source
"cmake_include/AsioStandaloneConfig.cmake")
(((string-append "\\$\\{CMAKE_CURRENT_LIST_DIR\\}/\\.\\./"
"modules/asio-standalone/asio/include"))
(string-append (assoc-ref inputs "asio")
"/include")))
(substitute* (string-append source "AbletonLinkConfig.cmake")
(("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include")
"${CMAKE_CURRENT_LIST_DIR}/../../../include")
(("\\$\\{CMAKE_CURRENT_LIST_DIR\\}/include/ableton/Link\\.hpp")
"${CMAKE_CURRENT_LIST_DIR}/../../../include/ableton/Link.hpp")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib-cmake (string-append out "/lib/cmake/ableton-link"))
(source "../source"))
(for-each (lambda (test-file)
(delete-file test-file))
'("bin/LinkDiscoveryTest" "bin/LinkCoreTest"))
(copy-recursively "bin" bin)
(copy-recursively (string-append source "/include/ableton")
(string-append out "/include/ableton"))
(install-file (string-append source "/AbletonLinkConfig.cmake")
lib-cmake)
(install-file (string-append source
"/cmake_include/AsioStandaloneConfig.cmake")
(string-append lib-cmake "/cmake_include"))))))))
(home-page "https://github.com/Ableton/link")
(synopsis "Synchronize musical beat, tempo, and phase across multiple applications")
(description
@@ -8141,16 +7880,7 @@ Icecast server.")
(lambda _
(substitute* "misc.c"
(("#include <stdio.h>\n" all)
(string-append all "#include <string.h>\n")))
(substitute* "wavsubs.c"
(("#include \"wavsubs.h\"\n" all)
(string-append all "#include <stdlib.h>")))
(substitute* "wavfile.c"
(("#include \"wavsubs.h\"\n" all)
(string-append all "#include <stdlib.h>")))
(substitute* "generator.c"
(("#include \"wavsubs.h\"\n" all)
(string-append all "#include <stdlib.h>")))))
(string-append all "#include <string.h>\n")))))
(delete 'configure)
(replace 'install
(lambda* (#:key make-flags outputs #:allow-other-keys)
@@ -8162,8 +7892,7 @@ Icecast server.")
(inputs
(list ncurses))
(native-inputs
`(("gcc" ,gcc-9)
("groff" ,groff-minimal) ; for nroff
`(("groff" ,groff-minimal) ; for nroff
("util-linux" ,util-linux))) ; for col
(home-page "https://github.com/bleskodev/siggen")
(synopsis "Signal generation tools")
@@ -8239,7 +7968,7 @@ as sample rate, determining whether an audio file is silent, and much more.")
(propagated-inputs
(list python-numba python-numpy python-scipy python-six))
(native-inputs
(list python-pytest python-setuptools python-wheel))
(list python-pytest python-pytest-cov python-setuptools python-wheel))
(home-page "https://github.com/bmcfee/resampy")
(synopsis "Efficient signal resampling")
(description
@@ -8257,24 +7986,25 @@ Home Page}.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/librosa/librosa/")
(commit version)
;; TODO: Package test data.
(recursive? #true)))
(file-name (git-file-name name version))
(url "https://github.com/librosa/librosa/")
(commit version)
;; For test files.
(recursive? #true)))
(sha256
(base32 "065x43hx670rjrclxi4hiqxscllb16v9s7myjvg7rd5pd3y0k7sg"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "-k" (string-append
;; Resampling tests require python-samplerate.
"not resample"
;; These tests use Pooch and download data files.
" and not example and not test_cite"
;; XXX assert 22050 == 31744
" and not test_stream"))))
;; Ignore --mpl flag.
'(list "-c" "/dev/null"
"-k" (string-append
;; Resampling tests require python-samplerate.
"not resample"
;; These tests use Pooch and download data files.
" and not example and not test_cite"
;; XXX assert 22050 == 31744
" and not test_stream"))))
(propagated-inputs
(list python-audioread
python-decorator
@@ -8293,9 +8023,10 @@ Home Page}.")
(list python-matplotlib
python-packaging
python-pytest
python-pytest-mpl
python-pytest-cov
python-resampy
python-setuptools))
python-setuptools
python-wheel))
(home-page "https://librosa.org")
(synopsis "Python module for audio and music processing")
(description
@@ -8389,7 +8120,7 @@ and DSD streams.")
(define-public qpwgraph
(package
(name "qpwgraph")
(version "1.0.0")
(version "0.9.9")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8398,7 +8129,7 @@ and DSD streams.")
(file-name (git-file-name name version))
(sha256
(base32
"0l3fflfpwkqy4iif8ifzzr3yy39ahzqdixx5g3rhj3zzbaysj73h"))))
"03001pvcbvr206k00751232gm50x1icf086z8c5hiakl2ym79gwl"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ; no tests
+57 -43
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2018, 2020-2022, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
@@ -157,7 +157,7 @@ know anything about Autoconf or M4.")
(base32
"0niz4852fgyavfh3gr4h4kzalk01nk70v6vfsja6r3ap349mr25s"))))))
(define-public autoconf autoconf-2.69)
(define-public autoconf autoconf-2.72)
(define-public autoconf-2.68
(package (inherit autoconf)
@@ -438,14 +438,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public automake
(package/inherit automake-1.16.5
(name "automake")
(version "1.17")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"146rkdcwri2dkwn3pjrjs9v0wm4xyav9vvq4yw5vj4qy87yc2849"))
"11v8ckqx7z8hv4mq9dnhg58cwnssaa7l9136yndbhlc34xis72hn"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))
(arguments
@@ -483,16 +483,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public libtool
(package
(name "libtool")
(version "2.4.7")
(version "2.5.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz"))
(sha256
(base32
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))
(patches (search-patches "libtool-skip-tests2.patch"
"libtool-grep-compat.patch"))))
"0xb64rhambx6mhxwr613xgyad7ybs5hgmpmd9gccf2vbcrh5h7zq"))))
(build-system gnu-build-system)
(propagated-inputs (list m4))
(native-inputs
@@ -506,43 +504,59 @@ Makefile, simplifying the entire process for the developer.")
autoconf-wrapper)) ; others on 'autom4te'
(arguments
`(;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags '("--disable-ltdl-install")
(list ;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags #~'("--disable-ltdl-install")
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
;; Also, do not run tests when cross compiling
#:tests? ,(not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
;; The 'libtool' script refers to the toolchain; tolerate it.
#:disallowed-references '()
#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda* (#:key inputs native-inputs parallel-tests? #:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Patch references to /bin/sh.
(let ((/bin/sh (search-input-file (or native-inputs inputs) "bin/sh")))
(substitute* "tests/testsuite"
(("/bin/sh") /bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%" file)
(substitute* file
(("^#!.*/bin/sh") "#!/bin/sh")))
(find-files dir))))))))
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
;; Also, do not run tests when cross compiling
#:tests? (not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'skip-some-tests-on-extra-archs
(lambda _
(with-directory-excursion "tests"
(substitute* '("demo.at" "testsuite")
(("hppa\\*\\|amd64\\*\\|x86_64\\*\\|s390\\*"
all)
(string-append all "|arm*|mips*|riscv*"))))))
(add-before 'check 'pre-check
(lambda* (#:key inputs native-inputs parallel-tests?
#:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Patch references to /bin/sh.
(let ((/bin/sh (search-input-file (or native-inputs inputs)
"bin/sh")))
(substitute* "tests/testsuite"
(("/bin/sh")
/bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out
"/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%"
file)
(substitute* file
(("^#!.*/bin/sh")
"#!/bin/sh")))
(find-files dir))))))))
(synopsis "Generic shared library support tools")
(description
@@ -1989,7 +1989,7 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
CONFIG_SCSI_VIRTIO=m
# CONFIG_SCSI_VIRTIO is not set
# CONFIG_SCSI_DH is not set
# end of SCSI device support
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,58 +0,0 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
import importlib.util
import json
def pytest_addoption(parser):
"""Add stub options to be ignored by pytest.
More precisely, inject all options provided in .pytest_guix_options.json,
except options whose plugin is indeed installed.
For example, if the json file records --cov:
if the pytest_cov module is installed, its --cov will be used.
otherwise, --cov is ignored (read by this parser, but nothing is done
with it).
Flags can be given with additional keyword arguments in a json object.
If the json object is not given, fallback to the default
{"action": "append", "nargs": "?"}. In practice, these arguments are only
mandatory for the store_true and store_const actions to avoid eating other
arguments.
This allows to remove development packages, which are not required at build
time while at the same time avoiding the need to adjust test options in
pyproject.toml or other configuration files.
"""
with open(".pytest_guix_options.json", "r") as options_file:
plugin_options = json.load(options_file)
group = parser.getgroup(
"guix", "Options ignored by the Guix pyproject-build-system"
)
# Only add options for plugins that are not present.
for key, options in plugin_options.items():
if importlib.util.find_spec(f"pytest_{key}") is None:
# Plugin not found, add stub options
for option, kwargs in options.items():
if kwargs:
group.addoption(option, **kwargs)
else:
group.addoption(option, action="append", nargs="?")
+69 -70
View File
@@ -50,6 +50,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -106,7 +107,6 @@
#:use-module (gnu packages rsync)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
@@ -137,6 +137,7 @@
python-paramiko
python-pexpect
python-pytest
python-pytest-runner
python-setuptools-scm
tzdata-for-tests
python-mock))
@@ -546,7 +547,7 @@ remain fully idle, saving power and producing less noise.")
"0miklk4bqblpyzh1bni4x6lqn88fa8fjn15x1k1n8bxkx60nlymd"))))
(build-system gnu-build-system)
(inputs
(list librsync))
(list librsync-0.9))
(arguments
`(#:make-flags `("CFLAGS=-fcommon"
,(string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -631,26 +632,41 @@ rsnapshot uses hard links to deduplicate identical files.")
(define-public borg
(package
(name "borg")
(version "1.4.4")
(version "1.4.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/borgbackup/borg")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32 "0bk302lbjjz1y8dg78wqqys80bm7mzkj5yf6wgyqdwvbqpsnpim4"))))
(base32 "07s4jqcv03s98hi6lvqpvmnnhl532qnvv11mjy2xc08rbmsgmfvr"))
(snippet
#~(begin
;; Delete files generated by Cython. We used to have a regex that
;; created the list of generated files but Borg has added new
;; non-generated C files that cause the regex to generate the
;; wrong list.
(for-each delete-file
'("src/borg/algorithms/checksums.c"
"src/borg/chunker.c"
"src/borg/compress.c"
"src/borg/crypto/low_level.c"
"src/borg/hashindex.c"
"src/borg/item.c"
"src/borg/platform/darwin.c"
"src/borg/platform/freebsd.c"
"src/borg/platform/linux.c"
"src/borg/platform/posix.c"
"src/borg/platform/syncfilerange.c"
"src/borg/platform/windows.c"))))))
(build-system pyproject-build-system)
(arguments
(list
#:modules '((srfi srfi-26) ; for cut
(guix build utils)
(guix build pyproject-build-system))
;; tests: 1318 passed, 293 skipped
#:test-flags
#~(list "--benchmark-skip"
"--numprocesses" (number->string (min 8 (parallel-job-count)))
"--numprocesses" (number->string (parallel-job-count))
"--pyargs" "borg.testsuite"
"-k" (string-join
;; These tests need to write to '/var'.
@@ -671,15 +687,7 @@ rsnapshot uses hard links to deduplicate identical files.")
"test_mount_hardlinks "
"test_readonly_mount "
"test_fuse_versions_view "
"test_migrate_lock_alive"
;; Test files are not in /gnu/store
"test_convert_all[False]"
"test_convert_all[True]"
"test_convert_segments[False]"
"test_convert_segments[True]"
"test_detect_attic_repo"
"test_key_export_qr"
"test_keys")
"test_migrate_lock_alive")
" and not "))
#:phases
#~(modify-phases %standard-phases
@@ -695,58 +703,46 @@ rsnapshot uses hard links to deduplicate identical files.")
(setenv "BORG_LIBLZ4_PREFIX" lz4)
(setenv "BORG_LIBXXHASH_PREFIX" xxhash)
(setenv "BORG_LIBZSTD_PREFIX" zstd))))
(add-before 'build 'fix-testsuite-setuid-mode
(add-after 'install 'install-doc
(lambda _
(substitute* "src/borg/testsuite/archiver.py"
(("0o4755") "0o0755"))))
(add-after 'install 'build-and-install-docs
(lambda _
(let* ((doc (string-append #$output "/share/doc/borg-" #$version))
(html (string-append doc "/html"))
(txt (string-append doc "/txt"))
(misc (string-append doc "/misc"))
(man (string-append #$output "/share/man/man1")))
(with-directory-excursion "docs"
(invoke "make" "text" "man" "singlehtml"))
(let ((man (string-append #$output "/share/man/man1"))
(misc (string-append #$output "/share/doc/borg-"
#$(package-version this-package))))
(for-each (cut install-file <> misc)
'("docs/misc/create_chunker-params.txt"
"docs/misc/borg-data-flow.png"
"docs/misc/internals-picture.txt"
"docs/misc/prune-example.txt"))
(copy-recursively "docs/_build/man" man)
(copy-recursively "docs/_build/singlehtml" html)
(copy-recursively "docs/_build/text" txt))))
(add-after 'build-and-install-docs 'install-shell-completions
(copy-recursively "docs/man" man))))
(add-after 'install-doc 'install-shell-completions
(lambda _
(let* ((etc (string-append #$output "/etc"))
(share (string-append #$output "/share"))
(bash (string-append etc "/bash_completion.d"))
(zsh (string-append share "/zsh/site-functions"))
(fish (string-append share "/fish/vendor_completions.d")))
(let ((etc (string-append #$output "/etc"))
(share (string-append #$output "/share")))
(with-directory-excursion "scripts/shell_completions"
(install-file "bash/borg" bash)
(install-file "zsh/_borg" zsh)
(install-file "fish/borg.fish" fish))))))))
(install-file "bash/borg"
(string-append etc "/bash_completion.d"))
(install-file "zsh/_borg"
(string-append share "/zsh/site-functions"))
(install-file "fish/borg.fish"
(string-append share "/fish/vendor_completions.d")))))))))
(native-inputs
(list python-cython
python-guzzle-sphinx-theme
python-pkgconfig
python-dateutil
python-pytest
python-pytest-benchmark
python-pytest-xdist
python-setuptools
python-setuptools-scm
python-sphinx
python-sphinxcontrib-jquery))
python-wheel))
(inputs
(list acl
lz4
openssl
python-msgpack
;; This is the latest version of msgpack accepted by 'setup.py'.
python-msgpack-for-borg
;; FUSE 3 isn't working well, so we stick with FUSE 2 for now:
;; <https://issues.guix.gnu.org/53407>
python-llfuse
python-packaging
xxhash
`(,zstd "lib")))
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
@@ -897,7 +893,7 @@ is like a time machine for your data.")
(define-public restic
(package
(name "restic")
(version "0.18.1")
(version "0.17.3")
(source
(origin
(method git-fetch)
@@ -906,7 +902,7 @@ is like a time machine for your data.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0gxhknn022bwg2s8hababqg3vjkzflq59vr67y7r1c8fjnlsgf4l"))))
(base32 "1wsgq7f0bfi0i5iiwcc3hlf2lhxcnz3zfs8p8bc6l913r9hvyg1x"))))
(build-system go-build-system)
(arguments
(list
@@ -915,18 +911,15 @@ is like a time machine for your data.")
#:import-path "github.com/restic/restic/cmd/restic"
#:unpack-path "github.com/restic/restic"
#:embed-files #~(list "children" "nodes" "text")
#:test-flags
;; Python is required.
#~(list "-skip" "TestStdinFromCommand|TestStdinFromCommandNoOutput")
#:test-subdirs #~(list "../../...")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-python-path
(lambda* (#:key inputs unpack-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" unpack-path)
(substitute* "cmd/restic/cmd_backup_integration_test.go"
(("python")
(search-input-file inputs "/bin/python3"))))))
(add-after 'install 'install-docs
(lambda* (#:key unpack-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" unpack-path)
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(let* ((man "/share/man")
(man-section (string-append man "/man")))
;; Install all the man pages to "out".
@@ -949,12 +942,12 @@ is like a time machine for your data.")
go-github-com-cenkalti-backoff-v4
go-github-com-cespare-xxhash-v2
go-github-com-elithrar-simple-scrypt
;; go-github-com-go-ole-go-ole ;Windows only
;; go-github-com-go-ole-go-ole ;windows only
go-github-com-google-go-cmp
go-github-com-hashicorp-golang-lru-v2
go-github-com-klauspost-compress
;; go-github-com-microsoft-go-winio ;Windows only
go-github-com-minio-minio-go-v7
go-github-com-minio-sha256-simd
go-github-com-ncw-swift-v2
go-github-com-peterbourgon-unixtransport
go-github-com-pkg-errors
@@ -974,7 +967,6 @@ is like a time machine for your data.")
go-golang-org-x-text
go-golang-org-x-time
go-google-golang-org-api
python-minimal
;; XXX: These packages have to be bootstrapped to break cycle with
;; go-google-golang-org-grpc.
@@ -1268,9 +1260,10 @@ compression parameters used by Gzip.")
(define-public borgmatic
(package
(name "borgmatic")
(version "2.1.5")
(version "2.1.2")
(source
(origin
;; PyPI archive does not contain NEWS file needed for one test.
(method git-fetch)
(uri (git-reference
(url "https://projects.torsion.org/borgmatic-collective/borgmatic")
@@ -1278,11 +1271,10 @@ compression parameters used by Gzip.")
(file-name (git-file-name name version))
(sha256
(base32
"17i15ysg0wbcnfvki8wz2z9gx3zx99czv3czjh83y2m1xppvqbl5"))))
"0vrpl21n6hf3pj0di4n7s36jq64sx24c93j48cmbdgczs8jiwi36"))))
(build-system pyproject-build-system)
(arguments
(list
;; tests: 2609 passed
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'configure
@@ -1297,12 +1289,19 @@ compression parameters used by Gzip.")
(("(module.get_local_path.+ == )'borg'" all start)
(string-append start "'"
(search-input-file inputs "bin/borg")
"'"))))))))
"'")))))
(add-before 'check 'set-path
(lambda _
;; Tests require the installed executable.
(setenv "PATH"
(string-append #$output "/bin" ":"
(getenv "PATH"))))))))
(native-inputs
(list python-flexmock
python-pytest
python-pytest-timeout
python-setuptools))
python-pytest-cov
python-setuptools
python-wheel))
(inputs
(list borg
python-apprise
@@ -1364,9 +1363,9 @@ borgmatic is powered by borg.")
(assoc-ref qt:%standard-phases 'qt-wrap)))))
(native-inputs
(list python-platformdirs
python-pytest
python-pytest-mock
python-pytest-qt
python-pytest-runner
python-setuptools
python-setuptools-git))
(inputs
+316 -318
View File
@@ -24,6 +24,7 @@
;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2025 Nikita Mitasov <me@ch4og.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -119,14 +120,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
(version "3.11")
(version "3.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
"1avf4x8skxbqrjp5j2qr9sp5vlf8jkw2i5bdn51fl3cxx3fsxchx"))
"1f87i907dzw31xy1xr8xjj6z9979qq3bwmypvkm35rlh1ryb4j96"))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs (list perl)) ;some of the tests require it
@@ -247,47 +248,49 @@ implementation offers several extensions over the standard utility.")
(build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space.
(arguments
`(,@(cond
((target-hurd?)
'(#:make-flags
(list (string-append
"TESTSUITEFLAGS= -k '"
"!sparse"
",!renamed dirs in incrementals"
",!--exclude-tag option in incremental pass"
",!incremental dumps with -C"
",!incremental dumps of nested directories"
",!incremental restores with -C"
",!concatenated incremental archives (renames)"
",!renamed directory containing subdirectories"
",!renamed subdirectories"
",!chained renames"
",!Directory"
"'"))))
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
;; due to the small HDD and RAM present on these devices.
((target-ppc32?)
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
"'!tricky time stamps"
",!storing sparse files > 8G'"))))
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
;; skipping the test for this release on 32-bit systems.
((target-32bit?)
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
(else '()))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
,@(if (target-hurd32?)
(list #:configure-flags ''("--disable-year2038"))
'())
#:phases (modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/system.c"
(("/bin/sh")
(string-append bash "/bin/sh")))))))))
(append
(cond
((target-hurd?)
'(#:make-flags
(list (string-append
"TESTSUITEFLAGS= -k '"
"!sparse"
",!renamed dirs in incrementals"
",!--exclude-tag option in incremental pass"
",!incremental dumps with -C"
",!incremental dumps of nested directories"
",!incremental restores with -C"
",!concatenated incremental archives (renames)"
",!renamed directory containing subdirectories"
",!renamed subdirectories"
",!chained renames"
",!Directory"
"'"))))
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
;; due to the small HDD and RAM present on these devices.
((target-ppc32?)
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
"'!tricky time stamps"
",!storing sparse files > 8G'"))))
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
;; skipping the test for this release on 32-bit systems.
((not (target-64bit?))
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
(else '()))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
(if (target-hurd32?)
(list #:configure-flags #~(list "--disable-year2038"))
'())
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
(substitute* "src/system.c"
(("/bin/sh")
(search-input-file inputs "bin/sh")))))))))
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
;; to refer to the target Bash.
@@ -306,41 +309,8 @@ standard utility.")
(license gpl3+)
(home-page "https://www.gnu.org/software/tar/")))
;;; TODO: Replace/merge with 'patch' on core-updates.
(define-public patch/pinned
(hidden-package
(package
(name "patch")
(version "2.7.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/patch/patch-"
version ".tar.xz"))
(sha256
(base32
"1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"))
(patches (search-patches "patch-hurd-path-max.patch"))))
(build-system gnu-build-system)
(arguments
;; Work around a cross-compilation bug whereby libpatch.a would provide
;; '__mktime_internal', which conflicts with the one in libc.a.
(if (%current-target-system)
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
'()))
(native-inputs (list ed))
(synopsis "Apply differences to originals, with optional backups")
(description
"Patch is a program that applies changes to files based on differences
laid out as by the program \"diff\". The changes may be applied to one or more
files depending on the contents of the diff file. It accepts several
different diff formats. It may also be used to revert previously applied
differences.")
(license gpl3+)
(home-page "https://savannah.gnu.org/projects/patch/"))))
(define-public patch
(package
(inherit patch/pinned)
(name "patch")
(version "2.8")
(source (origin
@@ -350,13 +320,27 @@ differences.")
(sha256
(base32
"1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q"))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments patch/pinned)
((#:configure-flags flags #~'())
(if (target-hurd32?)
#~(cons* "--disable-year2038"
#$flags)
flags))))
(list
#:configure-flags
#~(append
(if #$(%current-target-system)
(list "gl_cv_func_working_mktime=yes")
'())
(if #$(target-hurd32?)
(list "--disable-year2038")
'()))))
(native-inputs (list ed))
(synopsis "Apply differences to originals, with optional backups")
(description
"Patch is a program that applies changes to files based on differences
laid out as by the program \"diff\". The changes may be applied to one or more
files depending on the contents of the diff file. It accepts several
different diff formats. It may also be used to revert previously applied
differences.")
(license gpl3+)
(home-page "https://savannah.gnu.org/projects/patch/")
(properties '())))
(define-public diffutils
@@ -632,20 +616,21 @@ standard.")
(inputs (list guile-3.0))
(outputs '("out" "debug"))
(arguments
`(,@(if (target-hurd?)
'(#:configure-flags '("CFLAGS=-D__alloca=alloca"
"ac_cv_func_posix_spawn=no"))
'())
(append
(if (target-hurd?)
(list #:configure-flags '("CFLAGS=-D__alloca=alloca"
"ac_cv_func_posix_spawn=no"))
(list))
(list
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
#~(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(substitute* "src/job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))
(format #f "default_shell = \"~a\";\n"
(search-input-file inputs "/bin/sh"))))))))))
(synopsis "Remake files automatically")
(description
"Make is a program that is used to control the production of
@@ -669,17 +654,17 @@ change. GNU make offers many powerful extensions over the standard utility.")
(base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
(arguments
`(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))))
(list
#:configure-flags #~(list "CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a\";\n"
(search-input-file inputs "/bin/sh")))))))))))
(define-public binutils
(package
@@ -693,6 +678,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
(sha256
(base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn"))
(patches (search-patches
"binutils-reproducible-tar.patch"
"binutils-2.41-fix-cross.patch"
"binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
@@ -728,7 +714,8 @@ change. GNU make offers many powerful extensions over the standard utility.")
;; For some reason, the build machinery insists on rebuilding .info
;; files, even though they're already provided by the tarball.
#:make-flags #~'("MAKEINFO=true")))
(native-inputs (list bison)) ;needed to build 'gprofng'
(native-inputs (list bison ;needed to build 'gprofng'
perl)) ;needed to build the man pages (pod2man)
(synopsis "Binary utilities: bfd gas gprof ld")
(description
"GNU Binutils is a collection of tools for working with binary files.
@@ -908,6 +895,7 @@ the store.")
(list "glibc-ldd-powerpc.patch"
"glibc-2.41-ldd-x86_64.patch"
"glibc-2.40-dl-cache.patch"
"glibc-fix-path-attribute-in-getconf.patch"
"glibc-2.37-versioned-locpath.patch"
;; "glibc-allow-kernel-2.6.32.patch"
"glibc-guix-locpath.patch"
@@ -957,247 +945,257 @@ the store.")
"static")) ;9 MiB of .a files
(arguments
`(#:out-of-source? #t
(list
#:out-of-source? #t
;; The libraries have an empty RUNPATH, but some, such as the versioned
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks.
#:validate-runpath? #f
;; The libraries have an empty RUNPATH, but some, such as the versioned
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks.
#:validate-runpath? #f
#:modules ((ice-9 ftw)
#:modules `((ice-9 ftw)
(ice-9 match)
(srfi srfi-1)
(srfi srfi-26)
(guix build gremlin)
(guix build utils)
(guix build gnu-build-system))
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags '("--strip-debug")
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags #~'("--strip-debug")
#:configure-flags
(list "--sysconfdir=/etc"
#:configure-flags
#~(list "--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want.
;;
;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;;
;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
,(version-major+minor version))
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want.
;;
;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;;
;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
#$(version-major+minor version))
(string-append "--with-headers="
(assoc-ref ,(if (%current-target-system)
'%build-target-inputs
'%build-inputs)
"kernel-headers")
"/include")
;; Here we need to refer to kernel headers and not glibc-mesboot
(string-append
"--with-headers="
(and=>
(find
(match-lambda
((label . input)
(and (file-exists?
(string-append input "/include/asm/ioctl.h"))
;; Ensure we're not refering to another libc.
(not (file-exists?
(string-append input "/include/locale.h"))))))
#$(if (%current-target-system)
#~%build-target-inputs
#~%build-inputs))
cdr) "/include")
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0"
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0"
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash")
"/bin/bash")
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(search-input-file %build-inputs "/bin/bash"))
;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them.
,@(if (target-hurd?)
`("--disable-werror")
'()))
;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them.
#$@(if (target-hurd?)
#~("--disable-werror")
#~()))
#:tests? #f ; XXX
#:phases (modify-phases %standard-phases
(add-before
'configure 'pre-configure
(lambda* (#:key inputs native-inputs outputs
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
;; FIXME: Normally we would look it up only in INPUTS
;; but cross-base uses it as a native input.
(bash (or (assoc-ref inputs "static-bash")
(assoc-ref native-inputs "static-bash"))))
;; Install the rpc data base file under `$out/etc/rpc'.
(substitute* "inet/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append out "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " out "/etc/rpc\n")))
#:tests? #f ; XXX
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let* ((bin (string-append #$output "/bin"))
(bash (find
(match-lambda
((label . input)
(let ((sh (string-append input "/bin/sh")))
(and (file-exists? sh)
;; Is it bash-static specifically? The
;; label can't be used because of
;; bash-mesboot during the bootstrap.
(not (file-dynamic-info sh))))))
inputs))
(bash (and=> bash cdr)))
;; Install the rpc data base file under `$out/etc/rpc'.
(substitute* "inet/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append #$output "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " #$output "/etc/rpc\n")))
(substitute* "Makeconfig"
;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC
;; 4.7.1.
((" -lgcc_s") ""))
(substitute* "Makeconfig"
;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC
;; 4.7.1.
((" -lgcc_s") ""))
;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\"")))
;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\"")))
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n"
bash)))
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n" bash)))
;; Same for `popen'.
(substitute* "libio/iopopen.c"
(("/bin/sh")
(string-append bash "/bin/sh")))
;; Same for `popen'.
(substitute* "libio/iopopen.c"
(("/bin/sh")
(string-append bash "/bin/sh")))
;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n")))
;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n")))
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
(("^#!.*")
;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
(("^#!.*")
;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
(add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC.
(add-after 'install 'move-static-libs
(lambda _
;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC.
(define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header.
(let ((file (string-append (assoc-ref outputs "out")
"/lib/" file)))
(and (ar-file? file)
(= (stat:size (stat file)) 8))))
(define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header.
(let ((file (string-append #$output "/lib/" file)))
(and (ar-file? file)
(= (stat:size (stat file)) 8))))
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
(not (string-contains file "_nonshared"))
(not (empty-static-library? file))))
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
(not (string-contains file "_nonshared"))
(not (empty-static-library? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
;; linker script.
(and (not (ar-file? file))
(not (elf-file? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
;; linker script.
(and (not (ar-file? file))
(not (elf-file? file))))
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(files (scandir lib static-library?))
(empty (scandir lib empty-static-library?))
(static (assoc-ref outputs "static"))
(slib (string-append static "/lib")))
(mkdir-p slib)
(for-each (lambda (base)
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
(for-each (lambda (base)
(copy-file (string-append lib "/" base)
(string-append slib "/" base)))
empty)
(let* ((lib (string-append #$output "/lib"))
(files (scandir lib static-library?))
(empty (scandir lib empty-static-library?))
(slib (string-append #$output:static "/lib")))
(mkdir-p slib)
(for-each (lambda (base)
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
(for-each (lambda (base)
(copy-file (string-append lib "/" base)
(string-append slib "/" base)))
empty)
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
;; instead of OUT.
(for-each (lambda (ld-script)
(substitute* ld-script
((out) static)))
(filter linker-script?
(map (cut string-append slib "/" <>)
files))))))
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
;; instead of OUT.
(for-each (lambda (ld-script)
(substitute* ld-script
((#$output)
#$output:static)))
(filter linker-script?
(map (cut string-append slib "/" <>)
files))))))
(add-after 'install 'install-utf8-c-locale
(lambda* (#:key outputs #:allow-other-keys)
;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(locale (string-append out "/lib/locale/"
,(package-version
this-package))))
(mkdir-p locale)
(add-after 'install 'install-utf8-c-locale
(lambda _
;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around.
(let ((bin (string-append #$output "/bin"))
(locale (string-append #$output "/lib/locale/"
#$(package-version
this-package))))
(mkdir-p locale)
;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version.
(invoke ,(if (%current-target-system)
"true"
'(string-append bin "/localedef"))
"--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8")))))
;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version.
(invoke #$(if (%current-target-system)
"true"
#~(string-append bin "/localedef"))
"--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8")))))
,@(if (target-hurd?)
`((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so"))))))
(add-after 'install 'create-machine-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(cpu ,(match (or (%current-target-system)
(%current-system))
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append
out "/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'()))))
#$@(if (target-hurd?)
`((add-after 'install 'augment-libc.so
(lambda _
(substitute* (string-append #$output "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append #$output "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))))
(add-after 'install 'create-machine-symlink
(lambda _
(let* ((cpu #$(match (or (%current-target-system)
(%current-system))
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append #$output
"/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'()))))
(inputs `(("static-bash" ,static-bash)))
(inputs (list static-bash))
;; To build the manual, we need Texinfo and Perl. Gettext is needed to
;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
("bison" ,bison)
("gettext" ,gettext-minimal)
("python" ,python-minimal)
,@(if (target-hurd?)
`(("mig" ,mig)
("perl" ,perl))
'())))
(native-inputs
(append
(list bison
gettext-minimal
perl
python-minimal
texinfo)
(if (target-hurd?)
(list mig)
(list))))
(native-search-paths
;; Search path for packages that provide locale data. This is useful
;; primarily in build environments. Use 'GUIX_LOCPATH' rather than
@@ -1300,8 +1298,8 @@ with the Linux kernel.")
;; The C.UTF-8 fails to build in glibc 2.35:
;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>.
;; It is missing altogether in versions earlier than 2.35.
`(modify-phases ,phases
(delete 'install-utf8-c-locale)))))))
#~(modify-phases #$phases
(delete 'install-utf8-c-locale)))))))
(define-public glibc-2.33
(package
@@ -1342,9 +1340,9 @@ with the Linux kernel.")
"libc_cv_cxx_link_ok=no"
#$flags))
((#:phases phases)
`(modify-phases ,phases
;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale)))))))
#~(modify-phases #$phases
;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale)))))))
(define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC."
+10 -44
View File
@@ -66,7 +66,7 @@
(define (patch-url seqno)
"Return the URL of Bash patch number SEQNO."
(format #f "mirror://gnu/bash/bash-5.2-patches/bash52-~3,'0d" seqno))
(format #f "mirror://gnu/bash/bash-5.3-patches/bash53-~3,'0d" seqno))
(define (bash-patch seqno sha256-bv)
"Return the origin of Bash patch SEQNO, with expected hash SHA256-BV."
@@ -79,47 +79,13 @@
(list (bash-patch seqno (base32 hash))
...))
(define %patch-series-5.2
;; This is the current patches series for 5.2, generated using
(define %patch-series-5.3
;; This is the current patches series for 5.3, generated using
;; 'download-patches' below.
(patch-series
(1 "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl")
(2 "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25")
(3 "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba")
(4 "04i5liw5cg6dqkdxfgazqc2jrw40bmclx3dx45bwy259pcj7g0iq")
(5 "0mykflv9qnbx3jz71l4f7isadiw9knm4qimqkwsv9cv88dafpq7c")
(6 "13265akl8w6zyrg0l7f0x6arjgqjhllcwl6lk46rl53x4mm5dq6i")
(7 "146lrwkn5wgxzs6vx34wl47g69zsxdy032k40qzi626b47ya6015")
(8 "1s5i8hcayrv25lc8fxcr431v634yx5sii53b8fmip789s0pxjjvb")
(9 "1kfk25151ka9wkmk1myf12irgcmvhsd8b0nfifvhrszah9w82npr")
(10 "1kf1jrwm30js0v3d1r2rk4x09s1pyjp70wnd1qqhf9bmkw15ww67")
(11 "1x5nkvbj6hci7gx42q7qa72hg2a9wwxh85dk79gn521ypwjmy6w3")
(12 "0b6lcwzm7v5bzjiwaz2c8n5aj77w8ckhp2vwk4v3zsdq3z70gc9g")
(13 "1rkwpibd6j2ghppfhqsva2jm4kdni6b7jpdsxdps52643gc4yjq9")
(14 "09766vqqw4ffnmysm725v35qkhp1g9j4qgqag941xvq655pj9y9y")
(15 "12im449abnq5gaqjmdxr5i38kmp02fa8l8wffad3jryvd58r0wzg")
(16 "05arb0hzmng03cr357lf6p8af0x2a1pznsd3psll03nibfy56n0m")
(17 "129cvx4gfz8n23iw1lhbknbw86fyw6vh60jqj1wj3d5pr75wwj0w")
(18 "105am94qxjc27gga4a8asvsi01090xwjfim3s16lafwjvm4xsha6")
(19 "10njgv5mrc5rhsp5lvxcbm0pnzn59a8spi2nhdasifyl1a32cp1j")
(20 "07f0wlmqjdfarp44w3gj9gdqbqm5x20rvlhpn34ngklmxcm2bz5n")
(21 "1kahfqqalcwi4m73pg3ssz6lh0kcqsqax09myac7a15d2y0vhd43")
(22 "0w74aym0g1fh48864a3qxh89f26iaq7wsbg7244c6kjr94527dbq")
(23 "1lywjqbc36j5pdzfcvnz1zy30j76aqmsm190p888av0hw815b45g")
(24 "1hq23djqbr7s9y2324jq9mxr5bwdkmgizn3zgpchbsqp054k85cp")
(25 "0x9hc4silzl4d3zw4p43i5dm7w86k50j47f87lracwfgwy3z8f2i")
(26 "1b1fhm1dsi67r8ip17s0xvx2qq31fsxc1g9n3r931dd0k9a1zvln")
(27 "0fdbhvs9dkf4knncifh98a76q4gylhyvfrffq5p9q3ag5q58jap1")
(28 "1hdacd6sssjshmry1sscdnxxfb2r51bvdyghlfjaqgc9l85phhk0")
(29 "11wrlb20w6v89b96krg0gwxipwhvrda6rq1y9f972m32gsrsqp0j")
(30 "13v9fqgim082dmvkslsr0hs793yzhsij2s91mjswsfhj1qip7zy3")
(31 "15d7rddj6spwc1fy997lxx6zvzq0zbxgf2h20mhi4wgp5nzbglf2")
(32 "05ia6yf32hjprmyyxqawhgckxs3684ikfx8xg08zfgx9xkd7g73v")
(33 "1qm2aad9mf2xah6xwchga7s5pk3v308mrv9lgh50d65d236ccgh1")
(34 "0bi38dhkkwpm2qrzp8zpykglq6gibvv2n9f8m59gwj406cxvp7w9")
(35 "1r8k34y82v02yfkgws17j7i53ybb74dqnwl2jjiv0av9z93hl6l2")
(36 "0mwhr9hfbh2czf8klbxg6nbd2g9xl9kygvgk061vird56r4kzj8m")
(37 "156sbi3srzkyxajkmhb7iigq0j4nvwnpsbw88xdsxn95a4xiqb4a")))
(1 "0zr8wgg1gb67vxn7ws971n1znrdinczymc688ndnpy2a6qs88q0z")
(2 "009051z55plsy4jmmjdb3ys7li2jraynz99qg7n6a1qk025591g3")
(3 "1vb0gnrkmz49rcfpxjcxy0v0k5278wrlkljk9gc20nizvk3xjigj")))
(define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of
@@ -157,7 +123,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
" -Wl,-rpath -Wl,"
(assoc-ref %build-inputs "ncurses")
"/lib")))
(version "5.2"))
(version "5.3"))
(package
(name "bash")
(source (origin
@@ -166,11 +132,11 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
"mirror://gnu/bash/bash-" version ".tar.gz"))
(sha256
(base32
"1yrjmf0mqg2q8pqphjlark0mcmgf88b0acq7bqf4gx3zvxkc2fd1"))
"1fii1xaxbng9x0klxmxkm0xhmycngfz72jsgyrna4sgqcmlxhp0d"))
(patch-flags '("-p0"))
(patches (cons (search-patch "bash-linux-pgrp-pipe.patch")
%patch-series-5.2))))
(version (string-append version "." (number->string (length %patch-series-5.2))))
%patch-series-5.3))))
(version (string-append version "." (number->string (length %patch-series-5.3))))
(build-system gnu-build-system)
(outputs '("out"
+26 -45
View File
@@ -13,8 +13,7 @@
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2025-2026 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2026 Sughosha <sughosha@disroot.org>
;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Advanced Micro Devices, Inc.
;;;
;;; This file is part of GNU Guix.
@@ -42,8 +41,8 @@
#:use-module (guix amd-gpu)
#:use-module (guix search-paths)
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system meson)
#:use-module (gnu packages)
@@ -679,26 +678,20 @@ the user is too low. To raise such limit on a Guix System, refer to
"0ifnw8vnkcgrksx7g5d9ii4kjppqnk32lvrybdybmibyvag6zfdc"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ; no tests
#:make-flags
#~(list "CFLAGS=-g -O2 -Wno-error=implicit-function-declaration"
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-broken-makefile
(lambda _
;; Remove erroneous "-lm" target
(substitute* "Makefile"
(("hackbench.o -lm") "hackbench.o"))))
(delete 'configure)
(replace 'install
(lambda _
(install-file "interbench"
(string-append #$output "/bin"))
(install-file "interbench.8"
(string-append #$output
"/share/man/man8")))))))
(native-inputs (list gcc-10))
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-broken-makefile
(lambda _
;; Remove erroneous "-lm" target
(substitute* "Makefile"
(("hackbench.o -lm") "hackbench.o"))))
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "interbench" (string-append out "/bin"))
(install-file "interbench.8" (string-append out "/share/man/man8"))))))))
(home-page "http://users.on.net/~ckolivas/interbench/")
(synopsis "Interactivity benchmark")
(description "interbench is designed to benchmark interactivity on Linux.
@@ -737,7 +730,7 @@ and options. With careful benchmarking, different hardware can be compared.")
(define-public kdiskmark
(package
(name "kdiskmark")
(version "3.2.0")
(version "3.1.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -746,13 +739,14 @@ and options. With careful benchmarking, different hardware can be compared.")
(file-name (git-file-name name version))
(sha256
(base32
"161yyy4fcy5bnzhbcd7p90nlcslcsfp7n3m3bz9bygch7bdjw46g"))))
(build-system qt-build-system)
"1x8vd6swmf0i7f6m6wl2154n6plx8jkmcqfq6zxbdy255f1da74c"))))
(build-system cmake-build-system)
(arguments
(list
#:qtbase qtbase
#:configure-flags
#~(list (string-append "-DPOLKITQT-1_INSTALL_DIR=" #$output))
;; Drop runtime dependency on KDE's KFAuth.
#~(list "-DPERFORM_PAGECACHE_CLEARING_USING_KF5AUTH=no"
(string-append "-DPOLKITQT-1_INSTALL_DIR=" #$output))
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
@@ -765,10 +759,10 @@ and options. With careful benchmarking, different hardware can be compared.")
(lambda _
(rmdir "src/singleapplication")
(symlink #$(package-source
(this-package-input "single-application"))
(this-package-input "single-application-qt5"))
"src/singleapplication"))))))
(native-inputs (list extra-cmake-modules qttools))
(inputs (list fio polkit-qt6 single-application qtwayland))
(native-inputs (list extra-cmake-modules qttools-5))
(inputs (list fio polkit-qt qtbase-5 single-application-qt5))
(home-page "https://github.com/JonMagon/KDiskMark")
(synopsis "Simple disk benchmark tool")
(description "KDiskMark is an HDD and SSD benchmark tool. KDiskMark
@@ -950,20 +944,7 @@ configurable through a set of options.")
#~(list (string-append
"CC=" #$(this-package-input "openmpi") "/bin/mpicc")
(string-append
"CXX=" #$(this-package-input "openmpi") "/bin/mpicxx"))
#:phases
#~(modify-phases %standard-phases
;; OSU installs its binaries to /libexec. Have a symlink in /bin to
;; improve user experience.
(add-after 'install 'symlink-binaries-in-bin
(lambda _
(mkdir-p (string-append #$output "/bin"))
(for-each (lambda (file)
(symlink file
(string-append #$output "/bin/"
(basename file))))
(find-files (string-append #$output
"/libexec"))))))))
"CXX=" #$(this-package-input "openmpi") "/bin/mpicxx"))))
(home-page "https://mvapich.cse.ohio-state.edu/benchmarks/")
(synopsis "Benchmarking suite from the MVAPICH project")
(description
+2166 -2141
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+31 -25
View File
@@ -21,14 +21,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bison)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages flex)
#:use-module (gnu packages m4)
#:use-module (gnu packages perl)
#:use-module (gnu packages compiler-tools)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
(define-public bison
@@ -45,24 +46,29 @@
"1wjvbbzrr16k1jlby3l436an3kvv492h08arbnf0gwgprha05flv"))))
(build-system gnu-build-system)
(arguments
`(;; Building in parallel on many-core systems may cause an error such as
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
;; directory". See <https://bugs.gnu.org/36238>.
#:parallel-build? #f
;; Similarly, when building tests in parallel, Make may produce this error:
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
;; or directory". Full log in <https://bugs.gnu.org/36238>.
#:parallel-tests? #f
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
;; but does not link to it.
,@(if (target-hurd?)
(list #:configure-flags ''("LIBS=-lpthread"))
'())))
(native-inputs (list perl
;; m4 is not present in PATH when cross-building.
m4))
(inputs (list flex))
(propagated-inputs (list m4))
(list
;; Building in parallel on many-core systems may cause an error such as
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
;; directory". See <https://bugs.gnu.org/36238>.
#:parallel-build? #f
;; Similarly, when building tests in parallel, Make may produce this error:
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
;; or directory". Full log in <https://bugs.gnu.org/36238>.
#:parallel-tests? #f
#:configure-flags
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
;; but does not link to it.
(if (target-hurd?)
#~(list "LIBS=-lpthread")
#~(list))))
(native-inputs
(list perl
;; m4 is not present in PATH when cross-building.
m4))
(inputs
(list flex))
(propagated-inputs
(list m4))
(home-page "https://www.gnu.org/software/bison/")
(synopsis "Yacc-compatible parser generator")
(description
@@ -72,4 +78,4 @@ grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages.
Bison also provides an implementation of @command{yacc}, as specified by POSIX.")
(license gpl3+)))
(license license:gpl3+)))
+46 -47
View File
@@ -41,16 +41,32 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bittorrent)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system glib-or-gtk)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages nss)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dns)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -60,9 +76,8 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages nss)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -71,29 +86,15 @@
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (guix utils))
#:use-module (gnu packages xorg))
(define-public transmission
(package
@@ -193,7 +194,7 @@ DHT, µTP, PEX and Magnet Links.")
;; or any future license endorsed by Mnemosyne LLC.
;;
;; A few files files carry an MIT/X11 license header.
(license (list license:gpl2 license:gpl3))))
(license (list l:gpl2 l:gpl3))))
(define-public transmission-remote-gtk
(package
@@ -223,7 +224,7 @@ DHT, µTP, PEX and Magnet Links.")
(description "transmission-remote-gtk is a GTK client for remote management
of the Transmission BitTorrent client, using its HTTP RPC protocol.")
(home-page "https://github.com/transmission-remote-gtk/transmission-remote-gtk")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public stig
(package
@@ -266,7 +267,7 @@ of the Transmission BitTorrent client, using its HTTP RPC protocol.")
"Stig is a @acronym{TUI, Text User Interface} and @acronym{CLI, Command
Line Interface} client for the BitTorrent client Transmission.")
(home-page "https://github.com/rndusr/stig")
(license license:gpl3)))
(license l:gpl3)))
(define-public libtorrent
(package
@@ -290,7 +291,7 @@ Line Interface} client for the BitTorrent client Transmission.")
with the BitTorrent client rtorrent. It is written in C++ with emphasis on
speed and efficiency.")
(home-page "https://github.com/rakshasa/libtorrent")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public rtorrent
(package
@@ -319,7 +320,7 @@ speed and efficiency.")
full encryption, DHT, PEX, and Magnet Links. It can also be controlled via
XML-RPC over SCGI.")
(home-page "https://github.com/rakshasa/rtorrent")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public tremc
(let ((commit "d8deaa5ac25bb45a2ca3a930309d6ecc74836a54")
@@ -353,25 +354,25 @@ XML-RPC over SCGI.")
(description "Tremc is a console client, with a curses interface, for the
Transmission BitTorrent daemon.")
(home-page "https://github.com/tremc/tremc")
(license license:gpl3+))))
(license l:gpl3+))))
(define-public aria2
(package
(name "aria2")
(version "1.37.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aria2/aria2")
(commit (string-append "release-" version))))
(method url-fetch)
(uri (string-append "https://github.com/aria2/aria2/releases/"
"download/release-" version
"/aria2-" version ".tar.xz"))
(sha256
(base32
"1yr9yxr7z3bdg51afpzj0i63xl2rdk1prl20qws21y6r1x58vf65"))
(file-name (git-file-name name version))
"0sxng4pynhj2qinranpv6wyzys3d42kz1gg2nrn63sw5f2nj1930"))
(patches (search-patches "aria2-unbundle-wslay.patch"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "deps")))))
(delete-file-recursively "deps")
(delete-file "configure")))))
(build-system gnu-build-system)
(arguments
(list
@@ -381,13 +382,10 @@ Transmission BitTorrent daemon.")
#$output "/etc/bash_completion.d/"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'update-gettext-version
(add-after 'unpack 'patch-configure
(lambda _
(substitute* "configure.ac"
(("AM_GNU_GETTEXT_VERSION\\(.*\\)")
(format #f "AM_GNU_GETTEXT_VERSION([~a])"
#$(package-version (this-package-native-input
"gettext-minimal")))))))
(("0[.]18") "0.19.6"))))
(add-after 'unpack 'delete-socket-tests
(lambda _
(substitute* "test/LpdMessageDispatcherTest.cc"
@@ -419,7 +417,9 @@ Transmission BitTorrent daemon.")
"Aria2 is a lightweight, multi-protocol & multi-source command-line
download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
(license license:gpl2+)))
(properties
'((release-monitoring-url . "https://github.com/aria2/aria2/releases")))
(license l:gpl2+)))
(define-public uget
(package
@@ -453,7 +453,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
"uGet is portable download manager with GTK+ interface supporting
HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
downloads, download scheduling, download rate limiting.")
(license license:lgpl2.1+)))
(license l:lgpl2.1+)))
(define-public mktorrent
(package
@@ -488,8 +488,8 @@ files and whole directories. It can add multiple trackers and web seed URLs,
and set the @code{private} flag to disallow advertisement through the
distributed hash table (@dfn{DHT}) and Peer Exchange. Hashing is multi-threaded
and will take advantage of multiple processor cores where possible.")
(license (list license:public-domain ; sha1.*, used to build without OpenSSL
license:gpl2+)))) ; with permission to link with OpenSSL
(license (list l:public-domain ; sha1.*, used to build without OpenSSL
l:gpl2+)))) ; with permission to link with OpenSSL
(define-public libtorrent-rasterbar
(package
@@ -533,16 +533,15 @@ and will take advantage of multiple processor cores where possible.")
(inputs (list boost-1.83 openssl))
(native-inputs
(list libfaketime
pkg-config
python-setuptools
python-wrapper))
python-wrapper
pkg-config))
(home-page "https://www.libtorrent.org/")
(synopsis "Feature-complete BitTorrent implementation")
(description
"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation
focusing on efficiency and scalability. It runs on embedded devices as well as
desktops.")
(license license:bsd-2)))
(license l:bsd-2)))
(define-public qbittorrent
(package
@@ -586,7 +585,7 @@ libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
It aims to be a good alternative to all other BitTorrent clients out there.
qBittorrent is fast, stable and provides unicode support as well as many
features.")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public qbittorrent-no-x
(let ((base qbittorrent))
@@ -728,4 +727,4 @@ Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange
speed limits. Deluge heavily utilises the libtorrent library. It is
designed to run as both a normal standalone desktop application and as a
client-server.")
(license license:gpl3+)))
(license l:gpl3+)))
+2 -2
View File
@@ -334,7 +334,7 @@ parallel study, and original language study.")
(define-public book-emacs-lisp-elements
(package
(name "book-emacs-lisp-elements")
(version "2.0.4")
(version "2.0.1")
(source
(origin
(method git-fetch)
@@ -343,7 +343,7 @@ parallel study, and original language study.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "06mhrb16h93n3s3srcfgmzsyh2lxx4ffj1di6qvczfg4039pi3c8"))))
(base32 "0774zycgx3zspn6f8pszap1751xgrlv2h3x66kksnj589nfnwzil"))))
(build-system emacs-build-system)
(arguments
(list
+37 -53
View File
@@ -83,6 +83,9 @@
(build-system gnu-build-system)
(arguments
(list
#:imported-modules %pyproject-build-system-modules
#:modules `(((guix build pyproject-build-system) #:select (python-version))
,@%default-gnu-modules)
#:tests? #f
#:configure-flags
#~(let ((icu (dirname (dirname (search-input-file
@@ -91,26 +94,17 @@
;; Auto-detection looks for ICU only in traditional
;; install locations.
(string-append "--with-icu=" icu)
;; Ditto for Python. The Gexp can't be evaluated if python is not
;; in the inputs (e.g. boost-for-mysql), so delay its evaluation
;; after checking for python, rather than concurrently.
#$@(force
(if (or (%current-target-system)
(not (this-package-input "python-minimal-wrapper")))
(delay
#~())
(delay
#~((let ((python (dirname (dirname (search-input-file
%build-inputs
"bin/python")))))
(string-append "--with-python-root=" python)
(string-append "--with-python=" python
"/bin/python")
(string-append "--with-python-version="
#$(version-major+minor
(package-version
(this-package-input
"python-minimal-wrapper")))))))))
;; Ditto for Python.
#$@(if (%current-target-system)
#~()
#~((let ((python (dirname (dirname (search-input-file
%build-inputs
"bin/python")))))
(string-append "--with-python-root=" python)
(string-append "--with-python=" python
"/bin/python")
(string-append "--with-python-version="
(python-version python)))))
"--with-toolset=gcc"))
#:make-flags
#~(list "threading=multi" "link=shared"
@@ -206,39 +200,29 @@
(replace 'install
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "./b2" "install" make-flags)))
#$@(force ; See above for why the force is necessary.
(if (or (%current-target-system)
(not (this-package-input "python-minimal-wrapper")))
(delay
#~())
(delay
#~((add-after 'install 'provide-libboost_python
(lambda* (#:key make-flags inputs outputs
#:allow-other-keys)
(let* ((static? (member "link=static" make-flags))
(ext (if static? ".a" ".so"))
(python (dirname
(dirname (search-input-file
inputs "bin/python"))))
(python-version
#$(version-major+minor
(package-version
(this-package-input
"python-minimal-wrapper"))))
(NN (string-join (string-split
python-version #\.)
""))
(libboost_pythonNN
(string-append "libboost_python" NN ext))
(major (string-take python-version 1)))
(with-directory-excursion
(string-append #$output "/lib")
(symlink libboost_pythonNN
(string-append "libboost_python" ext))
;; Some packages only look for the major version.
(symlink libboost_pythonNN
(string-append "libboost_python"
major ext)))))))))))))
#$@(if (%current-target-system)
#~()
#~((add-after 'install 'provide-libboost_python
(lambda* (#:key make-flags inputs outputs #:allow-other-keys)
(let* ((static? (member "link=static" make-flags))
(libext (if static? ".a" ".so"))
(python (dirname (dirname (search-input-file
inputs "bin/python"))))
(python-version (python-version python))
(libboost_pythonNN
(string-append "libboost_python"
(string-join (string-split
python-version #\.)
"")
libext)))
(with-directory-excursion (string-append #$output "/lib")
(symlink libboost_pythonNN
(string-append "libboost_python" libext))
;; Some packages only look for the major version.
(symlink libboost_pythonNN
(string-append "libboost_python"
(string-take python-version 1)
libext)))))))))))
(inputs
(append
(list icu4c zlib)
+54 -59
View File
@@ -48,14 +48,13 @@
#:use-module (gnu packages base)
#:use-module (gnu packages disk)
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages disk)
#:use-module (gnu packages firmware)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
@@ -66,6 +65,7 @@
#:use-module (gnu packages man)
#:use-module (gnu packages mtools)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages ninja)
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -267,8 +267,8 @@
;; rebooting.
(if (member (or (%current-target-system)
(%current-system))
(package-supported-systems fuse))
(list fuse)
(package-supported-systems fuse-2))
(list fuse-2)
'())))
(native-inputs
(append (list pkg-config
@@ -1815,68 +1815,63 @@ For more information, refer to
(define-public os-prober
(package
(name "os-prober")
(version "1.84")
(version "1.81")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://salsa.debian.org/installer-team/os-prober.git")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_"
version ".tar.xz"))
(sha256
(base32 "1bji3w6nbqaz8zqrbmy8b1j5dph9xn7bdh1cd2z8ia1q125i6mgp"))))
(base32 "10w8jz6mqhp0skdcam9mpgv79vx1sv7lkpra3rqjg0jkhvn2in9g"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; No tests.
#:modules '((guix build gnu-build-system)
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 regex) ; string-match
(srfi srfi-26)) ; cut
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
(substitute* (find-files ".")
(("/usr") #$output))
(substitute* (find-files "." "50mounted-tests$")
(("mkdir") "mkdir -p -v"))))
(replace 'install
(lambda _
(define (find-files-non-recursive directory)
(find-files directory
(lambda (file stat)
(string-match (string-append "^" directory "/[^/]*$")
file))
#:directories? #t))
(ice-9 regex) ; for string-match
(srfi srfi-26)) ; for cut
#:make-flags
(list ,(string-append "CC=" (cc-for-target)))
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(substitute* (find-files ".")
(("/usr") (assoc-ref outputs "out")))
(substitute* (find-files "." "50mounted-tests$")
(("mkdir") "mkdir -p"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(define (find-files-non-recursive directory)
(find-files directory
(lambda (file stat)
(string-match (string-append "^" directory "/[^/]*$")
file))
#:directories? #t))
(let ((bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib"))
(share (string-append #$output "/share")))
(for-each (cut install-file <> bin)
(list "linux-boot-prober" "os-prober"))
(install-file "newns" (string-append lib "/os-prober"))
(install-file "common.sh" (string-append share "/os-prober"))
(install-file "os-probes/mounted/powerpc/20macosx"
(string-append lib "/os-probes/mounted"))
(for-each
(lambda (directory)
(for-each
(lambda (file)
(let ((destination (string-append lib "/" directory
"/" (basename file))))
(mkdir-p (dirname destination))
(copy-recursively file destination)))
(append (find-files-non-recursive (string-append directory "/common"))
(find-files-non-recursive (string-append directory "/x86")))))
(list "linux-boot-probes"
"linux-boot-probes/mounted"
"os-probes"
"os-probes/init"
"os-probes/mounted"))))))))
(home-page "https://joeyh.name/code/os-prober/")
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib"))
(share (string-append out "/share")))
(for-each (cut install-file <> bin)
(list "linux-boot-prober" "os-prober"))
(install-file "newns" (string-append lib "/os-prober"))
(install-file "common.sh" (string-append share "/os-prober"))
(install-file "os-probes/mounted/powerpc/20macosx"
(string-append lib "/os-probes/mounted"))
(for-each
(lambda (directory)
(for-each
(lambda (file)
(let ((destination (string-append lib "/" directory
"/" (basename file))))
(mkdir-p (dirname destination))
(copy-recursively file destination)))
(append (find-files-non-recursive (string-append directory "/common"))
(find-files-non-recursive (string-append directory "/x86")))))
(list "os-probes" "os-probes/mounted" "os-probes/init"
"linux-boot-probes" "linux-boot-probes/mounted"))))))))
(home-page "https://joeyh.name/code/os-prober")
(synopsis "Detect other operating systems")
(description "os-prober probes disks on the system for other operating
systems so that they can be added to the bootloader. It also works out how to
+272 -306
View File
@@ -37,7 +37,7 @@
#:select (raw-derivation derivation-input derivation->output-path))
#:use-module (guix utils)
#:use-module ((guix build utils) #:select (elf-file?))
#:use-module ((guix gexp) #:select (lower-object local-file))
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix memoization)
#:use-module (guix i18n)
@@ -204,10 +204,7 @@ for system '~a'")
(uri (map (cute string-append <>
(bootstrap-executable-file-name system program))
%bootstrap-executable-base-urls))
;; XXX: In the long term, migrate all boostrap executables to
;; (string-append "bootstrap-" program), and drop the additional
;; file-name argument.
(file-name file-name)
(file-name (string-append "bootstrap-" program))
(hash (content-hash bv sha256))))))))
(define* (bootstrap-executable program system #:optional file-name)
@@ -267,32 +264,33 @@ or false to signal an error."
(version "0")
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(tarball (assoc-ref %build-inputs
#$(string-append name ".tar.xz"))))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
,@(if snippet (list snippet) '())
(or (not ,program-to-test)
(invoke (string-append "bin/" ,program-to-test)
"--version"))))))))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
#$@(if snippet (list snippet) '())
(or (not #$program-to-test)
(invoke (string-append "bin/" #$program-to-test)
"--version"))))))))
(inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("tarball" ,(bootstrap-origin (source (%current-system))))))
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-origin (source (%current-system)))))
(source #f)
(synopsis description)
(description description)
@@ -635,37 +633,29 @@ $out/bin/guile --version~%"
(_
"/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls))
(file-name "bootstrap-binaries.tar.xz")
(sha256
(match system
("x86_64-linux"
(base32
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4"))
("i686-linux"
(base32
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
("armhf-linux"
(base32
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
("aarch64-linux"
(base32
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
("powerpc64le-linux"
(base32
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
("i586-gnu"
(base32
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
("x86_64-gnu"
(base32
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v"))
("powerpc-linux"
(base32
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
("riscv64-linux"
(base32
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
("mips64el-linux"
(base32
(base32
(match system
("x86_64-linux"
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")
("i686-linux"
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")
("armhf-linux"
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")
("aarch64-linux"
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")
("powerpc64le-linux"
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")
("i586-gnu"
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")
("x86_64-gnu"
"04zksa2457h1vcl5ry2hyzhhsg8fckvfdgadp0viba3anwms2463")
("powerpc-linux"
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
("riscv64-linux"
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
("mips64el-linux"
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
"fgrep" ; the program to test
"Bootstrap binaries of Coreutils, Awk, etc."
@@ -693,6 +683,7 @@ $out/bin/guile --version~%"
"/i686-linux/20190815/"
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
%bootstrap-base-urls))
(file-name "linux-libre-headers-bootstrap.tar.xz")
(sha256
(base32
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
@@ -700,63 +691,56 @@ $out/bin/guile --version~%"
"Bootstrap linux-libre-headers"))
(define %bootstrap-binutils
(package-from-tarball "binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
(match system
("armhf-linux"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
("powerpc64le-linux"
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match system
("x86_64-linux"
(base32
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20"))
("i686-linux"
(base32
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
("armhf-linux"
(base32
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
("aarch64-linux"
(base32
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
("powerpc64le-linux"
(base32
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
("riscv64-linux"
(base32
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
("i586-gnu"
(base32
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
("x86_64-gnu"
(base32
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04"))
("powerpc-linux"
(base32
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8"))
("mips64el-linux"
(base32
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(package-from-tarball
"binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
(match system
("armhf-linux"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
("powerpc64le-linux"
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20241122/binutils-static-stripped-2.41-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
(file-name "binutils-bootstrap.tar.xz")
(sha256
(base32
(match system
("x86_64-linux"
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")
("i686-linux"
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")
("armhf-linux"
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")
("aarch64-linux"
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")
("powerpc64le-linux"
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")
("riscv64-linux"
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")
("i586-gnu"
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")
("x86_64-gnu"
"1fasv76rppnqlshjqc7dbzngic9cqswi5ydzg6w9rc075daqk8kb")
("powerpc-linux"
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
("mips64el-linux"
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(define %bootstrap-glibc
;; The initial libc.
@@ -766,99 +750,91 @@ $out/bin/guile --version~%"
(source #f)
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(tarball (assoc-ref %build-inputs "glibc.tar.xz")))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
(mkdir #$output)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
;; Patch linker scripts so they refer to the right file-names.
(substitute* ,(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?))
(or (target-x86?)
(target-arm?)))
''("lib/libc.so" "lib/libpthread.so"))
(else
''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append out "/lib/" prefix)))
,@(if (target-arm32?)
`((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
`())))))))
;; Patch linker scripts so they refer to the right file-names.
(substitute* #$(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?))
(or (target-x86?)
(target-arm?)))
''("lib/libc.so" "lib/libpthread.so"))
(else
''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append #$output "/lib/" prefix)))
#$@(if (target-arm32?)
#~((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
#~())))))))
(inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v"))
("i686-linux"
(base32
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
("armhf-linux"
(base32
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
("aarch64-linux"
(base32
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
("powerpc64le-linux"
(base32
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
("riscv64-linux"
(base32
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
("i586-gnu"
(base32
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2"))
("x86_64-gnu"
(base32
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy"))
("powerpc-linux"
(base32
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb"))
("mips64el-linux"
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20241122/glibc-stripped-2.39-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
(file-name "glibc.tar.xz")
(sha256
(base32
(match (%current-system)
("x86_64-linux"
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")
("i686-linux"
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")
("armhf-linux"
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")
("aarch64-linux"
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")
("powerpc64le-linux"
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")
("riscv64-linux"
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")
("i586-gnu"
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")
("x86_64-gnu"
"1w4h91kxl64a62l646966i73zp2cj6w4dmyc64fh0c1hhdykxass")
("powerpc-linux"
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
("mips64el-linux"
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library")
(description synopsis)
(home-page #f)
@@ -873,110 +849,102 @@ $out/bin/guile --version~%"
(source #f)
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 popen))
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils)
(ice-9 popen))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(bash (assoc-ref %build-inputs "bash"))
(libc (assoc-ref %build-inputs "libc"))
(tarball (assoc-ref %build-inputs "tarball")))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(bash (assoc-ref %build-inputs "bootstrap-bash"))
(libc (assoc-ref %build-inputs "glibc-bootstrap"))
(tarball (assoc-ref %build-inputs "gcc.tar.xz")))
(mkdir out)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append out "/bin")))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append #$output "/bin")))
(define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped)
(call-with-output-file program
(lambda (p)
(format p "#!~a
(define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped)
(call-with-output-file program
(lambda (p)
(format p "#!~a
exec ~a/bin/~a -B~a/lib \
-Wl,-rpath -Wl,~a/lib \
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
bash
out wrapped
libc libc libc
,(glibc-dynamic-linker)))))
(chmod program #o555))
bash
#$output wrapped
libc libc libc
#$(glibc-dynamic-linker)))))
(chmod program #o555))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion bindir
(chmod "." #o755)
(for-each wrap-program
,(if (target-hurd64?)
''("gcc" "g++")
''("gcc")))))))))
(with-directory-excursion bindir
(chmod "." #o755)
(for-each wrap-program
#$(if (target-hurd64?)
''("gcc" "g++")
''("gcc")))))))))
(inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("bash" ,(bootstrap-executable "bash" (%current-system)))
("libc" ,%bootstrap-glibc)
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
("i686-linux"
(base32
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
("armhf-linux"
(base32
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
("aarch64-linux"
(base32
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
("powerpc64le-linux"
(base32
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
("riscv64-linux"
(base32
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
("i586-gnu"
(base32
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
("x86_64-gnu"
(base32
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz"))
("powerpc-linux"
(base32
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w"))
("mips64el-linux"
(base32
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-executable "bash" (%current-system))
%bootstrap-glibc
(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20241122/gcc-stripped-14.2.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
(file-name "gcc.tar.xz")
(sha256
(base32
(match (%current-system)
("x86_64-linux"
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")
("i686-linux"
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")
("armhf-linux"
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")
("aarch64-linux"
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")
("powerpc64le-linux"
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")
("riscv64-linux"
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")
("i586-gnu"
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")
("x86_64-gnu"
"1cgbhc76hlccx6v2z7kk7z173lryyq3la5mmbwivl6hbl1zcqg3m")
("powerpc-linux"
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
("mips64el-linux"
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
(native-search-paths
(list (search-path-specification
(variable "C_INCLUDE_PATH")
@@ -997,14 +965,12 @@ exec ~a/bin/~a -B~a/lib \
;; own packages.
(match (%current-system)
((or "i686-linux" "x86_64-linux")
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)))
(list %bootstrap-linux-libre-headers))
(_
`(("libc" ,%bootstrap-glibc)
("gcc" ,%bootstrap-gcc)
("binutils" ,%bootstrap-binutils)
("coreutils&co" ,%bootstrap-coreutils&co)
;; In gnu-build-system.scm, we rely on the availability of Bash.
("bash" ,%bootstrap-coreutils&co)))))
(list %bootstrap-glibc
%bootstrap-gcc
%bootstrap-binutils
%bootstrap-coreutils&co))))
(define %bootstrap-inputs-for-tests
;; These are bootstrap inputs that are cheap to produce (no compilation
+14 -63
View File
@@ -69,55 +69,6 @@ match website theme.")
(define-public adaptive-tab-bar-colour/icecat
(make-icecat-extension adaptive-tab-bar-colour))
(define canvasblocker
(package
(name "canvasblocker")
(version "1.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kkapsner/CanvasBlocker")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0xxs6s7nrl4y4qiw2cpkqh170mbv78n0ixd874a72jjvczw2vpg7"))
(modules '((guix build utils) (ice-9 match) (ice-9 ftw)))
(snippet
#~(begin
(for-each delete-file
'("canvasblocker.xpi" "package-lock.json"))
;; Delete all hidden files/directories except .tools.
(for-each
(match-lambda
((or "." ".tools" ".."
(? (lambda (name)
(not (string-prefix? "." name)))))
#t)
((? file-is-directory? dir)
(delete-file-recursively dir))
(file
(delete-file file)))
(scandir "."))))))
(build-system copy-build-system)
(properties '((addon-id . "CanvasBlocker@kkapsner.de")))
(arguments
(list
#:install-plan ;deduced from .tools/build.js
#~'(("." #$(assq-ref properties 'addon-id)
#:exclude ("crowdin.yml" "package.json" "releaseNotes.txt")
#:exclude-regexp ("test/.*" "versions/.*" ".tools/*")))))
(home-page "https://github.com/kkapsner/CanvasBlocker")
(synopsis "Firefox extension to protect from being fingerprinted")
(description "This extension allows users to prevent websites from using
some Javascript APIs to fingerprint them. Users can choose to block the APIs
entirely on some or all websites (which may break some websites) or just block
or fake its fingerprinting-friendly readout API.")
(license license:mpl2.0)))
(define-public canvasblocker/icecat
(make-icecat-extension canvasblocker))
(define play-to-kodi
(package
(name "play-to-kodi")
@@ -144,8 +95,8 @@ supported content to the Kodi media center.")
;; Arbitrary commit of branch master,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-main-assets")
(commit "004af606e6a0efc22bc65ab1016b553441cacb71")
(revision "6")
(commit "011eef4a5b36a7ebf4adedc486d96b77cfa25c54")
(revision "5")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
@@ -154,14 +105,14 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1bfd2d53flrkgvjcr1kj9nbxj4y9a4pcr7m3dycccdhd21x6k0ln")))))
(base32 "0ng8a88zdvrxg30fz83gswjy27b3hfx9q11n2i715id7az7kqf9x")))))
(define ublock-prod-assets
;; Arbitrary commit of branch gh-pages,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-prod-assets")
(commit "6c15e4ef91888c610caf73829dc78ae9549ed24a")
(revision "6")
(commit "6844322800de647da0c4fe06dd6a0b212a3942e4")
(revision "5")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
@@ -170,12 +121,12 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0n2h6drqh44b1zgl729bfr70n08mkm536a2vqgivw7dm5dmi8zd3")))))
(base32 "13vxq4z1wxivz5xklncxd2sj5aqkyhq919vzbbfp0fgh0imhikib")))))
(define ublock-origin
(package
(name "ublock-origin")
(version "1.70.0")
(version "1.66.2")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@@ -185,7 +136,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
"0j1m80nz86yc69c42hv5di5zza0vkycqmjaydb9jgx0abcvi19x5"))))
"16ph031hb8bf4rxyxvm6jr0bxmy0snza11jfrbjgfb390gax9r63"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(properties '((addon-id . "uBlock0@raymondhill.net")))
@@ -312,7 +263,7 @@ fill and submit login forms if a matching password entry is found.")
(define keepassxc-browser
(package
(name "keepassxc-browser")
(version "1.9.10")
(version "1.9.9.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -322,7 +273,7 @@ fill and submit login forms if a matching password entry is found.")
(file-name (git-file-name name version))
(sha256
(base32
"18kgmdvsq1kv9px8a1m7i10r4m0iik72qlnw9k2ijxmn1xikfyfb"))
"1chw1y1332zn69s7kf5mkljc1bp2xfvl3zzvafnalv3zj2jsa5cs"))
;; Default 'manifest.json' targets chromium based browsers and
;; depends on background.service_worker support.
;; See: <https://bugzilla.mozilla.org/show_bug.cgi?id=1573659>
@@ -377,15 +328,15 @@ with the @uref{https://keepassxc.org, KeePassXC} password manager.")
(define noscript
(package
(name "noscript")
(version "13.6.19.1984")
(version "13.2.2")
(source (origin
(method url-fetch/zipbomb)
(uri (string-append
"https://archive.torproject.org/tor-package-archive/torbrowser/noscript/noscript-"
version ".xpi"))
"https://noscript.net/download/releases/noscript-" version
".xpi"))
(sha256
(base32
"1lb3855w34avs7idvycv8cfpjnpic2mnsh9yqkidrdw7msr0na74"))))
"0w2w0a76dk01bkh83mqwgs9ky02rjqk15z5sxg4a6mw0hpr81bpm"))))
(build-system copy-build-system)
(properties '((addon-id . "{73a6fe31-595d-460b-a920-fcc0f8843232}")))
(arguments
+35 -224
View File
@@ -26,7 +26,6 @@
;;; Copyright © 2025 Josep Bigorra <jjbigorra@gmail.com>
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2026 Nemin <bergengocia@protonmail.com>
;;; Copyright © 2026 Nguyễn Gia Phong <cnx@loang.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,17 +43,37 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
#:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages c)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix build-system hare)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages cppi)
#:use-module (gnu packages dns)
#:use-module (gnu packages elf)
#:use-module (gnu packages gcc)
#:use-module (gnu packages guile)
@@ -64,6 +83,7 @@
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages ninja)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -76,36 +96,14 @@
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix build-system hare)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system trivial)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix utils)
#:use-module (ice-9 optargs)
#:use-module (srfi srfi-1))
#:use-module (gnu packages xml))
(define-public acr
(package
@@ -141,48 +139,6 @@ Bourne shell script instead of m4.")
(home-page "https://github.com/radareorg/acr")
(license license:gpl2)))
(define-public autosetup
(package
(name "autosetup")
(version "0.7.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/msteveb/autosetup")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32 "002b380073cpxlqziia2gvngywrb37b08p9k0zk9vlxn2p174hc6"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file "jimsh0.c")
(substitute* "Makefile"
(("^.*tclsh8\\..*") ;tests run with specific Tcl versions
""))))))
(build-system gnu-build-system)
(arguments
(list #:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "sys-find-tclsh"
(("jimsh tclsh")
(search-input-file inputs "bin/tclsh")))
(invoke "tclsh" "autosetup"
(string-append "--sysinstall=" #$output)))))))
(inputs (list tcl))
(home-page "https://msteveb.github.io/autosetup/")
(synopsis "Build environment auto-configurator")
(description
"@command{autosetup} is a tool, similar to @command{autoconf},
to configure a build system for the appropriate environment,
according to the system capabilities and the user-selected options.")
(license license:bsd-2)))
(define-public bam
(package
(name "bam")
@@ -196,8 +152,7 @@ according to the system capabilities and the user-selected options.")
(file-name (git-file-name name version))
(sha256
(base32
"13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))
(patches (search-patches "bam-python3-compat.patch"))))
"13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags `(,(string-append "CC=" ,(cc-for-target))
@@ -208,7 +163,7 @@ according to the system capabilities and the user-selected options.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
(list python-minimal-wrapper))
`(("python" ,python-2)))
(inputs
(list lua))
(home-page "https://matricks.github.io/bam/")
@@ -275,14 +230,14 @@ generate such a compilation database.")
(define-public bmake
(package
(name "bmake")
(version "20260508")
(version "20260313")
(source
(origin
(method url-fetch)
(uri (string-append
"http://www.crufty.net/ftp/pub/sjg/bmake-" version ".tar.gz"))
(sha256
(base32 "0b58j7l53jbqaxcfggimdbylf71hbyfm44m6s4646ry7mf8fl7kv"))
(base32 "0xgryknmv625idw37rq89mpl5rymwdb15j5w8zxwy1gf8b6z7j3n"))
(patches (search-patches "bmake-run-check-separately.patch"))))
(build-system gnu-build-system)
(inputs
@@ -345,8 +300,8 @@ programs and other files depend.")
(license license:bsd-3)))
(define-public gn
(let ((commit "6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a")
(revision "2354")) ;as returned by `git describe`, used below
(let ((commit "ee5b7e32b961a9da1933e9f46a018ba6cac8ef60")
(revision "2277")) ;as returned by `git describe`, used below
(package
(name "gn")
(version (git-version "0.0" revision commit))
@@ -356,7 +311,7 @@ programs and other files depend.")
(uri (git-reference (url home-page) (commit commit)))
(sha256
(base32
"0yz38czmbc72q1hkiv3cwxqh2i8ji2vkkvvk5ws2cjplmn2vj0x9"))
"19kkvwxl66vlzlfppbq03fmi59i5g8a1yc71fsfgwqqmx4wywd6w"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -366,8 +321,7 @@ programs and other files depend.")
(lambda _
(setenv "CC" "gcc")
(setenv "CXX" "g++")
(setenv "CXXFLAGS"
"-g -O2 -Wno-error=redundant-move -Wno-error=comment")
(setenv "CXXFLAGS" "-g -O2 -Wno-error=redundant-move")
(setenv "AR" "ar")))
(replace 'configure
(lambda _
@@ -432,8 +386,9 @@ files and generates build instructions for the Ninja build system.")
(arguments
(list
#:tests? #f ;disabled to avoid extra dependencies
;; Custom build steps to prevent using pyproject-build-system which
;; allows to edit the latter without a C++ world rebuild.
;; Essentially a lighter copy of the former python-build-system.
;; Using it rather than pyproject-build-system allows to edit the latter
;; without a C++ world rebuild.
#:phases
#~(modify-phases %standard-phases
(delete 'bootstrap)
@@ -1451,147 +1406,3 @@ It is an alternative to e.g. @command{make(1)} and @command{redo(1)}. Features:
@end itemize
")
(license license:wtfpl2)))
(define-public xmake
(package
(name "xmake")
(version "3.0.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xmake-io/xmake.git")
(commit (string-append "v" version))
;; Requires some dependencies from "xmake-core-*" repos
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "1pdjz52w9lzfbcpx9wmzy0bsjg7i19xz43f63czk7jz9v0xba6gi"))))
(build-system gnu-build-system)
(arguments
(list
;; No check rule in make
;; TODO: find how to run Lua tests in "test" directory
#:tests? #f))
(home-page "https://xmake.io/")
(synopsis "Cross-platform build utility based on Lua")
(description "@command{xmake} is a cross-platform build utility based on Lua.
Features:
@itemize
@item Built-in caching and parallel compilation,
@item Concise Lua syntax,
@item Custom rules, plugins and modules,
@item Support for C++20 modules and compile_commands.json,
@item Support for languages outside C/C++ (e.g. Go, Rust, Zig).
@end itemize")
(license license:asl2.0)))
(define-public ninja/pinned
(hidden-package
(package
(name "ninja")
(version "1.13.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ninja-build/ninja")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0lp9dmxbjyjwv089i8mgq3nvnhpbnsn01ifm05m9s47w7cifrl8g"))))
(build-system gnu-build-system)
(inputs (list python-wrapper re2c))
(arguments
'(; Tests now require googletest, which is a circular dependency.
#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _
(substitute* "src/subprocess-posix.cc"
(("/bin/sh") (which "sh")))
(substitute* "src/subprocess_test.cc"
(("/bin/echo") (which "echo")))))
(replace 'build
(lambda _
(invoke "./configure.py" "--bootstrap")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./configure.py")
(invoke "./ninja" "ninja_test")
(invoke "./ninja_test"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(doc (string-append out "/share/doc/ninja")))
(install-file "ninja" bin)
(install-file "doc/manual.asciidoc" doc)))))))
(home-page "https://ninja-build.org/")
(synopsis "Small build system")
(description
"Ninja is a small build system with a focus on speed. It differs from
other build systems in two major respects: it is designed to have its input
files generated by a higher-level build system, and it is designed to run
builds as fast as possible.")
(license license:asl2.0))))
(define-public ninja
(package/inherit ninja/pinned
(properties (alist-delete 'hidden? (package-properties ninja/pinned)))))
(define-public samurai
(package
(name "samurai")
(version "1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/michaelforney/samurai")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"04iw18hgkm72yrl83a2xh1jc47w9rilpb95kwick0j37b4q3gxj4"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no test suite
#:make-flags #~(list (string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-/bin/sh
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "build.c"
(("/bin/sh")
(search-input-file inputs "bin/sh")))))
(delete 'configure))))
(inputs (list bash-minimal))
(home-page "https://github.com/michaelforney/samurai")
(synopsis "Ninja-compatible build tool written in C")
(description "@code{samurai} is a ninja-compatible build tool written in
C99 with a focus on simplicity, speed, and portability. It is
feature-complete and supports most of the same options as ninja. This package
provides the command @command{samu}. For a @command{ninja} command
replacement, use the @code{samu-as-ninja-wrapper} package.")
(license (list license:asl2.0 ;for the most part
license:expat)))) ;htab.h, htab.c and tree.c
(define-public samu-as-ninja-wrapper
(package/inherit samurai
(name "samu-as-ninja-wrapper")
(build-system trivial-build-system)
(arguments
(list #:builder
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(let ((bindir (string-append #$output "/bin"))
(samu (string-append #$(this-package-input "samurai")
"/bin/samu")))
(mkdir-p bindir)
(symlink samu (string-append bindir "/ninja")))))))
(inputs (list samurai))
(description "This package provides the @command{ninja} command,
implemented as a symbolic link to the @command{samu} command of @code{samurai}
package.")))
+50 -50
View File
@@ -23,7 +23,7 @@
;;; Copyright © 2023, 2024 David Elsing <david.elsing@posteo.net>
;;; Copyright @ 2022, Kitzman <kitzman@disroot.org>
;;; Copyright @ 2025 Dariqq <dariqq@posteo.net>
;;; Copyright © 2025, 2026 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2026 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
@@ -47,7 +47,6 @@
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
@@ -55,6 +54,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix store)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
@@ -62,7 +62,7 @@
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages perl)
@@ -81,7 +81,6 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages gettext)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
@@ -1094,8 +1093,32 @@ portability.")
(license (list license:bsd-2 ;all files except...
license:bsd-3)))) ;...the unidef.1 manual page
(define-deprecated/public-alias byacc
(@ (gnu packages compiler-tools) byacc))
(define-public byacc
(package
(name "byacc")
(version "20240109")
(source (origin
(method url-fetch)
(uri (string-append
"https://invisible-mirror.net/archives/byacc/byacc-"
version ".tgz"))
(sha256
(base32
"0il4w1vwbglayakywyghiqhcjpg1yvv5ww2p8ylz32bi05wpg2gj"))
(snippet
#~(begin (delete-file "btyaccpar.c")
(delete-file "yaccpar.c")))))
(native-inputs
(list gawk))
(build-system gnu-build-system)
(home-page "https://invisible-island.net/byacc/byacc.html")
(synopsis "Berkeley Yacc LALR parser generator")
(description
"Berkeley Yacc is an LALR(1) parser generator. Yacc reads the grammar
specification from a file and generates an LALR(1) parser for it. The parsers
consist of a set of LALR(1) parsing tables and a driver routine written in the
C programming language.")
(license license:public-domain)))
(define-public argparse
(package
@@ -1304,6 +1327,25 @@ for the @acronym{AWS,Amazon Web Services} SDK.")
(home-page "https://github.com/awslabs/aws-c-sdkutils")
(license license:asl2.0)))
(define-public pcl
(package
(name "pcl")
(version "1.12")
(source
(origin
(method url-fetch)
(uri (string-append
"http://www.xmailserver.org/pcl-" version ".tar.gz"))
(sha256
(base32
"06ly65rq4iyj2p4704i215c8y4rgspwl8sxfaifmf4ahfr30bcz7"))))
(build-system gnu-build-system)
(home-page "http://www.xmailserver.org/libpcl.html")
(synopsis "Portable Coroutine Library")
(description "The @acronym{PCL, Portable Coroutine Library} implements the
low level functionality for coroutines.")
(license license:gpl2+)))
(define-public aws-c-http
(package
(name "aws-c-http")
@@ -1477,48 +1519,6 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
(home-page "https://microsoft.github.io/mimalloc/")
(license license:expat)))
(define-public mps
(package
(name "mps")
(version "1.118.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Ravenbrook/mps")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "078iv3fsz0dnfwb7g63apkvcksczbqfxrxm73k80jwnwca6pgafy"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-cflags
;; The recursive make call in the test suite doesn't pass CFLAGS
;; down properly so we need to do it ourselves
(lambda _
(substitute* "Makefile.in"
(("CFLAGS=\"(.*)\"" _ flags)
(string-append "CFLAGS=\"" flags " $(CFLAGS)\""))))))
#:parallel-build? #f ;Parallel build fails
#:test-target "test"
#:make-flags
#~(list "CFLAGS=-Wno-error=dangling-pointer -Wno-maybe-uninitialized"
;; These flags are needed for the recursive make calls in testing
(string-append "CC=" #$(cc-for-target)) "-j" "1")))
(inputs (list sqlite))
(home-page "http://www.ravenbrook.com/project/mps")
(synopsis "Memory pool system")
(description
"This package provides a cross-platform memory management system. It
permits the flexible combination of memory management techniques, supporting
manual and automatic memory management, in-line allocation, finalization,
weakness, and multiple concurrent co-operating incremental generational
garbage collections. It also includes a library of memory pool classes
implementing specialized memory management policies.")
(license license:bsd-2)))
;;; The package is named orangeduck-mpc to differentiate it from GNU mpc.
(define-public orangeduck-mpc
;; The last release lacks an 'install' target.
@@ -1762,7 +1762,7 @@ string.h, but with a utf8* prefix instead of the str* prefix.")
(define-public simdutf
(package
(name "simdutf")
(version "9.0.0")
(version "7.7.1")
(source
(origin
(method git-fetch)
@@ -1771,7 +1771,7 @@ string.h, but with a utf8* prefix instead of the str* prefix.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0f5ccvqj7pfa69m9y1kxp2v1lybx6x8i9pykdqfkr7dydqbhrhx6"))))
(base32 "0kw4j4qqcfjaii667xa745pklj50m70nqq8cj5agj714acczbk7y"))))
(build-system cmake-build-system)
(arguments (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")))
(synopsis "SIMD Unicode validation and transcoding")
+1
View File
@@ -45,6 +45,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system cmake)
#:use-module (guix build-system pyproject)
#:use-module ((guix build-system python) #:select (pypi-uri))
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+44 -37
View File
@@ -52,7 +52,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages docbook)
@@ -337,7 +337,7 @@ reconstruction capability.")
(define-public cdrdao
(package
(name "cdrdao")
(version "1.2.6")
(version "1.2.5")
(source
(origin
(method git-fetch)
@@ -347,18 +347,30 @@ reconstruction capability.")
(string-append "rel_" (string-replace-substring version "." "_")))))
(file-name (git-file-name name version))
(sha256
(base32 "0hb8dfb88zk01yk5nfl8m5hsg4x2scb2899pxb717zywznr8jijw"))))
(build-system glib-or-gtk-build-system)
(base32 "1hh1lm4wr1vhsq2brczn94h88h3bppvjidj9cfqkl20jhaj38968"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list
;; Use the native SCSI interface.
"--without-scglib")))
'(#:configure-flags
(list
;; GCDMaster depends on obsolete libgnomeuimm, see
;; <https://github.com/cdrdao/cdrdao/issues/3>.
"--without-gcdmaster"
;; Use the native SCSI interface.
"--without-scglib")
#:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'fix-configure.ac
(lambda _
;; Remove references to missing macros.
(substitute* "configure.ac"
(("^AM_GCONF_SOURCE_2.*") "")
;; This was introduced in autoconf-2.70, but is described
;; as usually not needed in the autoconf documentation.
(("^AC_CHECK_INCLUDES_DEFAULT") "")))))))
(native-inputs
(list autoconf-2.72 automake `(,glib "bin") pkg-config))
(list autoconf automake pkg-config))
(inputs
(list ao gtkmm-3 lame libmad libsigc++-2 libvorbis))
(list ao lame libmad libvorbis))
(home-page "https://cdrdao.sourceforge.net")
(synopsis "Read and write CDs in disk-at-once mode")
(description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
@@ -583,11 +595,7 @@ capacity is user-selectable.")
version "/DVDStyler-" version ".tar.bz2"))
(sha256
(base32
"0n3mfjsazvlzk9hl23q3iz7bmxjq7b5lx0ab8nbk1jgl763k9cqb"))
(snippet
#~(begin (delete-file "src/dvdvml.c")
(delete-file "src/dvdvmy.c")
(delete-file "src/dvdvmy.h")))))
"0n3mfjsazvlzk9hl23q3iz7bmxjq7b5lx0ab8nbk1jgl763k9cqb"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -617,28 +625,27 @@ capacity is user-selectable.")
#t)))
#:tests? #f)) ; No tests.
(inputs ; TODO package bundled wxvillalib
(list bash-minimal ; for wrap-program
cdrtools
dbus
dvd+rw-tools
dvdauthor
eudev
ffmpeg-4
fontconfig
libexif
libjpeg-turbo
wxsvg
wxwidgets))
`(("wxwidgets" ,wxwidgets)
("wssvg" ,wxsvg)
("bash" ,bash-minimal) ; for wrap-program
("dbus" ,dbus)
("cdrtools" ,cdrtools)
("dvd+rw-tools" ,dvd+rw-tools)
("dvdauthor" ,dvdauthor)
("eudev" ,eudev)
("fontconfig" ,fontconfig)
("libexif" ,libexif)
("libjpeg" ,libjpeg-turbo)
("ffmpeg" ,ffmpeg-4)))
(native-inputs
(list bison
docbook-xml
docbook-xsl
flex
gettext-minimal
pkg-config
python-minimal-wrapper
xmlto
zip))
`(("pkg-config" ,pkg-config)
("flex" ,flex)
("python" ,python-2)
("xmlto" ,xmlto)
("gettext" ,gettext-minimal)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("zip" ,zip)))
(synopsis "DVD authoring application")
(description "DVDStyler is a DVD authoring application which allows users
to burn video files in many formats to DVD discs, complete with individually
+74 -19
View File
@@ -131,6 +131,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
@@ -1881,6 +1882,7 @@ http server.")
(arguments (list #:tests? #false)) ;no tests included
(native-inputs
(list python-pytest
python-pytest-cov
python-setuptools
python-wheel
python-xmlschema))
@@ -1913,6 +1915,42 @@ XML output")
decorators from external files.")
(license license:expat)))
(define-public python-pytest-random-order
(package
(name "python-pytest-random-order")
(version "1.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-random-order" version))
(sha256
(base32 "104hww3b86jchk41kjhyycr541pd2dfgqkww6lx5y70z9z9xfwj4"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; AttributeError: module 'py' has no attribute 'code'.
#~(list "-k" (string-append "not test_it_works_with_actual_tests"
" and not test_failed_first"
" and not test_doctests"))))
(native-inputs
(list python-pytest-xdist
python-setuptools
python-py
python-wheel))
(propagated-inputs
(list python-pytest))
(home-page "https://github.com/jbasko/pytest-random-order")
(synopsis "Pytest plugin to randomize the order of tests")
(description "@code{pytest-random-order} is a Pytest plugin that
randomizes the order of tests. This can be useful to detect a test that
passes just because it happens to run after an unrelated test that leaves the
system in a favourable state. The plugin allows user to control the level of
randomness they want to introduce and to disable reordering on subsets of
tests. Tests can be rerun in a specific order by passing a seed value
reported in a previous test run.")
(license license:expat)))
(define-public python-pytest-runner
(package
(name "python-pytest-runner")
@@ -2695,11 +2733,7 @@ failures and errors instantly.")
"test_is_not_identity"
"test_resolves_builtin_types[object]"
"test_resolves_forwardrefs_to_builtin_types[object]"
"test_timezone_lookup[tzinfo]"
;; hypothesis.errors.FailedHealthCheck: Input generation is slow
#$@(if (target-riscv64?)
'("test_can_run_with_no_db")
'()))
"test_timezone_lookup[tzinfo]")
" and not "))
#:phases
#~(modify-phases %standard-phases
@@ -2922,8 +2956,12 @@ mypy plugins.")
"and not upstream_url"))))
(native-inputs
(list python-pytest
python-pytest-black
python-pytest-checkdocs
python-pytest-cov
python-pytest-enabler
python-pytest-flake8
python-pytest-mypy
python-setuptools
python-wheel))
(propagated-inputs
@@ -3030,28 +3068,21 @@ possible to write plugins to add your own checks.")
(define-public behave
(package
(name "behave")
;; 1.3.3 (2025-09-04), the latest changes provide support for Python
;; 3.12+; move back to git tag when released.
(properties '((commit . "43d0a93240c0b25b0cbf59bdc196b74fb8a2353e")
(revision . "0")))
(version (git-version "1.3.3"
(assoc-ref properties 'revision)
(assoc-ref properties 'commit)))
(version "1.3.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/behave/behave")
(commit (assoc-ref properties 'commit))))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "05671jf7scpgqr8chzgs9bxidvf12nlkqqiqxa5qwmykqfvc8nk4"))))
(base32 "1fxj51kailsdakqi7qbw700k258n7r3lv75mgxs45ld5xh2jfyxh"))))
(build-system pyproject-build-system)
;; tests: 1638 passed, 3 skipped, 2 xfailed
(native-inputs
(list python-chardet
python-freezegun
python-charset-normalizer
(list python-assertpy
python-chardet
python-mock
python-path
python-pyhamcrest
python-pytest
@@ -3100,7 +3131,7 @@ time by mocking the datetime module.")
(define-public python-flaky
(package
(name "python-flaky")
(version "3.8.1") ; On bump, remove some skipped tests in python-cherrypy.
(version "3.8.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "flaky" version))
@@ -3688,6 +3719,30 @@ system. The code under test requires no modification to work with pyfakefs.")
directories and files.")
(license license:expat)))
(define-public python-pytest-tornado5
(package
(name "python-pytest-tornado5")
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-tornado5" version))
(sha256
(base32
"0qb62jw2w0xr6y942yp0qxiy755bismjfpnxaxjjm05gy2pymr8d"))))
(build-system pyproject-build-system)
(arguments
;; Tests require pytest < 6
(list #:tests? #f))
(propagated-inputs (list python-pytest python-tornado))
(native-inputs (list python-setuptools python-wheel))
(home-page "https://github.com/vidartf/pytest-tornado")
(synopsis
"Fixtures and markers to simplify testing of Tornado applications")
(description
"This package provides a @code{py.test} plugin supplying fixtures and
markers to simplify testing of asynchronous tornado applications.")
(license license:asl2.0)))
(define-public guile-proba
(package
(name "guile-proba")
+3 -2
View File
@@ -28,6 +28,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
@@ -46,7 +47,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages documentation)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages fortran-xyz)
@@ -579,7 +580,7 @@ stored with user-specified precision.")
python-sphinx))
(inputs
(list fftwf
`(,hwloc "lib")
`(,hwloc-2 "lib")
libtirpc
lmfit
muparser
+12 -11
View File
@@ -302,7 +302,7 @@ will name the threaded machine type unless THREADS? is provided as #f."
(name "chez-scheme-for-racket")
;; The version should match `(scheme-version #t)`.
;; See s/cmacros.ss c. line 360.
(version "10.4.0-pre-release.1-1") ; expect a chez-nanopass-bootstrap update
(version "10.3.0-pre-release.2") ; expect a chez-nanopass-bootstrap update
(source #f)
(build-system gnu-build-system)
(inputs `(,@(if (nix-system->native-chez-machine-type)
@@ -507,7 +507,7 @@ version of Chez Scheme.")
(name "chez-scheme")
;; The version should match `(scheme-version-number #t)`.
;; See s/cmacros.ss c. line 360.
(version "10.4.0") ; expect a chez-nanopass-bootstrap update
(version "10.2.0") ; expect a chez-nanopass-bootstrap update
(source (origin
(method git-fetch)
(uri (git-reference
@@ -515,7 +515,7 @@ version of Chez Scheme.")
(commit (string-append "v" version))))
(sha256
(base32
"079vlkl27qdvsg1rsynmd828m42n98c2dnldkhsxf2slfsqd9kv5"))
"14iv4kfkyvrkigr1n2prf71n2l3vs0sf0549rvh6y4x2faa2l329"))
(file-name (git-file-name name version))
(patches (search-patches "chez-scheme-bin-sh.patch"))
(snippet #~(begin
@@ -840,9 +840,9 @@ User's Guix}, among other documents.")
(define-public chez-nanopass-bootstrap
(hidden-package
(package
(name "chez-nanopass-bootstrap")
(version "1.9.4")
(properties '((chez-nanopass-release-date . "December 29, 2025")))
(name "chez-nanopass")
(version "1.9.2")
(properties `((chez-nanopass-release-date . "October 18, 2020")))
(source
(origin
(method git-fetch)
@@ -850,7 +850,7 @@ User's Guix}, among other documents.")
(url "https://github.com/nanopass/nanopass-framework-scheme")
(commit (string-append "v" version))))
(sha256
(base32 "1qq0vnbrvcialgjgnblfq3qp1ilqg94h0kg896ksd9v4g7ipj9v0"))
(base32 "16vjsik9rrzbabbhbxbaha51ppi3f9n8rk59pc6zdyffs0vziy4i"))
(file-name (git-file-name "nanopass-framework-scheme" version))
(snippet
#~(begin
@@ -929,9 +929,10 @@ create compilers, making them easier to understand and maintain.")
(define-public chez-nanopass
(package
(inherit chez-nanopass-bootstrap)
(name "chez-nanopass")
(version "1.9.4")
(properties '((chez-nanopass-release-date . "December 29, 2025")))
;; This release has a significant bug fix. Expect the next releases of
;; chez-scheme{,-for-racket} to want this for chez-nanopass-bootstrap.
(version "1.9.3")
(properties '((chez-nanopass-release-date . "August 24, 2025")))
(source
(let ((bootstrap-origin (package-source chez-nanopass-bootstrap)))
(origin
@@ -940,7 +941,7 @@ create compilers, making them easier to understand and maintain.")
(url (git-reference-url (origin-uri bootstrap-origin)))
(commit (string-append "v" version))))
(sha256
(base32 "1qq0vnbrvcialgjgnblfq3qp1ilqg94h0kg896ksd9v4g7ipj9v0"))
(base32 "0757x3a3b4kcd3jk52h4ikqzv7cc1mvphlw592f0r5pz99bkxiin"))
(file-name (git-file-name "nanopass-framework-scheme" version)))))
(native-inputs (list chez-scheme stex))))
+47 -95
View File
@@ -20,113 +20,65 @@
(define-module (gnu packages chicken)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system chicken)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module ((guix licenses)
#:prefix license:)
#:use-module (srfi srfi-1))
#:prefix license:))
;; This package is build from pre-built C source code, provided in the CHICKEN
;; release tarball. Based on this bootstrap compiler, we build CHICKEN from
;; the Scheme source, thus enabling us to (at least) patch it.
;;
;; See <https://issues.guix.gnu.org/22366>.
(define-public chicken-bootstrap
(hidden-package
(package
(name "chicken-bootstrap")
(version "5.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://code.call-cc.org/releases/"
version "/chicken-" version ".tar.gz"))
(sha256
(base32
"0pzcrnzkjw2sa44vy59wbygvlc3nva8zisprkdnvyrqi3jk4lp9w"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
;; No `configure' script; run "make check" after "make install" as
;; prescribed by README.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(add-after 'install 'check
(assoc-ref %standard-phases 'check)))
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list "PLATFORM=linux"
(string-append "PREFIX=" out)
(string-append "VARDIR=" out "/var/lib")))
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
(native-search-paths
(list (search-path-specification
(variable "CHICKEN_REPOSITORY_PATH")
;; TODO extract binary version into a module level definition.
(files (list "var/lib/chicken/11")))))
;; Reference gcc-toolchain lazily to avoid circular module dependency
;; problems.
(propagated-inputs (list (module-ref (resolve-interface
'(gnu packages commencement))
'gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
(description
"CHICKEN is a compiler for the Scheme programming language. CHICKEN
pr oduces portable and efficient C, supports almost all of the R5RS Scheme
la nguage standard, and includes many enhancements and extensions.")
(license license:bsd-3))))
;; The CHICKEN compiler is itself written in CHICKEN, the CHICKEN release
;; tarballs includes auto-generated C code to mitigate the compiler
;; bootstrapping problem. To be able to patch the original Scheme source,
;; we compile from this Scheme source here using the chicken-bootstrap
;; compiler obtained from the autogenerated C code.
;;
;; See <https://issues.guix.gnu.org/22366>.
(define-public chicken
(package
(inherit chicken-bootstrap)
(name "chicken")
(version "5.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://code.call-cc.org/releases/"
version "/chicken-" version ".tar.gz"))
(sha256
(base32
"0pzcrnzkjw2sa44vy59wbygvlc3nva8zisprkdnvyrqi3jk4lp9w"))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments chicken-bootstrap)
((#:phases phases)
#~(modify-phases #$phases
;; CHICKEN contains auto-generated C code, remove it and
;; compile from the Scheme source using chicken-bootstrap.
(add-after 'unpack 'remove-auto-generated-code
(lambda _
(invoke "make" "spotless")))
;; Invoke commands by name, not by path.
;;
;; See <https://codeberg.org/guix/guix/issues/8471>.
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((sh (search-input-file inputs "/bin/sh"))
(cp (search-input-file inputs "/bin/cp")))
(substitute* "egg-compile.scm"
(("/bin/sh") sh)
(("\"cp\"") (string-append "\"" cp "\"")))
(substitute* "posixunix.scm"
(("/bin/sh") sh))
(substitute* "chicken-install.scm"
(("\"sh \"") (string-append "\"" sh " \""))))))))))
(inputs (list chicken-bootstrap))
(properties
(alist-delete 'hidden? (package-properties chicken-bootstrap)))))
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
;; No `configure' script; run "make check" after "make install" as
;; prescribed by README.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(add-after 'install 'check
(assoc-ref %standard-phases 'check)))
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list "PLATFORM=linux"
(string-append "PREFIX=" out)
(string-append "VARDIR=" out "/var/lib")))
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
(native-search-paths
(list (search-path-specification
(variable "CHICKEN_REPOSITORY_PATH")
;; TODO extract binary version into a module level definition.
(files (list "var/lib/chicken/11")))))
;; Reference gcc-toolchain lazily to avoid circular module dependency
;; problems.
(propagated-inputs (list (module-ref (resolve-interface
'(gnu packages commencement))
'gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
(description
"CHICKEN is a compiler for the Scheme programming language. CHICKEN
produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
(license license:bsd-3)))
(define-public chicken-compile-file
(package
+74 -116
View File
@@ -53,6 +53,7 @@
#:use-module (gnu packages llvm)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages maths)
#:use-module (gnu packages ninja)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages pciutils)
@@ -82,6 +83,7 @@
"base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_user_dirs" ;Expat
"net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"net/third_party/nss" ;MPL-2.0
"net/third_party/quiche" ;BSD-3
"net/third_party/uri_template" ;ASL2.0
"third_party/abseil-cpp" ;ASL2.0
@@ -102,11 +104,8 @@
"third_party/catapult" ;BSD-3
"third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
"third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
"third_party/catapult/third_party/beautifulsoup4-4.9.3" ;Expat
"third_party/catapult/third_party/html5lib-1.1" ;Expat
"third_party/catapult/third_party/polymer" ;BSD-3
"third_party/catapult/third_party/six" ;Expat
"third_party/catapult/third_party/typ" ;ASL2.0
;; XXX: This is a minified version of <https://d3js.org/>.
"third_party/catapult/tracing/third_party/d3" ;BSD-3
"third_party/catapult/tracing/third_party/gl-matrix" ;Expat
@@ -121,12 +120,19 @@
"third_party/cld_3" ;ASL2.0
"third_party/closure_compiler" ;ASL2.0
"third_party/compiler-rt" ;ASL2.0
"third_party/compiler-rt/src/lib" ;ASL2.0
"third_party/compiler-rt/src/lib/builtins" ;ASL2.0
"third_party/content_analysis_sdk" ;BSD-3
"third_party/cpuinfo" ;BSD-2
"third_party/crabbyavif" ;ASL2.0
"third_party/crabbyavif/src/sys/dav1d-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/aom-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/libgav1-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/libyuv-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/ndk-sys" ;ASL2.0
"third_party/crashpad" ;ASL2.0
"third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
"third_party/crashpad/crashpad/third_party/zlib" ;Zlib
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
"third_party/crc32c" ;BSD-3
"third_party/cros_system_api" ;BSD-3
"third_party/dav1d" ;BSD-2
@@ -134,25 +140,19 @@
;; TODO: can likely be unbundled when Vulkan is updated.
"third_party/dawn/third_party/khronos" ;ASL2.0
"third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3
"third_party/dawn/third_party/renderdoc" ;Expat
"third_party/dawn/third_party/webgpu-headers" ;BSD-3
"third_party/depot_tools" ;BSD-3
"third_party/devscripts" ;GPL2.0
"third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end"
"third_party/devtools-frontend/src/front_end/third_party"
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
"third_party/devtools-frontend/src/front_end/third_party\
/additional_readme_paths.json" ;no explicit license; trivial
"third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/csp_evaluator" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/legacy-javascript" ;ASL-2.0
"third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/lit" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
@@ -164,12 +164,10 @@
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel" ; Expat
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs" ; ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/puppeteer-replay" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party\
/vscode.web-custom-data" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/third-party-web" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/web-vitals" ;Expat
"third_party/devtools-frontend/src/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
@@ -181,7 +179,6 @@
"third_party/farmhash" ;Expat
"third_party/fast_float" ;ASL2.0, Boost1.0, Expat
"third_party/fdlibm" ;non-copyleft
"third_party/federated_compute/chromium/fcp/confidentialcompute" ;ASL2.0
"third_party/federated_compute/src/fcp/base" ;ASL2.0
"third_party/federated_compute/src/fcp/confidentialcompute" ;ASL2.0
"third_party/federated_compute/src/fcp/protos/confidentialcompute" ;ASL2.0
@@ -190,9 +187,7 @@
"third_party/fft2d" ;non-copyleft
"third_party/flatbuffers" ;ASL2.0
"third_party/fp16" ;Expat
"third_party/freetype" ;GPL2.0
"third_party/fusejs" ;ASL2.0
"third_party/fxdiv" ;Expat
"third_party/gemmlowp" ;ASL2.0
"third_party/google_input_tools" ;ASL2.0
"third_party/google_input_tools/third_party/closure_library" ;ASL2.0
@@ -201,9 +196,6 @@
"third_party/harfbuzz-ng" ;Expat
"third_party/highway" ;ASL2.0
"third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
"third_party/hyphenation-patterns" ;Expat
;; FIXME: Our icu does not have some headers such as udatamem.h.
"third_party/icu" ;Unicode3.0
"third_party/ink" ;ASL2.0
"third_party/ink_stroke_modeler" ;ASL2.0
"third_party/inspector_protocol" ;BSD-3
@@ -216,13 +208,12 @@
"third_party/libaddressinput" ;ASL2.0
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
"third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
"third_party/libaom/source/libaom/third_party/SVT-AV1" ;BSD-3
"third_party/libaom/source/libaom/third_party/vector" ;Expat
"third_party/libaom/source/libaom/third_party/x86inc" ;ISC
"third_party/libdrm" ; Expat
"third_party/libgav1" ;ASL2.0
"third_party/libjingle_xmpp" ;BSD-3
"third_party/libpfm4" ;BSD
"third_party/libpng" ;PNG2.0
"third_party/libphonenumber" ;ASL2.0
"third_party/libsecret" ;LGPL2.1+
"third_party/libsrtp" ;BSD-3
@@ -236,8 +227,6 @@
"third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat
"third_party/libwebm" ;BSD-3
"third_party/libx11" ;BSD
"third_party/libxcb-keysyms" ;BSD
"third_party/libxml/chromium" ;BSD-3
"third_party/libyuv" ;BSD-3
"third_party/libzip" ;BSD-3
@@ -255,7 +244,6 @@
"third_party/modp_b64" ;BSD-3
"third_party/nasm" ;BSD-2
"third_party/nearby" ;ASL2.0
"third_party/neon_2_sse" ;BSD-2
"third_party/node" ;Expat
"third_party/oak/chromium/proto" ;ASL2.0
"third_party/oak/chromium/proto/attestation" ;ASL2.0
@@ -263,20 +251,14 @@
"third_party/one_euro_filter" ;BSD-3
"third_party/openscreen" ;BSD-3
"third_party/openscreen/src/third_party/tinycbor" ;Expat
"third_party/opus" ;BSD-3
"third_party/ots" ;BSD-3
"third_party/pdfium" ;BSD-3
"third_party/pdfium/third_party/agg23" ;Expat
"third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
"third_party/pdfium/third_party/lcms" ;Expat
"third_party/pdfium/third_party/libopenjpeg" ;BDS-2
"third_party/pdfium/third_party/libtiff" ;non-copyleft
"third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
"third_party/perfetto" ;ASL2.0
"third_party/perfetto/protos/third_party/chromium" ;BSD-3
"third_party/perfetto/protos/third_party/pprof" ;ASL2.0
"third_party/perfetto/protos/third_party/primes" ;ASL2.0
"third_party/perfetto/protos/third_party/simpleperf" ;ASL2.0
"third_party/pffft" ;the "FFTPACK" license
"third_party/ply" ;BSD-3
"third_party/polymer" ;BSD-3
@@ -286,7 +268,6 @@
"third_party/protobuf/third_party/utf8_range" ; Expat
"third_party/pthreadpool" ;BSD-2
"third_party/puffin" ;Non-copyleft
"third_party/pyyaml" ;Expat
"third_party/pyjson5" ;ASL2.0
"third_party/rapidhash" ;BSD-2
"third_party/readability" ;ASL2.0
@@ -298,14 +279,11 @@
"third_party/search_engines_data" ;BSD-3
"third_party/securemessage" ;ASL2.0
"third_party/selenium-atoms" ;ASL2.0
"third_party/sentencepiece" ;ASL2.0
"third_party/sentencepiece/src/third_party/darts_clone" ;BSD-3
"third_party/shell-encryption" ;ASL2.0
"third_party/simdutf" ;Non-copyleft
"third_party/simplejson" ; Non-copyleft
"third_party/six" ;Expat
"third_party/skia" ;BSD-3
"third_party/skia/include/third_party/vulkan" ;BSD-3
"third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
"third_party/smhasher" ;Expat, public domain
;; FIXME: the snappy "replacement" shim (see replace_gn_files.py below) does
@@ -360,6 +338,7 @@
"third_party/webrtc/modules/third_party/fft" ;Non-copyleft
"third_party/webrtc/modules/third_party/g711" ;Public domain
"third_party/webrtc/modules/third_party/g722" ;Public domain
"third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
"third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
"third_party/woff2" ;ASL2.0
"third_party/wuffs" ;ASL2.0
@@ -393,7 +372,7 @@
;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests"))
(define %chromium-version "147.0.7727.137")
(define %chromium-version "141.0.7390.65")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision (string-append "debian/" %ungoogled-revision))
@@ -405,7 +384,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"1ha84j3zckdv2l8dpicqhmr6a8mq3bqwalw0bmgamvlmns9i7nrj"))))
"1hk4rww2gccly1qv0xnswd77haj02rlza82403dxdjm8fkdfndy6"))))
(define %debian-origin
(origin
@@ -418,7 +397,7 @@
((_ version) version))))
(sha256
(base32
"04lqbclkvn9nsksgjpjilh78a8y17mwwq4pmhr6h8gvpp2y3bhhc"))))
"06s3kvwb3490xb28n6r3q5n1c0ylsvchiw6s4h1rrp8jqzwjbmc6"))))
(define (origin-file origin file)
(computed-file
@@ -431,38 +410,26 @@
(define %debian-patches
(map debian-patch
'("bookworm/foreach.patch"
"debianization/safe-libcxx.patch"
"disable/enterprise-tests.patch"
'("bookworm/clang19.patch"
"bookworm/foreach.patch"
"disable/node-version-ck.patch"
"disable/rustc-allow-features.patch"
"fixes/bytemuck.patch"
"fixes/gentoo-stylesheet.patch"
"fixes/libcpp-headers.patch"
"fixes/libpng-testonly.patch"
"fixes/rust-clanglib.patch"
"llvm-19/clang19.patch"
"llvm-19/clone-traits.patch"
"llvm-19/keyfactory.patch"
"llvm-19/value-or.patch"
"llvm-22/ignore-for-ubsan.patch"
"system/openjpeg.patch"
"trixie/cookie-string-view.patch"
"trixie/nodejs-main.patch")))
;; Remove after rust is past
;; <https://github.com/rust-lang/rust/pull/141061>.
"trixie/rust-no-alloc-shim.patch")))
(define %guix-patches
(list (local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-custom-compiler.patch")))
(local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-empty-parsed-rustc-args.patch")))
(local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-extension-search-path.patch")))
(local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-unbundle-icu-target.patch")))
(local-file
(assume-valid-file-name
(search-patch
@@ -533,8 +500,9 @@
"#if 0"))
(invoke "python" "build/linux/unbundle/replace_gn_files.py"
"--system-libraries" "flac" "fontconfig" "freetype"
"harfbuzz-ng" "libjpeg" "libpng" "libwebp" "libxml"
"libxslt" "openh264" "opus" "zlib")))))
"harfbuzz-ng" "icu" "libjpeg"
"libpng" "libwebp" "libxml" "libxslt" "openh264" "opus"
"zlib")))))
(define opus+custom
(package/inherit opus
@@ -563,7 +531,7 @@
%chromium-version "-lite.tar.xz"))
(sha256
(base32
"1m22whg5n9lw9gqhalm95jwfm45lqp4a7cs3mn3f4n8w0rvr0r5j"))
"09iwglswnr6d45zz3zsjw7jpm1xlwwkxlz9h5nlhqxyd933a04fq"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@@ -580,7 +548,6 @@
;; directory for an exhaustive list of supported flags.
;; (Note: The 'configure' phase will do that for you.)
#~(list "is_debug=false"
"is_component_build=false"
;; Use the "official" release optimizations, as opposed to
;; a developer build.
"is_official_build=true"
@@ -588,8 +555,6 @@
"use_clang_modules=false"
"use_custom_libcxx=false" ; support for this is deprecated and to be removed.
"optimize_webui=false"
"webnn_use_tflite=false"
"build_tflite_with_xnnpack=false"
"safe_browsing_use_unrar=false"
"chrome_pgo_phase=0"
"use_sysroot=false"
@@ -607,10 +572,12 @@
"enable_service_discovery=false"
"enable_vr=false"
"enable_enterprise_companion=false"
"enable_glic=false"
"enable_iterator_debugging=false"
"enable_hangout_services_extension=false"
"enable_widevine=false"
"fatal_linker_warnings=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
"enable_js_type_check=false"
;; Disable code using TensorFlow until it has been scrutinized
;; by the ungoogled project.
"build_with_tflite_lib=false"
@@ -622,11 +589,6 @@
"angle_has_histograms=false"
"angle_build_tests=false"
"build_angle_perftests=false"
"enable_perfetto_unittests=false"
"skia_enable_skshapper_tests=false"
"tint_build_unittests=false"
"enable_nocompile_tests=false"
"enable_screen_ai_browsertests=false"
"clang_warning_suppression_file=\"\""
@@ -635,8 +597,6 @@
"is_cfi=false"
"symbol_level=0"
"blink_symbol_level=0"
"v8_symbol_level=0"
"v8_enable_backtrace=false"
;; Define a custom toolchain that simply looks up CC, AR and
@@ -668,10 +628,26 @@
;; invokation and fails if it's just the version number.
" (f6e511eec 2024-10-15) (built from a source tarball)\"")
;; Chromium's build/rust/std/BUILD.gn has a hardcoded
;; list of stdlib rlibs (stdlib_files) that GN uses to
;; declare build outputs. GN requires static output
;; declarations, so the list must exactly match what
;; rlibs exist in the Rust sysroot. Chromium's list
;; includes unicode_width because their bundled
;; toolchain (Rust 1.89) ships it as a dependency of
;; getopts 0.2.23. Our Rust 1.93 has getopts 0.2.24
;; which dropped that dependency, so unicode_width is
;; not in our sysroot. This GN arg removes it from
;; the list. (Chromium's own use of unicode_width via
;; codespan-reporting is a separate vendored copy under
;; third_party/rust/chromium_crates_io/ and is
;; unaffected.)
"removed_rust_stdlib_libs=[\"unicode_width\"]"
;; Prefer system libraries.
"use_system_freetype=true"
"use_system_harfbuzz=true"
"use_system_icu=false"
"use_system_icu=true"
"use_system_lcms2=true"
"use_system_libffi=true"
"use_system_libjpeg=true"
@@ -682,7 +658,7 @@
"use_gnome_keyring=false" ;deprecated by libsecret
"use_pulseaudio=true"
"link_pulseaudio=true"
"icu_use_data_file=true"
"icu_use_data_file=false"
;; VA-API acceleration is currently only supported on x86_64-linux.
#$@(if (string-prefix? "x86_64" (or (%current-target-system)
@@ -690,13 +666,6 @@
'("use_vaapi=true")
'())
#$@(if (string-prefix? "aarch64" (or (%current-target-system)
(%current-system)))
'("use_v4l2_codec=true"
"use_vaapi=false"
"use_av1_hw_decoder=true")
'())
;; Do not artificially restrict formats supported by system ffmpeg.
"proprietary_codecs=true"
"ffmpeg_branding=\"Chrome\""
@@ -744,9 +713,9 @@
;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead.
;(substitute* (find-files "chrome" "\\.cc$")
; (("third_party/icu/source/(common|i18n)/")
; ""))
(substitute* (find-files "chrome" "\\.cc$")
(("third_party/icu/source/(common|i18n)/")
""))
;; XXX: Should be unnecessary when use_system_lcms2=true.
(substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
@@ -763,13 +732,15 @@
(("include \"third_party/curl")
"include \"curl"))
;; Our clang libs and rustfmt are not under bindgen root directory.
(substitute* '("build/rust/rust_bindgen_generator.gni"
"build/rust/rust_bindgen.gni")
;; Unknown flags as of clang-19, can be removed when building with
;; newer clang.
(substitute* "build/config/compiler/BUILD.gn"
(("-gsimple-template-names") ""))
;; Clang libs are not under bindgen root directory.
(substitute* "build/rust/rust_bindgen_generator.gni"
(("(_libclang_path = )rust_bindgen_root" _ libclang)
(string-append libclang "clang_base_path"))
(("(_rustfmt_path = \")\\$\\{rust_bindgen_root\\}" _ rustfmt)
(string-append rustfmt "${rust_sysroot_absolute}"))))))
(string-append libclang "clang_base_path"))))))
(add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys)
(let ((cups-config (search-input-file inputs "/bin/cups-config"))
@@ -792,22 +763,13 @@
(add-after 'add-absolute-references 'adjust-CPLUS_INCLUDE_PATH
;; The libcxx include/c++/v1 directory is not exposed via
;; CPLUS_INCLUDE_PATH by default, causing errors like
;; "fatal error: 'format' file not found". Also clang is
;; unable to find gcc's bits/c++config.h which is machine
;; dependent.
;; "fatal error: 'format' file not found".
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let* ((libcxx-v1 (search-input-directory inputs
"include/c++/v1"))
(target-system #$(nix-system->gnu-triplet
(or (%current-target-system)
(%current-system))))
(target-include (string-append "include/c++/"
target-system))
(gcc-bits (search-input-directory inputs
target-include)))
(setenv "CPLUS_INCLUDE_PATH"
(string-append libcxx-v1 ":" gcc-bits ":"
(getenv "CPLUS_INCLUDE_PATH"))))))
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(search-input-directory inputs
"/include/c++/v1")
":" (getenv "CPLUS_INCLUDE_PATH")))))
(add-before 'configure 'prepare-build-environment
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((node (search-input-file (or native-inputs inputs)
@@ -888,15 +850,13 @@
"resources.pak"
"v8_context_snapshot.bin"
"chrome_crashpad_handler"
"icudtl.dat"
;; Swiftshader ICD.
"libvk_swiftshader.so"
"vk_swiftshader_icd.json"
;; Chromium ships its own libGL and
;; vulkan implementation called ANGLE.
"libvulkan.so.1"
;; Chromium ships its own libGL
;; implementation called ANGLE.
"libEGL.so" "libGLESv2.so"))
(locales (string-append lib "/locales"))
(resources (string-append lib "/resources"))
@@ -912,11 +872,9 @@
(substitute* '("chrome/app/resources/manpage.1.in"
"chrome/installer/linux/common/desktop.template")
(("@@MENUNAME") "Chromium")
(("@@PACKAGE") "chromium")
(("/usr/bin/@@usr_bin_symlink_name") exe)
(("@@uri_scheme") "x-scheme-handler/chromium;")
(("@@extra_desktop_entries") ""))
(("@@MENUNAME@@") "Chromium")
(("@@PACKAGE@@") "chromium")
(("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
(mkdir-p man)
(copy-file "chrome/app/resources/manpage.1.in"
@@ -997,7 +955,7 @@
glib
gtk+
harfbuzz
icu4c-77
icu4c
lcms
libcxx
libffi
+2 -1
View File
@@ -30,6 +30,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
@@ -252,7 +253,7 @@ as well as some desktop-wide documents.")
pkg-config
xorg-server-for-tests))
(inputs
(list at-spi2-core
(list atk
cinnamon-desktop
exempi
gsettings-desktop-schemas
+34 -106
View File
@@ -23,24 +23,19 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages clojure)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages golang)
#:use-module (gnu packages guile)
#:use-module (gnu packages java)
#:use-module (gnu packages maven)
#:use-module (gnu packages)
#:use-module (guix build-system ant)
#:use-module (guix build-system clojure)
#:use-module (guix build-system copy)
#:use-module (guix build-system go)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system copy)
#:use-module (guix build-system clojure))
(define-public clojure-spec-alpha
(package
@@ -382,14 +377,14 @@ designs.")
(define-public clojure-tools
(package
(name "clojure-tools")
(version "1.12.4.1618")
(version "1.12.4.1582")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.clojure.org/install/clojure-tools-"
version
".tar.gz"))
(sha256 (base32 "08fy3k248sbsrbgl0lq3q4d23vp4chdawy230ardx61sssk9sxhk"))
(sha256 (base32 "08gzfblnz0zhnk6pwr9vcm6y168psgrwmqww3wqk1v7j5gr68n7x"))
;; Remove AOT compiled JAR. The other JAR only contains uncompiled
;; Clojure source code.
(snippet
@@ -517,7 +512,7 @@ defining and using monads and useful monadic functions.")
(define-public clojure-core-async
(package
(name "clojure-core-async")
(version "1.9.865")
(version "1.8.741")
(home-page "https://github.com/clojure/core.async")
(source (origin
(method git-fetch)
@@ -527,7 +522,7 @@ defining and using monads and useful monadic functions.")
(file-name (git-file-name name version))
(sha256
(base32
"15pc2m58fscix85gsiwl9dlvw2x6alvc4qni46rry2sr00nfzd3r"))))
"1m6lir2xr119yxz483cz0rfw4k3a40qmmsiwl2y7kyxy65vab60z"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
@@ -551,7 +546,7 @@ work on Communicating Sequential Processes (CSP).")
(define-public clojure-core-cache
(package
(name "clojure-core-cache")
(version "1.2.263")
(version "1.2.249")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -560,7 +555,7 @@ work on Communicating Sequential Processes (CSP).")
(file-name (git-file-name name version))
(sha256
(base32
"19q81aki8wb120v6jfylwqgf965mwkhrpcsrs5zazjfjv8vq6glx"))))
"0hdwv5dsx49i12riz3frzshwkgw26ah43667lzga2n6zgpmrh8ii"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
@@ -603,7 +598,7 @@ It supports Clojure 1.5.1 and later as well as ClojureScript.")
(define-public clojure-core-memoize
(package
(name "clojure-core-memoize")
(version "1.2.281")
(version "1.2.273")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -612,7 +607,7 @@ It supports Clojure 1.5.1 and later as well as ClojureScript.")
(file-name (git-file-name name version))
(sha256
(base32
"0bnlqs7m69svhfadwy46wgc88j9ma9fhdk4586b4xxppamj6c5j4"))))
"009fj19y464an66pryygmqbnx2dqk5wkp40rbkbgkir0ax0k6j3y"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
@@ -739,7 +734,7 @@ maps also support conj/peek/pop operations.")
(define-public clojure-data-xml
(package
(name "clojure-data-xml")
(version "0.2.0-alpha11")
(version "0.2.0-alpha10")
(home-page "https://github.com/clojure/data.xml")
(source (origin
(method git-fetch)
@@ -749,7 +744,7 @@ maps also support conj/peek/pop operations.")
(file-name (git-file-name name version))
(sha256
(base32
"0k7hq3s4zbk0ryhgycivl1dk22fzh60522a57az8ykmixhqjxwhg"))))
"0mnhgrh20p2wwmq8a4631dkpxbgbijwi6sfhw5v784hzkjkfgkh6"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
@@ -867,7 +862,7 @@ tree.
(define-public clojure-tools-analyzer
(package
(name "clojure-tools-analyzer")
(version "1.2.2")
(version "1.2.1")
(home-page "https://github.com/clojure/tools.analyzer")
(source (origin
(method git-fetch)
@@ -877,7 +872,7 @@ tree.
(file-name (git-file-name name version))
(sha256
(base32
"07cxphrmd6a3clnalrdqxlyin8l0lw0xhjy2rh9gaizxfv5c23jp"))))
"0apa3gc45rmdj19plbvglpj6i9dadkgvvidj5mcnkzi9y3h0nr27"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
@@ -943,7 +938,7 @@ tools.analyzer, providing additional JVM-specific passes.")
(define-public clojure-tools-cli
(package
(name "clojure-tools-cli")
(version "1.4.256")
(version "1.3.250")
(home-page "https://github.com/clojure/tools.cli")
(source (origin
(method git-fetch)
@@ -952,7 +947,7 @@ tools.analyzer, providing additional JVM-specific passes.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1kr1cpypzgzh8pkih5qamsaq8c96jfpcvmn9f330sic2shb53m55"))))
(base32 "1nyw33w83gd7xlbpma03p4jwcdcp38h8y99x2rqw4zcnw19gsz4p"))))
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure/")
@@ -964,25 +959,29 @@ tools.analyzer, providing additional JVM-specific passes.")
work with command-line arguments.")
(license license:epl1.0)))
(define-public clojure-tools-deps-edn
(define-public clojure-tools-deps
(package
(name "clojure-tools-deps-edn")
(version "0.9.22")
(home-page "https://github.com/clojure/tools.deps.edn")
(name "clojure-tools-deps")
(version "0.28.1578")
(home-page "https://github.com/clojure/tools.deps")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"082p6zpbb8vvdc9ncc0d66h3g7sax4pp0h4fymwiv0lakzyq3g9g"))))
"1w3f8cl81q4kln6iz74fnfzms4c4x279ivh1962pcg22q8l1w8d5"))))
(build-system clojure-build-system)
(arguments
`(#:source-dirs '("src/main/clojure" "src/main/resources")
#:java-source-dirs '("src/main/java")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()
;; FIXME: Could not initialize class
;; org.eclipse.aether.transport.http.SslSocketFactory
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'build 'reference-clojure-jar-input
@@ -993,42 +992,12 @@ work with command-line arguments.")
(string-append "org.clojure/clojure {:local/root \""
(assoc-ref inputs "clojure")
"/share/java/clojure.jar\"}"))))))))
(synopsis "Reader for @file{deps.edn}")
(description "This package provides support for reading and manipulating
@file{deps.edn} files and data structures. It can be used in scenarios where
the @code{tools.deps} library is not needed for dep expansion.")
(license license:epl1.0)))
(define-public clojure-tools-deps
(package
(name "clojure-tools-deps")
(version "0.29.1598")
(home-page "https://github.com/clojure/tools.deps")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1qds0ri6y8s7419x3pzl9yhhr19qli3l52yg9a78w47h0w6dd1kv"))))
(build-system clojure-build-system)
(arguments
`(#:source-dirs '("src/main/clojure" "src/main/resources")
#:java-source-dirs '("src/main/java")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()
;; FIXME: Could not initialize class
;; org.eclipse.aether.transport.http.SslSocketFactory
#:tests? #f))
(propagated-inputs (list maven-3.8-core
maven-resolver-1.6-connector-basic
maven-resolver-1.6-transport-http
maven-resolver-1.6-transport-file
clojure-tools-gitlibs
clojure-tools-cli
clojure-tools-deps-edn
clojure-data-xml
cognitect-aws-api))
(synopsis "Clojure library supporting clojure-tools")
@@ -1206,7 +1175,7 @@ asynchronous support.")
(define-public cognitect-aws-api
(package
(name "cognitect-aws-api")
(version "0.8.824")
(version "0.8.800")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1215,7 +1184,7 @@ asynchronous support.")
(file-name (git-file-name name version))
(sha256
(base32
"0ivlcmsr7rvr7741k9wzniv2zxijida0b588nqngm5vrgna816yl"))
"17sxj3mvq4iasr0kchbx2anmrh25v8bvmpam4si704vksmnm28p3"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1258,44 +1227,3 @@ an operation on the service. invoke takes a map and returns a map, and works
the same way for every operation on every service.")
(home-page "https://github.com/cognitect-labs/aws-api")
(license license:asl2.0)))
(define-public let-go
(package
(name "let-go")
(version "1.7.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nooga/let-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "139a129fw3w9a4bcfgms60ll90vy2vmqinbmjn44zmgx4fr2adif"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.26
#:install-source? #f
#:import-path "github.com/nooga/let-go"))
(native-inputs
(list go-github-com-davecgh-go-spew
go-github-com-alimpfard-line
go-github-com-hashicorp-go-uuid
go-github-com-kr-pretty
go-github-com-pmezard-go-difflib
go-github-com-stretchr-testify
go-github-com-zeebo-bencode
go-golang-org-x-sys
go-gopkg-in-check-v1
go-gopkg-in-yaml-v3))
(home-page "https://nooga.github.io/let-go")
(synopsis "Clojure dialect written in Go")
(description
"let-go is a Clojure dialect with a bytecode compiler and a stack virtual
machine, written in the Go programming language.
It is not a drop-in replacement for Clojure JVM. It does not load JARs and
does not aim to. Most idiomatic Clojure code runs unmodified, but a real
project with library dependencies will need adjustments.")
(license license:expat)))
+1 -1
View File
@@ -32,7 +32,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+1
View File
@@ -47,6 +47,7 @@
#:use-module (guix build-system copy)
#:use-module (guix build-system emacs)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (gnu packages)
#:use-module (gnu packages backup)
+1 -1
View File
@@ -25,7 +25,7 @@
#:use-module (guix gexp)
#:use-module (gnu packages bison)
#:use-module (gnu packages dbm)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
+55 -43
View File
@@ -1,8 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2013, 2015, 2018, 2020, 2021, 2023, 2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2018, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
@@ -49,6 +49,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module ((guix build-system python) #:select (pypi-uri))
#:use-module (guix build-system pyproject)
#:use-module (guix build-system trivial)
#:use-module (guix build-system go)
@@ -66,7 +67,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages elf)
#:use-module (gnu packages emacs)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages golang-build)
@@ -694,6 +695,57 @@ Kcov uses DWARF debugging information for compiled programs to make it
possible to collect coverage information without special compiler switches.")
(license license:gpl2+)))
(define-public rtags
(package
(name "rtags")
(version "2.18")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Andersbakken/rtags")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(patches (search-patches "rtags-separate-rct.patch"))
(modules '((guix build utils)))
(snippet
;; Part of spliting rct with rtags.
;; Substitute #include "rct/header.h" with #include <rct/header.h>.
'(with-directory-excursion "src"
(delete-file-recursively "rct") ;remove bundled copy
(let ((files (find-files "." ".*\\.cpp|.*\\.h")))
(substitute* files
(("#include ?\"rct/(.*.h)\"" all header)
(string-append "#include <rct/" header ">")))
#t)))
(sha256
(base32
"0raqjbkl1ykga4ahgl9xw49cgh3cyqcf42z36z7d6fz1fw192kg0"))))
(build-system cmake-build-system)
(arguments
'(#:build-type "RelWithDebInfo"
#:configure-flags
'("-DRTAGS_NO_ELISP_FILES=1")
#:tests? #f))
(native-inputs
(list pkg-config))
(inputs
(list bash-completion
clang
llvm
lua
rct
selene))
(home-page "https://github.com/Andersbakken/rtags")
(synopsis "Indexer for the C language family with Emacs integration")
(description
"RTags is a client/server application that indexes C/C++ code and keeps a
persistent file-based database of references, declarations, definitions,
symbolnames etc. Theres also limited support for ObjC/ObjC++. It allows you
to find symbols by name (including nested class and namespace scope). Most
importantly we give you proper follow-symbol and find-references support.")
(license license:gpl3+)))
(define-public colormake
(package
(name "colormake")
@@ -865,46 +917,6 @@ Objective@tie{}C, D, Java, Pawn, and Vala). Features:
the C, C++, C++/CLI, ObjectiveC, C#, and Java programming languages.")
(license license:lgpl3+)))
(define-public idutils
(package
(name "idutils")
(version "4.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/idutils/idutils-" version ".tar.xz"))
(sha256
(base32 "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* (find-files "lib" "\\.c$")
(("#if defined _IO_ftrylockfile")
"#if defined _IO_EOF_SEEN"))
(substitute* "lib/stdio-impl.h"
(("^/\\* BSD stdio derived implementations")
(string-append
"#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN" "\n"
"# define _IO_IN_BACKUP 0x100\n" "#endif\n\n"
"/* BSD stdio derived implementations")))
;; 'gets' is deprecated in glibc 2.33 and its declaration is
;; no longer visible by default from <stdio.h>.
(substitute* "lib/stdio.in.h"
(("_GL_WARN_ON_USE \\(gets.*")
""))))))
(build-system gnu-build-system)
(native-inputs (list emacs-minimal))
(home-page "https://www.gnu.org/software/idutils/")
(synopsis "Identifier database utilities")
(description
"The GNU idutils package includes tools to create an index of textual
tokens used in a list of file names and then to query that index. Thus, it
allows the user to, for example, find all the uses of a particular function
in a large programming project. In addition to handling textual tokens, it
can also handle numeric constants and the contents of character strings.")
(license license:gpl3+)))
(define-public indent
;; XXX: Not released anymore, but some patches fix CVEs.
(let ((commit "1737c929cbe2ec8a181107df9742894a44c57f71")
+128 -633
View File
@@ -18,10 +18,10 @@
;;; This module is separate from (gnu packages rust-apps) to avoid a
;;; circular module dependency: (gnu packages rust-sources), which
;;; defines rust-codex-0.124.0, transitively loads (gnu packages
;;; defines rust-codex-0.98.0, transitively loads (gnu packages
;;; rust-apps) through its #:use-module chain. If the codex package
;;; lived in rust-apps.scm, loading rust-sources would trigger loading
;;; rust-apps before rust-codex-0.124.0 is defined, causing an unbound
;;; rust-apps before rust-codex-0.98.0 is defined, causing an unbound
;;; variable error.
(define-module (gnu packages codex)
@@ -36,46 +36,33 @@
#:use-module (gnu packages base)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages linux)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lsof)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rust-sources)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages textutils)
#:use-module (gnu packages nss)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization))
#:use-module (gnu packages version-control))
(define-public codex
(package
(name "codex")
(version (package-version rust-codex-0.124.0))
(version (package-version rust-codex-0.98.0))
(source
(origin
(inherit (package-source rust-codex-0.124.0))
(inherit (package-source rust-codex-0.98.0))
(patches (search-patches
"codex-acp-0.11.1-disable-code-mode.patch"
"rust-codex-0.124.0-code-mode-stub-toolname.patch"
"rust-codex-0.124.0-remove-patch-sections.patch"
"rust-codex-0.120.0-remove-libwebrtc.patch"
"codex-0.98.0-remove-patch-sections.patch"
"rust-codex-0.98.0-test-shebangs.patch"
"rust-codex-0.120.0-test-timeout.patch"))))
"rust-codex-0.98.0-test-timeout.patch"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
;; exec-server is library-only in 0.124 (no [[bin]] in
;; exec-server/Cargo.toml); cargo install --path exec-server fails
;; with "no packages found with binaries or examples". Drop it
;; from the install paths -- the library is consumed via the
;; workspace by other binaries here, not installed standalone.
#:cargo-install-paths '(list "cli" "exec"
"linux-sandbox" "mcp-server"
#:cargo-install-paths '(list "cli" "exec" "exec-server"
"linux-sandbox" "mcp-server" "network-proxy"
"app-server" "tui")
;; schema_fixtures_match_generated (upstream fixture is stale:
;; FileChange::Update in codex-protocol gained old_content,
@@ -84,55 +71,72 @@
#:cargo-test-flags '(list "--workspace"
"--exclude" "codex-app-server-protocol"
"--"
;;; BEGIN Landlock returns NotEnforced
;;; in the build container; the sandbox
;;; binary panics instead of cleanly
;;; denying filesystem access.
;; Sandbox denial and escalation tests.
;; These tests exercise sandbox denial and
;; escalation, which requires Landlock to
;; cleanly deny filesystem access. Inside the
;; build container Landlock returns NotEnforced
;; and the sandbox binary panics instead.
;; Disabling Landlock would not help either,
;; since these tests need a working sandbox to
;; have anything to deny and escalate.
"--skip" "sandbox_denied_shell_returns_original_output"
;; Sandbox denial and escalation tests.
"--skip" "shell_escalated_permissions_rejected_then_ok"
;; Sandbox denial and escalation tests.
"--skip" "unified_exec_runs_under_sandbox"
;; codex-exec: spawn_command_under_linux_sandbox
;; panics with LandlockRestrict (exit 101).
;; These tests (in codex-exec) directly call
;; spawn_command_under_linux_sandbox to verify
;; that python and bash work correctly inside
;; the Landlock sandbox. The sandbox binary
;; (codex-exec) panics with LandlockRestrict
;; (exit code 101) before the inner command
;; even starts.
"--skip" "python_getpwuid_works_under_sandbox"
;; Same as above.
"--skip" "python_multiprocessing_lock_works_under_sandbox"
;; Same as above.
"--skip" "sandbox_distinguishes_command_and_policy_cwds"
;; linux-sandbox: process_exec_tool_call
;; invokes Landlock; same panic.
;; These linux-sandbox tests directly invoke
;; the Landlock sandbox via
;; process_exec_tool_call; same root cause.
"--skip" "test_writable_root"
;; Same as above.
"--skip" "test_timeout"
;; Same as above.
"--skip" "test_root_read"
;; Same as above.
"--skip" "test_dev_null_write"
;; Same as above.
"--skip" "test_no_new_privs_is_enabled"
;; One scenario runs through Landlock
;; which panics; cargo --skip cannot
;; target individual scenarios.
;; This test iterates many approval scenarios;
;; one of them
;; (danger_full_access_on_request_allows_network)
;; runs a command through the Landlock sandbox
;; binary, which panics with LandlockRestrict
;; inside the build container. Cargo --skip
;; cannot target individual scenarios, so we
;; skip the entire matrix.
"--skip" "approval_matrix_covers_all_modes"
;; Landlock panic triggers escalation-retry
;; which interferes with the approval cache.
;; This test verifies session-level patch
;; approval caching: approve once, skip
;; future prompts for the same file. When
;; Landlock is unavailable (as in the Guix
;; build container) the sandbox binary panics,
;; triggering the escalation-retry path, which
;; interferes with the approval cache and
;; causes a spurious re-prompt on the second
;; patch.
"--skip" "approving_apply_patch_for_session_skips_future_prompts_for_same_file"
;; These tests expect to interrupt a
;; long-running 'sleep 60' and receive
;; TurnAborted. What happens:
;; TurnAborted. Default test config is
;; OnRequest + ReadOnly. What happens:
;;
;; 1. ReadOnly wraps the command with
;; codex-linux-sandbox (Landlock-based).
;; 2. Landlock is unavailable, so the
;; sandbox binary exits instantly.
;; 2. Landlock is unavailable in the Guix
;; build container, so the sandbox
;; binary exits instantly (~1 ms).
;; 3. Orchestrator gets SandboxErr::Denied.
;; wants_no_sandbox_approval(OnRequest)
;; returns false, so no escalation --
;; denial returned directly.
;; returns false (sandboxing.rs:222),
;; so no escalation -- denial returned
;; directly.
;; 4. ToolEmitter::finish sends the error
;; to the mock model.
;; to the mock model as
;; function_call_output.
;; 5. Second mock SSE response fires,
;; turn finishes with TurnComplete.
;; 6. Op::Interrupt arrives 100 ms later,
@@ -146,370 +150,74 @@
;; has only one mock response (so the turn
;; cannot complete first).
"--skip" "interrupt_persists_turn_aborted_marker_in_next_request"
;; Same causal chain as above.
"--skip" "interrupt_tool_records_history_entries"
;; WorkspaceWrite sandbox policy wraps
;; commands with codex-linux-sandbox;
;; Landlock panics, command never runs,
;; exit_code is None instead of Some(0).
"--skip" "request_permissions_grants_apply_to_later_exec_command_calls"
;; Same root cause.
"--skip" "request_permissions_grants_apply_to_later_shell_command_calls"
;; Same root cause.
"--skip" "partial_request_permissions_grants_do_not_preapprove_new_permissions"
;;; END Landlock
;;; BEGIN mcp_process.rs initialize
;;; assertion expects "version":"0.0.0"
;;; but the server returns "0.120.0".
;; Upstream bug: test hardcodes "0.0.0" in the
;; expected user-agent string but the workspace
;; version is "0.98.0".
"--skip" "get_user_agent_returns_current_codex_user_agent"
;; Same upstream bug: mcp-server tests
;; check the initialize response which
;; includes "version": "0.0.0" but the
;; server returns "0.98.0".
"--skip" "test_codex_tool_passes_base_instructions"
"--skip" "test_shell_command_approval_triggers_elicitation"
"--skip" "test_patch_approval_triggers_elicitation"
;;; END version mismatch
;;; BEGIN Test isolation bug:
;;; unique_temp_dir() in
;;; state/src/runtime.rs names dirs
;;; using nanosecond timestamps, so
;;; parallel tests can collide. The
;;; SQLite migration runs CREATE TABLE
;;; threads (without IF NOT EXISTS),
;;; so the second init panics with
;;; "table threads already exists".
;; These codex-exec-server tests need
;; "dotslash", a Meta tool that lazily
;; downloads pre-built binaries from a
;; JSON manifest. The test helper
;; create_transport runs
;; `dotslash -- fetch <path>` to obtain a
;; custom bash binary described in
;; exec-server/tests/suite/bash.
;; dotslash is not available in the build
;; container.
"--skip" "list_tools"
"--skip" "accept_elicitation_for_prompt_rule"
;;; Test isolation bug: each test in
;;; state/src/runtime.rs calls
;;; unique_temp_dir() to get its own
;;; temporary directory (and thus its
;;; own SQLite database). That function
;;; names directories using the current
;;; nanosecond timestamp, so when tests
;;; run in parallel several can receive
;;; the same name and open the same
;;; database. The initial SQLite
;;; migration runs CREATE TABLE threads
;;; (without IF NOT EXISTS), so any init
;;; after the first panics with "table
;;; threads already exists". Any of
;;; these tests
;;; can be the victim.
"--skip" "init_removes_legacy_state_db_files"
"--skip" "upsert_and_get_thread_memory"
"--skip" "get_last_n_thread_memories_for_cwd_matches_exactly"
"--skip" "upsert_thread_memory_errors_for_unknown_thread"
"--skip" "get_last_n_thread_memories_for_cwd_zero_returns_empty"
"--skip" "get_last_n_thread_memories_for_cwd_does_not_prefix_match"
"--skip" "deleting_thread_cascades_thread_memory"
;;; END SQLite test isolation
;; The test spawns 'sh' after
;; env_clear() with an empty env map;
;; glibc execvp uses confstr(_CS_PATH)
;; ("/bin:/usr/bin") when PATH is
;; unset, but /bin/sh does not exist
;; in the build container.
"--skip" "cancellation_expiration_keeps_process_alive_until_terminated"
;; Proxy baseline_policy returns 403
;; "not_allowed_local" for example.com;
;; test expects 200.
"--skip" "managed_network_proxy_decider_survives_full_access_start"
;;; BEGIN bash_snapshot_script() uses
;;; "compgen -e" to list exports but
;;; bash-minimal lacks programmable
;;; completion; export section is empty.
;; stdout.contains("VALID_NAME") fails.
"--skip" "bash_snapshot_filters_invalid_exports"
;; stdout.contains("MULTILINE_CERT") fails.
"--skip" "bash_snapshot_preserves_multiline_exports"
;; snapshot.contains("PATH") fails.
"--skip" "linux_bash_snapshot_includes_sections"
;;; END compgen
;; substitute* patches PAGER to store
;; path of cat; test expects bare "cat".
"--skip" "unified_exec_env_injects_defaults"
;;; BEGIN V8 disabled (codex-code-mode
;;; default-features = false).
"--skip" "suite::code_mode::"
"--skip" "suite::js_repl::"
"--skip" "suite::view_image::js_repl_"
;;; END V8 disabled
;;; BEGIN same compgen root cause:
;;; assert_posix_snapshot_sections
;;; asserts snapshot.contains("PATH").
"--skip" "linux_shell_command_uses_shell_snapshot"
"--skip" "linux_unified_exec_uses_shell_snapshot"
"--skip" "shell_command_snapshot_still_intercepts_apply_patch"
;;; END compgen / shell snapshot
;;; BEGIN These sandbox tests set
;;; exclude_slash_tmp: true which makes
;;; bwrap exclude /tmp from its mount
;;; namespace. Since Guix builds under
;;; /tmp, the codex-linux-sandbox binary
;;; becomes invisible to bwrap even though
;;; the test adds the helper dir as a
;;; filesystem carve-out -- the parent /tmp
;;; bind-mount is absent so the carve-out
;;; has nothing to carve out of.
"--skip" "sandbox_reenables_writable_subpaths_under_unreadable_parents"
"--skip" "managed_proxy_mode_routes_through_bridge_and_blocks_direct_egress"
;;; END exclude_slash_tmp
;; Expects 3 TerminalInteraction events
;; across timed poll windows; under CPU
;; contention events merge into 2.
"--skip" "unified_exec_terminal_interaction_captures_delayed_output"
;;; BEGIN assert_parallel_duration
;;; requires < 1600 ms for parallel ops.
;; Two 300 ms test_sync_tool calls.
"--skip" "read_file_tools_run_in_parallel"
;; Two "sleep 0.25" shell commands.
"--skip" "shell_tools_run_in_parallel"
;; One test_sync_tool + one shell sleep.
"--skip" "mixed_parallel_tools_run_in_parallel"
;;; END assert_parallel_duration
;; Asserts elapsed >= 4500 ms and
;; < 5800 ms for a 5 s timeout; under
;; contention elapsed drifts past 5800.
"--skip" "remote_models_request_times_out_after_5s"
;; Queued inter-agent mail must be
;; injected between the reasoning/
;; commentary item and the gate release;
;; under contention the gate fires before
;; the mail is processed, so the snapshot
;; shows the stale function_call instead
;; of the expected mail message.
"--skip" "queued_inter_agent_mail_triggers_follow_up_after_commentary_message_item"
;; Same root cause: snapshot mismatch at
;; pending_input.rs assert_two_responses_
;; input_snapshot; expects mail at position
;; 04 but gets function_call/shell instead.
"--skip" "queued_inter_agent_mail_triggers_follow_up_after_reasoning_item"
;;; BEGIN DNS for hostnames like
;;; example.com fails in the build
;;; sandbox. host_resolves_to_non_
;;; public_ip() in runtime.rs treats
;;; failed DNS as non-public and
;;; returns NotAllowedLocal, so tests
;;; expecting Allowed or Decider get
;;; Deny/BaselinePolicy instead.
"--skip" "host_blocked_requires_allowlist_match"
"--skip" "add_allowed_domain_removes_matching_deny_entry"
"--skip" "host_blocked_subdomain_wildcards_exclude_apex"
"--skip" "host_blocked_global_wildcard_allowlist_allows_public_hosts_except_denylist"
"--skip" "evaluate_host_policy_emits_domain_event_for_decider_ask"
"--skip" "evaluate_host_policy_emits_domain_event_for_decider_allow_override"
"--skip" "http_connect_accept_blocks_in_limited_mode"
"--skip" "http_connect_accept_allows_allowlisted_host_in_full_mode"
"--skip" "mitm_policy_blocks_disallowed_method_and_records_telemetry"
;;; END DNS failure / NotAllowedLocal
;;; BEGIN Flaky: wiremock mock expects
;;; 1 POST to /codex/safety/arc but
;;; receives 0. Passes in some builds,
;;; fails in others with identical code
;;; and env. The identical custom_
;;; variant always passes; only the
;;; CODEX_APPS_MCP_SERVER_NAME variant
;;; flakes, suggesting a timing race
;;; in the async POST under contention.
"--skip" "approve_mode_blocks_when_arc_returns_interrupt_for_model"
"--skip" "approve_mode_blocks_when_arc_returns_interrupt_without_annotations"
;;; END ARC monitor flake
;;; BEGIN nss-certs sets SSL_CERT_FILE
;;; which makes build_reqwest_client load
;;; 171 CA certs via add_root_certificate.
;;; This changes the reqwest TLS backend
;;; configuration; the ARC safety POST to
;;; the localhost mock server never arrives
;;; (wiremock expects 1 request, gets 0).
"--skip" "approve_mode_blocks_when_arc_returns_interrupt_for_model"
"--skip" "approve_mode_blocks_when_arc_returns_interrupt_without_annotations"
;;; END nss-certs / ARC monitor
;; Upstream bug: JsonRpcConnection has
;; no websocket keepalive or read timeout.
;; When the exec-server is killed, the
;; client's reader task blocks on
;; websocket_reader.next() forever because
;; TCP doesn't detect the dead peer without
;; a write or keepalive probe. Previously
;; masked because empty env made "sleep 10"
;; fail instantly; with PATH the process
;; lives long enough to hit the deadlock.
"--skip" "remote_exec_process_reports_transport_disconnect"
;; 500 ms timeout on MCP list response
;; (mcp_server_status.rs timeout at
;; Duration::from_millis(500)). With
;; nss-certs TLS now works, so the
;; startup plugin sync HTTP requests
;; (chatgpt.com, api.github.com) wait
;; for TCP timeout instead of failing
;; instantly at TLS, eating the budget.
"--skip" "mcp_server_status_list_tools_and_auth_only_skips_slow_inventory_calls"
;;; BEGIN Stack overflow in 'current_thread'
;;; tokio runtime. The sibling tests in
;;; tracing_tests.rs use the local helper
;;; run_current_thread_test_with_stack
;;; (4 MiB) but this one uses bare
;;; #[tokio::test] on the 2 MiB default
;;; test-thread stack, and TurnStart's
;;; future graph exceeds it. With
;;; RUST_MIN_STACK raised the overflow is
;;; gone but the test then deterministically
;;; times out waiting for a span tagged
;;; codex.op = "user_input" on the remote
;;; trace that upstream never emits on that
;;; trace in our environment.
"--skip" "turn_start_jsonrpc_span_parents_core_turn_spans"
;;; END tracing test stack/timeout
;;; BEGIN The upstream loader resolves the
;;; MCP OAuth credentials store mode by
;;; calling
;;; resolve_mcp_oauth_credentials_store_mode
;;; with env!("CARGO_PKG_VERSION") -- which
;;; in the released 0.124.0 tarball is
;;; "0.124.0". These fixture tests
;;; construct the expected Config by
;;; passing the LOCAL_DEV_BUILD_VERSION
;;; constant ("0.0.0") to the same
;;; resolver, and the resolver only returns
;;; File for "0.0.0" -- Auto otherwise.
;;; Upstream CI builds from a checkout
;;; still carrying version = "0.0.0" so the
;;; tests pass there; they cannot pass
;;; against a released tag.
"--skip" "test_precedence_fixture_with_gpt3_profile"
"--skip" "test_precedence_fixture_with_gpt5_profile"
"--skip" "test_precedence_fixture_with_o3_profile"
"--skip" "test_precedence_fixture_with_zdr_profile"
;;; END LOCAL_DEV_BUILD_VERSION fixture mismatch
;;; BEGIN Verifies that Codex's user-shell
;;; spawn produces a child where
;;; CODEX_SANDBOX_NETWORK_DISABLED is unset
;;; (asserts stdout == "not-set"). We
;;; deliberately set that env var at the
;;; check phase to trigger upstream's
;;; skip_if_no_network! guards; the var then
;;; leaks into the spawned shell and the
;;; assertion fails. The guix skip is a
;;; direct cost of the network-gate fix --
;;; trading one broken test for two that
;;; now skip cleanly.
"--skip" "user_shell_command_does_not_set_network_sandbox_env_var"
;;; END CODEX_SANDBOX_NETWORK_DISABLED leak
;;; BEGIN The exec-server/tests/file_system
;;; integration tests invoke the real
;;; system bwrap, which tries to execvp the
;;; test binary at the cargo target path
;;; under the build dir. Same root cause
;;; as the existing
;;; sandbox_reenables_writable_subpaths_under_unreadable_parents
;;; skip: guix builds live under /tmp but
;;; bwrap's mount namespace excludes /tmp,
;;; making the binary invisible inside the
;;; namespace.
"--skip" "file_system_copy_preserves_symlink_source"
"--skip" "file_system_copy_rejects_symlink_escape_destination"
"--skip" "file_system_copy_rejects_symlink_escape_source"
"--skip" "file_system_create_directory_rejects_symlink_escape"
"--skip" "file_system_read_directory_rejects_symlink_escape"
"--skip" "file_system_remove_rejects_symlink_escape"
"--skip" "file_system_remove_removes_symlink_not_target"
"--skip" "file_system_sandboxed_read_allows_readable_root"
"--skip" "file_system_sandboxed_read_rejects_symlink_escape"
"--skip" "file_system_sandboxed_read_rejects_symlink_parent_dotdot_escape"
"--skip" "file_system_sandboxed_write_allows_additional_write_root"
"--skip" "file_system_sandboxed_write_rejects_symlink_escape"
"--skip" "file_system_sandboxed_write_rejects_unwritable_path"
;;; END bwrap-cant-see-/tmp file_system tests
;;; BEGIN Landlock is unavailable on Guix,
;;; so the sandbox cannot deny network
;;; syscalls. These tests expect
;;; SandboxErr::Denied for the nc, ping,
;;; ssh, getent, and dev_tcp_redirection
;;; commands but those commands instead
;;; block on connect() until the test's 2s
;;; timeout fires (Timeout, exit 124).
;;; Same root cause as the Landlock skips
;;; at the top of this list; new test names
;;; in 0.124.
"--skip" "sandbox_blocks_nc"
"--skip" "sandbox_blocks_ping"
"--skip" "sandbox_blocks_dev_tcp_redirection"
"--skip" "sandbox_blocks_getent"
"--skip" "sandbox_blocks_ssh"
;;; END Landlock network block
;;; BEGIN Requires github.com network access.
;;; With no "extraKnownMarketplaces" entry
;;; in settings.json,
;;; collect_marketplace_import_sources
;;; inserts a fallback entry for the
;;; "claude-plugins-official" marketplace
;;; pointing at the github shorthand
;;; "anthropics/claude-plugins-official".
;;; add_marketplace -> parse_marketplace_source
;;; expands that to a github.com/.git URL
;;; and clone_git_source runs 'git clone'.
;;; The Guix build sandbox has no network,
;;; so the clone fails and the marketplace
;;; lands in failed_marketplaces. No mock
;;; cloner is injected via
;;; ExternalAgentConfigService::new_for_test,
;;; so there is no in-tree way to satisfy
;;; the test offline.
"--skip" "import_plugins_infers_claude_official_marketplace_when_missing_from_settings"
;;; END github.com network access
;;; BEGIN Async race between the rollout
;;; writer task and a direct SQLite read.
;;; The test calls
;;; update_memory_settings_with_app_server,
;;; which routes through the in-memory
;;; thread path on the app-server's
;;; ThreadMemoryModeSet handler ->
;;; Session::set_thread_memory_mode ->
;;; persist_thread_memory_mode_update,
;;; which writes a RolloutItem::SessionMeta
;;; with the new mode to the rollout file
;;; via recorder.record_items + flush. The
;;; rollout writer task then asynchronously
;;; calls sync_thread_state_after_write,
;;; which calls state_db::apply_rollout_items
;;; to mirror the SessionMeta into SQLite.
;;; flush() only awaits the rollout-file
;;; write, not the subsequent SQLite sync.
;;; The test opens a fresh StateRuntime and
;;; reads get_thread_memory_mode
;;; immediately, so it observes the creation
;;; default of "enabled" written by
;;; upsert_thread_with_creation_memory_mode
;;; instead of the new "disabled". Upstream
;;; CI wins this race; we lose.
"--skip" "update_memory_settings_updates_current_thread_memory_mode"
;;; END memory-mode rollout/sqlite race
;;; BEGIN The Stopwatch::new constructor in
;;; codex_shell_escalation anchors
;;; T0 = Instant::now() at construction;
;;; the spawned cancellation task fires at
;;; T0 + limit. The test captures
;;; start = Instant::now() at T1 > T0 (after
;;; cancellation_token() returns) and
;;; asserts start.elapsed() >= limit,
;;; i.e. (T0 + limit) - T1 >= limit, which
;;; is always false by the offset T1 - T0.
;;; The test only passes when scheduler
;;; jitter on the sleep wakeup happens to
;;; exceed that offset. Upstream wins the
;;; race; we don't always.
"--skip" "cancellation_receiver_fires_after_limit"
;;; END Stopwatch construction/start offset race
)
"--skip" "deleting_thread_cascades_thread_memory")
#:cargo-package-crates
''(;;; Tier 0: No internal deps.
"codex-ansi-escape"
"codex-async-utils"
"codex-backend-openapi-models"
"codex-client"
"codex-execpolicy"
"codex-file-search"
"codex-git-utils"
"codex-git"
"codex-keyring-store"
"codex-process-hardening"
"codex-utils-absolute-path"
"codex-utils-cache"
"codex-utils-cargo-bin"
"codex-utils-elapsed"
"codex-utils-fuzzy-match"
"codex-utils-home-dir"
"codex-utils-json-to-toml"
"codex-utils-path"
"codex-utils-plugins"
"codex-utils-pty"
"codex-utils-readiness"
"codex-utils-rustls-provider"
"codex-utils-sleep-inhibitor"
"codex-utils-stream-parser"
"codex-utils-string"
"codex-utils-template"
;;; Tier 1.
"codex-backend-openapi-models"
"codex-process-hardening"
"codex-ansi-escape"
;;; Tier 1: Depends on tier 0.
"codex-utils-image"
"codex-utils-output-truncation"
"codex-apply-patch"
"codex-protocol"
"codex-windows-sandbox"
@@ -518,69 +226,35 @@
"codex-secrets"
"codex-execpolicy-legacy"
"codex-debug-client"
"codex-analytics"
"codex-rollout"
"codex-rollout-trace"
"codex-terminal-detection"
"codex-utils-approval-presets"
"codex-utils-cli"
"codex-uds"
"codex-install-context"
"codex-device-key"
;;; Tier 2.
"codex-app-server-protocol"
"codex-rmcp-client"
"codex-otel"
"codex-thread-store"
"codex-state"
"codex-features"
"codex-model-provider"
"codex-config"
"codex-agent-identity"
"codex-aws-auth"
"codex-hooks"
"codex-code-mode"
"codex-feedback"
"codex-skills"
"codex-test-binary-support"
"codex-core"
"codex-core-plugins"
"codex-utils-sandbox-summary"
"codex-linux-sandbox"
"codex-sandboxing"
"codex-connectors"
"codex-core-skills"
"codex-feedback"
;;; Tier 3.
"codex-arg0"
"codex-lmstudio"
"codex-login"
"codex-ollama"
"codex-utils-oss"
"codex-common"
"codex-mcp-server"
"codex-backend-client"
"codex-responses-api-proxy"
"codex-shell-command"
"codex-shell-escalation"
"codex-plugin"
"codex-model-provider-info"
"codex-models-manager"
;;; Tier 4.
"codex-cloud-requirements"
"codex-exec"
"codex-exec-server"
"codex-network-proxy"
"codex-stdio-to-uds"
"codex-network-proxy"
"codex-chatgpt"
"codex-cloud-tasks-client"
"codex-cloud-tasks-mock-client"
"codex-tools"
"codex-mcp"
"codex-collaboration-mode-templates"
;;; Tier 5.
"codex-app-server"
"codex-app-server-test-client"
"codex-tui"
"codex-response-debug-context"
;;; Tier 6.
"codex-cloud-tasks"
;; The main executable.
@@ -596,7 +270,7 @@
;; Update them to match the actual package version.
(let ((snap-files (find-files "." "\\.snap$")))
(substitute* snap-files
(("\\(v0\\.0\\.0\\) ") "(v0.124.0) ")))))
(("\\(v0\\.0\\.0\\) ") "(v0.98.0)")))))
(add-after 'chdir-to-workspace 'patch-git-deps-to-vendor
(lambda _
;; Replace git dependencies with version references so cargo
@@ -605,57 +279,23 @@
(("nucleo = \\{ git = [^}]+\\}")
"nucleo = \"0.5.0\"")
(("runfiles = \\{ git = [^}]+\\}")
"runfiles = \"0.1.0\""))
;; Remove workspace members that have unbuildable deps
;; (v8-poc requires V8). code-mode stays a workspace member
;; so its codex-protocol resolves to the same local copy as
;; the rest of the build; disabling its default features
;; (below) avoids pulling in V8.
(substitute* "Cargo.toml"
(("\"v8-poc\",") ""))
;; Disable V8 runtime in codex-code-mode by turning off
;; default features. Keep path= so code-mode is resolved
;; from the local source tree and shares codex-protocol
;; (and other workspace crates) with the rest of the build;
;; resolving it from the vendor instead introduces a
;; duplicate codex-protocol and causes E0308 type
;; mismatches in codex-tools.
(substitute* "Cargo.toml"
(("codex-code-mode = \\{ path = \"code-mode\" \\}")
"codex-code-mode = { path = \"code-mode\", default-features = false }"))
;; cargo build at workspace root ignores per-dep
;; default-features=false and builds code-mode with its
;; own default features, which include v8-runtime and
;; would pull in V8. Make the default feature empty.
(substitute* "code-mode/Cargo.toml"
(("^default = \\[\"v8-runtime\"\\]") "default = []"))))
(add-after 'patch-git-deps-to-vendor 'add-version-to-workspace-deps
"runfiles = \"0.1.0\""))))
(add-after 'chdir-to-workspace 'add-version-to-workspace-deps
(lambda _
;; cargo package requires all dependencies to have versions.
;; Add version = "0.124.0" to internal path dependencies.
;; cargo package requires all dependencies to have versions.
;; Add version = "0.98.0" to internal path dependencies.
(let ((cargo-files (find-files "." "^Cargo\\.toml$")))
(substitute* cargo-files
;; Handle inline deps: name = { path = "..." }
(("(codex-[a-z0-9-]+) = \\{ path = " all name)
(string-append name " = { version = \"0.124.0\", path = "))
(string-append name " = { version = \"0.98.0\", path = "))
;; Handle inline deps with package: name = { package = "...", path = "..." }
(("(codex-[a-z0-9-]+) = \\{ package = " all name)
(string-append name " = { version = \"0.124.0\", package = "))
(string-append name " = { version = \"0.98.0\", package = "))
;; Handle section deps: [dependencies.X] with path = "..."
(("^(path = \"\\.\\./[^\"]*\")" all path-line)
(string-append path-line "\nversion = \"0.124.0\""))))))
(add-after 'chdir-to-workspace 'use-gnu-store-in-sandbox
(lambda _
;; LINUX_PLATFORM_DEFAULT_READ_ROOTS in linux-sandbox/src/
;; bwrap.rs is the read-only baseline that codex's bwrap
;; sandbox bind-mounts so commands can read /usr/bin/ls,
;; libc, etc. Upstream lists "/nix/store" for NixOS;
;; Guix's equivalent is "/gnu/store". Without this swap,
;; the codex sandbox cannot locate any binaries on a Guix
;; system because every "system" path resolves into
;; /gnu/store/<hash>-pkg/bin/...
(substitute* "linux-sandbox/src/bwrap.rs"
(("\"/nix/store\"") "\"/gnu/store\""))))
(string-append path-line "\nversion = \"0.98.0\""))))))
(add-after 'chdir-to-workspace 'patch-hardcoded-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash-bin (string-append
@@ -685,14 +325,6 @@
(string-append "\"" bash-bin "/bash "))
(("\"/bin/sh ")
(string-append "\"" bash-bin "/sh "))
;; Single-quoted paths in test assertion strings,
;; e.g. "exec '/bin/bash' -c ...". Must match the
;; double-quoted substitutions above so both sides
;; of assert_eq!/contains use the store path.
(("'/bin/bash'")
(string-append "'" bash-bin "/bash'"))
(("'/bin/sh'")
(string-append "'" bash-bin "/sh'"))
;; coreutils.
(("\"/bin/(cat|cp|date|echo|head|ls|rm|sleep|true|touch)\"" all cmd)
(string-append "\"" coreutils-bin "/" cmd "\""))
@@ -707,150 +339,42 @@
(string-append "\"" git-bin "/git\""))
(("\"/usr/bin/sed\"")
(string-append "\"" sed-bin "/sed\"")))
;; Bare Command::new("git") and Command::new("ls")
;; in codex source files that exec internally.
(substitute* (find-files "git-utils" "\\.rs$")
(("Command::new\\(\"git\"\\)")
(string-append "Command::new(\"" git-bin "/git\")")))
(substitute* "tui/src/get_git_diff.rs"
(("Command::new\\(\"git\"\\)")
(string-append "Command::new(\"" git-bin "/git\")")))
(substitute* "core/src/turn_diff_tracker.rs"
(("Command::new\\(\"git\"\\)")
(string-append "Command::new(\"" git-bin "/git\")")))
(substitute* "cloud-tasks/src/env_detect.rs"
(("Command::new\\(\"git\"\\)")
(string-append "Command::new(\"" git-bin "/git\")")))
(substitute* "core/src/plugins/startup_sync.rs"
(("\"git\",")
(string-append "\"" git-bin "/git\",")))
(substitute* "file-search/src/lib.rs"
(("Command::new\\(\"ls\"\\)")
(string-append "Command::new(\"" coreutils-bin "/ls\")")))
;; Neutralize pager with absolute path to cat.
(substitute* "core/src/unified_exec/process_manager.rs"
(("\"PAGER\", \"cat\"")
(string-append "\"PAGER\", \"" coreutils-bin "/cat\""))
(("\"GIT_PAGER\", \"cat\"")
(string-append "\"GIT_PAGER\", \"" coreutils-bin "/cat\""))
(("\"GH_PAGER\", \"cat\"")
(string-append "\"GH_PAGER\", \"" coreutils-bin "/cat\"")))
;; Bare /bin/sleep inside a format! string
;; (no surrounding double quotes, so the main
;; pattern does not match).
(substitute*
"shell-escalation/src/unix/escalate_server.rs"
(("/bin/sleep")
(string-append coreutils-bin "/sleep")))
;; @SHELL@ placeholder from test-shebangs patch
(substitute*
(list "rmcp-client/src/program_resolver.rs"
"tui/src/external_editor.rs")
(("@SHELL@")
(string-append bash-bin "/sh")))
;; Shebangs inside raw string literals (r#"..."#)
;; that are written to scripts at runtime. The
;; main "/bin/sh" patterns only match double-quoted
;; occurrences; these shebangs have no surrounding
;; double quotes.
;; shebang in test-only file
(substitute*
(list "core/src/plugins/startup_sync_tests.rs"
"core/src/tools/runtimes/shell/unix_escalation_tests.rs"
"core/tests/suite/client.rs"
"core/tests/suite/js_repl.rs"
"core/tests/suite/skill_approval.rs"
"core/tests/suite/user_notification.rs"
"exec-server/tests/file_system.rs"
"login/src/auth/auth_tests.rs"
"models-manager/src/manager_tests.rs"
"sandboxing/src/bwrap_tests.rs")
"core/tests/suite/user_notification.rs"
(("#!/bin/bash")
(string-append "#!" bash-bin "/bash"))
(("#!/bin/sh")
(string-append "#!" bash-bin "/sh")))
;; Test helpers pass env: Default::default() to the
;; spawn code which calls env_clear(), leaving
;; processes with no PATH. Inject the build-time
;; PATH so tests find coreutils, bash, etc.
(substitute* (find-files "." "\\.rs$")
(("env: Default::default\\(\\)")
(string-append
"env: std::env::var(\"PATH\")"
".into_iter()"
".map(|p| (\"PATH\".to_string(), p))"
".collect()")))
;; Test-only absolute path; bare name works via PATH.
(substitute* "exec-server/tests/exec_process.rs"
(("\"/usr/bin/python3\"")
"\"python3\""))
;; Same empty-env issue but in JSON literals
;; (serde_json::json! macro).
(substitute* "exec-server/tests/process.rs"
(("\"env\": \\{\\}")
(string-append
"\"env\": {\"PATH\": \""
(getenv "PATH")
"\"}"))))))
(add-before 'build 'set-bubblewrap-source
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CODEX_BWRAP_SOURCE_DIR"
(string-append
(assoc-ref inputs "bubblewrap-source")
"/"))))
(add-before 'build 'create-node-version-file
(lambda _
(call-with-output-file "guix-vendor/node-version.txt"
(lambda (port)
(display "22.22.0" port)))))
(string-append "#!" bash-bin "/bash"))))))
(add-before 'check 'set-home
(lambda _
;; HOME must not be a prefix of /tmp, otherwise
;; the TUI's path shortener replaces /tmp/... with
;; ~/... and 30 snapshot tests fail.
(setenv "HOME" "/tmp/guix-home")
(mkdir-p "/tmp/guix-home")
(setenv "USER" "nixbld")
;; Default libtest thread stack is 2 MiB, which is not
;; enough for tokio current_thread tests that drive
;; codex-core's full turn pipeline. Upstream gates such
;; tests through run_current_thread_test_with_stack (4 MiB)
;; in app-server/src/message_processor/tracing_tests.rs;
;; raise the global default so future additions that
;; forget the wrapper still pass.
(setenv "RUST_MIN_STACK" "8388608")
;; Disable network access.
(setenv "CODEX_SANDBOX_NETWORK_DISABLED" "1"))))))
(native-inputs `(("bubblewrap" ,bubblewrap) ;tests need bwrap on PATH
("clang" ,clang)
("cmake-minimal" ,cmake-minimal)
("libunwind" ,libunwind)
("lsof" ,lsof) ;app-server tests
("nss-certs-for-test" ,nss-certs-for-test) ;OTLP gRPC TLS
("perl" ,perl)
("procps" ,procps) ;tests use ps
("python-minimal" ,python-minimal)
("pkg-config" ,pkg-config)
("bubblewrap-source" ,(package-source bubblewrap))))
(setenv "HOME" "/tmp")
(setenv "USER" "nixbld"))))))
(native-inputs (list clang ;bindgen uses libclang to parse BoringSSL's C headers
cmake-minimal ;BoringSSL is compiled from C source
libunwind ;BoringSSL tests verify stack unwinding in assembly
perl python-minimal ;for tests
pkg-config))
(inputs (cons* bash-minimal coreutils git-minimal sed
libcap oniguruma openssl sqlite zlib `(,zstd "lib")
openssl sqlite `(,zstd "lib")
(cargo-inputs 'codex)))
(properties '((timeout . 108000) ; 30 hours
(max-silent-time . 54000))) ; 15 hours
(home-page "https://github.com/openai/codex")
(synopsis "AI-assisted coding CLI and TUI")
(description
"Codex is an AI-powered coding assistant that runs in the terminal.
It provides an interactive TUI for conversations with AI models, with
support for shell command execution, file editing, and code generation.
Configure providers via @file{~/.codex/config.toml}.
codex-code-mode's V8 Javascript executor is disabled.")
Configure providers via @file{~/.codex/config.toml}.")
(license license:asl2.0)))
(define-public codex-acp
(package
(name "codex-acp")
(version "0.11.1")
(version "0.9.2")
(source
(origin
(method git-fetch)
@@ -859,8 +383,9 @@ codex-code-mode's V8 Javascript executor is disabled.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1rlgkbvrbdl5jhf49sjn2mifn2rq6z0vwf0gard23y1bz6sr3wmr"))
(patches (search-patches "codex-acp-0.11.1-remove-patch-sections.patch"))))
(base32 "190sq6s6jfz8dkj1y8305r7x6ln86qqr2j1bnfjci7f1x2wyzmsj"))
(patches (search-patches "codex-acp-0.9.2-remove-patch-sections.patch"
"codex-acp-0.9.2-replace-result-flatten.patch"))))
(build-system cargo-build-system)
(arguments
(list
@@ -868,43 +393,13 @@ codex-code-mode's V8 Javascript executor is disabled.")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-codex-deps
(lambda* (#:key inputs #:allow-other-keys)
(lambda _
;; Rewrite git dependencies to use vendored sources from rust-codex
(substitute* "Cargo.toml"
(("git = \"https://github.com/openai/codex\", tag = \"rust-v0.117.0\"")
"version = \"0.117.0\""))
;; Disable V8 runtime in codex-code-mode (transitive dep).
(let ((port (open-file "Cargo.toml" "a")))
(display "
[dependencies.codex-code-mode]
version = \"0.117.0\"
default-features = false
" port)
(close-port port))
;; Point codex-linux-sandbox at system bubblewrap source.
(setenv "CODEX_BWRAP_SOURCE_DIR"
(string-append
(assoc-ref inputs "bubblewrap-source")
"/"))))
(add-before 'check 'set-home
(lambda _
(setenv "HOME" "/tmp")
(setenv "USER" "nixbld")))
(add-before 'build 'create-node-version-file
(lambda _
;; codex-core's js_repl uses include_str! to read
;; node-version.txt four directories up from its source;
;; create it where the vendored crate expects it.
(call-with-output-file "guix-vendor/node-version.txt"
(lambda (port)
(display "22.22.0" port))))))))
(native-inputs
`(("cmake-minimal" ,cmake-minimal)
("clang" ,clang)
("pkg-config" ,pkg-config)
("bubblewrap-source" ,(package-source bubblewrap))))
(inputs (cons* libcap openssl sqlite zlib `(,zstd "lib")
(cargo-inputs 'codex-acp)))
(("git = \"https://github.com/zed-industries/codex\", branch = \"acp\"")
"version = \"0.0.0\"")))))))
(native-inputs (list pkg-config))
(inputs (cons* openssl sqlite `(,zstd "lib") (cargo-inputs 'codex-acp)))
(home-page "https://github.com/zed-industries/codex-acp")
(synopsis "ACP-compatible agent bridging Zed Codex with ACP clients")
(description
+1196 -1184
View File
File diff suppressed because it is too large Load Diff
-216
View File
@@ -1,216 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2014, 2019, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2024-2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2020, 2021 Sergei Trofimovich <slyfox@inbox.ru>
;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2025 Anderson Torres <anderson.torres.8519@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages compiler-tools)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages gawk)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages python)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
(define-public byacc
(package
(name "byacc")
(version "20240109")
(source
(origin
(method url-fetch)
(uri (string-append
"https://invisible-mirror.net/archives/byacc/byacc-"
version ".tgz"))
(sha256
(base32
"0il4w1vwbglayakywyghiqhcjpg1yvv5ww2p8ylz32bi05wpg2gj"))
(snippet
#~(begin
;; Remove machine-generated files
(for-each delete-file
(list "configure"
"btyaccpar.c"
"yaccpar.c"))))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
automake
gawk))
(home-page "https://invisible-island.net/byacc/byacc.html")
(synopsis "Berkeley Yacc LALR parser generator")
(description
"Berkeley Yacc is an LALR(1) parser generator. Yacc reads the grammar
specification from a file and generates an LALR(1) parser for it. The parsers
consist of a set of LALR(1) parsing tables and a driver routine written in the
C programming language.")
(license license:public-domain)))
(define-public flex
(package
(name "flex")
(version "2.6.4")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/westes/flex"
"/releases/download/v" version "/"
"flex-" version ".tar.gz"))
(sha256
(base32
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))))
(build-system gnu-build-system)
(arguments
(if (%current-target-system)
(list #:configure-flags
#~'("ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"))
'()))
(native-inputs
(list help2man
;; m4 is not present in PATH when cross-building
m4))
(inputs
(list
(package
(inherit bison)
(arguments
;; Disable tests, since they require flex.
(substitute-keyword-arguments arguments
((#:tests? _ #f) #f)))
(inputs (modify-inputs inputs
(delete "flex"))))))
(propagated-inputs (list m4))
(home-page "https://github.com/westes/flex")
(synopsis "Fast lexical analyser generator")
(description
"Flex is a tool for generating scanners. A scanner, sometimes
called a tokenizer, is a program which recognizes lexical patterns in
text. The flex program reads user-specified input files, or its standard
input if no file names are given, for a description of a scanner to
generate. The description is in the form of pairs of regular expressions
and C code, called rules. Flex generates a C source file named,
\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\"
can be compiled and linked to produce an executable. When the executable
is run, it analyzes its input for occurrences of text matching the
regular expressions for each rule. Whenever it finds a match, it
executes the corresponding C code.")
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
(define-public oyacc
(package
(name "oyacc")
(version "6.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ibara/yacc")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1a2nyg2nnh1las40klnp037sapaaph86kjx258cpqcwnk4cv3rnx"))))
(build-system gnu-build-system)
(arguments
(list
#:test-target "test"
#:make-flags
#~(list (string-append "BINDIR=" #$output "/bin")
(string-append "MANDIR=" #$output "/share/man/man1"))))
(home-page "https://github.com/ibara/yacc")
(synopsis "Portable YACC from OpenBSD")
(description
"@command{oyacc} is a portable version of the OpenBSD's
@acronym{yacc, Yet Another Compiler Compiler} program, with no dependencies
besides libc.")
(license license:bsd-2)))
(define-public oyacc-as-yacc-wrapper
(package/inherit oyacc
(name "oyacc-as-yacc-wrapper")
(build-system trivial-build-system)
(arguments
(list
#:builder
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(let ((bindir (string-append #$output "/bin"))
(oyacc (string-append #$(this-package-input "oyacc")
"/bin/oyacc")))
(mkdir-p bindir)
(symlink oyacc (string-append bindir "/yacc")))))))
(inputs (list oyacc))
(description
"This package provides the @command{yacc} command, implemented as a
symbolic link to the @command{oyacc} command from the same-named package.")))
(define-public re2c
(package
(name "re2c")
(version "4.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/skvadrik/" name
"/releases/download/" version "/"
name "-" version ".tar.xz"))
(sha256
(base32
"07ysqgdm0h566a8lwnpdgycp93vz7zskzihsgah3bla0ycj2pp69"))))
(build-system gnu-build-system)
(arguments
(list
#:tests?
(not (or (%current-target-system)
;; TODO: run_tests.py hangs
(system-hurd?)))
#:phases
(if (target-arm32?)
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-sources
(lambda _
(invoke "patch" "-p1" "--force" "--input"
#$(local-file (search-patch
"re2c-Use-maximum-alignment.patch"))))))
#~%standard-phases)))
(native-inputs
(list python)) ; for the test driver
(home-page "https://re2c.org/")
(synopsis "Lexer generator")
(description
"@code{re2c, Regular Expressions to Code} is a flexible lexical analyser.
Instead of using traditional table-driven approaches, it encodes a finite
state machine directly in the code in the form of jumps and comparisons.")
(license license:public-domain)))
+11 -43
View File
@@ -42,7 +42,6 @@
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024, 2025 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2026 Jake Forster <jakecameron.forster@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -407,10 +406,9 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
;; Don't attempt to run the tests when cross-compiling.
#:tests? (not (%current-target-system))))
(inputs
`(,@(if (%current-target-system)
`(("bash" ,bash-minimal))
'())))
(inputs (if (%current-target-system)
(list bash-minimal)
(list)))
(outputs '("out" "static"))
(synopsis "High-quality data compression program")
(description
@@ -555,7 +553,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(define-public xz
(package
(name "xz")
(version "5.4.5")
(version "5.8.1")
(source (origin
(method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version
@@ -564,7 +562,7 @@ formats, including zstd, xz, gzip, and bgzf.")
version ".tar.gz")))
(sha256
(base32
"1mmpwl4kg1vs6n653gkaldyn43dpbjh8gpk7sk0gps5f6jwr0p0k"))))
"0hsmg58a27jd1vq0lc6yp405978c1nfhqwndl7f10v1mk6sjay2h"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -582,7 +580,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(substitute* (string-append out "/lib/liblzma.la")
(("^old_library='liblzma.a'") "old_library=''"))
#t))))))
(outputs '("out" "static"))
(outputs '("out" "static" "doc"))
(inputs
`(,@(if (%current-target-system)
`(("bash" ,bash-minimal))
@@ -599,6 +597,8 @@ compression algorithm is currently LZMA2, which is used inside the .xz
container format. With typical files, XZ Utils create 30 % smaller output
than gzip and 15 % smaller output than bzip2.")
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both
(properties
`((output-synopsis "doc" "API documentation and example code")))
(home-page "https://tukaani.org/xz/")))
(define-public heatshrink
@@ -1476,7 +1476,7 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
(define-public 7zip
(package
(name "7zip")
(version "26.01")
(version "26.00")
(source
(origin
(method git-fetch)
@@ -1484,7 +1484,7 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
(url "https://github.com/ip7z/7zip")
(commit version)))
(sha256
(base32 "0qwzn9pz1m6f8q20cqgmfqp1qx6s7959xnyikpr60n1v8c1mj98q"))
(base32 "1fvgl9qp2pl5c0jmvgbdx6qig3qd80mhxvml42yby8y412x65sh7"))
(file-name (git-file-name name version))
(modules '((guix build utils)
(ice-9 regex)))
@@ -2376,9 +2376,7 @@ non-Windows systems without running the actual installer using wine.")
(sha256
(base32 "17k679glx05v23n8kxbg9vmbf89i2252g5xj6w3dkz19asmh1zd6"))))
(build-system gnu-build-system)
(native-inputs
(cons* autoconf automake libtool
(maybe-nasm)))
(native-inputs (list autoconf automake libtool nasm))
(home-page "https://github.com/intel/isa-l")
(synopsis "Intelligent storage acceleration library")
(description "ISA-L is a collection of optimized low-level functions
@@ -3192,33 +3190,3 @@ exported by the zlib library.")
ratio at the cost of high CPU/memory usage.")
(home-page "https://github.com/byronknoll/cmix")
(license license:gpl3)))
(define-public zlib-ng
(package
(name "zlib-ng")
(version "2.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zlib-ng/zlib-ng")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0g4pxy7gc1slw9n6j583hzps32mml30f08gmmg1adsq4y3dl2cny"))))
(build-system cmake-build-system)
(native-inputs (list googletest))
(home-page "https://github.com/zlib-ng/zlib-ng")
(synopsis "Fork of the zlib data compression library")
(description
"zlib-ng is a @code{zlib} replacement with optimizations for next
generation systems.")
(license license:zlib)))
(define-public zlib-ng-compat
(package/inherit zlib-ng
(name "zlib-ng-compat")
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags #~(list))
#~(cons "-DZLIB_COMPAT=ON" #$flags))))))
+94 -396
View File
@@ -50,7 +50,6 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages docker)
#:use-module (gnu packages glib)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
@@ -71,7 +70,6 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages prometheus)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
@@ -123,365 +121,6 @@
"This package provides a Go library to read and manipulate checkpoint
archives as created by Podman, CRI-O and containerd.")
(license license:asl2.0)))
(define-public go-github-com-containerd-containerd-v2
(package
(name "go-github-com-containerd-containerd-v2")
(version "2.2.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containerd/containerd")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wxy5np689571s6lw77mx63nw75fx85w5svi0jplksmqzmjqp8wd"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "vendor")
;; Submodules with their own go.mod files and packaged separately:
;;
;; - github.com/containerd/containerd/api
(delete-file-recursively "api")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/containerd/containerd/v2"
#:test-subdirs
#~(list "cmd/protoc-gen-go-fieldpath/..."
"core/containers/..."
"core/content/..."
"core/diff"
"core/diff/apply"
"core/events/..."
"core/images/..."
"core/introspection/..."
"core/leases/..."
"core/metrics/..."
"core/remotes/..."
"core/sandbox/..."
"core/streaming/..."
"core/transfer"
"core/transfer/archive/..."
"core/transfer/image/..."
"core/transfer/local/..."
"core/transfer/plugins/..."
"core/transfer/streaming/..."
"core/unpack/..."
"internal/cleanup/..."
"internal/erofsutils/..."
"internal/eventq/..."
"internal/failpoint/..."
"internal/fsverity/..."
"internal/kmutex/..."
"internal/lazyregexp/..."
"internal/pprof/..."
"internal/randutil/..."
"internal/registrar/..."
"internal/tomlext/..."
"internal/truncindex/..."
"internal/userns/..."
"internal/wintls/..."
"pkg/apparmor/..."
"pkg/archive/..."
"pkg/atomicfile/..."
"pkg/blockio/..."
"pkg/cap/..."
"pkg/cio..."
"pkg/deprecation/..."
"pkg/dialer/..."
"pkg/display/..."
"pkg/epoch/..."
"pkg/fifosync/..."
"pkg/filters/..."
"pkg/gc/..."
"pkg/httpdbg/..."
;; TODO: Check why these submodule fail to build.
;; "client/..."
;; "cmd/containerd-shim-runc-v2/..."
;; "cmd/containerd-stress/..."
;; "cmd/containerd/..."
;; "cmd/ctr/..."
;; "cmd/gen-manpages/..."
;; "contrib/..."
;; "core/diff/proxy"
;; "core/metadata/..."
;; "core/mount/..."
;; "core/runtime/..."
;; "core/snapshots/..."
;; "core/transfer/proxy/..."
;; "core/transfer/registry/..."
;; "integration/..."
;; "internal/cri/..."
;; "internal/nri/..."
;; "pkg/cdi/..."
#;"plugins/...")
#:test-flags
#~(list "-skip" (string-join
;; panic: cannot statfs cgroup root [recovered]
(list "TestValidateConfig"
;; io_test.go:40: failed to start binary process:
;; fork/exec /bin/echo: no such file or directory
"TestNewBinaryIO"
;; expected success: got executable file not found in $PATH
"TestExecutorWithArgs"
"TestSetEnv"
"TestStdIOPipes"
;; panic: cannot statfs cgroup root
"TestContainerCapabilities"
"TestContainerSpecTty"
"TestContainerSpecReadonlyRootfs"
"TestContainerSpecWithExtraMounts"
"TestContainerAndSandboxPrivileged"
"TestPrivilegedBindMount"
"TestCgroupNamespace"
"TestPidNamespace/node_namespace_mode"
;; failed to apply b: invalid argument
"TestDiffTar/IgnoreSockets"
"TestBinDirVerifyImage/max_verifiers_=_-1,_with_timeout"
"TestContainerSpecDefaultPath"
;; Error: Not equal:
;; expected: 1000
;; actual : 123
"TestSetPositiveOomScoreAdjustment")
"|"))))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-dario-cat-mergo
go-github-com-adalogics-go-fuzz-headers
go-github-com-checkpoint-restore-checkpointctl
go-github-com-checkpoint-restore-go-criu-v7
go-github-com-containerd-btrfs-v2
go-github-com-containerd-cgroups-v3
go-github-com-containerd-console
go-github-com-containerd-containerd-api
go-github-com-containerd-continuity
go-github-com-containerd-errdefs
go-github-com-containerd-errdefs-pkg
go-github-com-containerd-fifo
go-github-com-containerd-go-cni
go-github-com-containerd-go-runc
go-github-com-containerd-imgcrypt-v2
go-github-com-containerd-log
go-github-com-containerd-nri
go-github-com-containerd-otelttrpc
go-github-com-containerd-platforms
go-github-com-containerd-plugin
go-github-com-containerd-ttrpc
go-github-com-containerd-typeurl-v2
go-github-com-containerd-zfs-v2
go-github-com-containernetworking-cni
go-github-com-containernetworking-plugins
go-github-com-coreos-go-systemd-v22
go-github-com-davecgh-go-spew
go-github-com-distribution-reference
go-github-com-docker-go-events
go-github-com-docker-go-metrics
go-github-com-docker-go-units
go-github-com-emicklei-go-restful-v3
go-github-com-fsnotify-fsnotify
go-github-com-google-certtostore
go-github-com-google-go-cmp
go-github-com-google-uuid
go-github-com-grpc-ecosystem-go-grpc-middleware-providers-prometheus
go-github-com-intel-goresctrl
go-github-com-klauspost-compress
go-github-com-mdlayher-vsock
;;go-github-com-microsoft-go-winio ;Windows only
;;go-github-com-microsoft-hcsshim ;Windows only
go-github-com-moby-locker
go-github-com-moby-sys-mountinfo
go-github-com-moby-sys-sequential
go-github-com-moby-sys-signal
go-github-com-moby-sys-symlink
go-github-com-moby-sys-user
go-github-com-moby-sys-userns
go-github-com-opencontainers-go-digest
go-github-com-opencontainers-image-spec
go-github-com-opencontainers-runtime-spec
go-github-com-opencontainers-runtime-tools
go-github-com-opencontainers-selinux
go-github-com-pelletier-go-toml-v2
go-github-com-prometheus-client-golang
go-github-com-sirupsen-logrus
go-github-com-tchap-go-patricia-v2
go-github-com-urfave-cli-v2
go-github-com-vishvananda-netlink
go-github-com-vishvananda-netns
go-go-etcd-io-bbolt
go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc
go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-exporters-otlp-otlptrace
go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc
go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp
go-go-opentelemetry-io-otel-sdk
go-go-opentelemetry-io-otel-trace
go-go-uber-org-goleak
go-golang-org-x-mod
go-golang-org-x-sync
go-golang-org-x-sys
go-golang-org-x-time
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf
go-gopkg-in-inf-v0
go-k8s-io-apimachinery
go-k8s-io-client-go
go-k8s-io-cri-api
go-k8s-io-klog-v2
go-tags-cncf-io-container-device-interface))
(home-page "https://containerd.io/")
(synopsis "Container runtime support daemon")
(description
"Containerd is a container runtime with an emphasis on simplicity,
robustness, and portability. It is available as a daemon, which can manage
the complete container lifecycle of its host system: image transfer and
storage, container execution and supervision, low-level storage and network
attachments, etc.")
(license license:asl2.0)))
(define-public go-github-com-containers-gvisor-tap-vsock
(package
(name "go-github-com-containers-gvisor-tap-vsock")
(version "0.8.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/gvisor-tap-vsock")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xz710dmy58gngd0qizjw8g9nkraksqald8vzhwc5h36dqkc8nrf"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file-recursively "vendor")
;; Submodules with their own go.mod files and packaged separately:
;;
;; - github.com/containers/gvisor-tap-vsock/tools
(delete-file-recursively "tools")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/containers/gvisor-tap-vsock"
#:unpack-path "github.com/containers/gvisor-tap-vsock"
#:build-flags
#~(list (string-append "-ldflags="
"-X github.com/containers/gvisor-tap-vsock"
"/pkg/types.gitVersion=" #$version))
#:test-flags
#~(list "-skip"
(string-join
;; Received unexpected error:
;; listen unix /tmp/guix-.../test.sock: bind: invalid argument
(list "TestNotificationSender_Success"
;; Requires network
"TestSuite"
"TestDNS")
"|"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'prune-tests
(lambda* (#:key unpack-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" unpack-path)
;; Requires working DNS.
(substitute* "pkg/services/dns/dns_test.go"
(("Should pass DNS requests to default system DNS.*" all)
(string-append all "\n" "ginkgo.Skip(\"No network.\");"))
(("\"redhat.com\",")
"\"localhost\",")
(("\"52.200.142.250\"")
"\"127.0.0.1\""))))))))
(native-inputs
(list go-github-com-stretchr-testify
go-github-com-foxcpp-go-mockdns))
(propagated-inputs
(list go-github-com-apparentlymart-go-cidr
go-github-com-containers-winquit
go-github-com-coreos-stream-metadata-go
go-github-com-dustin-go-humanize
go-github-com-google-gopacket
go-github-com-inetaf-tcpproxy
go-github-com-insomniacslk-dhcp
;; go-github-com-linuxkit-virtsock ;Windows only
go-github-com-mdlayher-vsock
;; go-github-com-microsoft-go-winio ;Windows only
go-github-com-miekg-dns
go-github-com-onsi-ginkgo
go-github-com-onsi-gomega
go-github-com-opencontainers-go-digest
go-github-com-sirupsen-logrus
go-github-com-songgao-packets
go-github-com-songgao-water
go-github-com-vishvananda-netlink
go-golang-org-x-crypto
go-golang-org-x-mod
go-golang-org-x-sync
go-golang-org-x-sys
go-gopkg-in-yaml-v3
go-gvisor-dev-gvisor))
(home-page "https://github.com/containers/gvisor-tap-vsock")
(synopsis "Network stack for virtualization based on gVisor")
(description "This package provides a replacement for @code{libslirp} and
@code{VPNKit}, written in pure Go. It is based on the network stack of gVisor
and brings a configurable DNS server and dynamic port forwarding.
It can be used with QEMU, Hyperkit, Hyper-V and User-Mode Linux.
The binary is called @command{gvproxy}.")
(license license:asl2.0)))
(define-public go-github-com-rootless-containers-rootlesskit-v3
(package
(name "go-github-com-rootless-containers-rootlesskit-v3")
(version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rootless-containers/rootlesskit")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0giw1whjpm64h8f1iamgym246rr3wl01w7zgw4lygrj7dqk3clmb"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/rootless-containers/rootlesskit/v3"))
(propagated-inputs
(list go-github-com-containernetworking-plugins
go-github-com-containers-gvisor-tap-vsock
go-github-com-gofrs-flock
go-github-com-google-uuid
go-github-com-gorilla-mux
go-github-com-insomniacslk-dhcp
go-github-com-masterminds-semver-v3
go-github-com-moby-sys-mountinfo
go-github-com-moby-vpnkit
go-github-com-sirupsen-logrus
go-github-com-songgao-water
go-github-com-urfave-cli-v2
go-golang-org-x-sync
go-golang-org-x-sys
go-gotest-tools-v3))
(home-page "https://github.com/rootless-containers/rootlesskit")
(synopsis "Linux-native fakeroot using user namespaces in Golang")
(description
"@code{RootlessKit} is a Linux-native implementation of \"fake root\" using
@url{http://man7.org/linux/man-pages/man7/user_namespaces.7.html,(code
user_namespaces(7))}. It is used to run containers engines as an
unprivileged user, known as \"Rootless mode\".")
(license license:asl2.0)))
;;;
;;; Executables:
@@ -511,7 +150,7 @@ as created by Podman, CRI-O and containerd.")))
(define-public crun
(package
(name "crun")
(version "1.27.1")
(version "1.25.1")
(source
(origin
(method url-fetch)
@@ -521,7 +160,7 @@ as created by Podman, CRI-O and containerd.")))
"/crun-" version ".tar.gz"))
(sha256
(base32
"1w782s95f3xvw3fb66l2ciqkqsg4bk7n9ph31jmvn669ap272ymy"))))
"02kksvnja234k8mpq5j7yms8npbpvh8iz3k03h21lwcqzqsb88rx"))))
(build-system gnu-build-system)
(arguments
(list
@@ -736,7 +375,7 @@ contents, and discovering ways to shrink the size of Docker/OCI image.")
(define-public guix-compose
(package
(name "guix-compose")
(version "0.2.0")
(version "0.1.1")
(source
(origin
(method git-fetch)
@@ -745,7 +384,7 @@ contents, and discovering ways to shrink the size of Docker/OCI image.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1dy48qkz3ifxagijpvwg7rmq7hz3pikhdcfral6djyc9ppmz8mbm"))))
(base32 "1ij6rfs5pfykk8c53q029sl2qx3k572dqdfb6pn5s569l6697ci1"))))
(build-system guile-build-system)
(arguments
(list
@@ -787,7 +426,7 @@ contents, and discovering ways to shrink the size of Docker/OCI image.")
"guile" "-L" "./modules" "-s" "tests/test-compose.scm")))))))
(native-inputs (list guile-3.0))
;; Avoid setting propagated so that we use the users profile.
(inputs (list guix guile-dotenv guile-yamlpp))
(inputs (list guix guile-yamlpp))
(native-search-paths
(list $GUIX_EXTENSIONS_PATH))
(synopsis "Guix' docker compose compatibility layer")
@@ -906,7 +545,7 @@ Layer-4 sockets.")
(define-public cni-plugins
(package
(name "cni-plugins")
(version "1.9.1")
(version "1.9.0")
(source
(origin
(method git-fetch)
@@ -915,7 +554,7 @@ Layer-4 sockets.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "12z6w2jk6xgfiwdxys7skpkxldz1cgaa7scgfcr90lsghay59s6w"))
(base32 "0l3jgbizq0yaxld07hsdbh6ix2w6i789101ddk0ldnsmr93jg6ni"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "vendor")))))
@@ -956,33 +595,92 @@ configure network interfaces in Linux containers.")
(license license:asl2.0)))
(define-public gvisor-tap-vsock
(package/inherit go-github-com-containers-gvisor-tap-vsock
(package
(name "gvisor-tap-vsock")
(version "0.8.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/gvisor-tap-vsock")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xz710dmy58gngd0qizjw8g9nkraksqald8vzhwc5h36dqkc8nrf"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file-recursively "vendor")
;; Submodules with their own go.mod files and packaged separately:
;;
;; - github.com/containers/gvisor-tap-vsock/tools
(delete-file-recursively "tools")))))
(build-system go-build-system)
(arguments
(substitute-keyword-arguments arguments
((#:install-source? _ #t) #f)
((#:skip-build? _ #t) #f)
((#:tests? _ #t) #f)
((#:phases _ '%standard-phases)
#~(modify-phases %standard-phases
;; Build binary outputs are taken from project's Makefile.
(replace 'build
(lambda arguments
(for-each
(lambda (cmd)
(apply (assoc-ref %standard-phases 'build)
`(,@arguments #:import-path ,cmd)))
(list "github.com/containers/gvisor-tap-vsock/cmd/gvproxy"
"github.com/containers/gvisor-tap-vsock/cmd/qemu-wrapper"
"github.com/containers/gvisor-tap-vsock/cmd/vm"))))
(add-after 'install 'fix-bin-name
(lambda _
(rename-file (string-append #$output "/bin/vm")
(string-append #$output "/bin/gvforwarder"))))))))
(list
#:install-source? #f
#:import-path "github.com/containers/gvisor-tap-vsock/cmd/gvproxy"
#:unpack-path "github.com/containers/gvisor-tap-vsock"
#:build-flags
#~(list (string-append "-ldflags="
"-X github.com/containers/gvisor-tap-vsock"
"/pkg/types.gitVersion=" #$version))
#:test-flags
;; serve UDP error: *net.OpError read udp 127.0.0.1:5354: use of closed
;; network connection
#~(list "-skip" "TestSuite")
#:test-subdirs
#~(list "../../...") ;test the whole library
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'prune-tests
(lambda* (#:key unpack-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" unpack-path)
;; Requires working DNS.
(substitute* "pkg/services/dns/dns_test.go"
(("Should pass DNS requests to default system DNS.*" all)
(string-append all "\n" "ginkgo.Skip(\"No network.\");"))
(("\"redhat.com\",")
"\"localhost\",")
(("\"52.200.142.250\"")
"\"127.0.0.1\""))))))))
(native-inputs
(package-propagated-inputs go-github-com-containers-gvisor-tap-vsock))
(propagated-inputs '())
(inputs '())))
(list go-github-com-apparentlymart-go-cidr
go-github-com-containers-winquit
go-github-com-coreos-stream-metadata-go
go-github-com-dustin-go-humanize
go-github-com-foxcpp-go-mockdns
go-github-com-google-gopacket
go-github-com-inetaf-tcpproxy
go-github-com-insomniacslk-dhcp
;; go-github-com-linuxkit-virtsock ;Windows only
go-github-com-mdlayher-vsock
;; go-github-com-microsoft-go-winio ;Windows only
go-github-com-miekg-dns
go-github-com-onsi-ginkgo
go-github-com-onsi-gomega
go-github-com-opencontainers-go-digest
go-github-com-sirupsen-logrus
go-github-com-songgao-packets
go-github-com-songgao-water
go-github-com-stretchr-testify
go-github-com-vishvananda-netlink
go-golang-org-x-crypto
go-golang-org-x-mod
go-golang-org-x-sync
go-golang-org-x-sys
go-gopkg-in-yaml-v3
go-gvisor-dev-gvisor))
(home-page "https://github.com/containers/gvisor-tap-vsock")
(synopsis "Network stack for virtualization based on gVisor")
(description "This package provides a replacement for @code{libslirp} and
@code{VPNKit}, written in pure Go. It is based on the network stack of gVisor
and brings a configurable DNS server and dynamic port forwarding.
It can be used with QEMU, Hyperkit, Hyper-V and User-Mode Linux.
The binary is called @command{gvproxy}.")
(license license:asl2.0)))
(define-public catatonit
(package
@@ -1016,7 +714,7 @@ Its main purpose is to support the key usage by @code{docker-init}:
(define-public podman
(package
(name "podman")
(version "5.8.2")
(version "5.8.1")
(outputs '("out" "docker"))
(properties
`((output-synopsis "docker" "docker alias for podman")
@@ -1029,7 +727,7 @@ Its main purpose is to support the key usage by @code{docker-init}:
(url "https://github.com/containers/podman")
(commit (string-append "v" version))))
(sha256
(base32 "12bmzbfyjsf0mwnam38cw9ib54wj1znh5b7lxzdyll9cvvkhqisr"))
(base32 "1wdsdc0nj4m1v8mn95dhavi87ad0adqmld70da59gvp2abff5f0f"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -1187,7 +885,7 @@ being rootless and not requiring any daemon to be running.")
(define-public buildah
(package
(name "buildah")
(version "1.43.1")
(version "1.43.0")
(source
(origin
(method git-fetch)
@@ -1195,7 +893,7 @@ being rootless and not requiring any daemon to be running.")
(url "https://github.com/containers/buildah")
(commit (string-append "v" version))))
(sha256
(base32 "00x4ja5n49jmkmiv54mmkihks9pnjnna7s7py57in6pc9g85xj2y"))
(base32 "0pwdd0mxhxy530c2sbsz0rnnb1jyl41rvnqn9ywfgb6lz5f4ja2a"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
+1 -1
View File
@@ -35,7 +35,7 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages emacs)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ocaml)
-296
View File
@@ -1,296 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages coreboot)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages pciutils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-26))
(define %coreboot-version "26.03")
(define %coreboot-origin
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit %coreboot-version)))
(file-name (git-file-name "coreboot" %coreboot-version))
(sha256
(base32
"0436rr0vibh35phvkxrc939njvrmnfq9xw87y1b0nlllglvq07kk"))))
(define-public bincfg
(package
(name "bincfg")
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'unpack 'chdir
(lambda _
(chdir "util/bincfg")))
(add-after 'build 'build-binaries
(lambda* (#:key make-flags #:allow-other-keys)
(for-each
(lambda (target result)
(apply invoke "make" (string-append "gen-" target) make-flags)
(rename-file result
(string-append target ".bin")))
(list
;; generate GbE for X200
"gbe-ich9m"
;; generate GbE for X220/x230
"gbe-82579LM"
;; generate IFD for X200
"ifd-x200")
(list
"flashregion_3_gbe.bin"
"flashregion_3_gbe.bin"
"flashregion_0_fd.bin"))))
;; The Makefile has no install target.
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib/bincfg"))
(data (string-append #$output "/share/bincfg")))
;; Install the program
(install-file "bincfg" bin)
;; And its data
(for-each
(lambda (path)
(install-file path data))
(append (find-files "." ".*\\.set")
(find-files "." ".*\\.spec")))
;; And the files generated with the data
(for-each
(lambda (path)
(install-file path lib))
(find-files "." ".*\\.bin"))))))))
(native-inputs (list bison flex))
(home-page "https://coreboot.org")
(synopsis "Encoder/decoder for binary formats described in text files")
(description "
The bincfg program comes with specifications files for the following binary
formats:
@itemize
@item Various DDR3 and DDR4 SPD
@item Configuration data for the Intel 82579LM Gigabit Ethernet PHY
@item Configuration data for the Intel Gigabit Ethernet controller present in
the Intel ICH9-M chipset.
@item Intel Firmware Descriptor data for the Lenovo ThinkPad X200
@item Configuration data for the ITE IT8718F SuperIO
@end itemize
It also comes with example files generated by bincfg.")
(license license:gpl3+)))
(define-public bucts
(package
(name "bucts")
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no tests
#:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
#:phases #~(modify-phases %standard-phases
(delete 'configure) ;no configure script
(add-after 'unpack 'enter-source
(lambda _
(chdir "util/bucts")))
(add-after 'enter-source 'set-version
(lambda _
(substitute* "Makefile"
(("^VERSION:=*")
#$(string-append "VERSION:=" version)))))
;; no install target
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(doc (string-append #$output "/share/doc/bucts/"))
(licenses (string-append #$output
"/share/licenses/bucts/")))
(install-file "bucts" bin)
(install-file "readme.md" doc)
(install-file "../../COPYING" licenses)))))))
(inputs (list pciutils))
(home-page "https://coreboot.org")
(synopsis "Tool to swap the BIOS bootblock and backup bootblock on the
Intel I945 chipsets")
(description
"The @command{bucts} command can flip a bit in the BUC.TS register of the
Intel I945 chipsets and show the register status. When the bit is set, it
swaps the bootblock location. Because the bootblock region is often set
read-only by the default BIOS, this enables to bypass that restriction and is
used as part of a procedure to replace the nonfree BIOS with free software on
various computers (Lenovo X60, X60s, X60T, T60, probably more).")
(license license:gpl2)))
(define-public ectool
(package
(name "ectool")
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/ectool")))
(delete 'configure)))) ; no configure script
(home-page "https://doc.coreboot.org/util.html")
(synopsis "Tool to dump and modify @acronym{EC, Embedded Controller} RAM
on computers such as laptops")
(description "This package provides @command{ectool}, a program to dump
and modify the contents of @acronym{EC, Embedded Controller} RAM
on mobile computers.")
(license license:gpl2)))
(define-public ifdtool
(package
(name "ifdtool")
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/ifdtool")))
(delete 'configure)) ; no configure script
#:tests? #f)) ; no test suite
(home-page "https://doc.coreboot.org/util/ifdtool/")
(synopsis "Intel Firmware Descriptor dumper")
(description "This package provides @command{ifdtool}, a program to
dump Intel Firmware Descriptor data of an image file.")
(license license:gpl2)))
(define-public intelmetool
(package
(name "intelmetool")
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/intelmetool")))
(delete 'configure) ;no configure script
(delete 'check))))
(inputs (list pciutils zlib))
(home-page
"https://github.com/coreboot/coreboot/tree/main/util/intelmetool/")
(synopsis "Intel Management Engine tools")
(description "This package provides tools for working with Intel
Management Engine (ME). You need to @code{sudo rmmod mei_me} and
@code{sudo rmmod mei} before using this tool. Also pass
@code{iomem=relaxed} to the Linux kernel command line.")
(license license:gpl2)
;; This is obviously an Intel thing, plus it requires <cpuid.h>.
(supported-systems '("x86_64-linux" "i686-linux"))))
(define-public nvramtool
(package
(name "nvramtool")
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/nvramtool")))
(delete 'configure)))) ; no configure script
(home-page "https://coreboot.org")
(synopsis "Command line tool that can edit Coreboot settings")
(description "@command{nvramtool} can see and/or modify Coreboot settings
like the serial port speed, log level, etc. It requires Coreboot to be compiled
with CONFIG_USE_OPTION_TABLE and some options require the iomem=relaxed kernel
command line to work. Features:
@itemize
@item If Coreboot was compiled without CONFIG_STATIC_OPTION_TABLE, it can change
its settings, which are applied after a reboot.
@item It can modify Coreboot images default settings with
@command{nvramtool -C coreboot.rom [...]}.
@item It has various options related to the file format used to store these
settings.
@item It can also read/write the CMOS memory where the Coreboot settings can be
located.
@end itemize")
;; Some files are "GPL-2.0-only or BSD-3-Clause", other are GPL-2.0-only
;; and anyway there is. There is also a license declaration in
;; cli/nvramtool.8 that applies to "This program" which uses the GPLv2.
(license license:gpl2)))
+47 -264
View File
@@ -28,7 +28,7 @@
;;; Copyright © 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2022, 2026 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022-2025 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022-2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022-2024, 2026 Maxim Cournoyer <maxim@guixotic.coop>
@@ -44,7 +44,7 @@
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2025 Sergio Pastor Pérez <sergio.pastorperez@gmail.com>
;;; Copyright © 2025, 2026 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2025 Romain Garbage <romain.garbage@inria.fr>
;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
@@ -52,8 +52,6 @@
;;; Copyright © 2025 Philippe Swartvagher <phil.swart@gmx.fr>
;;; Copyright © 2025 Murilo <murilo@disroot.org>
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
;;; Copyright © 2026 bdunahu <bdunahu@operationnull.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -80,6 +78,7 @@
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system scons)
#:use-module (guix modules)
@@ -134,7 +133,6 @@
#:use-module (gnu packages sdl)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
@@ -685,6 +683,38 @@ computer program to introspect and modify an object at runtime. It is also
the name of the library itself, which is written in C++.")
(license license:expat)))
(define-public rct
(let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
(revision "2"))
(package
(name "rct")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Andersbakken/rct")
(commit commit)))
(sha256
(base32
"1m2931jacka27ghnpgf1z1plkkr64z0pga4r4zdrfpp2d7xnrdvb"))
(patches (search-patches "rct-add-missing-headers.patch"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
'("-DWITH_TESTS=ON" ; To run the test suite
"-DRCT_RTTI_ENABLED=ON")))
(native-inputs
(list cppunit pkg-config))
(inputs
(list openssl zlib))
(home-page "https://github.com/Andersbakken/rct")
(synopsis "C++ library providing Qt-like APIs on top of the STL")
(description "Rct is a set of C++ tools that provide nicer (more Qt-like)
APIs on top of Standard Template Library (@dfn{STL}) classes.")
(license (list license:expat ; cJSON
license:bsd-4))))) ; everything else (LICENSE.txt)
(define-public plutovg
(package
(name "plutovg")
@@ -937,85 +967,6 @@ inspired by the @url{https://github.com/gruns/icecream, Python library} of the
same name.")
(license license:expat)))
(define-public tinyformat
(package
(name "tinyformat")
(version "2.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/c42f/tinyformat")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0j8bxrg7i4rn98iqpfh03krshgcbwh8hq8nm0p3sfdqpira3vi3y"))))
(build-system cmake-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda _
(install-file "../source/tinyformat.h"
(string-append #$output "/include")))))))
(home-page "https://github.com/c42f/tinyformat")
(synopsis "Minimal, type-safe printf replacement library for C++")
(description "@code{tinyformat} is a type-safe @code{printf} replacement
library in a single C++ header file. Design goals include:
@itemize
@item Type-safety and extensibility for user defined types
@item C99 @code{printf} compatibility, to the extent possible using
@code{std::ostream}
@item POSIX extension for positional arguments
@item Simplicity and minimalism; a single header file to include and
distribute with your projects
@item Augment rather than replace the standard stream formatting mechanism
@item C++98 support, with optional C++11 niceties
@end itemize")
(license license:boost1.0)))
(define-public span
(let ((commit "836dc6a0efd9849cb194e88e4aa2387436bb079b")
(revision "0"))
(package
(name "span")
(version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tcbrindle/span")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1v3x1mj4if8jrr7cmrcbhv8n8ygla0liqb0dic6g6ji7px2pr6jf"))
(snippet
#~(delete-file "test/catch.hpp"))))
(build-system cmake-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-catch2
(lambda _
;; Use catch2 from Guix.
(substitute* (find-files "test" "\\.cpp$")
(("#include \"catch.hpp\"")
"#include <catch2/catch.hpp>"))))
(replace 'install
(lambda _
(install-file "../source/include/tcb/span.hpp"
(string-append #$output "/include")))))))
(native-inputs
(list catch2))
(home-page "https://github.com/tcbrindle/span")
(synopsis "C++20's @code{std::span} shim for older compilers")
(description "This package provides a single-header implementation of
C++20's @code{std::span}, conforming to the C++20 committee draft. It is
compatible with C++11, but will use newer language features if they are
available.")
(license license:boost1.0))))
(define-public google-highway
(package
(name "google-highway")
@@ -1434,9 +1385,6 @@ data transfer object.")
(define-public nlohmann-json
(package
(name "nlohmann-json")
;; XXX: Merge related package `nlohmann-json-no-char8-t' back into here when
;; updating from 3.12.0, as the unique patch it applies will already be
;; incorporated in.
(version "3.12.0")
(home-page "https://github.com/nlohmann/json")
(source
@@ -1510,46 +1458,6 @@ intuitive syntax and trivial integration.")
(define-deprecated-package json-modern-cxx
nlohmann-json)
(define-public nlohmann-json-no-char8-t
(package
;; XXX: Version 3.12.0 does not work without char8_t support.
;; OpenRCT2 compiles with -fno-char8_t, and thus requires this patch.
;; See https://github.com/nlohmann/json/pull/4736
(inherit nlohmann-json)
(name "nlohmann-json-no-char8-t")
(version "3.12.0")
(source
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/nlohmann/json")
(commit (string-append "v" version))))
(sha256
(base32 "09nqq56ighr3lghhn3fs399lkllghz717j0xyp87x0giw86ayh3h"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
#~(begin
;; Delete bundled software. Preserve doctest_compatibility.h, which
;; is a wrapper library added by this package.
(install-file "./tests/thirdparty/doctest/doctest_compatibility.h"
"/tmp")
(delete-file-recursively "./tests/thirdparty")
(install-file "/tmp/doctest_compatibility.h"
"./tests/thirdparty/doctest")
;; Adjust for the unbundled fifo_map and doctest.
(substitute* (find-files "./tests/" "\\.h(pp)?")
(("#include \"doctest\\.h\"") "#include <doctest/doctest.h>")
(("#include <doctest\\.h>") "#include <doctest/doctest.h>"))
(with-directory-excursion "tests/src"
(let ((files (find-files "." "\\.cpp$")))
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))))
(patches
(search-patches "nlohmann_json_fix_char8_t.patch"))))))
(define-public jthread
(let ((commit "0fa8d394254886c555d6faccd0a3de819b7d47f8")
(revision "0"))
@@ -1795,38 +1703,6 @@ maintained anymore.")
concurrent queue for C++11.")
(license license:bsd-2)))
(define-public ringbuffer
(package
(name "ringbuffer")
(version "0.9.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JohannesLorenz/ringbuffer")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1c57hj6zyvcjpcbwrq8c1hj5brk1bnh69ayd88ny1p0gx031sjpk"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags
#~(list "-DCMAKE_CXX_FLAGS=-Wno-error=array-bounds"
(string-append "-DINSTALL_LIB_DIR=" #$output "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-export-header
(lambda _
(install-file "src/lib/ringbuffer_export.h"
(string-append #$output
"/include/ringbuffer")))))))
(home-page "https://github.com/JohannesLorenz/ringbuffer")
(synopsis "Lock-free multi-reader ringbuffer")
(description
"@code{ringbuffer} is a library containing a ringbuffer. It is lock-free
(using atomics only), and allows multiple readers, but only one writer.")
(license license:gpl3+)))
(define-public spscqueue
(package
(name "spscqueue")
@@ -2060,7 +1936,8 @@ using the string similarity calculations from FuzzyWuzzy.")
(add-after 'unpack 'fix-pytest-config
(lambda _
(substitute* "pyproject.toml"
(("\"pytest-cov\", ") "")))))))
((" \"pytest-cov\", ") "")
((" --cov-fail-under=90 --cov=cpplint") "")))))))
(native-inputs
(list python-pytest
python-pytest-timeout
@@ -3347,7 +3224,8 @@ pointers, containers, compiler building blocks, etc.")
(native-inputs
(list build))
(inputs
(list libcutl xerces-c))
`(("libcutl" ,libcutl)
("libxerces-c" ,xerces-c)))
(synopsis "XSD Front-end")
(description "@code{libxsd-frontend} is a compiler frontend for the W3C
XML Schema definition language. It includes a parser, semantic graph types
@@ -3514,7 +3392,7 @@ which can evaluate Jsonnet files and expressions.")))
(define-public simdjson
(package
(name "simdjson")
(version "4.6.3")
(version "3.13.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3523,7 +3401,7 @@ which can evaluate Jsonnet files and expressions.")))
(file-name (git-file-name name version))
(sha256
(base32
"0729mxnc2wjb94gr4znwlzfmgw5w2v9kd8glvn3vnjhkdnd87zry"))))
"005yli56nrkvlyx9g9cq8dczk42r9a18l162i2s5k81lj3y7mcrp"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; tests require downloading dependencies
@@ -3762,7 +3640,7 @@ std::wstring, etc).")
(define-public fast-float
(package
(name "fast-float")
(version "8.2.5")
(version "8.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3771,7 +3649,7 @@ std::wstring, etc).")
(file-name (git-file-name name version))
(sha256
(base32
"1l13nsl4sgq71m7aifrmmmfyl14vp48vqdh7pb50hxqq6f8bq2b5"))))
"19x1yklf641yrpad6lk4cq3jmird10d5ig8hicm3p9lxh92k78cl"))))
(build-system cmake-build-system)
(arguments
(list
@@ -3782,10 +3660,12 @@ std::wstring, etc).")
(add-after 'unpack 'patch-cmake-tests
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(substitute* "tests/CMakeLists.txt"
(("FetchContent_MakeAvailable\\(supplemental_test_files.*")
(("FetchContent_GetProperties\\(supplemental_test_files.*")
"")
(("if\\(NOT supplemental_test_files_POPULATED.*")
(string-append
"set(supplemental_test_files_BINARY_DIR "
#$fast-float-test-files ")\n"))))))))
#$fast-float-test-files ")\nif(0)\n"))))))))
(native-inputs (list doctest fast-float-test-files))
(home-page "https://github.com/fastfloat/fast_float")
(synopsis "Floating point number parser for C++")
@@ -3822,39 +3702,6 @@ computing Fast Fourier transformations. It supports multidimensional arrays,
different floating point sizes and complex transformations.")
(license license:bsd-3))))
(define-public libbinio
;; The latest tagged version does not support CMake build. This commit has
;; builds with CMake and has updated CMake version support.
(let ((commit "e88dad086265e179ab6aef7f479e19f3917c7a98")
(revision "0"))
(package
(name "libbinio")
(version (git-version "1.5" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/adplug/libbinio")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0rb33jl6gpxb88zymzl996m43b7r6wyw4lq0ib3626kna3baqnha"))))
(native-inputs
(list autoconf automake libtool texinfo))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;no tests
#:configure-flags
#~(list "-DBUILD_SHARED_LIBS=ON")))
(home-page "http://adplug.github.io/libbinio/")
(synopsis "Binary I/O stream class library")
(description
"This binary I/O stream class library presents a platform-independent
way to access binary data streams in C++. The library is hardware independent
in the form that it transparently converts between the different forms of
machine-internal binary data representation.")
(license license:lgpl2.1+))))
(define-public priocpp
;; Latest release is from 2022-08-14.
(let ((commit "ea15402adcd0d9191dc29ca6f7e4dd0bff67b9b5")
@@ -4524,29 +4371,6 @@ file name and location, as well as filters with friendly names (such as
"This package provides a simple S-Expression parser for C++.")
(license license:gpl3+))))
(define-public sfl-library
(package
(name "sfl-library")
(version "2.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/slavenf/sfl-library")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ngy86b9y1b8a4j37c14m1jrg0q5b12jj8b0gdnpl5sjb1r2fljk"))))
(build-system cmake-build-system)
(arguments (list #:tests? #f)) ;no tests
(home-page "https://github.com/slavenf/sfl-library")
(synopsis "Header-only C++11/20 container library")
(description "sfl-library provides many STL-like (Standard Template Library)
containers including vectors, associative containers, and unordered containers
based on hash tables. These containers are designed for C++11 and C++20
constant expression usage.")
(license license:zlib)))
(define-public string-view-lite
(package
(name "string-view-lite")
@@ -4704,47 +4528,6 @@ meta data function.")
;; or the CECILL-C license:
(license (list license:lgpl3 license:cecill-c))))
(define-public tcbrindle-span
(let ((commit "836dc6a0efd9849cb194e88e4aa2387436bb079b")
(revision "0"))
(package
(name "tcbrindle-span")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tcbrindle/span")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1v3x1mj4if8jrr7cmrcbhv8n8ygla0liqb0dic6g6ji7px2pr6jf"))
(modules '((guix build utils)))
;; Unbundle catch.
(snippet
'(with-directory-excursion "test"
(delete-file "catch.hpp")
(substitute* (find-files "." "\\.cpp$")
(("\"catch\\.hpp\"") "<catch.hpp>"))))))
(build-system cmake-build-system)
(native-inputs (list catch-framework))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda _
(mkdir-p (string-append #$output))
(copy-recursively "../source/include"
(string-append #$output "/include")))))))
(home-page "https://github.com/tcbrindle/span")
(synopsis "Implementation of C++20's @code{std::span} for older compilers")
(description
"This package provides a single-header implementation of C++20's
@code{std::span}, conforming to the C++20 committee draft. It is compatible
with C++11, but will use newer language features if they are available.")
(license license:boost1.0))))
(define-public tsl-hopscotch-map
(package
(name "tsl-hopscotch-map")
+1438 -2776
View File
File diff suppressed because it is too large Load Diff
+86 -79
View File
@@ -135,10 +135,20 @@
(search-patches
"ath9k-htc-firmware-binutils.patch")))
((target-mingw? target)
(package-with-extra-patches binutils
(search-patches
"binutils-cross-windres.patch"
"binutils-mingw-w64-deterministic.patch")))
(package-with-extra-patches
(package-with-extra-configure-variable
;; mingw binutils does not work correctly when configured
;; with `--enable-compressed-debug-sections`. An error
;; like the following will occur whenever you try to link:
;;
;; x86_64-w64-mingw32-ld: final link failed: bad value
;;
;; TODO: This seems like a deeper problem that warrants
;; deeper investigation.
binutils "--enable-compressed-debug-sections" "no")
(search-patches
"binutils-cross-windres.patch"
"binutils-mingw-w64-deterministic.patch")))
(else binutils))
target)))
@@ -557,16 +567,15 @@ the base compiler. Use XBINUTILS as the associated cross-Binutils."
(srfi srfi-26))
,@(package-arguments glibc/hurd-headers))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
#t)))))
#~(modify-phases #$phases
(add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
'#$%gcc-cross-include-paths))))))
((#:configure-flags flags)
`(cons* ,(string-append "--build=" (%current-system))
,(string-append "--host=" target)
@@ -681,80 +690,78 @@ returned."
(name (string-append "glibc-cross-" target))
(arguments
(substitute-keyword-arguments
`(;; Disable stripping (see above.)
#:strip-binaries? #f
`(;; Disable stripping (see above.)
#:strip-binaries? #f
;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include
;; itself.
#:implicit-cross-inputs? #f
;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include
;; itself.
#:implicit-cross-inputs? #f
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
,@(package-arguments libc))
((#:configure-flags flags)
`(cons ,(string-append "--host=" target)
,(if (target-hurd? target)
`(append (list "--disable-werror")
,flags)
,@(package-arguments libc))
((#:configure-flags flags)
#~(cons #$(string-append "--host=" target)
#$(if (target-hurd? target)
#~(append (list "--disable-werror")
#$flags)
flags)))
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ; for Hurd's libihash
#t)))
(add-before 'configure 'add-cross-binutils-to-PATH
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; -print-prog-name=objdump' returns the correct name. See
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
(define cross-objdump
(search-input-file
(or native-inputs inputs)
(string-append ,target "/bin/objdump")))
((#:phases phases)
#~(modify-phases #$phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
'#$%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib"))))) ; for Hurd's libihash
(add-before 'configure 'add-cross-binutils-to-PATH
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; -print-prog-name=objdump' returns the correct name. See
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
(define cross-objdump
(search-input-file
(or native-inputs inputs)
(string-append #$target "/bin/objdump")))
(define cross-binutils
(dirname cross-objdump))
(define cross-binutils
(dirname cross-objdump))
(format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils)
(setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH")))))
(format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils)
(setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH")))))
;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale)
;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale)
,@(if (target-hurd? target)
`((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so"))))))
(add-after 'install 'create-machine-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(cpu ,(match target
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
#$@(if (target-hurd? target)
#~((add-after 'install 'augment-libc.so
(lambda _
(substitute* (string-append #$output "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append #$output "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))))
(add-after 'install 'create-machine-symlink
(lambda _
(let ((cpu #$(match target
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append
out "/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'())))))
#$output
"/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
#~())))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "kernel-headers" input to point to the right thing.
+15 -13
View File
@@ -105,6 +105,7 @@
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
@@ -275,17 +276,18 @@ Ed448-Goldilocks and Curve448, using the Decaf encoding.")
(define-public libsodium
(package
(name "libsodium")
(version "1.0.22")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jedisct1/libsodium")
(commit (string-append version "-RELEASE"))))
(file-name (git-file-name name version))
(sha256
(base32
"05lqdn6nzldsia5mv5a9xfvc5k0kybh9snwv7qsb135gva4bpjwk"))))
(version "1.0.18")
(source (origin
(method url-fetch)
(uri (list (string-append
"https://download.libsodium.org/libsodium/"
"releases/libsodium-" version ".tar.gz")
(string-append
"https://download.libsodium.org/libsodium/"
"releases/old/libsodium-" version ".tar.gz")))
(sha256
(base32
"1h9ncvj23qbbni958knzsli8dvybcswcjbx0qjjgi922nf848l3g"))))
(build-system gnu-build-system)
(synopsis "Portable NaCl-based crypto library")
(description
@@ -1686,14 +1688,14 @@ structure. However CryFS is not considered stable yet by the developers.")
(define-public b3sum
(package
(name "b3sum")
(version "1.8.4")
(version "1.8.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "b3sum" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0pkra5zh680cl9q92hpzmg9flz99b06bhpg7jyhymg1nkm0anw7a"))))
(base32 "06qc6iv574km4j1ja4qhxyai680jkll58qzpz4mb79c0rk750dpd"))))
(build-system cargo-build-system)
(arguments
(list
+1
View File
@@ -62,6 +62,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix git-download)
+14 -4
View File
@@ -31,6 +31,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (gnu packages databases)
#:use-module (gnu packages check)
#:use-module (gnu packages cpp)
@@ -111,7 +112,7 @@ Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.")
(define-public gallia
(package
(name "gallia")
(version "2.1.1")
(version "2.0.2")
(source
(origin
(method git-fetch)
@@ -120,7 +121,7 @@ Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04xzh5fi18wrkjs7sqwlv344jf54njvnly042rhxq3x5jrvpvkdw"))))
(base32 "1yvjpwpqq6r6glfm4qzb8j91d2gsfy4lvygd9z9pg2j6jvcq6f6s"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -132,16 +133,25 @@ Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.")
#:test-flags #~(list "tests/pytest")))
(native-inputs
(list python-poetry-core
python-pygit2
python-pytest
python-pytest-asyncio))
(inputs
(list python-aiosqlite
(list python-aiofiles
python-aiosqlite
python-argcomplete
python-boltons
python-can
python-construct
python-exitcode
python-httpx
python-more-itertools
python-msgspec
python-platformdirs
python-psutil
python-pydantic
python-pygit2
python-tabulate
python-wcwidth
python-zstandard))
(home-page "https://github.com/Fraunhofer-AISEC/gallia")
(synopsis "Extendable Pentesting Framework")
+139 -405
View File
@@ -32,7 +32,7 @@
;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2021-2023, 2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2018, 2021, 2022, 2023 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
@@ -69,9 +69,6 @@
;;; Copyright © 2025 Simen Endsjø <contact@simendsjo.me>
;;; Copyright © 2025 bdunahu <bdunahu@operationnull.com>
;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu>
;;; Copyright © 2026 Peter Polidoro <peter@polidoro.io>
;;; Copyright © 2026 Josep Bigorra <jjbigorra@gmail.com>
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -109,7 +106,7 @@
#:use-module (gnu packages dbm)
#:use-module (gnu packages docbook)
#:use-module (gnu packages emacs)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
@@ -128,10 +125,8 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages language)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libevent)
@@ -148,7 +143,6 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages node)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages openldap)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pantheon)
#:use-module (gnu packages parallel)
@@ -177,7 +171,6 @@
#:use-module (gnu packages ruby)
#:use-module (gnu packages ruby-check)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages security-token)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
@@ -204,10 +197,10 @@
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system guile)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system ruby)
#:use-module (guix build-system cmake)
@@ -1063,31 +1056,6 @@ auto-completion and syntax highlighting.")
\"special\", or \"backslash commands\") on PostgreSQL.")
(license license:bsd-3)))
(define-public python-sqlite-anyio
(package
(name "python-sqlite-anyio")
(version "0.2.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/davidbrochart/sqlite-anyio")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "075fnrrwzn9xc2clkcsyfycjc870khcwnpdg4g726qwl44pfzy2a"))))
(build-system pyproject-build-system)
(arguments
(list
#:build-backend "poetry.core.masonry.api")) ;XXX: python-uv-build is required
(propagated-inputs (list python-anyio python-typing-extensions))
(native-inputs (list python-poetry-core python-pytest))
(home-page "https://github.com/davidbrochart/sqlite-anyio")
(synopsis "Asynchronous client for SQLite using AnyIO")
(description "This package provides an asynchronous client for SQLite
using @code{AnyIO}.")
(license license:expat)))
(define-public python-sqlitedict
(package
(name "python-sqlitedict")
@@ -1186,196 +1154,104 @@ autocompletion and syntax highlighting.")
auto-completion and syntax highlighting.")
(license license:bsd-3)))
;; XXX When updating, check whether boost-for-mysql is still needed.
;; It might suffice to patch cmake/boost.cmake as done in the past.
(define-public mysql
(package
(name "mysql")
(version "9.7.0")
(version "5.7.33")
(source (origin
(method url-fetch)
(uri (list (string-append
"https://cdn.mysql.com/Downloads/MySQL-"
(method url-fetch)
(uri (list (string-append
"https://dev.mysql.com/get/Downloads/MySQL-"
(version-major+minor version) "/"
name "-" version ".tar.gz")
(string-append
"https://downloads.mysql.com/archives/get/file/"
name "-" version ".tar.gz")))
(sha256
(base32
"0v9hc8yzp0f5pwl4kr1a8k7lwyf62g95klxb6avfrc2npjx79dbl"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
;; Delete bundled source libraries.
(delete-all-but "extra"
;; XXX: The build system doesn't currently
;; support unbundling these.
"json" ;used by bundled opentelemetry
"libbacktrace"
"libcno"
"opentelemetry-cpp"
"opentelemetry-proto"
"rapidjson"
"unordered_dense"
"xxhash")))))
(sha256
(base32
"1bb343mf7n0qg2qz497gxjsqprygrjz1q1pbz76hgqxnsy08sfxd"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ;FIXME: teach build system to use system googletest
#:configure-flags
#~(list "-DBUILD_CONFIG=mysql_release"
"-DWITH_AUTHENTICATION_LDAP=ON"
"-DWITH_AUTHENTICATION_WEBAUTHN=ON"
"-DWITH_BENCHMARK=OFF"
;; XXX: BUILD_ID is disabled so that the INFO_BIN target is not
;; run; this target relies on running mysqld before it is
;; installed, which fails in our case.
"-DWITH_BUILD_ID=OFF"
"-DWITH_FIDO=system"
"-DWITH_SYSTEM_LIBS=ON"
"-DWITH_UNIT_TESTS=OFF" ;avoid bundled googletest
"-DREPRODUCIBLE_BUILD=ON"
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
"-DINSTALL_INFODIR=share/info"
"-DINSTALL_MANDIR=share/man"
"-DINSTALL_PLUGINDIR=lib/mysql/plugin"
"-DINSTALL_INCLUDEDIR=include/mysql"
"-DINSTALL_DOCREADMEDIR=share/mysql/docs"
"-DINSTALL_SUPPORTFILESDIR=share/mysql"
"-DINSTALL_MYSQLSHAREDIR=share/mysql"
"-DINSTALL_MYSQLTESTDIR=OFF"
"-DINSTALL_DOCDIR=share/mysql/docs"
"-DINSTALL_SHAREDIR=share/mysql")
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'disable-broken-abi-check
(lambda _
;; The ABI check started failing with MySQL 9.7.0 for unknown
;; reasons.
(substitute* "cmake/abi_check.cmake"
(("RUN_ABI_CHECK 1")
"RUN_ABI_CHECK 0"))))
(add-after 'install 'remove-extra-binaries
(lambda _
;; Remove the 3 *_embedded files, which weigh in at
;; 14 MiB each.
(for-each delete-file
(find-files (string-append #$output "/bin")
"_embedded$"))))
(add-after 'install 'wrap-mysql_helpers
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((bin (string-append #$output "/bin"))
(gawk (search-input-file inputs "bin/gawk"))
(coreutils (search-input-file inputs "bin/ls"))
(grep (search-input-file inputs "bin/grep"))
(ps (search-input-file inputs "bin/ps"))
(sed (search-input-file inputs "bin/sed")))
(wrap-program (search-input-file outputs "bin/mysql_config")
`("PATH" suffix
,(list (dirname gawk)
(dirname coreutils)
(dirname sed))))
(wrap-program (search-input-file outputs "bin/mysqld_safe")
`("PATH" suffix
,(list (dirname gawk)
(dirname coreutils)
(dirname grep)
(dirname ps)
(dirname sed)))))))
(add-after 'install 'fix-permissions
;; XXX: Otherwise, the guix daemon reports: "suspicious ownership
;; or permission on `/gnu/store/...-mysql-9.7.0'; rejecting this
;; build output".
(lambda _
(chmod #$output #o755))))))
`(#:configure-flags
'("-DBUILD_CONFIG=mysql_release"
"-DWITH_SSL=system"
"-DWITH_ZLIB=system"
"-DDEFAULT_CHARSET=utf8"
"-DDEFAULT_COLLATION=utf8_general_ci"
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
"-DINSTALL_INFODIR=share/mysql/docs"
"-DINSTALL_MANDIR=share/man"
"-DINSTALL_PLUGINDIR=lib/mysql/plugin"
"-DINSTALL_SCRIPTDIR=bin"
"-DINSTALL_INCLUDEDIR=include/mysql"
"-DINSTALL_DOCREADMEDIR=share/mysql/docs"
"-DINSTALL_SUPPORTFILESDIR=share/mysql"
"-DINSTALL_MYSQLSHAREDIR=share/mysql"
"-DINSTALL_DOCDIR=share/mysql/docs"
"-DINSTALL_SHAREDIR=share/mysql"
;; Get rid of test data.
"-DINSTALL_MYSQLTESTDIR="
"-DINSTALL_SQLBENCHDIR=")
#:phases (modify-phases %standard-phases
(add-after
'install 'remove-extra-binaries
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Remove the 3 *_embedded files, which weigh in at
;; 14 MiB each.
(for-each delete-file
(find-files (string-append out "/bin")
"_embedded$"))
#t)))
(add-after
'install 'wrap-mysql_helpers
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(awk (assoc-ref inputs "gawk"))
(coreutils (assoc-ref inputs "coreutils"))
(grep (assoc-ref inputs "grep"))
(ps (assoc-ref inputs "procps"))
(sed (assoc-ref inputs "sed")))
(wrap-program (string-append bin "/mysql_config")
`("PATH" ":" suffix
(,(string-append awk "/bin")
,(string-append coreutils "/bin")
,(string-append sed "/bin"))))
(wrap-program (string-append bin "/mysqld_safe")
`("PATH" ":" suffix
(,(string-append awk "/bin")
,(string-append coreutils "/bin")
,(string-append grep "/bin")
,(string-append ps "/bin")
,(string-append sed "/bin"))))))))))
(native-inputs
(list bison perl pkg-config))
(inputs
(list bash-minimal
boost
boost-for-mysql
coreutils
curl
cyrus-sasl
gawk
grep
icu4c
libaio
libedit
libfido2
libtirpc
lz4
mit-krb5
ncurses
openldap
openssl
protobuf
openssl-1.1
procps
rpcsvc-proto ; rpcgen
rpcsvc-proto ; rpcgen
sed
zlib
`(,zstd "lib")))
zlib))
(home-page "https://www.mysql.com/")
(synopsis "Fast, easy to use, and popular database")
(description
"MySQL is a fast, reliable, and easy to use relational database
management system that supports the standardized Structured Query
Language.")
(license license:gpl2))) ;v2 only -- see 'Election of GPLv2' in LICENSE
(define-public mysql-connector-python
(package
(name "mysql-connector-python")
(version "9.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mysql/mysql-connector-python")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0zdm35apj1cfraxwlqfmr04pm87qpw73ilb8p88cn08zsa8q11hg"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
;; Our protobuf is too old for the mysqlx dev API, so use the
;; classic one without the C modules.
(chdir "mysql-connector-python")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Some of these tests might be failing due to the build
;; container's restrictions, others are due to the version
;; mismatch.
(mkdir-p "/tmp/datadir")
(invoke "python3" "unittests.py"
"--verbosity=3"
(string-append "--with-mysql=" #$(this-package-input "mysql"))
"--keep"
"--mysql-topdir=/tmp/datadir"
"--unix-socket=/tmp/datadir")))))))
(native-inputs (list python-setuptools))
(inputs (list mysql openssl zlib `(,zstd "lib")))
(home-page "https://dev.mysql.com/doc/connector-python/en/index.html")
(synopsis "MySQL driver written in Python")
(description "MySQL Connector/Python enables Python programs to access
MySQL databases, using an API that is compliant with the Python Database API
Specification v2.0 (PEP 249).")
(license license:gpl2)))
(define-deprecated-package python-mysql-connector-python
mysql-connector-python)
(define-public mariadb
(package
(name "mariadb")
@@ -1669,17 +1545,17 @@ and high-availability (HA).")
(license license:gpl2))) ;'COPYING' says "version 2" only
;; Don't forget to update the other postgresql packages when upgrading this one.
(define-public postgresql-17
(define-public postgresql-16
(package
(name "postgresql")
(version "17.10")
(version "16.4")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"144cb40gn1lasvz0jvz4i72mda8k7pm1bx6azq2vggfddm8h72h7"))
"0vvd73rzj0sl294v15bh8yslakqv412bxqzlkqxyjwxa8pb6c5wp"))
(patches (search-patches
"postgresql-disable-normalize_exec_path.patch"))))
(build-system gnu-build-system)
@@ -1709,22 +1585,18 @@ and high-availability (HA).")
(add-after 'build 'build-contrib
(lambda _
(invoke "make" "-C" "contrib")))
;; FIXME: Install manpages too.
;; The 'install-mangpages phase in postgresql-16 fails silently here.
(add-after 'install 'install-contrib
(lambda _
(invoke "make" "-C" "contrib" "install"))))))
(invoke "make" "-C" "contrib" "install")))
(add-after 'install 'install-manuals
(lambda _
(with-directory-excursion "doc/src/sgml"
(invoke "make" "install-man")
(invoke "make" "postgres.info")
(install-file "postgres.info"
(string-append #$output "/share/info"))))))))
(native-inputs
(list bison
docbook-xml-4.5
docbook-xsl
docbook2x
flex
libxml2
libxslt
perl
pkg-config
texinfo))
(list docbook-xml-4.5 docbook2x libxml2 perl pkg-config texinfo))
(inputs
(list icu4c readline `(,util-linux "lib") openssl zlib))
(home-page "https://www.postgresql.org/")
@@ -1738,49 +1610,18 @@ TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
(define-public postgresql-16
(package
(inherit postgresql-17)
(name "postgresql")
(version "16.14")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"0w9lgsn03m4k0v3m622v7fk3gqbfbjvwv34mrrc0i4ip4wa7gl7n"))
(patches (search-patches
"postgresql-disable-normalize_exec_path.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments postgresql-17)
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(add-after 'install 'install-manuals
(lambda _
(with-directory-excursion "doc/src/sgml"
(invoke "make" "install-man")
(invoke "make" "postgres.info")
(install-file "postgres.info"
(string-append #$output "/share/info")))))))))
(native-inputs (modify-inputs (package-native-inputs postgresql-17)
(delete "bison")
(delete "docbook-xsl")
(delete "flex")
(delete "libxslt")))))
(define-public postgresql-15
(package
(inherit postgresql-16)
(name "postgresql")
(version "15.18")
(version "15.8")
(source (origin
(method url-fetch)
(inherit (package-source postgresql-16))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"1d13qckpslfqamdmp23q3rbzxlp1rqwszylilyllpsp3gzwhvpqi"))
"0snbxmlygf7m4cxjpscmz3yjn4lnqsw313y9xgpv7vk9k9gm20s4"))
(patches (search-patches
"postgresql-disable-resolve_symlinks.patch"))))
(native-inputs (modify-inputs native-inputs
@@ -1792,40 +1633,26 @@ pictures, sounds, or video.")
(package
(inherit postgresql-15)
(name "postgresql")
(version "14.20")
(replacement postgresql-14.23)
(version "14.13")
(source (origin
(inherit (package-source postgresql-15))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"0sv45dsmyplfys6dfdjdwmrczl46s82x35xdh311nxj02q7z29vm"))))))
"0misc5yiklflz96n7wxcdzzg0lcc4ahd0flzqsg6mcjs955krajr"))))))
(define-public postgresql-14.23
(define-public postgresql-13
(package
(inherit postgresql-14)
(name "postgresql")
(version "14.23")
(version "13.16")
(source (origin
(inherit (package-source postgresql-14))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"19clihp73ak2p5di90jhg50lqjkkr0iy349gkki30qsl5f11cwnc"))))))
(define-deprecated/public postgresql-13 #f
(package
(inherit postgresql-14)
(version "13.23")
(source (origin
(inherit (package-source postgresql-14))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"1mhz0h7b3dmc0nnxz1wp46j95jhyi3girykkr3gbg4mg4qkwihvf"))))))
"0rc8rpsw2lwa5af35zd8iifah02wg2rnn1i890h2h8zh55hvpjy9"))))))
(define-public postgresql postgresql-14)
@@ -1864,7 +1691,7 @@ pictures, sounds, or video.")
(define-public timescaledb
(package
(name "timescaledb")
(version "2.26.1")
(version "2.16.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1873,7 +1700,7 @@ pictures, sounds, or video.")
(file-name (git-file-name name version))
(sha256
(base32
"0zfm224jyz874pk4r9qlz5c2mn1xjvairhxh6widlbh3mn62m3j8"))
"1v17x00a15il4r3rbr0waqjv1nwzy6rcqxgfi2hdk1x235s5dg5h"))
(modules '((guix build utils)))
(snippet
;; Remove files carrying the proprietary TIMESCALE license.
@@ -1883,7 +1710,8 @@ pictures, sounds, or video.")
'("scripts/c_license_header-timescale.h"
"scripts/license_tsl.spec"
"scripts/sql_license_tsl.sql"
"test/t/001_replication_telemetry.pl"
"test/perl/AccessNode.pm"
"test/perl/DataNode.pm"
"test/perl/TimescaleNode.pm"))))))
(build-system cmake-build-system)
(arguments
@@ -1967,7 +1795,7 @@ pictures, sounds, or video.")
(lambda* (#:rest args)
(apply (assoc-ref gnu:%standard-phases 'check)
#:test-target "regresschecklocal" args))))))
(inputs (list openssl postgresql-17))
(inputs (list openssl postgresql))
(home-page "https://www.timescale.com/")
(synopsis "Time-series extension for PostgreSQL")
(description
@@ -3216,7 +3044,7 @@ temporary directory, and destroys it when the perl script exits.")
(define-public unixodbc
(package
(name "unixodbc")
(version "2.3.14")
(version "2.3.9")
(source (origin
(method url-fetch)
(uri
@@ -3224,7 +3052,7 @@ temporary directory, and destroys it when the perl script exits.")
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
version ".tar.gz"))
(sha256
(base32 "0wa7a82h5dsba23155gfhh1sp4dsbaxq6pppp6q31z017vg18a2f"))))
(base32 "01xj65d02i3yjy7p9z08y9jakcs5szmz4rask868n7387nn3x0sj"))))
(build-system gnu-build-system)
(synopsis "Data source abstraction library")
(description "Unixodbc is a library providing an API with which to access
@@ -3234,64 +3062,6 @@ Driver.")
;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
(home-page "https://www.unixodbc.org")))
(define-public sqliteodbc
(package
(name "sqliteodbc")
(version "0.99991")
(source (origin
(method url-fetch)
(uri (string-append "http://www.ch-werner.de/sqliteodbc/"
name "-" version ".tar.gz"))
(sha256
(base32
"0p4avhqxnd2l49g3vpzwrmdi8wxyqzy0vswalaagmqfdsfwav52d"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no check target
#:configure-flags
#~(list "--disable-static"
(string-append "--with-sqlite3=" #$(this-package-input "sqlite"))
(string-append "--with-odbc=" #$(this-package-input "unixodbc")))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'create-lib-directory
(lambda _
(mkdir-p (string-append #$output "/lib"))))
(add-after 'install 'remove-extra-sqlite-extensions
(lambda _
;; Keep this package focused on the ODBC driver itself.
(for-each delete-file
(find-files (string-append #$output "/lib")
"^libsqlite3_mod_.*\\.(la|so)$"))))
(add-after 'install 'install-odbcinst.ini
(lambda _
(let ((dir (string-append #$output "/share/sqliteodbc")))
(mkdir-p dir)
(call-with-output-file (string-append dir "/odbcinst.ini")
(lambda (port)
(display
(string-append
"[SQLite3]\n"
"Description = SQLite3 ODBC Driver\n"
"Driver = " #$output "/lib/libsqlite3odbc.so\n"
"Setup = " #$output "/lib/libsqlite3odbc.so\n"
"Threading = 2\n")
port)))))))))
(native-search-paths
(list (search-path-specification
(variable "ODBCSYSINI")
(files '("share/sqliteodbc"))
(separator #f))))
(inputs (list sqlite unixodbc))
(home-page "http://www.ch-werner.de/sqliteodbc/")
(synopsis "ODBC driver for SQLite")
(description
"SQLiteODBC provides an ODBC driver for SQLite 3 databases. It installs
the shared library and a driver registration file so applications using
unixODBC can resolve the @code{SQLite3} driver name from a Guix profile.")
(license license:tcl/tk)))
(define-public nanodbc
(package
(name "nanodbc")
@@ -4293,8 +4063,8 @@ programmatically or as a standalone CLI application.")
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
(list openssl
tcl)) ;for tests
`(("libcrypto" ,openssl)
("libtcl8.6" ,tcl))) ; required for running the tests
(native-inputs
(list tcl))
(arguments
@@ -4849,24 +4619,33 @@ PickleShare.")
(define-public python-apsw
(package
(name "python-apsw")
(version "3.50.4.0")
(version "3.46.0.0")
;; The compressed release has fetching functionality disabled.
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rogerbinns/apsw")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append
"https://github.com/rogerbinns/apsw/releases/download/"
version "/apsw-" version ".zip"))
(sha256
(base32 "0r9awjgpl9cmqz5xd4zbqrpiv0rv5c36a18jkqnsfky6n6sgr424"))))
(base32
"10yfbasi4mq63g0svyl1h49ylwn9znjylq78id16dzxzk9q9ipdx"))))
(build-system pyproject-build-system)
(arguments
(list #:test-backend #~'custom
#:test-flags #~(list "-m" "apsw.tests")))
(native-inputs
(list python-setuptools))
(inputs
(list sqlite-next)) ;SQLite 3.45.1 required.
(list unzip python-setuptools python-wheel))
(inputs (list sqlite-next)) ;SQLite 3.45.1 required.
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'build-extensions
(lambda _
(invoke "python" "setup.py" "build" "--enable-all-extensions"
"--enable=load_extension")))
(add-after 'build 'build-test-helper
(lambda _
(invoke "gcc" "-fPIC" "-shared" "-o" "./testextension.sqlext"
"-I." "-Isqlite3" "src/testextension.c"))))))
(home-page "https://github.com/rogerbinns/apsw/")
(synopsis "Another Python SQLite Wrapper")
(description
@@ -5174,54 +4953,6 @@ postgresql = postgresql://nixbld@/yoyo_test~%")))
files or Python scripts that define a list of migration steps.")
(license license:asl2.0)))
(define-public mutastructura
(package
(name "mutastructura")
(version "0.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/jjba23/mutastructura")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "08vzlc5imavqf3bdzgbh70c7z44xjhf05gr7i2g5ksl49lv39gzh"))))
(build-system guile-build-system)
(arguments
(list
#:source-directory "src"
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'install-program-files
(lambda _
(let* ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share")))
(copy-recursively "resources"
(string-append share "/resources"))
(install-file "scripts/mutastructura" bin)
(install-file "scripts/log.bash"
(string-append share "/scripts/"))
(chmod (string-append bin "/mutastructura") #o755)))))))
(native-inputs (list guile-3.0))
(propagated-inputs (list guile-dbi
guile-dbd-mysql
guile-dbd-sqlite3
guile-dbd-postgresql
guile-gcrypt))
(inputs (list guile-3.0 bash-minimal))
(home-page "https://codeberg.org/jjba23/mutastructura")
(synopsis "Relational database schema migrations powered by Guile Scheme")
(description
"Mutastructura provides a familiar, declarative and transactional
approach to managing database states. It exposes a user-friendly
@acronym{CLI, command-line interface} and has support for PostgreSQL, MySQL, and SQLite.
It also exposes library functions and can be imported and used directly from other Guile code.
Features include executing migrations transactionally and computing SHA256
checksums to track schema evolution in a @code{migrations_history} table.")
(license license:agpl3+)))
(define-public python-mysqlclient
(package
(name "python-mysqlclient")
@@ -5665,7 +5396,7 @@ with integrated support for finding required rows quickly.")
(define-public apache-arrow
(package
(name "apache-arrow")
(version "24.0.0")
(version "23.0.1")
(source
(origin
(method git-fetch)
@@ -5675,7 +5406,7 @@ with integrated support for finding required rows quickly.")
(file-name (git-file-name name version))
(sha256
(base32
"1j3gs5ffa9gx2y2nggmi2zn5rj0bsnjnxrzfnipx6050jz6n8dx9"))))
"1qn7wgavi3kiz4d6w1naqj5631bg87fnj6gbhaxmpmynm5hi9wm7"))))
(build-system cmake-build-system)
(arguments
(list
@@ -5844,7 +5575,6 @@ __version_tuple__ = version_tuple = (~a)~%" version version-tuple))))))
python-cython
python-pytest
python-pytest-runner
python-scikit-build-core
python-setuptools-scm
python-setuptools))
(outputs '("out"))
@@ -6441,7 +6171,7 @@ mechanism of @code{dogpile}.")
(define-public datasette
(package
(name "datasette")
(version "1.0a26")
(version "1.0a19")
(source
(origin
(method git-fetch)
@@ -6450,20 +6180,23 @@ mechanism of @code{dogpile}.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ra0yfrz9w3jx7ix3dmcsg0g8hjxkz37586g7ijmqshxpzczxfm7"))))
(base32 "0wb73iksrc5vg2lnq3q4vr7yhlzxwr711jfmjdndd0s77996zsfh"))))
(build-system pyproject-build-system)
(arguments
(list
;; tests: 1720 passed, 9 skipped, 8 xfailed, 13 xpassed, 3 warnings, 120
;; subtests passed
#:test-flags
#~(list "--numprocesses" (number->string (min 8 (parallel-job-count)))
"--ignore=tests/test_black.py")
;; See https://github.com/simonw/datasette/issues/2048
#~(list "-k" (string-append
;; These contain two unexpected extra items.
"not test_searchable"
" and not test_searchmode")
"--ignore=tests/test_black.py"
"-n" (number->string (parallel-job-count)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "pyproject.toml"
(substitute* "setup.py"
(("\"pip\",") "")))))))
(propagated-inputs
(list python-aiofiles
@@ -6478,6 +6211,7 @@ mechanism of @code{dogpile}.")
python-janus
python-jinja2
python-mergedeep
python-pint
python-pluggy
python-pyyaml
python-sqlite-utils
@@ -6486,9 +6220,9 @@ mechanism of @code{dogpile}.")
(list nss-certs-for-test
python-beautifulsoup4
python-cogapp
python-multipart-form-data-conformance
python-pytest
python-pytest-asyncio
python-pytest-asyncio-0.26
python-pytest-runner
python-pytest-timeout
python-pytest-xdist
python-setuptools
-113
View File
@@ -1,113 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2026 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages datalog)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages compiler-tools)
#:use-module (gnu packages libffi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
#:use-module (gnu packages sqlite)
#:use-module (guix build-system cmake)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public souffle
(package
(name "souffle")
(version "2.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/souffle-lang/souffle")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1lrw69g02b17vxxz4g7cj8hbmc39wlzl80vl5fwy40a6b9pxwrsj"))
(snippet
#~(begin
;; Delete bundled dependencies. souffle also uses a forked
;; and modified version of json11. We cannot unbundle
;; that.
(for-each delete-file
(list "licenses/TCBRINDLE SPAN.txt"
"licenses/TINYFORMAT.txt"
"src/include/souffle/utility/span.h"
"src/include/souffle/utility/tinyformat.h"))))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags #~(list "-DSOUFFLE_GIT=OFF"
(string-append "-DPACKAGE_VERSION="
#$version))
;; We disable these tests since they fail with gcc 14. This issue
;; has been reported upstream:
;; https://github.com/souffle-lang/souffle/issues/2576
#:test-exclude (string-join
(list "syntactic/cpp_keywords_run_souffle"
"syntactic/cpp_keywords_c_run_souffle"
"syntactic/cpp_keywords_compare_std_outputs"
"syntactic/cpp_keywords_compare_csv"
"syntactic/cpp_keywords_c_compare_std_outputs"
"syntactic/cpp_keywords_c_compare_csv")
"|")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'replace-bundled-libraries
(lambda _
;; Patch souffle to use tinyformat from Guix.
(substitute* (find-files "src" "\\.(cpp|h)$")
(("#include \"souffle/utility/tinyformat.h\"")
"#include <tinyformat.h>"))
;; Replace span.h with a header that uses span from Guix
;; and provides the same namespace.
(call-with-output-file "src/include/souffle/utility/span.h"
(lambda (port)
(display "#pragma once
#include <span.hpp>
namespace souffle {
using tcb::span;
}
"
port))))))))
(inputs
(list libffi
ncurses
python
span
sqlite
zlib))
(native-inputs
(list bison
flex
tinyformat))
(home-page "https://souffle-lang.github.io/")
(synopsis "Datalog variant")
(description "Soufflé is a variant of Datalog for tool designers crafting
analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program
from a logic specification. The Soufflé language is similar to Datalog (but
has terms known as records), and is frequently used as a domain-specific
language for analysis problems.")
(license (list license:upl ; main license
;; src/include/souffle/profile/htmlJsChartistPlugin.h
;; src/include/souffle/utility/json11.h
license:expat))))
+5
View File
@@ -27,6 +27,7 @@
(define-module (gnu packages dav)
#:use-module (guix build-system cargo)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -142,6 +143,9 @@ CardDAV server with a local folder or file.")
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
python-pytest-cov
python-pytest-flake8
python-pytest-isort
python-setuptools
python-waitress
python-wheel))
@@ -240,6 +244,7 @@ efficient syncing
(list python-aioresponses
python-pytest
python-pytest-asyncio
python-pytest-cov
python-pytest-httpserver
python-setuptools
python-setuptools-scm
+2 -16
View File
@@ -113,14 +113,7 @@
(for-each (lambda (x)
(install-file x "aclocal"))
(find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments)
(let ((automake-files (search-input-directory
(or native-inputs inputs)
"share/automake-1.16")))
(define (replace file)
(symlink (string-append automake-files "/" file) file))
(for-each replace '("config.sub" "config.guess"
"install-sh"))))))
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
#$@(if (or (target-arm?)
(target-riscv64?))
#~((add-after 'unpack 'bdb-configure-patch
@@ -202,14 +195,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(for-each (lambda (x)
(install-file x "aclocal"))
(find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments)
(let ((automake-files (search-input-directory
(or native-inputs inputs)
"share/automake-1.16")))
(define (replace file)
(symlink (string-append automake-files "/" file) file))
(for-each replace '("config.sub" "config.guess"
"install-sh"))))))
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
(add-before 'configure 'pre-configure
(lambda _
(chdir "dist")

Some files were not shown because too many files have changed in this diff Show More