1
0
forked from tribes/guix

Compare commits

...

234 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
Peter Polidoro 8713bb89ec gnu: freecad: Update to 1.1.0.
* gnu/packages/engineering.scm (freecad): Update to 1.1.0.
[source]: Make recursive?.
[arguments]<#:configure-flags>: Update.
[inputs]: Remove boost-1.83, python-shiboken-6, qtx11extras, and
vtk-9.5; add boost, icu4c, and vtk.
[native-inputs]: Remove swig-4.0; add pybind11 and swig-4.4.

Merges guix/guix!7469

Change-Id: Id166fe2adc32b281705a89f16e9a1664fc7a9cbe
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-03-30 17:42:46 +02:00
Andreas Enge c7efc967eb gnu: scribus: Update to 1.6.5.
* gnu/packages/scribus.scm (scribus): Update to 1.6.5.

Merges guix/guix!7319

Change-Id: Ib1c32498e612621627e63b1f24bf217cea8a3b81
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-03-30 15:35:01 +02:00
Danylo Kondratiev cd22c1ad8f gnu: lsof: Update to 4.99.6.
* gnu/packages/lsof.scm (lsof): Update to 4.99.6.
[source]: Remove patch.
[arguments]: Remove field.
* gnu/packages/patches/lsof-compat-linux-6.9.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.

Change-Id: I451ae8fdc2e45b0c835a0ddc80ec851cd6fc2737
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-03-30 13:38:53 +03:00
Test 17f801ee5e gnu: parallel: Update to 20260322.
* gnu/packages/parallel.scm (parallel): Update to 20260322.

Merges guix/guix!7569

Change-Id: I0427312ab1b11bdfa92a79a505c8e1cc07ba75b0
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-03-30 13:31:20 +03:00
Cayetano Santos 3eeff7cc21 gnu: hwloc-2: Use git-fetch.
* gnu/packages/mpi.scm (hwloc-2)[source]: Switch to git-fetch.
[properties]: Delete.
[arguments]<#:phases>: Remove ’delete-configure and ’move-man3-pages;
add ’move-man-pages.

Merges guix/guix!7434

Change-Id: Id0ae1c858c4dc0d52de45f6a1714cb63019bb7b3
2026-03-30 12:12:42 +02:00
Cayetano Santos ea44e60c30 gnu: hwloc-2: Disinherit from hwloc-1.
* gnu/packages/mpi.scm (hwloc-2)[inherit]: Remove field.
[name, build-system, home-page, synopsis, description, license]: Copy
from hwloc.
[inputs, native-inputs, arguments]: Copy from hwloc and incorporate
changes.

Change-Id: I9330782463bc740534bc5f974b18fe987a61f2f4
2026-03-30 12:10:46 +02:00
Eric Bavier ebf496e893 gnu: nickle: Update to 2.107.
* gnu/packages/nickle.scm (nickle): Update to 2.107.
[source]: Remove patch.  Tarballs now xz-compressed.
[build-system]: Use meson-build-system.
[native-inputs]: New field.  Include 'bc' for tests and
'ruby-asciidoctor-pdf' for "nickle-tutorial.pdf" target.
[arguments]: Add 'disable-benchmarks phase; remove others.
* gnu/packages/patches/nickle-man-release-date.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.

Merges guix/guix!7236

Change-Id: Ia3ee04696965720b38b1f6e907983e6d2fe47e07
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-03-30 11:26:35 +02:00
Danylo Kondratiev 41fd9df171 gnu: difftastic: Update to 0.68.0.
* gnu/packages/rust-apps.scm (difftastic): Update to 0.68.0.
[arguments]: Add a phase to link with jemalloc.  Adjust the
cargo-test-flags.
[inputs]: Remove mimalloc, add jemalloc.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs): Update entry for
difftastic.

Change-Id: I672f8045872c4d4fedf9f7ba05ecc566b5b1cb2d
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-03-30 12:17:03 +03:00
Efraim Flashner bbb223548c gnu: gst-plugins-rs: Fix build.
* gnu/packages/gstreamer.scm (gst-plugins-rs)[arguments]: In
prepare-cargo-build-system phase, add prepare-rust-crates phase from
cargo-build-system.

Change-Id: Ie5ce8413cb04f3cfcf0b59e951659274b4bcf0ff
2026-03-30 10:40:44 +03:00
John Kehayias 2fef3e0fed gnu: fish: Fix build.
* gnu/packages/shells.scm (fish)[arguments]<#:phases>: In
prepare-cargo-build-system phase, add prepare-rust-crates phase from
cargo-build-system.

Change-Id: Ie5912623fd011c9e9ae2d379768ed89f0b0d3b4c
2026-03-30 10:36:24 +03:00
John Kehayias 3ce565ecaf gnu: mesa-opencl: Fix gallium-rusticl driver options.
* gnu/packages/gl.scm (mesa-opencl)[arguments]<#:configure-flags>: Change to
all current drivers.

Change-Id: Ib2643518c7f5fe56a133db1c62c1b529ecffd726
2026-03-30 10:36:24 +03:00
Kaelyn Takata 7cdf8b3c5b gnu: pipewire: Update to 1.6.2.
* gnu/packages/linux.scm (pipewire): Update to 1.6.2.

Change-Id: Iae900a8f971ddcaced01033022154adda26ce38f
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:36:24 +03:00
Efraim Flashner 55c1c939e2 gnu: loupe: Fix building.
* gnu/packages/gnome.scm (loupe)[arguments]: Add another cargo
build-system phase to the 'prepare-cargo-build-system phase.

Change-Id: I25a2cfbb39b7fadf7006e2a7e4e08d391fa2c21d
2026-03-30 10:36:24 +03:00
John Kehayias dceb57d6d9 gnu: glibc: Merge with glibc/hurd.
* gnu/packages/base.scm (%glibc-patches): Merge with patches from glibc/hurd.
(glibc/hurd): Set to glibc.
* gnu/local.mk (dist_patch_DATA): Remove a patch.

Change-Id: I68d9d58a9974368b85d05eb1a30bf812524d5af4
2026-03-30 10:36:24 +03:00
John Kehayias f571658b70 gnu: glibc: Ungraft.
* gnu/packages/base.scm (%glibc-patches): Add patch.
(glibc)[replacement]: Remove.
(glibc/fixed): Remove variable.

Change-Id: Idb2e194ddc5a777eed913a25a2f59114da26cea2
2026-03-30 10:36:24 +03:00
John Kehayias c144b645bb gnu: libvpx: Update to 1.16.0.
* gnu/packages/video.scm (libvpx): Update to 1.16.0.

Change-Id: I7de6f9fa73c6d6507daabb5566e1c5b5a68dcd9f
2026-03-30 10:36:24 +03:00
John Kehayias 78ea5dd4af gnu: libvpx: Ungraft.
* gnu/packages/video.scm (libvpx)[source]: Add patch.
[replacement]: Remove.
(libvpx/fixed): Remove variable.

Change-Id: Ifa9154cc0667a5627b2e7847c8c521a302904c91
2026-03-30 10:36:23 +03:00
John Kehayias 0a88a73fa9 gnu: libevdev: Update to 1.13.6.
* gnu/packages/xorg.scm (libevdev): Update to 1.13.6.
[native-inputs]: Add pkg-config.

Change-Id: I947f1a3cc2e558d02ffd37a7bf1f098e5fcd690b
2026-03-30 10:36:23 +03:00
Dariqq 788e57cba4 gnu: python-meson: Use git-minimal/pinned.
* gnu/packages/python-xyz.scm (python-meson)[native-inputs]: Replace
git-minimal with git-minimal/pinned.

Change-Id: Ia1e707de86d1eb474f05378763210ede52ee8c09
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:36:23 +03:00
Andreas Enge d9d725c991 gnu: glad: Disinherit from glad-0.1 and enable tests.
* gnu/packages/gl.scm (glad)[inherit]: Remove field.
[home-page, synopsis, description, license]: Copy fields from glad-0.1.
[arguments]<#:tests>: Do not copy from glad-0.1.
<#:phases>: Rewrite from scratch.

Change-Id: I1404b087d1b39bbfab4e695682a301c2ea8ae7f8
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:36:23 +03:00
Andreas Enge 7ec8a42a2f gnu: glad: Install missing cmake file.
* gnu/packages/gl.scm (glad)[arguments]<#:phases>{install-cmakelists.txt}:
Install an additional configuration file.

Fixes: guix/guix#7183
Change-Id: I080bcca553e6324ea7fa6a48e33aa2a29743e591
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:36:23 +03:00
John Kehayias b408c255ac gnu: libxkbcommon: Update to 1.13.1.
* gnu/packages/xdisorg.scm (libxkbcommon): Update to 1.13.1.
[native-inputs]: Add setxkbmap.

Change-Id: I497c70cb418c66338761db56faca4d546c44f48b
2026-03-30 10:36:23 +03:00
Efraim Flashner 327409219d gnu: mesa: Enable the virtio vulkan driver.
* gnu/packages/gl.scm (mesa)[arguments]: Adjust the vulkan-drivers flag
in configure-flags to add the virtio driver to most architectures.

Change-Id: I324ad378db2ed8149f492ddc019bbb32b45e16ec
2026-03-30 10:36:23 +03:00
John Kehayias 56644e8eea gnu: mesa: Update to 26.0.2.
* gnu/packages/gl.scm (mesa): Update to 26.0.2.

Change-Id: I5454f3e4df5db47bbdcf701a51407689ff3d257b
2026-03-30 10:36:23 +03:00
Efraim Flashner bfcb8b97ab gnu: pipewire: Build with libcamera-minimal.
This cuts the dependency chain qtbase->libcamera->...->gtk
Fixes guix/guix#7185.

* gnu/packages/linux.scm (pipewire)[inputs]: Remove libcamera, add
libcamera-minimal.

Change-Id: I37c185bbb6bc40788d46d9e72e5256fe9be8fddd
2026-03-30 10:36:23 +03:00
Efraim Flashner 93318a0e10 gnu: Add libcamera-minimal.
* gnu/packages/networking.scm (libcamera-minimal): New variable.
(libcamera): Inherit from libcamera-minimal.

Change-Id: I3096a615b6a461bdfea4bd26e7cbefd6a1080328
2026-03-30 10:36:22 +03:00
Efraim Flashner be02d52548 gnu: libcamera: Add missing inputs.
* gnu/packages/networking.scm (libcamera)[inputs]: Add python-packaging.
[native-inputs]: Add gstreamer.

Change-Id: Id6c0dd1fd431c65232be93b9d6ba9519086e9448
2026-03-30 10:36:22 +03:00
Efraim Flashner 73a8f8daab gnu: mesa: Update compiled drivers.
* gnu/packages/gl.scm (mesa)[arguments]: For aarch64-linux add the iris
and lima gallium drivers and intel and panfront vulkan drivers.  For
armhf-linux add the iris and lima gallium drivers.

Change-Id: Iac192a770f653cff59c4debad1ba0d90f0d6195f
2026-03-30 10:36:22 +03:00
Efraim Flashner 08235b1973 gnu: mesa: Add more dependencies for freedreno driver.
* gnu/packges/gl.scm (mesa)[inputs]: When building for arm targets add
lua-5.4 and libarchive.

Change-Id: I92bee30cda7e218d64c7b6e5c0a3e74e9ccd69df
2026-03-30 10:36:22 +03:00
Efraim Flashner 03e0d52f32 gnu: mesa: Remove deprecated configure flags.
* gnu/packges/gl.scm (mesa)[arguments]: Remove the deprecated
configure-flags.

Change-Id: I973a6f9b3c18e96c1af242d825b4796b0e6baa12
2026-03-30 10:36:22 +03:00
Efraim Flashner c5e9b92f55 gnu: mesa: Add missing rust crate.
* gnu/packages/gl.scm (mesa)[arguments]: Adjust custom
'prepare-rust-crates phase to not delete the once_cell wrapper.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[mesa]: Add
rust-once-cell-1.8.0.

Change-Id: I3abfa35048b22cfd02a1cc00d9680d085b2ea0a3
2026-03-30 10:36:22 +03:00
John Kehayias 47be4e3308 gnu: wayland-protocols: Update to 1.47.
* gnu/packages/freedesktop.scm (wayland-protocols): Update to 1.47.

Change-Id: Ifc369225bc24bea50dd5c3ed7844be26d59e18f1
2026-03-30 10:36:22 +03:00
John Kehayias 163f2ebacb gnu: libdrm: Update to 2.4.131.
* gnu/packages/xdisorg.scm (libdrm): Update to 2.4.131.

Change-Id: I9593f19f71710f10fd15f03c8eed4f9d3ef59e93
2026-03-30 10:36:22 +03:00
John Kehayias aaf135adf7 gnu: mesa: Update to 26.0.1.
* gnu/packages/gl.scm (mesa): Update to 26.0.1.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs): [mesa]: Update rust-libc
and rust-rustix version.  Add rust-windows-link and rust-windows-sys.

Change-Id: I71537563a1aa8113d06390f2c2a1e513ee9a2fef
2026-03-30 10:36:21 +03:00
Alvin Hsu 1f5c8dd270 gnu: mesa: Update to 25.3.6.
* gnu/packages/rust-crates.scm (mesa-cargo-inputs): Delete variable.
(lookup-cargo-inputs): [mesa]: New entry.
* gnu/packages/gl.scm (mesa): Update to 25.3.6.
[arguments]<#:phases>: Remove redundant 'patch-subproject-sources phase.
When building with rust add a phase to make the build system use the
packaged rust crates.
[inputs]: Re-add cargo inputs here.
[native-inputs]: Refer to rust-bindgen-cli and rust-cbindgen directly.
Remove rust-cbindgen-0.26, add rust-cbindgen.

Co-authored-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: Ie05b762dbfcc14691edc4c2dad222c9c9a174da2
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:36:21 +03:00
Efraim Flashner 7095f1b42e gnu: qemu: Prepare to build with rust.
* gnu/packages/virtualization.scm (qemu)[source]: Adjust snippet to
remove bundled rust crates.
[arguments]: Adjust configure-flags to build with rust when rust is in
the build environment.  Add a phase when rust is available to make the
build system use the packaged rust crates.
[native-inputs]: When building with rust add rust, rust-bindgen-cli,
cargo-inputs qemu, and the cross-compiler for rust when needed.
* gnu/packages/rust-crates.scm (qemu): New entry.

Change-Id: Ib2f6fbd870740a674f6424e1e2800ca5dfa40aa7
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:36:19 +03:00
Efraim Flashner 3691bb640d build: cargo: Separate the phases more distinctly.
* guix/build/cargo-build-system.scm (prepare-rust-crates): New phase.
(unpack-rust-crates): Move old functionality to prepare-rust-crates.
Take unpacking functionality from the configure phase.
(%standard-phases): Add prepare-rust-crates between unpack and
unpack-rust-crates.

Change-Id: Ibc61a6d1de1eab269b021f977440aa3c631ffcf6
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:35:26 +03:00
Efraim Flashner d33bc4b598 gnu: rust-bindgen-cli: Wrap with clang.
* gnu/packages/rust-apps.scm (rust-bindgen-cli)[arguments]: Adjust the
'install phase to also wrap the binary with clang.

Change-Id: I03491fdb4a4b737cefb1e88e8ea74fba5ed6bd47
Signed-off-by: John Kehayias <john@guixotic.coop>
2026-03-30 10:35:26 +03:00
Efraim Flashner 5fb2dadefc gnu: rust-crates: Unbundle more crates.
* gnu/packages/rust-crates.scm: Unbundle more rust crates.

Change-Id: Idecd4caab28669bf99194fc1e33311f465b5d333
2026-03-30 10:28:14 +03:00
Efraim Flashner 93b5b6f0c7 gnu: gst-plugins-rs: Enable spotify plugin.
* gnu/packages/gstreamer.scm (gst-plugins-rs)[arguments]: Adjust
configure-flags to enable the spotify plugin. Add libgstspotify.so to
the audio output.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs): Adjust
gst-plugin-rs inputs.

Change-Id: I956fa227acefdb2b1899fd5b973c0b29d95217dc
2026-03-30 10:27:50 +03:00
Ludovic Courtès f0e22ae62c records: Warn about shadowing due to inherited field value bindings.
This is a followup to a7c8e68dc5: this commit
introduced a new binding in the body of field values, which could silently
shadow outer bindings.  This new warning catches potentially unwanted
shadowing.

* guix/records.scm (make-syntactic-constructor)[check-shadowing]: New
procedure.
[wrap-field-value]: Use it.
* tests/records.scm ("define-record-type* & inherited value shadowing"): New
test.

Change-Id: I81ad14cf10da7213e9f8db987c8b0bd4c41acba2
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7424
2026-03-29 22:32:57 +02:00
Ludovic Courtès e3a708ed79 home: services: pulseaudio-rtp-sink: Use a fixed sample rate.
* gnu/home/services/sound.scm (pulseaudio-rtp-sink-shepherd-services): Add
‘rate’ parameter for ‘module-rtp-send’.

Change-Id: Ic734ea241ee85147f949196dd3f7d58a81525388
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7464
2026-03-29 22:32:42 +02:00
Ludovic Courtès 365dbc5b1c import: elpa: Gracefully handle invalid ELPA version lists.
Previously version lists containing zeroes would be rejected; furthermore, #f
would be returned even though callers expect a string:

  $ guix refresh emacs-counsel
  guix refresh: Package version for counsel contains non numeric part.
  Backtrace:
  […]
  In guix/utils.scm:
     925:32  5 (_ #f "0.15.1")
  In unknown file:
	     4 (string->pointer #f #<undefined>)
  […]
  guix/ui.scm:920:18: In procedure string->pointer: Wrong type argument in position 1 (expecting string): #f

* guix/import/elpa.scm (elpa-version->string): Accept zeroes in
‘elpa-version’.  Raise an error instead of returning #f on failure.  Clarify
error messages.

Change-Id: I1ab1d6892b434747d91e9090bb5f2f3c93f1ee92
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7484
2026-03-29 22:32:28 +02:00
Ludovic Courtès 0a8acc0059 tests: Pass ‘User-Agent’ header when downloading from www.gnu.org.
This test had been failing for a few months in part due to this change at
www.gnu.org.

* tests/derivations.scm ("fixed-output derivation, network access, external host"):
Pass #:headers to ‘http-get’.

Change-Id: Ife54e65b2665704af433df669df0d4010b49884c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7470
2026-03-29 22:20:59 +02:00
Ludovic Courtès 425aa1bf7c daemon: Dereference symlinks for /etc/services & co.
Fixes a regression on Guix System introduced in
c4298638ca (from guix/guix#4178) where files in
/etc, such as /etc/services, would be symlinks.  Consequently, the chroot of
fixed-output derivations would contain a dangling symlink for /etc/services,
leading to name resolution failures in the chroot.

This also relates to 82f84f5e7f.

* nix/libstore/build.cc (DerivationGoal::startBuilder): Add call to
‘canonPath’.

Change-Id: If34c8e74447ffc03d9fa81a1ea6bc0aef7c4d0b3
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-03-29 22:20:58 +02:00
Hugo Buddelmeijer 3b90fc5b3c refresh: Make --list-updaters fast if web.cvs.savannah.gnu.org is broken.
--list-updaters loops through all packages and all updaters to see whether they
match. The gnu-ftp updater used to use official-gnu-packages to fetch a list of
packages from web.cvs.savannah.gnu.org. official-gnu-packages only caches the
result if it succeeds; but does not cache upon a timout or 5xx status.
official-gnu-packages times out after a minute and is called for all 30k+
packages. refresh --list-updaters could therefore take 30000 minutes. Now
--list-updaters uses official-gnu-packages* (from lint.scm) that memoizes the
result also on failure, thereby limiting the time to 1 minute.

* guix/gnu-maintenance.scm: Add official-gnu-packages* from guix/lint.scm.
Call official-gnu-packages* from gnu-package?
* guix/lint.scm: Move official-gnu-packages* to guix/gnu-maintenance.scm

Change-Id: I5e2e094bfb1042b03db47e119ced0e94b49b417c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #4949
2026-03-29 22:15:30 +02:00
Yarl Baudig 785f4c6ed9 gexp: improve &gexp-input-error with &error-location.
* guix/gexp.scm (gexp->sexp): raise &error-location along &gexp-input-error.
* guix/ui.scm (call-with-error-handling): use this.
* tests/gexp.scm (lower-gexp, invalid input location): New test.

Change-Id: Iee761e5f99502065182d9e6fc8d21399e99ec6c3
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7538
2026-03-29 22:11:38 +02:00
Peter Polidoro 1b08655ef8 gnu: kicad: Update to 10.0.0.
gnu/packages/electronics.scm (kicad): Update to 10.0.0.
[#:configure-flags]: Drop “-DKICAD_SCRIPTING_PYTHON3=ON”,
“-DKICAD_SCRIPTING_PYTHON3=ON”, and “-DKICAD_USE_EGL=OFF”.
Add “-DKICAD_WAYLAND=OFF”.
[#:phases]<fix-ngspice-detection>: Add replacement for “NGSPICE_DLL_DIR”.
[native-search-paths]: Replace “KICAD9_TEMPLATE_DIR” with
“KICAD10_TEMPLATE_DIR”, “KICAD9_SYMBOL_DIR” with “KICAD10_SYMBOL_DIR”,
and “KICAD9_FOOTPRINT_DIR” with “KICAD10_FOOTPRINT_DIR”.
[inputs]: Add libspnav and poppler. Sort alphabetically.
(kicad-doc): Adjust accordingly.
[#:configure-flags]: Add “-DLANGUAGES=en”.
(kicad-symbols): Adjust accordingly.
[native-inputs]: Add python-wrapper.
(kicad-footprints, kicad-packages-3d): Adjust accordingly.

Change-Id: I8898997ccc5ed3cf73be5a75992603bb79bd93a1
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-03-29 21:13:47 +02:00
Peter Polidoro 2296d75f8d gnu: Move kicad packages to electronics module.
* gnu/packages/engineering.scm (kicad, kicad-doc, kicad-footprints)
(kicad-packages3d, kicad-symbols, kicad-templates): Move from here…
* gnu/packages/electronics.scm: … to here.

Change-Id: I9f06dc4eb44fe2b5597b23b184852f12e17af8e0
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-03-29 21:13:14 +02:00
Adrien 'neox' Bourmault 3c5ad0ebc0 gnu: gajim: Update to 2.4.4.
* gnu/packages/messaging.scm (gajim): Update to 2.4.4.
[inputs]: Replace gspell with libspelling, gtk+ with gtk, and
gtksourceview-4 with gtksourceview.
Remove libappindicator.
Add libadwaita, gst-plugins-good, python-httpx and python-truststore.

Change-Id: I53210c3509fc341c92ef518fe1f2c428c322a9a4
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-03-29 21:13:07 +02:00
Adrien 'neox' Bourmault af653b283c gnu: python-nbxmpp: Update to 7.1.0
* gnu/packages/messaging.scm (python-nbxmpp): Update to 7.1.0.
[source]: Switch to git-fetch.
[arguments]<#:phases>{check}: Drop replacement to run unittest.
<#:test-backend>: Use unittest.
[native-inputs]: Remove python-setuptools and python-wheel.
[propagated-inputs]: Add python-setuptools.

Change-Id: I2caeb3c56347fb41e4ff4063be8d48a85fe6909f
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-03-29 21:12:02 +02:00
Adrien 'neox' Bourmault 0b5e1ada2e gnu: python-omemo-dr: Update to 1.2.0
* gnu/packages/python-crypto.scm (python-omemo-dr): Update to 1.2.0

Change-Id: I2561c74f3ca207203c9c7fdb88af2db424703589
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-03-29 21:11:52 +02:00
Liliana Marie Prikler 05b247befe gnu: Add ppsspp.
* gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/emulators.scm (aemu-postoffice-source, libchdr-source)
(rcheevos-source): New variables.
(ppsspp): New variable.
2026-03-29 21:09:48 +02:00
Liliana Marie Prikler 7aeb5d0483 gnu: openxr: Update to 1.1.57.
* gnu/packages/graphics.scm (openxr): Update to 1.1.57.
2026-03-29 21:09:46 +02:00
Ian Eure 7cd78468a2 gnu: Add home-jellyfin-mpv-shim-service-type.
* gnu/home/services/media.scm (home-jellyfin-mpv-shim-service-type): New variable.
* doc/guix.texi (Jellyfin Services): New section.
* doc/guix.texi (Kodi Services): Add subheading.

Change-Id: I037ab0602214fdaa1b032be51ff98ecf6b7ee16c
2026-03-29 09:01:03 -07:00
Ian Eure 0218c4136a gnu: Add collectd-service-type.
* gnu/services/monitoring.scm: (collectd-plugin-generic,
collectd-plugin-generic?, collectd-plugin-generic-load-plugin?,
collectd-plugin-generic-name, collectd-plugin-generic-options,
collectd-plugin-python, collectd-plugin-python?,
collectd-plugin-python-load-plugin?, collectd-plugin-python-type-databases,
collectd-plugin-python-type-packages, collectd-plugin-python-module-paths,
collectd-plugin-python-log-traces?, collectd-plugin-python-log-interactive?,
collectd-plugin-python-import, collectd-plugin-python-module,
collectd-plugin?, %collectd-default-type-database, %collectd-pid-file,
collectd-configuration, collectd-configuration?,
collectd-configuration-collectd, collectd-configuration-base-directory,
collectd-configuration-auto-load-plugin?,
collectd-configuration-collect-internal-stats?,
collectd-configuration-type-databases, collectd-configuration-interval,
collectd-configuration-max-read-interval, collectd-configuration-timeout,
collectd-configuration-read-threads, collectd-configuration-write-threads,
collectd-configuration-write-queue-limit-high,
collectd-configuration-write-queue-limit-low,
collectd-configuration-host-name,
collectd-configuration-fully-qualified-domain-name-lookup?,
collectd-configuration-plugins, collectd-service-type): New variable.
* doc/guix.texi (Monitoring Services): Document it.

Change-Id: I18d581292979e85603e679b9441be3eeb1856949
2026-03-29 08:59:52 -07:00
Sharlatan Hellseher d768c5c273 gnu: umoci: Install man pages, adjust inputs.
* gnu/packages/virtualization.scm (umoci):
[phases]{build-and-install-man-pages}: New phase.
[propagated-inputs]: Move from here ...
[native-inputs]: ... to here; add go-md2man.

Change-Id: Ia01a814fbbc41ae025522986c40cec20a00c0f3a
2026-03-29 16:22:40 +01:00
Sharlatan Hellseher 76e3a33a1d gnu: restic: Update to 0.17.3.
* gnu/packages/backup.scm (restic): Update to 0.17.3. Use G-Expressions.
[source]: Switch to git-fetch.
[arguments] <go>: Use defult (go-1.24).
<tests?, test-flags, test-subdirs>: Enable tests, skip only 2 tests and
step up from "cmd/restic".
<phases>: Use default 'build, 'check and 'install; remove
'install-shell-comletion, no longer provided.
[native-inputs]: Add go-cloud-google-com-go-storage,
go-github-com-anacrolix-fuse,
go-github-com-azure-azure-sdk-for-go-sdk-azcore,
go-github-com-azure-azure-sdk-for-go-sdk-azidentity,
go-github-com-azure-azure-sdk-for-go-sdk-storage-azblob,
go-github-com-backblaze-blazer, go-github-com-cenkalti-backoff-v4,
go-github-com-cespare-xxhash-v2, go-github-com-elithrar-simple-scrypt,
go-github-com-google-go-cmp, go-github-com-hashicorp-golang-lru-v2,
go-github-com-klauspost-compress, 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,
go-github-com-pkg-profile, go-github-com-pkg-sftp,
go-github-com-pkg-xattr, go-github-com-restic-chunker,
go-github-com-spf13-cobra, go-github-com-spf13-pflag,
go-go-uber-org-automaxprocs, go-golang-org-x-crypto,
go-golang-org-x-net, go-golang-org-x-oauth2, go-golang-org-x-sync,
go-golang-org-x-sys, go-golang-org-x-term, go-golang-org-x-text,
go-golang-org-x-time, go-google-golang-org-api,
go-github-com-envoyproxy-go-control-plane, and
go-github-com-envoyproxy-go-control-plane-envoy.

Fixes: guix/guix#4915
Change-Id: I8f470a16e97cf2081a8cb3a798f7e931a96cae1f
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher 504c8a3592 gnu: go-google-golang-org-api: Update to 0.272.0.
* gnu/packages/golang-web.scm (go-google-golang-org-api): Update to 0.272.0.
[arguments] <test-flags>: Skip less.
<test-subdirs>: Drop all.
<phases>: Add 'remove-integration-tests phase.
[propagated-inputs]: Add go-google-golang-org-genproto-googleapis-bytestream.

Change-Id: Id346bd7ff890fe83d5a6985b113d1bd8115ce38d
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher 5d42aec734 gnu: Add go-google-golang-org-genproto-googleapis-bytestream.
* gnu/packages/golang-web.scm (go-google-golang-org-genproto-googleapis-bytestream): New variable.
(go-google-golang-org-genproto)[source] <snippet>: Delete
"googleapis/bytestream" directory to prevent collusion.

Change-Id: If5ae517743f9818755fad86d33151f57602755c0
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher b990bf1d54 gnu: go-cloud-google-com-go-auth: Update to 0.18.2.
* gnu/packages/golang-web.scm (go-cloud-google-com-go-auth): Update to 0.18.2.
[arguments] <test-flags>: Rework skipped tests, run more.
[propagated-inputs]: Sort alphabetically. Add
go-go-opentelemetry-io-otel, go-go-opentelemetry-io-otel-sdk, and
go-go-opentelemetry-io-otel-trace.

Change-Id: I81f41e1cb44757da0d57283f690a13a5221f13a9
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher af442f4a25 gnu: go-github-com-googleapis-gax-go-v2: Update to 2.19.0.
* gnu/packages/golang-web.scm (go-github-com-googleapis-gax-go-v2): Update to 2.19.0.
[arguments] <go>: Use go-1.25.
<tests?, test-subdirs>: Run some portion of tests.
[propagated-inputs]: Remove go-github-com-google-go-cmp; add
go-go-opentelemetry-io-otel, go-go-opentelemetry-io-otel-metric, and
go-go-opentelemetry-io-otel-sdk-metric.
[native-inputs]: Add go-github-com-google-go-cmp.

Change-Id: I6269aa8fed491f393e11d002b75d332f8651d712
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher b216fbd3e5 gnu: go-github-com-googleapis-enterprise-certificate-proxy: Update to 0.3.14.
* gnu/packages/golang-web.scm (go-github-com-googleapis-enterprise-certificate-proxy): Update to 0.3.14.
[arguments] <tests?, test-subdirs>: Enable some portion of tests.

Change-Id: I0db2cbffd973a2ec8caa158d22f11f2ed74e2b27
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher 510e367d5e gnu: go-cloud-google-com-go-compute-metadata: Update to 0.9.0.
* gnu/packages/golang-web.scm (go-cloud-google-com-go-compute-metadata): Update to 0.9.0.
[propagated-inputs]: Add go-golang-org-x-sys.

Change-Id: Ic9acde0335338818ada7ae17313f9d8edb62d3c9
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher 1b135e3bb5 gnu: go-cloud-google-com-go-storage: Add more inputs.
* gnu/packages/golang-web.scm (go-cloud-google-com-go-storage):
[propagated-inputs]: Add go-cloud-google-com-go-auth,
go-cloud-google-com-go-longrunning,
go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric,
and go-go-opentelemetry-io-contrib-detectors-gcp.

Change-Id: I90bd2fc86d4a374c1414feef6396ff7061232a84
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher af265cd44a gnu: Add go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric.
* gnu/packages/golang-web.scm (go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric): New variable.

Change-Id: I3780aba68729da88c17b05c0387453b1a352e83f
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher d764999b2b gnu: Add go-cloud-google-com-go-monitoring.
* gnu/packages/golang-web.scm (go-cloud-google-com-go-monitoring): New variable.
(go-cloud-google-com-go)[source] <snippet>: Remove "monitoring" dirrectory.

Change-Id: If9142d323778e9e7de4c6619ffc80373a7d223be
2026-03-29 15:23:58 +01:00
Sharlatan Hellseher deba95e558 gnu: Add go-cloud-google-com-go-longrunning.
* gnu/packages/golang-web.scm (go-cloud-google-com-go-longrunning): New variable.
(go-cloud-google-com-go)[source] <snippet>: Remove "longrunning" directory.
[arguments] <test-subdir>: Rework the list.

Change-Id: Iccee534f5f1ff8e2b71b828b3279696012646b96
2026-03-29 15:23:57 +01:00
Sharlatan Hellseher 682b4d9b6f gnu: Add go-go-opentelemetry-io-contrib-detectors-gcp.
* gnu/packages/golang-web.scm (go-go-opentelemetry-io-contrib-detectors-gcp): New variable.

Change-Id: I2790ed443b168ff37ff6e574c164d5fe93d52c09
2026-03-29 15:23:57 +01:00
Sharlatan Hellseher 1b8583327d gnu: Add go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping.
* gnu/packages/golang-web.scm (go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping): New variable.

Change-Id: I087f75ac7e0d6d76be1ba3aebf35557926c0fa01
2026-03-29 15:23:57 +01:00
Sharlatan Hellseher 3e73fb5fad gnu: Add go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp.
* gnu/packages/golang-web.scm (go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp): New variable.

Change-Id: Icd21199c64bdf82aedede6cc5f4848850447f42a
2026-03-29 15:23:47 +01:00
Vinicius Monego ee567ba7b9 gnu: python-sparse: Update to 0.18.0.
* gnu/packages/python-science.scm (python-sparse): Update to 0.18.0.
[native-inputs]: Remove python-wheel.

Change-Id: I524ff3eef96f73c6dc12efb3b60288d122dc4d8b
2026-03-29 11:18:33 -03:00
Vinicius Monego 109e9d4a2f gnu: python-cma: Update to 4.4.4.
* gnu/packages/machine-learning.scm (python-cma): Update to 4.4.4.
[arguments]<#:test-flags>: Update test file path.

Change-Id: Id0cf5e5ba11a183ba9891b9125c49cb71cd515a4
2026-03-29 11:18:33 -03:00
Vinicius Monego ea8037f1fd gnu: fsarchiver: Update to 0.8.9.
* gnu/packages/file-systems.scm (fsarchiver): Update to 0.8.9.
[native-inputs]: Replace autoconf with autoconf-2.72.

Change-Id: Ia14df28b039b7357f9d2a515774d98d19a4227d2
2026-03-29 11:18:33 -03:00
jgart bf590448eb gnu: trealla: Update to 2.92.7.
* gnu/packages/prolog.scm (trealla): Update to 2.92.7.

Change-Id: I60f1a1fed86b86c9d49d4e4dad90cc1961af80f1
2026-03-29 10:08:34 -04:00
Sharlatan Hellseher 5799e25293 gnu: Add mopidy-local.
* gnu/packages/music.scm (mopidy-local): New variable.

Change-Id: I9534635f0e27ce3ae5ebfd4fa0f5697a89aaefa0
2026-03-29 14:25:19 +01:00
Sharlatan Hellseher db729644d9 gnu: mopidy: Adjust inputs.
This is a following up 635994b023 commit
and discussion in <https://codeberg.org/guix/guix/pulls/7459>.

* gnu/packages/music.scm (mopidy):
[inputs]: Remove python-gst, python-pygobject, python-pykka,
python-requests, and python-tornado.
[propagated-inputs]: Add python-gst, python-pygobject, python-pykka,
python-requests, and python-tornado.

Change-Id: If1daf18a24ddfabc673289d60fac200ad7ecac73
2026-03-29 14:23:50 +01:00
Sharlatan Hellseher 6dfc28ab1e gnu: Add python-uritools.
* gnu/packages/python-xyz.scm (python-uritools): New variable.

Change-Id: If1dee2e2f62f8610fb74e2180541c2951d841b92
2026-03-29 14:23:35 +01:00
Sören Tempel 3f3cec8993 services: web: Add sogogi service.
* gnu/services/web.scm (sogogi-service-type): New services.
(sogogi-serialize-section, sogogi-serialize-field)
(sogogi-serialize-string, sogogi-serialize-list-of-strings)
(sogogi-serialize-sogogi-user, sogogi-serialize-sogogi-location)
(sogogi-serialize-list-of-sogogi-user): New procedures.
(sogogi-user, sogogi-location)
(sogogi-configuration): New record types.
(sogogi-account-service): New variable.
(sogogi-config-file, sogogi-shepherd-service): New procedures.
* gnu/tests/web.scm (%test-sogogi): Add tests for the service.
* doc/guix.texi (Web Services): Document it.

Change-Id: I5cc6dd84d6c7c8d5d13b685853b19c5d433ed7e5
2026-03-29 14:12:56 +02:00
Cayetano Santos 829b7e108d gnu: Remove prusa-wxwidgets.
* gnu/packages/wxwidgets.scm (prusa-wxwidgets): Delete variable.
* gnu/packages/patches/prusa-wxwidgets-makefile-fix.patch: Delete.
* gnu/local.mk (dist_patch_DATA): Unregister it.

Merges guix/guix!7516

Change-Id: Icc703e6bd75b79c9071fac59e283cb18cbe6c70a
2026-03-29 13:36:21 +02:00
Cayetano Santos 684b1ab605 gnu: prusa-slicer: Refresh dependencies.
* gnu/packages/engineering.scm (prusa-slicer)[inputs]: Remove
prusa-wxwidgets and webkitgtk-with-libsoup2; add wxwidgets.

Merges guix/guix!7516
Fixes guix/guix#7421

Change-Id: I471727cd19162ff706f4591353b8c5f362d5dfaf
2026-03-29 13:36:21 +02:00
Foster Hangdaan 695243cbda gnu: font-monaspace: Update to 1.400.
* gnu/packages/fonts.scm (font-monaspace): Update to 1.400.

Merges guix/guix!7547
Change-Id: I8100b980b6fa6fdaa8ed8062a7a3bb7ea99e7ff7
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2026-03-29 19:45:39 +08:00
Janneke Nieuwenhuizen 36ae0026e0 gnu: tclxml: Fix build with gcc-14.
* gnu/packages/tcl.scm (tclxml)[arguments]: Add CFLAGS
to #:configure-flags to relax gcc-14's strictness.

Fixes: #7011
Merges guix/guix!7558

Change-Id: Ifa56c6ef5594948c6240c95c95dac21eebdabd66
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-03-29 13:22:16 +02:00
Cayetano Santos 432daf5e2b gnu: mu: Update to 1.14.0.
* gnu/packages/mail.scm (mu): Update to 1.14.0.
[inputs]: Remove guile-3.0; add guile-3.0-latest.

Merges guix/guix!7539

Change-Id: I09f2a0b10a853ae42ed0c7dee76cfdd7b208ca39
2026-03-29 13:19:09 +02:00
Sören Tempel 8b5e419c25 gnu: libpoly: Update to 0.2.1.
* gnu/packages/maths.scm (libpoly): Update to 0.2.1.

Change-Id: If28db7aced2c68cb066d67512b6164b5488a7a51
2026-03-29 13:15:40 +02:00
bdunahu 5f221c486e gnu: feh: Update to 3.11.3.
* gnu/packages/image-viewers.scm (feh): Update to 3.11.3.

Merges guix/guix!7550

Change-Id: I861c2fd0f733eded1535785c92aa4807a4586ae2
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-03-29 13:13:56 +02:00
moksh 21946173a0 gnu: librewolf: Update to 149.0-1 [security-fixes].
* gnu/packages/librewolf.scm (librewolf): Update to 149.0-1.

Contains fixes for:
CVE-2026-4684: Race condition, use-after-free in the Graphics: WebRender component
CVE-2026-4685: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4686: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4687: Sandbox escape due to incorrect boundary conditions in the Telemetry component
CVE-2026-4688: Sandbox escape due to use-after-free in the Disability Access APIs component
CVE-2026-4689: Sandbox escape due to incorrect boundary conditions, integer overflow in the XPCOM component
CVE-2026-4690: Sandbox escape due to incorrect boundary conditions, integer overflow in the XPCOM component
CVE-2026-4691: Use-after-free in the CSS Parsing and Computation component
CVE-2026-4692: Sandbox escape in the Responsive Design Mode component
CVE-2026-4693: Incorrect boundary conditions in the Audio/Video: Playback component
CVE-2026-4694: Incorrect boundary conditions, integer overflow in the Graphics component
CVE-2026-4695: Incorrect boundary conditions in the Audio/Video: Web Codecs component
CVE-2026-4696: Use-after-free in the Layout: Text and Fonts component
CVE-2026-4697: Incorrect boundary conditions in the Audio/Video: Web Codecs component
CVE-2026-4698: JIT miscompilation in the JavaScript Engine: JIT component
CVE-2026-4699: Incorrect boundary conditions in the Layout: Text and Fonts component
CVE-2026-4700: Mitigation bypass in the Networking: HTTP component
CVE-2026-4701: Use-after-free in the JavaScript Engine component
CVE-2026-4722: Privilege escalation in the IPC component
CVE-2026-4702: JIT miscompilation in the JavaScript Engine component
CVE-2026-4723: Use-after-free in the JavaScript Engine component
CVE-2026-4724: Undefined behavior in the Audio/Video component
CVE-2026-4704: Denial-of-service in the WebRTC: Signaling component
CVE-2026-4705: Undefined behavior in the WebRTC: Signaling component
CVE-2026-4706: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4707: Incorrect boundary conditions in the Graphics: Canvas2D component
CVE-2026-4708: Incorrect boundary conditions in the Graphics component
CVE-2026-4709: Incorrect boundary conditions in the Audio/Video: GMP component
CVE-2026-4710: Incorrect boundary conditions in the Audio/Video component
CVE-2026-4711: Use-after-free in the Widget: Cocoa component
CVE-2026-4725: Sandbox escape due to use-after-free in the Graphics: Canvas2D component
CVE-2026-4712: Information disclosure in the Widget: Cocoa component
CVE-2026-4713: Incorrect boundary conditions in the Graphics component
CVE-2026-4714: Incorrect boundary conditions in the Audio/Video component
CVE-2026-4715: Uninitialized memory in the Graphics: Canvas2D component
CVE-2026-4716: Incorrect boundary conditions, uninitialized memory in the JavaScript Engine component
CVE-2026-4717: Privilege escalation in the Netmonitor component
CVE-2026-4726: Denial-of-service in the XML component
CVE-2025-59375: Denial-of-service in the XML component
CVE-2026-4727: Denial-of-service in the Libraries component in NSS
CVE-2026-4728: Spoofing issue in the Privacy: Anti-Tracking component
CVE-2026-4718: Undefined behavior in the WebRTC: Signaling component
CVE-2026-4719: Incorrect boundary conditions in the Graphics: Text component
CVE-2026-4720: Memory safety bugs fixed in Firefox ESR 140.9, Thunderbird ESR 140.9, Firefox 149 and Thunderbird 149
CVE-2026-4729: Memory safety bugs fixed in Firefox 149 and Thunderbird 149
CVE-2026-4721: Memory safety bugs fixed in Firefox ESR 115.34, Firefox ESR 140.9, Thunderbird ESR 140.9, Firefox 149 and
hunderbird 149

Change-Id: I40e76bf852087d71f8df869103c846032e8552c9
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-28 21:57:43 -07:00
moksh 23fb319fdd gnu/packages/librewolf: firefox-l10n: Update to d1394212aed0ce0063c0f818aa236e7d4f955ac9.
* gnu/packages/librewolf.scm (firefox-l10n): Update to d1394212aed0ce0063c0f818aa236e7d4f955ac9.

Change-Id: I7e152e1f384d7499aa4a368ca8b20d829d1a69ae
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-28 21:57:39 -07:00
Nicolas Graves 7073c9a124 gnu: libdecaf: Fix build on python@3.12.
* gnu/packages/crypto.scm (libdecaf)[native-inputs]: Add
python-setuptools.

Change-Id: Icc4da08867cba0f3cba93d50eee8ab8302061112
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 5da6907190 gnu: libapparmor: Fix build on python@3.12.
* gnu/packages/apparmor.scm (libapparmor)[native-inputs]: Add
python-setuptools.

Change-Id: I47d613f34024accf2f987a230517d773790ba35f
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves f0db9f5b35 gnu: python-pytest-mypy-plugins: Update to 4.0.0.
* gnu/packages/check.scm (python-pytest-mypy-plugins): Update to 4.0.0.
[source]: Switch to git-fetch.
[arguments]<#:test-flags>: Refresh failing tests.
[native-inputs]: Remove python-wheel.

Change-Id: I323658c2e4f9fc8aec0f4234dd9fbb4ed326e6dd
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves c8bc423b87 gnu: python-pysam: Update to 0.23.3.
* gnu/packages/bioinformatics.scm (python-pysam): Update to 0.23.3.
[native-inputs]: Replace python-cython-0 by python-cython.  Remove
python-wheel.

Change-Id: I4e93e7ab1a9e763d2d84b6b7601a64e918b0eda8
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 31affbfd60 gnu: liblouis: Fix build on python@3.12.
* gnu/packages/language.scm (liblouis)[native-inputs]: Add
python-setuptools.

Change-Id: Ie6956443ed44b70e8d1a844b3e9b66a2dddb2810
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 2c7ee93beb gnu: python-fb-re2: Fix tests for python@3.12.
* gnu/packages/python-xyz.scm (python-fb-re2)[arguments]
<#:phases>: Add phase 'fix-tests.

Change-Id: I0bf9d7a7e6a5101455f4cbdec0268160667da3ea
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves 3050f81301 gnu: python-pypa-installer: Deprecate aliased python-installer.
* gnu/packages/python-build.scm (python-pypa-installer): Drop
variable, and redefine it as a deprecated version of python-installer.

Change-Id: I97467c9832eb7e23ffe67aea90fbf017864f312b
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:01 +00:00
Nicolas Graves c5075bc31d gnu: xandikos: Update to 0.3.3.
* gnu/packages/dav.scm (xandikos): Update to 0.3.3.
[source]: Switch to git-fetch.
[arguments]<#:test-backend>: Drop it (use pytest).
<#:phases>: Drop 'create-entrypoints phase replacement, fixed by
https://github.com/jelmer/xandikos/pull/563 in version 0.3.1.
[native-inputs]: Add python-pytest.
[propagated-inputs]: Replace python-dulwich-0.24 by python-dulwich.

Change-Id: I6de5cd2a35aeface02946d1cec8b76035ae70708
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:00 +00:00
Nicolas Graves 4d80135c49 gnu: python-flake8-isort: Update to 7.0.0.
* gnu/packages/python-xyz.scm (python-flake8-isort): Update to 7.0.0.
[source]: Switch to git-fetch.
[arguments]<#:tests?, #:test-backend, #:test-flags>: Enable tests.
[native-inputs]: Add python-pytest.

Change-Id: I0c6253b8bd19c7087aa72584f307ebd804f2fabc
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 22:00:00 +00:00
Nicolas Graves b850e968e9 gnu: clang-python-bindings: Fix build on python@3.12.
* gnu/packages/llvm.scm (clang-python-bindings)[native-inputs]: Add
python-setuptools.

Change-Id: I86c3820bfe25e75a26f74409d3ee7c98d4b55c37
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-03-28 21:59:57 +00:00
bdunahu ceffc5eed0 gnu: emacs-exwm: Fix .desktop file.
* gnu/packages/emacs-xyz.scm (emacs-exwm)[arguments]:
<#:phases>: Add -mm flag to exported .desktop file, ensuring emacs starts with a frame the same size as the screen.  Use '(exwm-wm-mode)' instead of deprecated '(exwm-enable)'.

Change-Id: I5a7ddc017196171f44fe81016f4e16dbe4f4b545
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-28 14:36:28 -07:00
jgart 34683a7c42 gnu: trealla: Update to 2.92.6.
* gnu/packages/prolog.scm (trealla): Update to 2.92.6.

Change-Id: Ibf90764980593b0a72a42896a38e19600abaecab
2026-03-28 17:03:08 -04:00
112 changed files with 7257 additions and 4165 deletions
+4 -2
View File
@@ -1276,7 +1276,9 @@ definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:
;; Standard build phases, as a list of symbol/procedure pairs. ;; Standard build phases, as a list of symbol/procedure pairs.
(let-syntax ((phases (syntax-rules () (let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...))))) ((_ 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 bootstrap
patch-usr-bin-file patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs patch-source-shebangs configure patch-generated-file-shebangs
@@ -1298,7 +1300,7 @@ Or from the REPL:
(add-to-load-path "/path/to/guix/checkout") (add-to-load-path "/path/to/guix/checkout")
,use (guix build gnu-build-system) ,use (guix build gnu-build-system)
(map car %standard-phases) (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 @end lisp
If you want to know more about what happens during those phases, consult the If you want to know more about what happens during those phases, consult the
+394
View File
@@ -34106,6 +34106,300 @@ Zabbix server port.
@c %end of fragment @c %end of fragment
@subsubheading collectd Service
@cindex collectd
collectd is a daemon which collects, stores, transports, and visualizes
system and application performance metrics in a variety of ways.
@defvar collectd-service-type
This is the service type for the @uref{https://collectd.org/, collectd}
service. Its value must be a @code{collectd-configuration} record:
@lisp
(service collectd-service-type
(collectd-configuration
(plugins
(list
(collectd-plugin-generic
(name "cpu")
(options '((ReportByCpu . #t)
(ReportByState . #t)
(ValuesPercentage . #t))))))))
@end lisp
The service may be extended to add new plugins:
@lisp
(simple-service 'collectd-memory
collectd-service-type
(list
(collectd-plugin-generic
(name "memory")
(options '((ValuesAbsolute . #t)
(ValusPercentage . #t))))))
@end lisp
@end defvar
@c %start of fragment
@deftp {Data Type} collectd-configuration
Available @code{collectd-configuration} fields are:
@table @asis
@item @code{collectd} (default: @code{collectd}) (type: package)
The collectd package to use.
@item @code{base-directory} (default: @code{"/var/lib/collectd"}) (type: string)
Sets the base directory. This is the directory beneath which all
@acronym{RRD,round-robin database} files are created. Possibly more
subdirectories are created. This is also the working directory for
collectd.
@item @code{auto-load-plugins?} (default: @code{#f}) (type: boolean)
When set to @code{#f}, plugins must be loaded explicitly, by setting the
@code{load-plugin?} field of each plugin configuration to @code{#t}. If
a @code{<Plugin ...>} block is encountered and no configuration handling
callback for this plugin has been registered, a warning is logged and
the block is ignored.
When set to @code{#t}, each @code{<Plugin ...>} block acts as if it was
immediately preceded by a @code{LoadPlugin} statement. @code{LoadPlugin}
statements are still required for plugins that don't provide any
configuration, e.g. the @code{Load} plugin.
@item @code{collect-internal-stats?} (default: @code{#f}) (type: boolean)
When @code{#t}, various statistics about the collectd daemon will be
collected, with "collectd" as the plugin name.
@item @code{type-databases} (type: list-of-file-likes)
One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files.
@item @code{interval} (default: @code{60}) (type: maybe-seconds)
Configures the interval in which to query the read plugins. Smaller
values lead to a higher system load produced by collectd, while higher
values lead to more coarse statistics. Warning: You should set this
once and then never touch it again. If you do, you will have to delete
all your RRD files or know some serious RRDtool magic! (Assuming you're
using the RRDtool or RRDCacheD plugin.)
@item @code{max-read-interval} (default: @code{86400}) (type: seconds)
A read plugin doubles the interval between queries after each failed
attempt to get data. This options limits the maximum value of the
interval.
@item @code{timeout} (type: maybe-integer)
Consider a value list "missing" when no update has been read or received
for @code{Iterations} iterations. By default, collectd considers a
value list missing when no update has been received for twice the update
interval. Since this setting uses iterations, the maximum allowed time
without update depends on the @code{Interval} information contained in
each value list. This is used in the @code{Threshold} configuration to
dispatch notifications about missing values, see
@code{collectd-threshold(5)} for details.
@item @code{read-threads} (default: @code{5}) (type: integer)
Number of threads to start for reading plugins. You may want to
increase this if you have more than five plugins that take a long time
to read. Mostly those are plugins that do network-IO. Setting this to
a value higher than the number of registered read callbacks is not
recommended.
@item @code{write-threads} (default: @code{5}) (type: integer)
Number of threads to start for dispatching value lists to write plugins.
You may want to increase this if you have more than five plugins that
may take relatively long to write to.
@item @code{write-queue-limit-high} (type: maybe-integer)
Metrics are read by the read threads and then put into a queue to be
handled by the write threads. If one of the write plugins is slow (e.g.
network timeouts, I/O saturation of the disk) this queue will grow. In
order to avoid running into memory issues in such a case, you can limit
the size of this queue. If there are @code{write-queue-limit-high}
metrics in the queue, any new metrics will be dropped. If the number of
metrics currently in the queue is between @code{write-queue-limit-low}
and @code{write-queue-limit-high}, the metric is dropped with a
probability that is proportional to the number of metrics in the queue
(i.e. it increases linearly until it reaches 100%).
@item @code{write-queue-limit-low} (type: maybe-integer)
If there are less than @code{write-queue-limit-low} metrics in the
queue, all new metrics will be enqueued. If
@code{write-queue-limit-high} is set to non-zero and
@code{write-queue-limit-low} is unset, the latter will default to half
of @code{write-queue-limit-high}.
@item @code{host-name} (type: maybe-string)
Sets the hostname that identifies a host. If you omit this setting, the
hostname will be determined using the @code{gethostname(2)} system call.
@item @code{fully-qualified-domain-name-lookup?} (default: @code{#t}) (type: boolean)
If @code{host-name} is determined automatically, this setting controls
whether or not the daemon should try to figure out the
@acronym{FQDN,fully qualified domain name}. This is done using a lookup
of the name returned by @code{gethostname(2)}.
@item @code{plugins} (default: @code{()}) (type: list-of-collectd-plugins)
Configurations for collectd plugins.
@end table
@end deftp
@c %end of fragment
@c %start of fragment
@deftp {Data Type} collectd-plugin-generic
The @code{collectd-plugin-generic} record can represent most collectd
plugins.
This example configuration will enable the CPU usage reporting plugin.
See the @code{collectd.conf(5)} man page for a list of plugins and their
options.
@lisp
(collectd-plugin-generic
(name "cpu")
(options '((ReportByCpu . #t)
(ReportByState . #t)
(ValuesPercentage . #t))))
@end lisp
Available @code{collectd-plugin-generic} fields are:
@table @asis
@item @code{load-plugin?} (default: @code{#t}) (type: boolean)
When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{auto-load-plugins?} is
@code{#f}, all plugins should set this to @code{#t}.
@item @code{name} (type: string)
The name of the plugin to configure.
@item @code{options} (default: @code{()}) (type: plugin-options)
Configuration options for the plugin, as an alist. See
@code{collect.conf(5)} for the available plugin options.
@end table
@end deftp
@c %end of fragment
@c %start of fragment
@deftp {Data Type} collectd-plugin-python
The @code{collectd-plugin-python} configuration record holds
configuration for collectd plugins written in Python. See the
@code{collectd-python(5)} man page for more information on Python
support in collectd.
Guix packages listed in the @code{packages} field will be added to the
profile used to run collectd. This example configuration will load a
Python plugin named @code{myplugin}, whose code is in the
@code{python-myplugin} Guix package.
@lisp
(collectd-plugin-python
(packages (list python-myplugin))
(module "myplugin")
(module-options '((SomeOption . "hi")
(AnotherOption . 123))))
@end lisp
The @code{module-paths} field will emit verbatim @code{ModulePath}
lines, for plugins not packaged for Guix. This example configuration
loads the @code{gpio} plugin from
@code{/home/user/projects/collectd-gpio/gpio}.
@lisp
(collectd-plugin-python
(module-paths
(list
"/home/user/projects/collectd-gpio/gpio"))
(module "gpio")
(module-options '((MonitorGPIOs 1 2 3 4))))
@end lisp
The two mechanisms may be combined: a Guix-packaged Python library may
be used by unpackaged plugin code. This example loads a
@code{mongometrics} plugin from
@code{/opt/collectd-mongodb/mongometrics}, and also makes the
@code{python-pymongo} Python package available for it to use.
@lisp
(collectd-plugin-python
(packages (list python-pymongo))
(module-paths
(list
"/opt/collectd-mongodb/mongometrics"))
(module "mongometrics")
(module-options '((Host . "localhost"))))
@end lisp
Available @code{collectd-plugin-python} fields are:
@table @asis
@item @code{load-plugin?} (default: @code{#t}) (type: boolean)
When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{collectd-configuration}'s
@code{auto-load-plugins?} is @code{#f}, all plugins should set this to
@code{#t}.
@item @code{type-databases} (default: @code{()}) (type: list-of-file-likes)
One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files.
@item @code{packages} (default: @code{()}) (type: list-of-packages)
Packages to make available to the Python plugin. These can be
dependencies of the plugin code, or may contain the plugin.
@item @code{module-paths} (default: @code{()}) (type: list-of-string)
Entries to prepend to @code{sys.path}.
@item @code{log-traces?} (default: @code{#f}) (type: boolean)
If a Python script throws an exception it will be logged by collectd
with the name of the exception and the message. If you set this option
to true it will also log the full stacktrace just like the default
output of an interactive Python interpreter. This does not apply to the
@code{CollectError} exception, which will never log a stacktrace. This
should probably be set to false most of the time but is very useful for
development and debugging of new modules.
@item @code{interactive?} (default: @code{#f}) (type: boolean)
This option will cause the module to launch an interactive Python
interpreter that reads from and writes to the terminal. Note that
collectd will terminate right after starting up if you try to run it as
a daemon while this option is enabled so make sure to start collectd
with the @code{-f} option. See the @code{collectd-python(5)} man page
for more information on this option.
@item @code{module} (type: string)
The name of the Python module to import into the collectd Python
process. The module must be available in @code{packages} or
@code{module-paths}, and register a MPD callback.
@item @code{module-options} (default: @code{()}) (type: alist)
Configuration options for the module.
@end table
@end deftp
@c %end of fragment
@node Kerberos Services @node Kerberos Services
@subsection Kerberos Services @subsection Kerberos Services
@cindex Kerberos @cindex Kerberos
@@ -35893,6 +36187,75 @@ The port on which to connect to the database.
@end table @end table
@end deftp @end deftp
@subsubheading sogogi
@cindex sogogi, WebDAV Server
@uref{https://codeberg.org/emersion/sogogi, sogogi} is a
server for the
@uref{https://www.rfc-editor.org/rfc/rfc4918, WebDAV} protocol.
@defvar sogogi-service-type
This is the service type for sogogi. Its value must be a
@code{sogogi-configuration} object as in this example:
@lisp
(service sogogi-service-type
(sogogi-configuration
(listen ":8080")
(location
(list
(sogogi-location
(path "/")
(dir "/srv/http/")
(grant '("all ro")))))))
@end lisp
@end defvar
@deftp {Data Type} sogogi-configuration
Available @code{sogogi-configuration} fields are:
@table @asis
@item @code{listen} (default: @code{"localhost:8080"}) (type: string)
Listening address.
@item @code{location} (default: @code{()}) (type: list-of-sogogi-location)
Local directories to expose via a HTTP path
@item @code{user} (default: @code{()}) (type: list-of-sogogi-user)
Users with access to the location.
@end table
@end deftp
@deftp {Data Type} sogogi-location
Available @code{sogogi-location} fields are:
@table @asis
@item @code{path} (type: string)
HTTP path at which the directory will be exposed.
@item @code{dir} (type: string)
Path to local directory to serve.
@item @code{grant} (type: maybe-list-of-strings)
Grant remote users access to the directory.
@end table
@end deftp
@deftp {Data Type} sogogi-user
Available @code{sogogi-user} fields are:
@table @asis
@item @code{name} (type: maybe-string)
Name of the user.
@item @code{password} (type: maybe-string)
Password of the user.
@end table
@end deftp
@subsubheading Mumi @subsubheading Mumi
@cindex Mumi, Debbugs Web interface @cindex Mumi, Debbugs Web interface
@@ -53813,6 +54176,7 @@ an example of a service and its configuration that you could add to the
@subsection Media Home Services @subsection Media Home Services
@cindex kodi @cindex kodi
The @uref{https://kodi.tv, Kodi media center} can be run as a daemon on The @uref{https://kodi.tv, Kodi media center} can be run as a daemon on
a media server. With the @code{(gnu home services kodi)} service, you a media server. With the @code{(gnu home services kodi)} service, you
can configure Kodi to run upon login. can configure Kodi to run upon login.
@@ -54736,6 +55100,36 @@ mouse bindings.
@end table @end table
@end deftp @end deftp
@cindex jellyfin
The @code{home-jellyfin-mpv-shim-service-type} in the @code{(gnu home
services media)} module runs a cast client for the
@uref{https://jellyfin.org/, Jellyfin} media system.
To enable, add this to your home services:
@lisp
(service home-jellyfin-mpv-shim-service-type)
@end lisp
The service starts only if @code{jellyfin-mpv-shim} has been configured
with a remote server and credentials. This must be done manually, by
launching @code{jellyfin-mpv-shim}. After configuring the server, the
service will start automatically when you log in.
@defvar home-jellyfin-mpv-shim-service-type
Type of the service which launches Jellyfin MPV Shim.
@end defvar
@deftp {Data Type} home-jellyfin-mpv-shim-configuration
Available @code{home-jellyfin-mpv-shim-configuration} fields are:
@table @asis
@item @code{package} (default: @code{jellyfin-mpv-shim}) (type: package)
The Jellyfin MPV Shim package to use.
@end table
@end deftp
@node Networking Home Services @node Networking Home Services
@subsection Networking Home Services @subsection Networking Home Services
+45 -1
View File
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024, 2025 Ian Eure <ian@retrospec.tv>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -19,14 +20,20 @@
(define-module (gnu home services media) (define-module (gnu home services media)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (gnu home services) #:use-module (gnu home services)
#:use-module (gnu home services desktop)
#:use-module (gnu home services shepherd) #:use-module (gnu home services shepherd)
#:use-module (gnu packages kodi) #:use-module (gnu packages kodi)
#:use-module (gnu packages video)
#:use-module (gnu services configuration) #:use-module (gnu services configuration)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (guix packages)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix gexp) #:use-module (guix gexp)
#:export (home-kodi-configuration #:export (home-kodi-configuration
home-kodi-service-type)) home-kodi-service-type
home-jellyfin-mpv-shim-configuration
home-jellyfin-mpv-shim-service-type))
;;; ;;;
@@ -66,3 +73,40 @@
(description (description
"Install and configure the Kodi media center so that it runs as a Shepherd "Install and configure the Kodi media center so that it runs as a Shepherd
service."))) service.")))
(define-configuration home-jellyfin-mpv-shim-configuration
(package
(file-like jellyfin-mpv-shim)
"The Jellyfin MPV Shim package to use"))
(define (jellyfin-mpv-shim-shepherd-service config)
(list (shepherd-service
(documentation "Jellyfin MPV Shim.")
(provision '(jellyfin-mpv-shim jellyfin-client))
;; Depend on 'x11-display', which sets 'DISPLAY' if an X11 server is
;; available, and fails to start otherwise.
(requirement '(x11-display))
(modules '((srfi srfi-1)
(srfi srfi-26)
(srfi srfi-98)))
(start
#~(make-forkexec-constructor
(list
#$(file-append
(home-jellyfin-mpv-shim-configuration-package config)
"/bin/jellyfin-mpv-shim"))))
(stop #~(make-kill-destructor)))))
(define-public home-jellyfin-mpv-shim-service-type
(service-type
(name 'home-jellyfin-mpv-shim)
(extensions (list (service-extension home-shepherd-service-type
jellyfin-mpv-shim-shepherd-service)
;; Ensure 'home-x11-service-type' is instantiated so we
;; can depend on the Shepherd 'x11-display' service.
(service-extension home-x11-service-type
(const #t))))
(default-value (home-jellyfin-mpv-shim-configuration))
(description "Run Jellyfin MPV Shim.")))
+4 -2
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2023, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Brian Cully <bjc@spork.org> ;;; Copyright © 2023 Brian Cully <bjc@spork.org>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
@@ -193,8 +193,10 @@ PulseAudio clients to use PipeWire transparently.")
load-module module-null-sink \ load-module module-null-sink \
sink_name=rtp sink_properties=\"device.description='RTP network output'\"\n" sink_name=rtp sink_properties=\"device.description='RTP network output'\"\n"
sock) sock)
;; Use a fixed sample rate to match what the receiving
;; end is likely to expect.
(display (string-append "\ (display (string-append "\
load-module module-rtp-send source=rtp.monitor" load-module module-rtp-send source=rtp.monitor rate=44100"
(if destination-ip (if destination-ip
(string-append (string-append
" destination_ip=" " destination_ip="
+6 -7
View File
@@ -75,6 +75,7 @@
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com> # Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org> # Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
# Copyright © 2025 bdunahu <bdunahu@operationnull.com> # Copyright © 2025 bdunahu <bdunahu@operationnull.com>
# Copyright © 2025 Nikita Mitasov <me@ch4og.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@@ -1063,6 +1064,7 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \ %D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-2.41-fix-cross.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/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bmake-run-check-separately.patch \ %D%/packages/patches/bmake-run-check-separately.patch \
%D%/packages/patches/boolector-find-googletest.patch \ %D%/packages/patches/boolector-find-googletest.patch \
@@ -1318,6 +1320,7 @@ dist_patch_DATA = \
%D%/packages/patches/flatpak-fix-fonts-icons.patch \ %D%/packages/patches/flatpak-fix-fonts-icons.patch \
%D%/packages/patches/flatpak-fix-icon-validation.patch \ %D%/packages/patches/flatpak-fix-icon-validation.patch \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.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-no-dynamic-cursor.patch \
%D%/packages/patches/fluxbox-1.3.7-gcc.patch \ %D%/packages/patches/fluxbox-1.3.7-gcc.patch \
%D%/packages/patches/fmt-9-overspecified-tests.patch \ %D%/packages/patches/fmt-9-overspecified-tests.patch \
@@ -1375,6 +1378,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-fix-texi2pod.patch \ %D%/packages/patches/gcc-fix-texi2pod.patch \
%D%/packages/patches/gcc-hurd-split-stack.patch \ %D%/packages/patches/gcc-hurd-split-stack.patch \
%D%/packages/patches/gcc-libstdc++-newer-gcc.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.8-libsanitizer-fix.patch \
%D%/packages/patches/gcc-4.9-inline.patch \ %D%/packages/patches/gcc-4.9-inline.patch \
%D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \ %D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \
@@ -1442,7 +1446,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-basement-fix-32-bit.patch \ %D%/packages/patches/ghc-basement-fix-32-bit.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \ %D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-testsuite-grep-compat.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-aeson-encodeDouble.patch \
%D%/packages/patches/ghc-basement-fix-32bit.patch \ %D%/packages/patches/ghc-basement-fix-32bit.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \ %D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
@@ -1484,6 +1487,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-cross-objdump.patch \ %D%/packages/patches/glibc-cross-objdump.patch \
%D%/packages/patches/glibc-dl-cache.patch \ %D%/packages/patches/glibc-dl-cache.patch \
%D%/packages/patches/glibc-guix-locpath.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-hidden-visibility-ldconfig.patch \
%D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \ %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \ %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
@@ -1498,7 +1502,6 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-hurd-2.41-symlink.patch \ %D%/packages/patches/glibc-hurd-2.41-symlink.patch \
%D%/packages/patches/glibc-hurd-xstate.patch \ %D%/packages/patches/glibc-hurd-xstate.patch \
%D%/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch \ %D%/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch \
%D%/packages/patches/glibc-hurd64-intr-msg-clobber.patch \
%D%/packages/patches/glibc-ldd-powerpc.patch \ %D%/packages/patches/glibc-ldd-powerpc.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \ %D%/packages/patches/glibc-locales.patch \
@@ -1825,8 +1828,6 @@ dist_patch_DATA = \
%D%/packages/patches/libtiff-CVE-2022-34526.patch \ %D%/packages/patches/libtiff-CVE-2022-34526.patch \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \ %D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.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/libtree-fix-check-non-x86.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \ %D%/packages/patches/libusb-for-axoloti.patch \
@@ -1857,7 +1858,6 @@ dist_patch_DATA = \
%D%/packages/patches/lirc-reproducible-build.patch \ %D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-13-gcc-14.patch \ %D%/packages/patches/llvm-13-gcc-14.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lsof-compat-linux-6.9.patch \
%D%/packages/patches/lsof-fatal-test-failures.patch \ %D%/packages/patches/lsof-fatal-test-failures.patch \
%D%/packages/patches/lua-CVE-2014-5461.patch \ %D%/packages/patches/lua-CVE-2014-5461.patch \
%D%/packages/patches/lua-pkgconfig.patch \ %D%/packages/patches/lua-pkgconfig.patch \
@@ -1983,7 +1983,6 @@ dist_patch_DATA = \
%D%/packages/patches/network-manager-plugin-path.patch \ %D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/newlib-getentropy.patch \ %D%/packages/patches/newlib-getentropy.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \ %D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nickle-man-release-date.patch \
%D%/packages/patches/nlopt_CMake-Assume-working-c-compiler-597.patch \ %D%/packages/patches/nlopt_CMake-Assume-working-c-compiler-597.patch \
%D%/packages/patches/nnpack-system-libraries.patch \ %D%/packages/patches/nnpack-system-libraries.patch \
%D%/packages/patches/nsis-env-passthru.patch \ %D%/packages/patches/nsis-env-passthru.patch \
@@ -2086,9 +2085,9 @@ dist_patch_DATA = \
%D%/packages/patches/podofo-gcc-14.patch \ %D%/packages/patches/podofo-gcc-14.patch \
%D%/packages/patches/pokerth-boost.patch \ %D%/packages/patches/pokerth-boost.patch \
%D%/packages/patches/pounce-readable-checks.patch \ %D%/packages/patches/pounce-readable-checks.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/procps-strtod-test.patch \ %D%/packages/patches/procps-strtod-test.patch \
%D%/packages/patches/prusa-slicer-add-cmake-module.patch \ %D%/packages/patches/prusa-slicer-add-cmake-module.patch \
%D%/packages/patches/prusa-wxwidgets-makefile-fix.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \ %D%/packages/patches/pthreadpool-system-libraries.patch \
%D%/packages/patches/python-3.11-fix-tests.patch \ %D%/packages/patches/python-3.11-fix-tests.patch \
%D%/packages/patches/python-3.12-fix-tests.patch \ %D%/packages/patches/python-3.12-fix-tests.patch \
+2 -2
View File
@@ -43,7 +43,7 @@
(define-public acl (define-public acl
(package (package
(name "acl") (name "acl")
(version "2.3.1") (version "2.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@@ -51,7 +51,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bqi7hj0xkpivwg7lx5cv3yvs9ks1i6azvpgbvfpzcq1i736233n")))) "0z1gi82zc2xcbchfagd7apn2s7camaagj8y6hmysl1wpcanxnasz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((ice-9 ftw) `(#:modules ((ice-9 ftw)
+2
View File
@@ -29,6 +29,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages swig) #:use-module (gnu packages swig)
@@ -92,6 +93,7 @@
libtool libtool
perl perl
python-minimal python-minimal
python-setuptools
ruby ruby
swig-4.0 swig-4.0
which)) which))
+57 -43
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; 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 © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
@@ -157,7 +157,7 @@ know anything about Autoconf or M4.")
(base32 (base32
"0niz4852fgyavfh3gr4h4kzalk01nk70v6vfsja6r3ap349mr25s")))))) "0niz4852fgyavfh3gr4h4kzalk01nk70v6vfsja6r3ap349mr25s"))))))
(define-public autoconf autoconf-2.69) (define-public autoconf autoconf-2.72)
(define-public autoconf-2.68 (define-public autoconf-2.68
(package (inherit autoconf) (package (inherit autoconf)
@@ -438,14 +438,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public automake (define-public automake
(package/inherit automake-1.16.5 (package/inherit automake-1.16.5
(name "automake") (name "automake")
(version "1.17") (version "1.18.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-" (uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"146rkdcwri2dkwn3pjrjs9v0wm4xyav9vvq4yw5vj4qy87yc2849")) "11v8ckqx7z8hv4mq9dnhg58cwnssaa7l9136yndbhlc34xis72hn"))
(patches (patches
(search-patches "automake-skip-amhello-tests.patch")))) (search-patches "automake-skip-amhello-tests.patch"))))
(arguments (arguments
@@ -483,16 +483,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public libtool (define-public libtool
(package (package
(name "libtool") (name "libtool")
(version "2.4.7") (version "2.5.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-" (uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg")) "0xb64rhambx6mhxwr613xgyad7ybs5hgmpmd9gccf2vbcrh5h7zq"))))
(patches (search-patches "libtool-skip-tests2.patch"
"libtool-grep-compat.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (list m4)) (propagated-inputs (list m4))
(native-inputs (native-inputs
@@ -506,43 +504,59 @@ Makefile, simplifying the entire process for the developer.")
autoconf-wrapper)) ; others on 'autom4te' autoconf-wrapper)) ; others on 'autom4te'
(arguments (arguments
`(;; Libltdl is provided as a separate package, so don't install it here. (list ;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags '("--disable-ltdl-install") #:configure-flags #~'("--disable-ltdl-install")
;; XXX: There are test failures on mips64el-linux starting from 2.4.4: ;; The 'libtool' script refers to the toolchain; tolerate it.
;; <http://hydra.gnu.org/build/181662>. #:disallowed-references '()
;; Also, do not run tests when cross compiling
#:tests? ,(not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
#:phases ;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
(modify-phases %standard-phases ;; <http://hydra.gnu.org/build/181662>.
(add-before 'check 'pre-check ;; Also, do not run tests when cross compiling
(lambda* (#:key inputs native-inputs parallel-tests? #:allow-other-keys) #:tests? (not (or (%current-target-system)
;; Run the test suite in parallel, if possible. (string-prefix? "mips64"
(setenv "TESTSUITEFLAGS" (%current-system))))
(string-append
"-j" #:phases
(if parallel-tests? #~(modify-phases %standard-phases
(number->string (parallel-job-count)) (add-after 'unpack 'skip-some-tests-on-extra-archs
"1"))) (lambda _
;; Patch references to /bin/sh. (with-directory-excursion "tests"
(let ((/bin/sh (search-input-file (or native-inputs inputs) "bin/sh"))) (substitute* '("demo.at" "testsuite")
(substitute* "tests/testsuite" (("hppa\\*\\|amd64\\*\\|x86_64\\*\\|s390\\*"
(("/bin/sh") /bin/sh))))) all)
;; These files may be copied into source trees by libtoolize, (string-append all "|arm*|mips*|riscv*"))))))
;; therefore they must not point to store file names that would be (add-before 'check 'pre-check
;; leaked with tarballs generated by make dist. (lambda* (#:key inputs native-inputs parallel-tests?
(add-after 'install 'restore-build-aux-shebang #:allow-other-keys)
(lambda* (#:key outputs #:allow-other-keys) ;; Run the test suite in parallel, if possible.
(let* ((out (assoc-ref outputs "out")) (setenv "TESTSUITEFLAGS"
(dir (string-append out "/share/libtool/build-aux"))) (string-append
(for-each (lambda (file) "-j"
(format #t "restoring shebang on `~a'~%" file) (if parallel-tests?
(substitute* file (number->string (parallel-job-count))
(("^#!.*/bin/sh") "#!/bin/sh"))) "1")))
(find-files dir)))))))) ;; 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") (synopsis "Generic shared library support tools")
(description (description
+78 -85
View File
@@ -77,6 +77,8 @@
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages golang-build) #:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web) #:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz) #:use-module (gnu packages golang-xyz)
@@ -891,94 +893,85 @@ is like a time machine for your data.")
(define-public restic (define-public restic
(package (package
(name "restic") (name "restic")
(version "0.9.6") (version "0.17.3")
;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/' (source
;; directory. (origin
(source (origin (method git-fetch)
(method url-fetch) (uri (git-reference
(uri (string-append (url "https://github.com/restic/restic")
"https://github.com/restic/restic/releases/download/" (commit (string-append "v" version))))
"v" version "/restic-" version ".tar.gz")) (file-name (git-file-name name version))
(file-name (string-append name "-" version ".tar.gz")) (sha256
(sha256 (base32 "1wsgq7f0bfi0i5iiwcc3hlf2lhxcnz3zfs8p8bc6l913r9hvyg1x"))))
(base32
"1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))
(patches
(search-patches "restic-0.9.6-fix-tests-for-go1.15.patch"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(;; XXX: Tests failed on a newer version of Golang, newer version of (list
;; restic does not provide vendor folder any longer which means - a #:go go-1.25
;; long way of packaging missing inputs. #:install-source? #f
#:go ,go-1.17 #:import-path "github.com/restic/restic/cmd/restic"
#:import-path "github.com/restic/restic" #:unpack-path "github.com/restic/restic"
;; We don't need to install the source code for end-user applications. #:embed-files #~(list "children" "nodes" "text")
#:install-source? #f #:test-flags
#:phases ;; Python is required.
(modify-phases %standard-phases #~(list "-skip" "TestStdinFromCommand|TestStdinFromCommandNoOutput")
(replace 'build #:test-subdirs #~(list "../../...")
(lambda* (#:key inputs #:allow-other-keys) #:phases
(with-directory-excursion "src/github.com/restic/restic" #~(modify-phases %standard-phases
;; Disable 'restic self-update'. It makes little sense in Guix. (add-after 'install 'install-docs
(substitute* "build.go" (("selfupdate") "")) (lambda* (#:key import-path #:allow-other-keys)
(setenv "HOME" (getcwd)) ; for $HOME/.cache/go-build (with-directory-excursion (string-append "src/" import-path)
(invoke "go" "run" "build.go")))) (let* ((man "/share/man")
(man-section (string-append man "/man")))
;; Install all the man pages to "out".
(for-each
(lambda (file)
(install-file file
(string-append #$output man-section
(string-take-right file 1))))
(find-files "doc/man" "\\.[1-9]"))))))
(add-before 'check 'pre-check
(lambda _
(setenv "RESTIC_TEST_FUSE" "0"))))))
(native-inputs
(list go-cloud-google-com-go-storage
go-github-com-anacrolix-fuse
go-github-com-azure-azure-sdk-for-go-sdk-azcore
go-github-com-azure-azure-sdk-for-go-sdk-azidentity
go-github-com-azure-azure-sdk-for-go-sdk-storage-azblob
go-github-com-backblaze-blazer
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-google-go-cmp
go-github-com-hashicorp-golang-lru-v2
go-github-com-klauspost-compress
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
go-github-com-pkg-profile
go-github-com-pkg-sftp
go-github-com-pkg-xattr
go-github-com-restic-chunker
go-github-com-spf13-cobra
go-github-com-spf13-pflag
go-go-uber-org-automaxprocs
go-golang-org-x-crypto
go-golang-org-x-net
go-golang-org-x-oauth2
go-golang-org-x-sync
go-golang-org-x-sys
go-golang-org-x-term
go-golang-org-x-text
go-golang-org-x-time
go-google-golang-org-api
(replace 'check ;; XXX: These packages have to be bootstrapped to break cycle with
(lambda* (#:key tests? #:allow-other-keys) ;; go-google-golang-org-grpc.
(when tests? go-github-com-envoyproxy-go-control-plane
(with-directory-excursion "src/github.com/restic/restic" go-github-com-envoyproxy-go-control-plane-envoy))
;; Disable FUSE tests.
(setenv "RESTIC_TEST_FUSE" "0")
(invoke "go" "run" "build.go" "--test")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(src "src/github.com/restic/restic"))
(install-file (string-append src "/restic")
(string-append out "/bin"))
#t)))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man "/share/man")
(man-section (string-append man "/man"))
(src "src/github.com/restic/restic/doc/man/"))
;; Install all the man pages to "out".
(for-each
(lambda (file)
(install-file file
(string-append out man-section
(string-take-right file 1))))
(find-files src "\\.[1-9]"))
#t)))
(add-after 'install-docs 'install-shell-completion
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(etc (string-append out "/etc"))
(share (string-append out "/share")))
(for-each
(lambda (shell)
(let* ((shell-name (symbol->string shell))
(dir (string-append "etc/completion/" shell-name)))
(mkdir-p dir)
(invoke (string-append bin "/restic") "generate"
(string-append "--" shell-name "-completion")
(string-append dir "/"
(case shell
((bash) "restic")
((zsh) "_restic"))))))
'(bash zsh))
(with-directory-excursion "etc/completion"
(install-file "bash/restic"
(string-append etc "/bash_completion.d"))
(install-file "zsh/_restic"
(string-append share "/zsh/site-functions")))
#t))))))
(home-page "https://restic.net/") (home-page "https://restic.net/")
(synopsis "Backup program with multiple revisions, encryption and more") (synopsis "Backup program with multiple revisions, encryption and more")
(description "Restic is a program that does backups right and was designed (description "Restic is a program that does backups right and was designed
+320 -343
View File
@@ -24,6 +24,7 @@
;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop> ;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz> ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online> ;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2025 Nikita Mitasov <me@ch4og.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -119,14 +120,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep (define-public grep
(package (package
(name "grep") (name "grep")
(version "3.11") (version "3.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-" (uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1avf4x8skxbqrjp5j2qr9sp5vlf8jkw2i5bdn51fl3cxx3fsxchx")) "1f87i907dzw31xy1xr8xjj6z9979qq3bwmypvkm35rlh1ryb4j96"))
(patches (search-patches "grep-timing-sensitive-test.patch")))) (patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list perl)) ;some of the tests require it (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) (build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space. ;; Note: test suite requires ~1GiB of disk space.
(arguments (arguments
`(,@(cond (append
((target-hurd?) (cond
'(#:make-flags ((target-hurd?)
(list (string-append '(#:make-flags
"TESTSUITEFLAGS= -k '" (list (string-append
"!sparse" "TESTSUITEFLAGS= -k '"
",!renamed dirs in incrementals" "!sparse"
",!--exclude-tag option in incremental pass" ",!renamed dirs in incrementals"
",!incremental dumps with -C" ",!--exclude-tag option in incremental pass"
",!incremental dumps of nested directories" ",!incremental dumps with -C"
",!incremental restores with -C" ",!incremental dumps of nested directories"
",!concatenated incremental archives (renames)" ",!incremental restores with -C"
",!renamed directory containing subdirectories" ",!concatenated incremental archives (renames)"
",!renamed subdirectories" ",!renamed directory containing subdirectories"
",!chained renames" ",!renamed subdirectories"
",!Directory" ",!chained renames"
"'")))) ",!Directory"
;; 'storing sparse files > 8G' fails on powerpc-linux, likely "'"))))
;; due to the small HDD and RAM present on these devices. ;; 'storing sparse files > 8G' fails on powerpc-linux, likely
((target-ppc32?) ;; due to the small HDD and RAM present on these devices.
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k " ((target-ppc32?)
"'!tricky time stamps" '(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
",!storing sparse files > 8G'")))) "'!tricky time stamps"
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html ",!storing sparse files > 8G'"))))
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests ;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; skipping the test for this release on 32-bit systems. ;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
((target-32bit?) ;; skipping the test for this release on 32-bit systems.
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'"))) ((not (target-64bit?))
(else '())) '(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t (else '()))
,@(if (target-hurd32?) ;; XXX: 32-bit Hurd platforms don't support 64bit time_t
(list #:configure-flags ''("--disable-year2038")) (if (target-hurd32?)
'()) (list #:configure-flags #~(list "--disable-year2038"))
#:phases (modify-phases %standard-phases '())
(add-before 'build 'set-shell-file-name (list
(lambda* (#:key inputs #:allow-other-keys) #:phases
;; Do not use "/bin/sh" to run programs. #~(modify-phases %standard-phases
(let ((bash (assoc-ref inputs "bash"))) (add-before 'build 'set-shell-file-name
(substitute* "src/system.c" (lambda* (#:key inputs #:allow-other-keys)
(("/bin/sh") ;; Do not use "/bin/sh" to run programs.
(string-append bash "/bin/sh"))))))))) (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 ;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
;; to refer to the target Bash. ;; to refer to the target Bash.
@@ -306,41 +309,8 @@ standard utility.")
(license gpl3+) (license gpl3+)
(home-page "https://www.gnu.org/software/tar/"))) (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 (define-public patch
(package (package
(inherit patch/pinned)
(name "patch") (name "patch")
(version "2.8") (version "2.8")
(source (origin (source (origin
@@ -350,13 +320,27 @@ differences.")
(sha256 (sha256
(base32 (base32
"1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q")))) "1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q"))))
(build-system gnu-build-system)
(arguments (arguments
(substitute-keyword-arguments (package-arguments patch/pinned) (list
((#:configure-flags flags #~'()) #:configure-flags
(if (target-hurd32?) #~(append
#~(cons* "--disable-year2038" (if #$(%current-target-system)
#$flags) (list "gl_cv_func_working_mktime=yes")
flags)))) '())
(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 '()))) (properties '())))
(define-public diffutils (define-public diffutils
@@ -632,20 +616,21 @@ standard.")
(inputs (list guile-3.0)) (inputs (list guile-3.0))
(outputs '("out" "debug")) (outputs '("out" "debug"))
(arguments (arguments
`(,@(if (target-hurd?) (append
'(#:configure-flags '("CFLAGS=-D__alloca=alloca" (if (target-hurd?)
"ac_cv_func_posix_spawn=no")) (list #:configure-flags '("CFLAGS=-D__alloca=alloca"
'()) "ac_cv_func_posix_spawn=no"))
(list))
(list
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-before 'build 'set-default-shell (add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh. ;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/job.c" (substitute* "src/job.c"
(("default_shell =.*$") (("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n" (format #f "default_shell = \"~a\";\n"
bash))))))))) (search-input-file inputs "/bin/sh"))))))))))
(synopsis "Remake files automatically") (synopsis "Remake files automatically")
(description (description
"Make is a program that is used to control the production of "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 (base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn")))) "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
(arguments (arguments
`(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat") (list
#:phases #:configure-flags #~(list "CFLAGS=-D__alloca=alloca -D__stat=stat")
(modify-phases %standard-phases #:phases
(add-before 'build 'set-default-shell #~(modify-phases %standard-phases
(lambda* (#:key inputs #:allow-other-keys) (add-before 'build 'set-default-shell
;; Change the default shell from /bin/sh. (lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash"))) ;; Change the default shell from /bin/sh.
(substitute* "job.c" (substitute* "job.c"
(("default_shell =.*$") (("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n" (format #f "default_shell = \"~a\";\n"
bash))))))))))) (search-input-file inputs "/bin/sh")))))))))))
(define-public binutils (define-public binutils
(package (package
@@ -693,6 +678,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
(sha256 (sha256
(base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn")) (base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn"))
(patches (search-patches (patches (search-patches
"binutils-reproducible-tar.patch"
"binutils-2.41-fix-cross.patch" "binutils-2.41-fix-cross.patch"
"binutils-loongson-workaround.patch")))) "binutils-loongson-workaround.patch"))))
(build-system gnu-build-system) (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 ;; For some reason, the build machinery insists on rebuilding .info
;; files, even though they're already provided by the tarball. ;; files, even though they're already provided by the tarball.
#:make-flags #~'("MAKEINFO=true"))) #: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") (synopsis "Binary utilities: bfd gas gprof ld")
(description (description
"GNU Binutils is a collection of tools for working with binary files. "GNU Binutils is a collection of tools for working with binary files.
@@ -908,8 +895,10 @@ the store.")
(list "glibc-ldd-powerpc.patch" (list "glibc-ldd-powerpc.patch"
"glibc-2.41-ldd-x86_64.patch" "glibc-2.41-ldd-x86_64.patch"
"glibc-2.40-dl-cache.patch" "glibc-2.40-dl-cache.patch"
"glibc-fix-path-attribute-in-getconf.patch"
"glibc-2.37-versioned-locpath.patch" "glibc-2.37-versioned-locpath.patch"
;; "glibc-allow-kernel-2.6.32.patch" ;; "glibc-allow-kernel-2.6.32.patch"
"glibc-guix-locpath.patch"
"glibc-reinstate-prlimit64-fallback.patch" "glibc-reinstate-prlimit64-fallback.patch"
"glibc-supported-locales.patch" "glibc-supported-locales.patch"
"glibc-2.37-hurd-clock_t_centiseconds.patch" "glibc-2.37-hurd-clock_t_centiseconds.patch"
@@ -918,10 +907,11 @@ the store.")
"glibc-hurd-gettyent.patch" "glibc-hurd-gettyent.patch"
"glibc-hurd-getauxval.patch" "glibc-hurd-getauxval.patch"
"glibc-hurd-pthread_setcancelstate.patch" "glibc-hurd-pthread_setcancelstate.patch"
"glibc-hurd-signal-fpe-exception.patch"
"glibc-hurd-xstate.patch"
"glibc-hurd-2.41-pthread-once.patch" "glibc-hurd-2.41-pthread-once.patch"
"glibc-hurd-2.41-pthread-sigmask.patch" "glibc-hurd-2.41-pthread-sigmask.patch"
"glibc-hurd-2.41-symlink.patch" "glibc-hurd-2.41-symlink.patch"
"glibc-hurd64-intr-msg-clobber.patch"
"glibc-hurd64-gcc-14.2-tls-bug.patch")) "glibc-hurd64-gcc-14.2-tls-bug.patch"))
(define-public glibc (define-public glibc
@@ -940,7 +930,6 @@ the store.")
(properties `((lint-hidden-cve . ("CVE-2024-2961" (properties `((lint-hidden-cve . ("CVE-2024-2961"
"CVE-2024-33601" "CVE-2024-33602" "CVE-2024-33601" "CVE-2024-33602"
"CVE-2024-33600" "CVE-2024-33599")))) "CVE-2024-33600" "CVE-2024-33599"))))
(replacement glibc/fixed)
(build-system gnu-build-system) (build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -956,247 +945,257 @@ the store.")
"static")) ;9 MiB of .a files "static")) ;9 MiB of .a files
(arguments (arguments
`(#:out-of-source? #t (list
#:out-of-source? #t
;; The libraries have an empty RUNPATH, but some, such as the versioned ;; 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 ;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip ;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks. ;; RUNPATH checks.
#:validate-runpath? #f #:validate-runpath? #f
#:modules ((ice-9 ftw) #:modules `((ice-9 ftw)
(ice-9 match)
(srfi srfi-1) (srfi srfi-1)
(srfi srfi-26) (srfi srfi-26)
(guix build gremlin)
(guix build utils) (guix build utils)
(guix build gnu-build-system)) (guix build gnu-build-system))
;; Strip binaries but preserve the symbol table needed by Valgrind: ;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>. ;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags '("--strip-debug") #:strip-flags #~'("--strip-debug")
#:configure-flags #:configure-flags
(list "--sysconfdir=/etc" #~(list "--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to ;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the ;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want. ;; locales they really want.
;; ;;
;; Set the default locale path. In practice, $LOCPATH may be ;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid ;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into ;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y, ;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin. ;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are ;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see ;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>. ;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;; ;;
;; `--localedir' is not honored, so work around it. ;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>. ;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/" (string-append "libc_cv_complocaledir=/run/current-system/locale/"
,(version-major+minor version)) #$(version-major+minor version))
(string-append "--with-headers=" ;; Here we need to refer to kernel headers and not glibc-mesboot
(assoc-ref ,(if (%current-target-system) (string-append
'%build-target-inputs "--with-headers="
'%build-inputs) (and=>
"kernel-headers") (find
"/include") (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, ;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See ;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details. ;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0" "--enable-kernel=3.2.0"
;; Use our Bash instead of /bin/sh. ;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL=" (string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash") (search-input-file %build-inputs "/bin/bash"))
"/bin/bash")
;; On GNU/Hurd we get discarded-qualifiers warnings for ;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them. ;; 'device_write_inband' among other things. Ignore them.
,@(if (target-hurd?) #$@(if (target-hurd?)
`("--disable-werror") #~("--disable-werror")
'())) #~()))
#:tests? #f ; XXX #:tests? #f ; XXX
#:phases (modify-phases %standard-phases #:phases
(add-before #~(modify-phases %standard-phases
'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda* (#:key inputs native-inputs outputs (lambda* (#:key inputs native-inputs #:allow-other-keys)
#:allow-other-keys) (let* ((bin (string-append #$output "/bin"))
(let* ((out (assoc-ref outputs "out")) (bash (find
(bin (string-append out "/bin")) (match-lambda
;; FIXME: Normally we would look it up only in INPUTS ((label . input)
;; but cross-base uses it as a native input. (let ((sh (string-append input "/bin/sh")))
(bash (or (assoc-ref inputs "static-bash") (and (file-exists? sh)
(assoc-ref native-inputs "static-bash")))) ;; Is it bash-static specifically? The
;; Install the rpc data base file under `$out/etc/rpc'. ;; label can't be used because of
(substitute* "inet/Makefile" ;; bash-mesboot during the bootstrap.
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) (not (file-dynamic-info sh))))))
(string-append out "/etc/rpc" suffix "\n")) inputs))
(("^install-others =.*$") (bash (and=> bash cdr)))
(string-append "install-others = " out "/etc/rpc\n"))) ;; 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" (substitute* "Makeconfig"
;; According to ;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>, ;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC ;; linking against libgcc_s is not needed with GCC
;; 4.7.1. ;; 4.7.1.
((" -lgcc_s") "")) ((" -lgcc_s") ""))
;; Tell the ld.so cache code where the store is. ;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c" (substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@") (("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\""))) (string-append "\"" (%store-directory) "\"")))
;; Have `system' use that Bash. ;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c" (substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$") (("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n" (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" bash)))
bash)))
;; Same for `popen'. ;; Same for `popen'.
(substitute* "libio/iopopen.c" (substitute* "libio/iopopen.c"
(("/bin/sh") (("/bin/sh")
(string-append bash "/bin/sh"))) (string-append bash "/bin/sh")))
;; Same for the shell used by the 'exec' functions for ;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang. ;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$") (substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$") (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \"" (string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n"))) bash "/bin/sh\"\n")))
;; Make sure we don't retain a reference to the ;; Make sure we don't retain a reference to the
;; bootstrap Perl. ;; bootstrap Perl.
(substitute* "malloc/mtrace.pl" (substitute* "malloc/mtrace.pl"
(("^#!.*") (("^#!.*")
;; The shebang can be omitted, because there's the ;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file. ;; "bilingual" eval/exec magic at the top of the file.
"") "")
(("exec @PERL@") (("exec @PERL@")
"exec perl"))))) "exec perl")))))
(add-after 'install 'move-static-libs (add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys) (lambda _
;; Move static libraries to the "static" output. ;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a" ;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty ;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid ;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds ;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant ;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables ;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries, ;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in ;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC. ;; OUT in addition to STATIC.
(define (empty-static-library? file) (define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing ;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header. ;; beyond the header.
(let ((file (string-append (assoc-ref outputs "out") (let ((file (string-append #$output "/lib/" file)))
"/lib/" file))) (and (ar-file? file)
(and (ar-file? file) (= (stat:size (stat file)) 8))))
(= (stat:size (stat file)) 8))))
(define (static-library? file) (define (static-library? file)
;; Return true if FILE is a static library. The ;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so, ;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker ;; libpthread.so, etc., which are in fact linker
;; scripts. ;; scripts.
(and (string-suffix? ".a" file) (and (string-suffix? ".a" file)
(not (string-contains file "_nonshared")) (not (string-contains file "_nonshared"))
(not (empty-static-library? file)))) (not (empty-static-library? file))))
(define (linker-script? file) (define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a ;; Guess whether FILE, a ".a" file, is actually a
;; linker script. ;; linker script.
(and (not (ar-file? file)) (and (not (ar-file? file))
(not (elf-file? file)))) (not (elf-file? file))))
(let* ((out (assoc-ref outputs "out")) (let* ((lib (string-append #$output "/lib"))
(lib (string-append out "/lib")) (files (scandir lib static-library?))
(files (scandir lib static-library?)) (empty (scandir lib empty-static-library?))
(empty (scandir lib empty-static-library?)) (slib (string-append #$output:static "/lib")))
(static (assoc-ref outputs "static")) (mkdir-p slib)
(slib (string-append static "/lib"))) (for-each (lambda (base)
(mkdir-p slib) (rename-file (string-append lib "/" base)
(for-each (lambda (base) (string-append slib "/" base)))
(rename-file (string-append lib "/" base) files)
(string-append slib "/" base))) (for-each (lambda (base)
files) (copy-file (string-append lib "/" base)
(for-each (lambda (base) (string-append slib "/" base)))
(copy-file (string-append lib "/" base) empty)
(string-append slib "/" base)))
empty)
;; Usually libm.a is a linker script so we need to ;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC ;; change the file names in there to refer to STATIC
;; instead of OUT. ;; instead of OUT.
(for-each (lambda (ld-script) (for-each (lambda (ld-script)
(substitute* ld-script (substitute* ld-script
((out) static))) ((#$output)
(filter linker-script? #$output:static)))
(map (cut string-append slib "/" <>) (filter linker-script?
files)))))) (map (cut string-append slib "/" <>)
files))))))
(add-after 'install 'install-utf8-c-locale (add-after 'install 'install-utf8-c-locale
(lambda* (#:key outputs #:allow-other-keys) (lambda _
;; Install the C.UTF-8 locale so there's always a UTF-8 ;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around. ;; locale around.
(let* ((out (assoc-ref outputs "out")) (let ((bin (string-append #$output "/bin"))
(bin (string-append out "/bin")) (locale (string-append #$output "/lib/locale/"
(locale (string-append out "/lib/locale/" #$(package-version
,(package-version this-package))))
this-package)))) (mkdir-p locale)
(mkdir-p locale)
;; FIXME: When cross-compiling, attempt to use ;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version. ;; 'localedef' from the same libc version.
(invoke ,(if (%current-target-system) (invoke #$(if (%current-target-system)
"true" "true"
'(string-append bin "/localedef")) #~(string-append bin "/localedef"))
"--no-archive" "--prefix" locale "--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8" "-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8"))))) (string-append locale "/C.UTF-8")))))
,@(if (target-hurd?) #$@(if (target-hurd?)
`((add-after 'install 'augment-libc.so `((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (substitute* (string-append #$output "/lib/libc.so")
(substitute* (string-append out "/lib/libc.so") (("/[^ ]+/lib/libc.so.0.3")
(("/[^ ]+/lib/libc.so.0.3") (string-append #$output "/lib/libc.so.0.3"
(string-append out "/lib/libc.so.0.3" " libmachuser.so libhurduser.so")))))
" libmachuser.so libhurduser.so")))))) (add-after 'install 'create-machine-symlink
(add-after 'install 'create-machine-symlink (lambda _
(lambda* (#:key outputs #:allow-other-keys) (let* ((cpu #$(match (or (%current-target-system)
(let* ((out (assoc-ref outputs "out")) (%current-system))
(cpu ,(match (or (%current-target-system) ((? target-x86-32?)
(%current-system)) "i386")
((? target-x86-32?) ((? target-x86-64?)
"i386") "x86_64")))
((? target-x86-64?) (machine (string-append #$output
"x86_64"))) "/include/mach/machine")))
(machine (string-append (unless (file-exists? machine)
out "/include/mach/machine"))) (symlink cpu 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 ;; To build the manual, we need Texinfo and Perl. Gettext is needed to
;; install the message catalogs, with 'msgfmt'. ;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo) (native-inputs
("perl" ,perl) (append
("bison" ,bison) (list bison
("gettext" ,gettext-minimal) gettext-minimal
("python" ,python-minimal) perl
python-minimal
,@(if (target-hurd?) texinfo)
`(("mig" ,mig) (if (target-hurd?)
("perl" ,perl)) (list mig)
'()))) (list))))
(native-search-paths (native-search-paths
;; Search path for packages that provide locale data. This is useful ;; Search path for packages that provide locale data. This is useful
;; primarily in build environments. Use 'GUIX_LOCPATH' rather than ;; primarily in build environments. Use 'GUIX_LOCPATH' rather than
@@ -1218,17 +1217,6 @@ with the Linux kernel.")
(license lgpl2.0+) (license lgpl2.0+)
(home-page "https://www.gnu.org/software/libc/"))) (home-page "https://www.gnu.org/software/libc/")))
(define glibc/fixed
(package
(inherit glibc)
(name "glibc")
(source (origin
(inherit (package-source glibc))
;; XXX: When ungrafting, add the included patch to
;; %glibc-patches.
(patches (cons (search-patch "glibc-guix-locpath.patch")
(origin-patches (package-source glibc))))))))
;; Define a variation of glibc which uses the default /etc/ld.so.cache, useful ;; Define a variation of glibc which uses the default /etc/ld.so.cache, useful
;; in FHS containers. ;; in FHS containers.
(define-public glibc-for-fhs (define-public glibc-for-fhs
@@ -1310,8 +1298,8 @@ with the Linux kernel.")
;; The C.UTF-8 fails to build in glibc 2.35: ;; The C.UTF-8 fails to build in glibc 2.35:
;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>. ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>.
;; It is missing altogether in versions earlier than 2.35. ;; It is missing altogether in versions earlier than 2.35.
`(modify-phases ,phases #~(modify-phases #$phases
(delete 'install-utf8-c-locale))))))) (delete 'install-utf8-c-locale)))))))
(define-public glibc-2.33 (define-public glibc-2.33
(package (package
@@ -1352,9 +1340,9 @@ with the Linux kernel.")
"libc_cv_cxx_link_ok=no" "libc_cv_cxx_link_ok=no"
#$flags)) #$flags))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
;; This phase fails trying to create /etc/ld.so.cache ;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale))))))) (delete 'install-utf8-c-locale)))))))
(define-public (make-gcc-libc base-gcc libc) (define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC." "Return a GCC that targets LIBC."
@@ -1555,18 +1543,7 @@ variety of options. It is an alternative to the shell \"type\" built-in
command.") command.")
(license gpl3+))) ; some files are under GPLv2+ (license gpl3+))) ; some files are under GPLv2+
(define-public glibc/hurd (define-public glibc/hurd glibc)
(hidden-package
(package/inherit glibc
(source
(origin
(inherit (package-source glibc))
(patches
(append (map search-patch
(delete "glibc-hurd64-intr-msg-clobber.patch" %glibc-patches))
(search-patches
"glibc-hurd-signal-fpe-exception.patch"
"glibc-hurd-xstate.patch"))))))))
(define-public glibc/hurd-headers (define-public glibc/hurd-headers
(package/inherit glibc/hurd (package/inherit glibc/hurd
+10 -44
View File
@@ -66,7 +66,7 @@
(define (patch-url seqno) (define (patch-url seqno)
"Return the URL of Bash patch number 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) (define (bash-patch seqno sha256-bv)
"Return the origin of Bash patch SEQNO, with expected hash SHA256-BV." "Return the origin of Bash patch SEQNO, with expected hash SHA256-BV."
@@ -79,47 +79,13 @@
(list (bash-patch seqno (base32 hash)) (list (bash-patch seqno (base32 hash))
...)) ...))
(define %patch-series-5.2 (define %patch-series-5.3
;; This is the current patches series for 5.2, generated using ;; This is the current patches series for 5.3, generated using
;; 'download-patches' below. ;; 'download-patches' below.
(patch-series (patch-series
(1 "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl") (1 "0zr8wgg1gb67vxn7ws971n1znrdinczymc688ndnpy2a6qs88q0z")
(2 "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25") (2 "009051z55plsy4jmmjdb3ys7li2jraynz99qg7n6a1qk025591g3")
(3 "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba") (3 "1vb0gnrkmz49rcfpxjcxy0v0k5278wrlkljk9gc20nizvk3xjigj")))
(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")))
(define (download-patches store count) (define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of "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," " -Wl,-rpath -Wl,"
(assoc-ref %build-inputs "ncurses") (assoc-ref %build-inputs "ncurses")
"/lib"))) "/lib")))
(version "5.2")) (version "5.3"))
(package (package
(name "bash") (name "bash")
(source (origin (source (origin
@@ -166,11 +132,11 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
"mirror://gnu/bash/bash-" version ".tar.gz")) "mirror://gnu/bash/bash-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1yrjmf0mqg2q8pqphjlark0mcmgf88b0acq7bqf4gx3zvxkc2fd1")) "1fii1xaxbng9x0klxmxkm0xhmycngfz72jsgyrna4sgqcmlxhp0d"))
(patch-flags '("-p0")) (patch-flags '("-p0"))
(patches (cons (search-patch "bash-linux-pgrp-pipe.patch") (patches (cons (search-patch "bash-linux-pgrp-pipe.patch")
%patch-series-5.2)))) %patch-series-5.3))))
(version (string-append version "." (number->string (length %patch-series-5.2)))) (version (string-append version "." (number->string (length %patch-series-5.3))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
+3 -5
View File
@@ -6070,17 +6070,16 @@ subgroups.")
(define-public python-pysam (define-public python-pysam
(package (package
(name "python-pysam") (name "python-pysam")
(version "0.23.0") (version "0.23.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
;; Test data is missing on PyPi.
(uri (git-reference (uri (git-reference
(url "https://github.com/pysam-developers/pysam") (url "https://github.com/pysam-developers/pysam")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0hk0ks6kqsm8252d0v1lw2d22x1awmxcr165nnhyacwbqh246skl")) "1kb70fp9mnjl4czhwiahb192lwkq1j357b774ddg533ibj3h7gcz"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
;; FIXME: Unbundle samtools and bcftools. ;; FIXME: Unbundle samtools and bcftools.
@@ -6118,10 +6117,9 @@ subgroups.")
(inputs (inputs
(list ncurses curl zlib)) (list ncurses curl zlib))
(native-inputs (native-inputs
(list python-cython-0 (list python-cython
python-pytest python-pytest
python-setuptools python-setuptools
python-wheel
;; Dependencies below are are for tests only. ;; Dependencies below are are for tests only.
samtools samtools
bcftools)) bcftools))
+31 -25
View File
@@ -21,14 +21,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bison) (define-module (gnu packages bison)
#:use-module (guix licenses) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (gnu packages flex)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages flex) #: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)) #:use-module (srfi srfi-1))
(define-public bison (define-public bison
@@ -45,24 +46,29 @@
"1wjvbbzrr16k1jlby3l436an3kvv492h08arbnf0gwgprha05flv")))) "1wjvbbzrr16k1jlby3l436an3kvv492h08arbnf0gwgprha05flv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; Building in parallel on many-core systems may cause an error such as (list
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or ;; Building in parallel on many-core systems may cause an error such as
;; directory". See <https://bugs.gnu.org/36238>. ;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
#:parallel-build? #f ;; directory". See <https://bugs.gnu.org/36238>.
;; Similarly, when building tests in parallel, Make may produce this error: #:parallel-build? #f
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file ;; Similarly, when building tests in parallel, Make may produce this error:
;; or directory". Full log in <https://bugs.gnu.org/36238>. ;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
#:parallel-tests? #f ;; or directory". Full log in <https://bugs.gnu.org/36238>.
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread #:parallel-tests? #f
;; but does not link to it. #:configure-flags
,@(if (target-hurd?) ;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
(list #:configure-flags ''("LIBS=-lpthread")) ;; but does not link to it.
'()))) (if (target-hurd?)
(native-inputs (list perl #~(list "LIBS=-lpthread")
;; m4 is not present in PATH when cross-building. #~(list))))
m4)) (native-inputs
(inputs (list flex)) (list perl
(propagated-inputs (list m4)) ;; 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/") (home-page "https://www.gnu.org/software/bison/")
(synopsis "Yacc-compatible parser generator") (synopsis "Yacc-compatible parser generator")
(description (description
@@ -72,4 +78,4 @@ grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages. simple tools through complex programming languages.
Bison also provides an implementation of @command{yacc}, as specified by POSIX.") Bison also provides an implementation of @command{yacc}, as specified by POSIX.")
(license gpl3+))) (license license:gpl3+)))
+272 -306
View File
@@ -37,7 +37,7 @@
#:select (raw-derivation derivation-input derivation->output-path)) #:select (raw-derivation derivation-input derivation->output-path))
#:use-module (guix utils) #:use-module (guix utils)
#:use-module ((guix build utils) #:select (elf-file?)) #: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 monads)
#:use-module (guix memoization) #:use-module (guix memoization)
#:use-module (guix i18n) #:use-module (guix i18n)
@@ -204,10 +204,7 @@ for system '~a'")
(uri (map (cute string-append <> (uri (map (cute string-append <>
(bootstrap-executable-file-name system program)) (bootstrap-executable-file-name system program))
%bootstrap-executable-base-urls)) %bootstrap-executable-base-urls))
;; XXX: In the long term, migrate all boostrap executables to (file-name (string-append "bootstrap-" program))
;; (string-append "bootstrap-" program), and drop the additional
;; file-name argument.
(file-name file-name)
(hash (content-hash bv sha256)))))))) (hash (content-hash bv sha256))))))))
(define* (bootstrap-executable program system #:optional file-name) (define* (bootstrap-executable program system #:optional file-name)
@@ -267,32 +264,33 @@ or false to signal an error."
(version "0") (version "0")
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:guile ,%bootstrap-guile (list
#:modules ((guix build utils)) #:guile %bootstrap-guile
#:builder #:modules '((guix build utils))
(begin #:builder
(use-modules (guix build utils)) #~(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out")) (let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(tar (assoc-ref %build-inputs "tar")) (xz (assoc-ref %build-inputs "bootstrap-xz"))
(xz (assoc-ref %build-inputs "xz")) (tarball (assoc-ref %build-inputs
(tarball (assoc-ref %build-inputs "tarball"))) #$(string-append name ".tar.xz"))))
(mkdir out) (mkdir #$output)
(copy-file tarball "binaries.tar.xz") (copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz") (invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))) (let ((builddir (getcwd)))
(with-directory-excursion out (with-directory-excursion #$output
(invoke tar "xvf" (invoke tar "xvf"
(string-append builddir "/binaries.tar")) (string-append builddir "/binaries.tar"))
,@(if snippet (list snippet) '()) #$@(if snippet (list snippet) '())
(or (not ,program-to-test) (or (not #$program-to-test)
(invoke (string-append "bin/" ,program-to-test) (invoke (string-append "bin/" #$program-to-test)
"--version")))))))) "--version"))))))))
(inputs (inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system))) (list (bootstrap-executable "tar" (%current-system))
("xz" ,(bootstrap-executable "xz" (%current-system))) (bootstrap-executable "xz" (%current-system))
("tarball" ,(bootstrap-origin (source (%current-system)))))) (bootstrap-origin (source (%current-system)))))
(source #f) (source #f)
(synopsis description) (synopsis description)
(description description) (description description)
@@ -635,37 +633,29 @@ $out/bin/guile --version~%"
(_ (_
"/20131110/static-binaries.tar.xz"))) "/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls)) %bootstrap-base-urls))
(file-name "bootstrap-binaries.tar.xz")
(sha256 (sha256
(match system (base32
("x86_64-linux" (match system
(base32 ("x86_64-linux"
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")) "0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")
("i686-linux" ("i686-linux"
(base32 "0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")) ("armhf-linux"
("armhf-linux" "0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")
(base32 ("aarch64-linux"
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")) "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")
("aarch64-linux" ("powerpc64le-linux"
(base32 "0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")) ("i586-gnu"
("powerpc64le-linux" "17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")
(base32 ("x86_64-gnu"
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")) "04zksa2457h1vcl5ry2hyzhhsg8fckvfdgadp0viba3anwms2463")
("i586-gnu" ("powerpc-linux"
(base32 "0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")) ("riscv64-linux"
("x86_64-gnu" "0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
(base32 ("mips64el-linux"
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v"))
("powerpc-linux"
(base32
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
("riscv64-linux"
(base32
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
("mips64el-linux"
(base32
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753")))))) "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
"fgrep" ; the program to test "fgrep" ; the program to test
"Bootstrap binaries of Coreutils, Awk, etc." "Bootstrap binaries of Coreutils, Awk, etc."
@@ -693,6 +683,7 @@ $out/bin/guile --version~%"
"/i686-linux/20190815/" "/i686-linux/20190815/"
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz") "linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
%bootstrap-base-urls)) %bootstrap-base-urls))
(file-name "linux-libre-headers-bootstrap.tar.xz")
(sha256 (sha256
(base32 (base32
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s")))) "0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
@@ -700,63 +691,56 @@ $out/bin/guile --version~%"
"Bootstrap linux-libre-headers")) "Bootstrap linux-libre-headers"))
(define %bootstrap-binutils (define %bootstrap-binutils
(package-from-tarball "binutils-bootstrap" (package-from-tarball
(lambda (system) "binutils-bootstrap"
(origin (lambda (system)
(method url-fetch) (origin
(uri (map (cut string-append <> "/" system (method url-fetch)
(match system (uri (map (cut string-append <> "/" system
("armhf-linux" (match system
"/20150101/binutils-2.25.tar.xz") ("armhf-linux"
("aarch64-linux" "/20150101/binutils-2.25.tar.xz")
"/20170217/binutils-2.27.tar.xz") ("aarch64-linux"
("powerpc64le-linux" "/20170217/binutils-2.27.tar.xz")
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz") ("powerpc64le-linux"
("i586-gnu" "/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz") ("i586-gnu"
("x86_64-gnu" "/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz") ("x86_64-gnu"
("powerpc-linux" "/20241122/binutils-static-stripped-2.41-x86_64-pc-gnu.tar.xz")
"/20200923/binutils-2.35.1.tar.xz") ("powerpc-linux"
("riscv64-linux" "/20200923/binutils-2.35.1.tar.xz")
"/20210725/binutils-2.34.tar.xz") ("riscv64-linux"
(_ "/20210725/binutils-2.34.tar.xz")
"/20131110/binutils-2.23.2.tar.xz"))) (_
%bootstrap-base-urls)) "/20131110/binutils-2.23.2.tar.xz")))
(sha256 %bootstrap-base-urls))
(match system (file-name "binutils-bootstrap.tar.xz")
("x86_64-linux" (sha256
(base32 (base32
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")) (match system
("i686-linux" ("x86_64-linux"
(base32 "1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")) ("i686-linux"
("armhf-linux" "14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")
(base32 ("armhf-linux"
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")) "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")
("aarch64-linux" ("aarch64-linux"
(base32 "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")) ("powerpc64le-linux"
("powerpc64le-linux" "1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")
(base32 ("riscv64-linux"
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")) "0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")
("riscv64-linux" ("i586-gnu"
(base32 "11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")) ("x86_64-gnu"
("i586-gnu" "1fasv76rppnqlshjqc7dbzngic9cqswi5ydzg6w9rc075daqk8kb")
(base32 ("powerpc-linux"
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")) "0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
("x86_64-gnu" ("mips64el-linux"
(base32 "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04")) "ld" ; the program to test
("powerpc-linux" "Bootstrap binaries of the GNU Binutils"))
(base32
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8"))
("mips64el-linux"
(base32
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(define %bootstrap-glibc (define %bootstrap-glibc
;; The initial libc. ;; The initial libc.
@@ -766,99 +750,91 @@ $out/bin/guile --version~%"
(source #f) (source #f)
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:guile ,%bootstrap-guile (list
#:modules ((guix build utils)) #:guile %bootstrap-guile
#:builder #:modules '((guix build utils))
(begin #:builder
(use-modules (guix build utils)) #~(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out")) (let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(tar (assoc-ref %build-inputs "tar")) (xz (assoc-ref %build-inputs "bootstrap-xz"))
(xz (assoc-ref %build-inputs "xz")) (tarball (assoc-ref %build-inputs "glibc.tar.xz")))
(tarball (assoc-ref %build-inputs "tarball")))
(mkdir out) (mkdir #$output)
(copy-file tarball "binaries.tar.xz") (copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz") (invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))) (let ((builddir (getcwd)))
(with-directory-excursion out (with-directory-excursion #$output
(invoke tar "xvf" (invoke tar "xvf"
(string-append builddir (string-append builddir
"/binaries.tar")) "/binaries.tar"))
(chmod "lib" #o755) (chmod "lib" #o755)
;; Patch linker scripts so they refer to the right file-names. ;; Patch linker scripts so they refer to the right file-names.
(substitute* ,(cond ((target-hurd64?) (substitute* #$(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so")) ''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?)) ((and (not (target-hurd?))
(or (target-x86?) (or (target-x86?)
(target-arm?))) (target-arm?)))
''("lib/libc.so" "lib/libpthread.so")) ''("lib/libc.so" "lib/libpthread.so"))
(else (else
''("lib/libc.so"))) ''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix) (("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append out "/lib/" prefix))) (string-append #$output "/lib/" prefix)))
,@(if (target-arm32?) #$@(if (target-arm32?)
`((substitute* "lib/libpthread.so" #~((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") ""))) (("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
`()))))))) #~())))))))
(inputs (inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system))) (list (bootstrap-executable "tar" (%current-system))
("xz" ,(bootstrap-executable "xz" (%current-system))) (bootstrap-executable "xz" (%current-system))
("tarball" ,(bootstrap-origin (bootstrap-origin
(origin (origin
(method url-fetch) (method url-fetch)
(uri (map (cut string-append <> "/" (%current-system) (uri (map (cut string-append <> "/" (%current-system)
(match (%current-system) (match (%current-system)
("armhf-linux" ("armhf-linux"
"/20150101/glibc-2.20.tar.xz") "/20150101/glibc-2.20.tar.xz")
("aarch64-linux" ("aarch64-linux"
"/20170217/glibc-2.25.tar.xz") "/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux" ("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz") "/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu" ("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz") "/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu" ("x86_64-gnu"
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz") "/20241122/glibc-stripped-2.39-x86_64-pc-gnu.tar.xz")
("powerpc-linux" ("powerpc-linux"
"/20200923/glibc-2.32.tar.xz") "/20200923/glibc-2.32.tar.xz")
("riscv64-linux" ("riscv64-linux"
"/20210725/glibc-2.31.tar.xz") "/20210725/glibc-2.31.tar.xz")
(_ (_
"/20131110/glibc-2.18.tar.xz"))) "/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls)) %bootstrap-base-urls))
(sha256 (file-name "glibc.tar.xz")
(match (%current-system) (sha256
("x86_64-linux" (base32
(base32 (match (%current-system)
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")) ("x86_64-linux"
("i686-linux" "0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")
(base32 ("i686-linux"
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")) "1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")
("armhf-linux" ("armhf-linux"
(base32 "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")) ("aarch64-linux"
("aarch64-linux" "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")
(base32 ("powerpc64le-linux"
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")) "1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")
("powerpc64le-linux" ("riscv64-linux"
(base32 "0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")) ("i586-gnu"
("riscv64-linux" "0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")
(base32 ("x86_64-gnu"
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")) "1w4h91kxl64a62l646966i73zp2cj6w4dmyc64fh0c1hhdykxass")
("i586-gnu" ("powerpc-linux"
(base32 "0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")) ("mips64el-linux"
("x86_64-gnu" "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
(base32
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy"))
("powerpc-linux"
(base32
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb"))
("mips64el-linux"
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library") (synopsis "Bootstrap binaries and headers of the GNU C Library")
(description synopsis) (description synopsis)
(home-page #f) (home-page #f)
@@ -873,110 +849,102 @@ $out/bin/guile --version~%"
(source #f) (source #f)
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:guile ,%bootstrap-guile (list
#:modules ((guix build utils)) #:guile %bootstrap-guile
#:builder #:modules '((guix build utils))
(begin #:builder
(use-modules (guix build utils) #~(begin
(ice-9 popen)) (use-modules (guix build utils)
(ice-9 popen))
(let ((out (assoc-ref %outputs "out")) (let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(tar (assoc-ref %build-inputs "tar")) (xz (assoc-ref %build-inputs "bootstrap-xz"))
(xz (assoc-ref %build-inputs "xz")) (bash (assoc-ref %build-inputs "bootstrap-bash"))
(bash (assoc-ref %build-inputs "bash")) (libc (assoc-ref %build-inputs "glibc-bootstrap"))
(libc (assoc-ref %build-inputs "libc")) (tarball (assoc-ref %build-inputs "gcc.tar.xz")))
(tarball (assoc-ref %build-inputs "tarball")))
(mkdir out) (mkdir #$output)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link (copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz") (invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)) (let ((builddir (getcwd))
(bindir (string-append out "/bin"))) (bindir (string-append #$output "/bin")))
(define (wrap-program program) (define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program))) (let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped) (rename-file program wrapped)
(call-with-output-file program (call-with-output-file program
(lambda (p) (lambda (p)
(format p "#!~a (format p "#!~a
exec ~a/bin/~a -B~a/lib \ exec ~a/bin/~a -B~a/lib \
-Wl,-rpath -Wl,~a/lib \ -Wl,-rpath -Wl,~a/lib \
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
bash bash
out wrapped #$output wrapped
libc libc libc libc libc libc
,(glibc-dynamic-linker))))) #$(glibc-dynamic-linker)))))
(chmod program #o555)) (chmod program #o555))
(with-directory-excursion out (with-directory-excursion #$output
(invoke tar "xvf" (invoke tar "xvf"
(string-append builddir "/binaries.tar"))) (string-append builddir "/binaries.tar")))
(with-directory-excursion bindir (with-directory-excursion bindir
(chmod "." #o755) (chmod "." #o755)
(for-each wrap-program (for-each wrap-program
,(if (target-hurd64?) #$(if (target-hurd64?)
''("gcc" "g++") ''("gcc" "g++")
''("gcc"))))))))) ''("gcc")))))))))
(inputs (inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system))) (list (bootstrap-executable "tar" (%current-system))
("xz" ,(bootstrap-executable "xz" (%current-system))) (bootstrap-executable "xz" (%current-system))
("bash" ,(bootstrap-executable "bash" (%current-system))) (bootstrap-executable "bash" (%current-system))
("libc" ,%bootstrap-glibc) %bootstrap-glibc
("tarball" ,(bootstrap-origin (bootstrap-origin
(origin (origin
(method url-fetch) (method url-fetch)
(uri (map (cut string-append <> "/" (%current-system) (uri (map (cut string-append <> "/" (%current-system)
(match (%current-system) (match (%current-system)
("armhf-linux" ("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz") "/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux" ("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz") "/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux" ("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz") "/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu" ("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz") "/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu" ("x86_64-gnu"
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz") "/20241122/gcc-stripped-14.2.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux" ("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz") "/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux" ("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz") "/20210725/gcc-7.5.0.tar.xz")
(_ (_
"/20131110/gcc-4.8.2.tar.xz"))) "/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls)) %bootstrap-base-urls))
(sha256 (file-name "gcc.tar.xz")
(match (%current-system) (sha256
("x86_64-linux" (base32
(base32 (match (%current-system)
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")) ("x86_64-linux"
("i686-linux" "17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")
(base32 ("i686-linux"
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")) "150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")
("armhf-linux" ("armhf-linux"
(base32 "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")) ("aarch64-linux"
("aarch64-linux" "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")
(base32 ("powerpc64le-linux"
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")) "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")
("powerpc64le-linux" ("riscv64-linux"
(base32 "1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")) ("i586-gnu"
("riscv64-linux" "1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")
(base32 ("x86_64-gnu"
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")) "1cgbhc76hlccx6v2z7kk7z173lryyq3la5mmbwivl6hbl1zcqg3m")
("i586-gnu" ("powerpc-linux"
(base32 "1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")) ("mips64el-linux"
("x86_64-gnu" "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
(base32
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz"))
("powerpc-linux"
(base32
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w"))
("mips64el-linux"
(base32
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "C_INCLUDE_PATH") (variable "C_INCLUDE_PATH")
@@ -997,14 +965,12 @@ exec ~a/bin/~a -B~a/lib \
;; own packages. ;; own packages.
(match (%current-system) (match (%current-system)
((or "i686-linux" "x86_64-linux") ((or "i686-linux" "x86_64-linux")
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers))) (list %bootstrap-linux-libre-headers))
(_ (_
`(("libc" ,%bootstrap-glibc) (list %bootstrap-glibc
("gcc" ,%bootstrap-gcc) %bootstrap-gcc
("binutils" ,%bootstrap-binutils) %bootstrap-binutils
("coreutils&co" ,%bootstrap-coreutils&co) %bootstrap-coreutils&co))))
;; In gnu-build-system.scm, we rely on the availability of Bash.
("bash" ,%bootstrap-coreutils&co)))))
(define %bootstrap-inputs-for-tests (define %bootstrap-inputs-for-tests
;; These are bootstrap inputs that are cheap to produce (no compilation ;; These are bootstrap inputs that are cheap to produce (no compilation
+13 -6
View File
@@ -2875,19 +2875,27 @@ a Pytest test execution.")
(define-public python-pytest-mypy-plugins (define-public python-pytest-mypy-plugins
(package (package
(name "python-pytest-mypy-plugins") (name "python-pytest-mypy-plugins")
(version "3.1.2") (version "4.0.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (pypi-uri "pytest-mypy-plugins" version)) (uri (git-reference
(url "https://github.com/TypedDjango/pytest-mypy-plugins")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "1gpynypn13032by633dr2zhng54v2gl09kwgp3ysc4wpwl09pyhl")))) (base32 "05vnv8m4qjrpyxw7f17wng6pnicvaps6vf8c6yn1a8lj10fkwazn"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (arguments
(list (list
#:test-flags #:test-flags
#~(list "-k" (string-join #~(list "-k" (string-join
(list "not reveal_type_extension_is_loaded" (list "not reveal_type_extension_is_loaded"
;; Unsupported operand types for / ("str" and "int")
"test_no_silence_site_packages_only"
"test_no_silence_site_packages_and_modify_pythonpath"
;; subprocess.CalledProcessError
;; pytest not found?
"test_pyproject_toml" "test_pyproject_toml"
"test_ini_files") "test_ini_files")
" and not ")) " and not "))
@@ -2902,8 +2910,7 @@ a Pytest test execution.")
(with-directory-excursion "/tmp" (with-directory-excursion "/tmp"
(apply invoke "pytest" "-v" test-flags)))))))) (apply invoke "pytest" "-v" test-flags))))))))
(native-inputs (native-inputs
(list python-setuptools (list python-setuptools))
python-wheel))
(propagated-inputs (propagated-inputs
(list python-decorator (list python-decorator
python-jinja2 python-jinja2
+1195 -1183
View File
File diff suppressed because it is too large Load Diff
+8 -7
View File
@@ -406,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. ;; Don't attempt to run the tests when cross-compiling.
#:tests? (not (%current-target-system)))) #:tests? (not (%current-target-system))))
(inputs (inputs (if (%current-target-system)
`(,@(if (%current-target-system) (list bash-minimal)
`(("bash" ,bash-minimal)) (list)))
'())))
(outputs '("out" "static")) (outputs '("out" "static"))
(synopsis "High-quality data compression program") (synopsis "High-quality data compression program")
(description (description
@@ -554,7 +553,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(define-public xz (define-public xz
(package (package
(name "xz") (name "xz")
(version "5.4.5") (version "5.8.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version (uri (list (string-append "http://tukaani.org/xz/xz-" version
@@ -563,7 +562,7 @@ formats, including zstd, xz, gzip, and bgzf.")
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1mmpwl4kg1vs6n653gkaldyn43dpbjh8gpk7sk0gps5f6jwr0p0k")))) "0hsmg58a27jd1vq0lc6yp405978c1nfhqwndl7f10v1mk6sjay2h"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@@ -581,7 +580,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(substitute* (string-append out "/lib/liblzma.la") (substitute* (string-append out "/lib/liblzma.la")
(("^old_library='liblzma.a'") "old_library=''")) (("^old_library='liblzma.a'") "old_library=''"))
#t)))))) #t))))))
(outputs '("out" "static")) (outputs '("out" "static" "doc"))
(inputs (inputs
`(,@(if (%current-target-system) `(,@(if (%current-target-system)
`(("bash" ,bash-minimal)) `(("bash" ,bash-minimal))
@@ -598,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 container format. With typical files, XZ Utils create 30 % smaller output
than gzip and 15 % smaller output than bzip2.") than gzip and 15 % smaller output than bzip2.")
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both (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/"))) (home-page "https://tukaani.org/xz/")))
(define-public heatshrink (define-public heatshrink
+72 -75
View File
@@ -567,16 +567,15 @@ the base compiler. Use XBINUTILS as the associated cross-Binutils."
(srfi srfi-26)) (srfi srfi-26))
,@(package-arguments glibc/hurd-headers)) ,@(package-arguments glibc/hurd-headers))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
(add-after 'unpack 'set-cross-headers-path (add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers")) (let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers")) (hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:" (cpath (string-append mach "/include:"
hurd "/include"))) hurd "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths) '#$%gcc-cross-include-paths))))))
#t)))))
((#:configure-flags flags) ((#:configure-flags flags)
`(cons* ,(string-append "--build=" (%current-system)) `(cons* ,(string-append "--build=" (%current-system))
,(string-append "--host=" target) ,(string-append "--host=" target)
@@ -691,80 +690,78 @@ returned."
(name (string-append "glibc-cross-" target)) (name (string-append "glibc-cross-" target))
(arguments (arguments
(substitute-keyword-arguments (substitute-keyword-arguments
`(;; Disable stripping (see above.) `(;; Disable stripping (see above.)
#:strip-binaries? #f #:strip-binaries? #f
;; This package is used as a target input, but it should not have ;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include ;; the usual cross-compilation inputs since that would include
;; itself. ;; itself.
#:implicit-cross-inputs? #f #:implicit-cross-inputs? #f
;; We need SRFI 26. ;; We need SRFI 26.
#:modules ((guix build gnu-build-system) #:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
(srfi srfi-26)) (srfi srfi-26))
,@(package-arguments libc)) ,@(package-arguments libc))
((#:configure-flags flags) ((#:configure-flags flags)
`(cons ,(string-append "--host=" target) #~(cons #$(string-append "--host=" target)
,(if (target-hurd? target) #$(if (target-hurd? target)
`(append (list "--disable-werror") #~(append (list "--disable-werror")
,flags) #$flags)
flags))) flags)))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
(add-before 'configure 'set-cross-kernel-headers-path (add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers")) (let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include"))) (cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths) '#$%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH" (setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ; for Hurd's libihash (string-append kernel "/lib"))))) ; for Hurd's libihash
#t))) (add-before 'configure 'add-cross-binutils-to-PATH
(add-before 'configure 'add-cross-binutils-to-PATH (lambda* (#:key native-inputs inputs #:allow-other-keys)
(lambda* (#:key native-inputs inputs #:allow-other-keys) ;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc ;; -print-prog-name=objdump' returns the correct name. See
;; -print-prog-name=objdump' returns the correct name. See ;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>. (define cross-objdump
(define cross-objdump (search-input-file
(search-input-file (or native-inputs inputs)
(or native-inputs inputs) (string-append #$target "/bin/objdump")))
(string-append ,target "/bin/objdump")))
(define cross-binutils (define cross-binutils
(dirname cross-objdump)) (dirname cross-objdump))
(format #t "adding '~a' to the front of 'PATH'~%" (format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils) cross-binutils)
(setenv "PATH" (string-append cross-binutils ":" (setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH"))))) (getenv "PATH")))))
;; This phase would require running 'localedef' built for ;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition. ;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale) (delete 'install-utf8-c-locale)
,@(if (target-hurd? target) #$@(if (target-hurd? target)
`((add-after 'install 'augment-libc.so #~((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (substitute* (string-append #$output "/lib/libc.so")
(substitute* (string-append out "/lib/libc.so") (("/[^ ]+/lib/libc.so.0.3")
(("/[^ ]+/lib/libc.so.0.3") (string-append #$output "/lib/libc.so.0.3"
(string-append out "/lib/libc.so.0.3" " libmachuser.so libhurduser.so")))))
" libmachuser.so libhurduser.so")))))) (add-after 'install 'create-machine-symlink
(add-after 'install 'create-machine-symlink (lambda _
(lambda* (#:key outputs #:allow-other-keys) (let ((cpu #$(match target
(let* ((out (assoc-ref outputs "out")) ((? target-x86-32?)
(cpu ,(match target "i386")
((? target-x86-32?) ((? target-x86-64?)
"i386") "x86_64")))
((? target-x86-64?)
"x86_64")))
(machine (string-append (machine (string-append
out "/include/mach/machine"))) #$output
(unless (file-exists? machine) "/include/mach/machine")))
(symlink cpu machine)))))) (unless (file-exists? machine)
'()))))) (symlink cpu machine))))))
#~())))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the ;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "kernel-headers" input to point to the right thing. ;; "kernel-headers" input to point to the right thing.
+1 -1
View File
@@ -264,7 +264,7 @@ fast, secure, parallelizable, capable of incremental updates.")
(string-append (string-append
"--prefix=" "--prefix="
(python:site-packages inputs outputs))))))))) (python:site-packages inputs outputs)))))))))
(native-inputs (list python-minimal-wrapper)) (native-inputs (list python-minimal-wrapper python-setuptools))
(synopsis "Decaf Elliptic Curve Library") (synopsis "Decaf Elliptic Curve Library")
(description "The libdecaf library is an implementation of elliptic curve (description "The libdecaf library is an implementation of elliptic curve
cryptography using the Montgomery and Edwards curves Curve25519, Ed25519, cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
+9 -23
View File
@@ -169,43 +169,29 @@ clients.")
(define-public xandikos (define-public xandikos
(package (package
(name "xandikos") (name "xandikos")
(version "0.3.0") (version "0.3.3")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (pypi-uri "xandikos" version)) (uri (git-reference
(url "https://github.com/jelmer/xandikos")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "10j7qmwcrwql4ah6q8si3nf1ljwrx99w8ipiy85bzjd3qz2vackj")))) (base32 "0db02hsdrrxpms9xfy8q5kkgsp5gxrgd15rgdjd5aw7lqpnhhmji"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (arguments
(list (list
#:test-backend #~'unittest
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(replace 'create-entrypoints
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((sitedir (site-packages inputs outputs))
(interpreter (which "python"))
(file-path (string-append #$output "/bin/xandikos")))
(mkdir-p (string-append #$output "/bin"))
(call-with-output-file file-path
(lambda (port)
(format port "#!~a -sP
# Auto-generated entry point script.
import sys
import asyncio
from xandikos.__main__ import main
if __name__ == '__main__':
sys.exit(asyncio.run(main(sys.argv[1:])))~%" interpreter)))
(chmod file-path #o755))))
(add-before 'check 'check-setup (add-before 'check 'check-setup
(lambda _ (lambda _
(setenv "XANDIKOSPATH" (mkdtemp "/tmp/xandikospath-XXXXXX"))))))) (setenv "XANDIKOSPATH" (mkdtemp "/tmp/xandikospath-XXXXXX")))))))
(native-inputs (list python-setuptools)) (native-inputs (list python-pytest python-setuptools))
(propagated-inputs (propagated-inputs
(list python-aiohttp (list python-aiohttp
python-defusedxml python-defusedxml
python-dulwich-0.24 python-dulwich
python-icalendar python-icalendar
python-jinja2 python-jinja2
python-multidict python-multidict
+2 -16
View File
@@ -113,14 +113,7 @@
(for-each (lambda (x) (for-each (lambda (x)
(install-file x "aclocal")) (install-file x "aclocal"))
(find-files "aclocal_java")) (find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments) (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"))))))
#$@(if (or (target-arm?) #$@(if (or (target-arm?)
(target-riscv64?)) (target-riscv64?))
#~((add-after 'unpack 'bdb-configure-patch #~((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) (for-each (lambda (x)
(install-file x "aclocal")) (install-file x "aclocal"))
(find-files "aclocal_java")) (find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments) (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"))))))
(add-before 'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda _ (lambda _
(chdir "dist") (chdir "dist")
+255 -7
View File
@@ -1,18 +1,18 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018-2021, 2023 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018-2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018-2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017-2018, 2021, 2023-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2022, 2023, 2025 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2021-2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2024 Juliana Sims <juli@incana.org> ;;; Copyright © 2024 Juliana Sims <juli@incana.org>
;;; Copyright © 2025, 2026 Cayetano Santos <csantosb@inventati.org> ;;; Copyright © 2025, 2026 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2025-2026 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2022 Konstantinos Agiannis <agiannis.kon@gmail.com> ;;; Copyright © 2022 Konstantinos Agiannis <agiannis.kon@gmail.com>
;;; Copyright © 2015-2025 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015-2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022, 2024, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022, 2024, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org> ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2020-2025 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020-2025 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw> ;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw>
@@ -24,12 +24,22 @@
;;; Copyright © 2022, 2025 Evgeny Pisemsky <mail@pisemsky.site> ;;; Copyright © 2022, 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2025, Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2025, Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018, 2020-2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2025, 2026 Gabriel Wicki <gabriel@erlikon.ch> ;;; Copyright © 2025, 2026 Gabriel Wicki <gabriel@erlikon.ch>
;;; Copyright © 2026 Thomas Kramer <thomas@f-si.org> ;;; Copyright © 2026 Thomas Kramer <thomas@f-si.org>
;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> ;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018, 2020-2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2025 Greg Hogan <code@greghogan.com>
;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2021-2026 Peter Polidoro <peter@polidoro.io>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2025 Thomas Guillermo Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -76,6 +86,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
#:use-module (gnu packages embedded) #:use-module (gnu packages embedded)
@@ -131,6 +142,7 @@
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages regex) #:use-module (gnu packages regex)
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization) #:use-module (gnu packages serialization)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
@@ -145,6 +157,7 @@
#:use-module (gnu packages toolkits) #:use-module (gnu packages toolkits)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
@@ -1053,6 +1066,241 @@ It simulates the netlists of the cells with ngspice and writes the
characterization result in a liberty library file.") characterization result in a liberty library file.")
(license license:agpl3+))) (license license:agpl3+)))
(define-public kicad
(package
(name "kicad")
(version "10.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/code/kicad.git")
(commit version)))
(sha256
(base32
"1470x1276yvd8li3w25zjg73fkpl2qp4dsx7adanafq5c4l47rmc"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
#:tests? #f ;no tests
#:build-type "Release"
#:configure-flags
,#~(list (string-append "-DOCC_INCLUDE_DIR="
#$(file-append opencascade-occt
"/include/opencascade"))
;; Guix uses 'wxwidgets-sans-egl' for KiCad because
;; wxWidgets' EGL canvas support breaks with glew-2.2.
"-DKICAD_WAYLAND=OFF"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DCMAKE_BUILD_TYPE=RelWithDebInfo")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-ngspice-detection
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "eeschema/CMakeLists.txt"
(("NGSPICE_DLL_FILE=\"\\$\\{NGSPICE_DLL_FILE\\}\"")
(string-append "NGSPICE_DLL_FILE=\"libngspice.so\""))
(("NGSPICE_DLL_DIR=\"\\$\\{NGSPICE_DLL_DIR\\}\"")
(string-append "NGSPICE_DLL_DIR=\""
(dirname
(search-input-file inputs
"lib/libngspice.so"))
"\"")))))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python"))
(file (string-append out "/bin/kicad"))
(path (string-append out "/lib/python"
,(version-major+minor (package-version
python))
"/site-packages:"
(getenv "GUIX_PYTHONPATH"))))
(wrap-program file
`("GUIX_PYTHONPATH" ":" prefix
(,path))
`("PATH" ":" prefix
(,(string-append python "/bin:"))))))))))
(native-search-paths
;; Currently, KiCad environment variables are single-valued
;; (see https://gitlab.com/kicad/code/kicad/-/issues/14792).
(list (search-path-specification
(variable "KICAD") ;to find kicad-doc
(files '(""))
(separator #f))
(search-path-specification
(variable "KICAD10_TEMPLATE_DIR")
(files '("share/kicad/template"))
(separator #f))
(search-path-specification
(variable "KICAD10_SYMBOL_DIR")
(files '("share/kicad/symbols"))
(separator #f))
(search-path-specification
(variable "KICAD10_FOOTPRINT_DIR")
(files '("share/kicad/footprints"))
(separator #f))
(search-path-specification
(variable "KICAD10_3DMODEL_DIR")
(files '("share/kicad/3dmodels"))
(separator #f))
(search-path-specification
(variable "KICAD_STOCK_DATA_HOME")
(files '("share/kicad"))
(separator #f))))
(native-inputs (list boost
desktop-file-utils
gettext-minimal
pkg-config
swig-4.0
unixodbc
zlib))
(inputs (list bash-minimal
cairo
curl
gdk-pixbuf
glew
glm
hicolor-icon-theme
gtk+
libgit2
libngspice
libspnav
libsecret
libsm
mesa
nng
opencascade-occt
openssl
poppler
protobuf
python-wrapper
python-wxpython
wxwidgets-sans-egl
(list zstd "lib")))
(home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite")
(description
"Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+)))
(define-public kicad-doc
(package
(name "kicad-doc")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/services/kicad-doc.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1k0ayxsy0nnv9qxkii9yrxs7jx9y3wfjpsv5yl9wql3vdg3qay69"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html"
"-DLANGUAGES=en")
#:tests? #f)) ;no test suite
(native-inputs (list asciidoc
gettext-minimal
git-minimal
perl
perl-unicode-linebreak
perl-yaml-tiny
po4a
ruby-asciidoctor/minimal
source-highlight))
(home-page "https://kicad.org")
(synopsis "KiCad official documentation")
(description "This repository contains the official KiCad documentation.")
(license license:gpl3+)))
(define-public kicad-symbols
(package
(name "kicad-symbols")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-symbols.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0khfnln0f2zsz5hy31nw2rr0nflb2z3s9n9f7g41g03m9l3s43v2"))))
(build-system cmake-build-system)
(native-inputs (list python-wrapper))
(arguments
`(#:tests? #f)) ; no tests exist
(home-page (package-home-page kicad))
(synopsis "Official KiCad schematic symbol libraries")
(description "This package contains the official KiCad schematic symbol
libraries.")
;; TODO: Exception: "To the extent that the creation of electronic designs
;; that use 'Licensed Material' can be considered to be 'Adapted Material',
;; then the copyright holder waives article 3 of the license with respect to
;; these designs and any generated files which use data provided as part of
;; the 'Licensed Material'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
(define-public kicad-footprints
(package
(inherit kicad-symbols)
(name "kicad-footprints")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-footprints.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0ymmd1rzrczpvcqzw1mld9x8xhbka0vvjy3kdqwysg4ri97f5wrm"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
(define-public kicad-packages3d
(package
(inherit kicad-symbols)
(name "kicad-packages3d")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-packages3D.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0k91iw661fpzb7saryjxdcdvk1kis7dhbcpzp7xzjk84i4jvxrp5"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
(define-public kicad-templates
(package
(inherit kicad-symbols)
(name "kicad-templates")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-templates.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0zs29zn8qjgxv0w1vyr8yxmj02m8752zagn4vcraqgik46dwg2id"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
(define-public lepton-eda (define-public lepton-eda
(package (package
(name "lepton-eda") (name "lepton-eda")
+2 -2
View File
@@ -24500,7 +24500,7 @@ It should enable you to implement low-level X11 applications.")
(lambda _ (lambda _
(format #t "#!~a ~@ (format #t "#!~a ~@
~a +SI:localuser:$USER ~@ ~a +SI:localuser:$USER ~@
exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%" exec ~a --exit-with-session ~a \"$@\" -mm --eval '~s' ~%"
(search-input-file inputs "/bin/sh") (search-input-file inputs "/bin/sh")
(search-input-file inputs "/bin/xhost") (search-input-file inputs "/bin/xhost")
(search-input-file inputs "/bin/dbus-launch") (search-input-file inputs "/bin/dbus-launch")
@@ -24510,7 +24510,7 @@ It should enable you to implement low-level X11 applications.")
(load-file "~/.exwm")) (load-file "~/.exwm"))
((not (featurep 'exwm)) ((not (featurep 'exwm))
(require 'exwm) (require 'exwm)
(exwm-enable) (exwm-wm-mode)
(message (message
"exwm configuration not found. "exwm configuration not found.
Falling back to minimal configuration. Falling back to minimal configuration.
+240
View File
@@ -29,6 +29,7 @@
;;; Copyright © 2026 Nikita Alkhovik <forgoty13@gmail.com> ;;; Copyright © 2026 Nikita Alkhovik <forgoty13@gmail.com>
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu> ;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu>
;;; Copyright © 20212023, 2026 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -4715,6 +4716,245 @@ emulator framework based on QEMU.")
(sha256 (sha256
(base32 "0mlfs8qfi0clyncfkbxp6in0cpl747510i6bqymwid43xcirbikz")))))) (base32 "0mlfs8qfi0clyncfkbxp6in0cpl747510i6bqymwid43xcirbikz"))))))
(define-public (aemu-postoffice-source commit sha256-hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Kethen/aemu_postoffice")
(commit commit)))
(file-name "aemu-postoffice-source")
(sha256 sha256-hash)))
(define-public (libchdr-source commit sha256-hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rtissera/libchdr")
(commit commit)))
(file-name "libchdr-source")
(sha256 sha256-hash)))
(define-public (rcheevos-source commit sha256-hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/RetroAchievements/rcheevos/")
(commit commit)))
(file-name "rcheevos-source")
(sha256 sha256-hash)))
(define-public ppsspp
(package
(name "ppsspp")
(version "1.20.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hrydgard/ppsspp")
(commit (string-append "v" version))))
(sha256
(base32 "186d2jc6h6xmiqnrifq4xcw0g3fv1slcnvs5mzzxcnfk7ljr6r6p"))
(file-name (git-file-name name version))
(patches
(search-patches "ppsspp-disable-upgrade-and-gold.patch"))
(modules '((guix build utils)))
(snippet
`(begin
;; The following is quite a heavy-handed way of unbundling PPSSPP.
;; There are still a number of external sources, that we don't
;; remove here. Some may be packaged, others are not.
;; First, we patch existing sources to include the right headers.
(substitute* (append (find-files "Common" ".*\\.(h|cpp)")
(find-files "Core" ".*\\.(h|cpp)")
(find-files "GPU" ".*\\.(h|cpp)")
(find-files "SDL" ".*\\.(h|cpp)")
(find-files "UI" ".*\\.(h|cpp)"))
;; These headers are all hard-coded in the original source.
(("ext/cityhash/") "")
(("ext/cpu_features/include/") "cpu_features/")
(("ext/glslang/glslang/") "glslang/")
(("ext/glslang/") "glslang/")
(("ext/miniupnp/") "")
(("ext/nanosvg/src") "nanosvg")
(("ext/rapidjson/include/") "")
(("ext/SPIRV-Cross/") "spirv_cross/")
(("ext/vulkan/") "vulkan/")
(("ext/xxhash.h") "xxhash.h")
;; These definitions do not actually exist in the Vulkan headers,
;; but PPSSPP defines them in ext/vulkan.
(("VK_FORMAT_BEGIN_RANGE") "VK_FORMAT_UNDEFINED")
(("VK_FORMAT_END_RANGE") "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"))
;; Next, we patch CMakeLists.
(substitute* "CMakeLists.txt"
;; Drop unnecessary includes and targets.
(("include_directories\\(ext/glslang\\)") "")
(("target_include_directories\\(.*ext/xxhash\\)") "")
(("target_include_directories\\(.*ext/cityhash\\)") "")
(("set_target_properties\\(cityhash .*\\)") "")
(("target_compile_options\\(cityhash .*\\)") "")
;; Fix linking to GLEW.
(("TARGET Ext::GLEW") "true")
(("target_link_libraries\\((Common|native) Ext::GLEW\\)" all lib)
(string-append "find_package(GLEW)\n"
"target_link_libraries(" lib " GLEW::GLEW)"))
(("Ext::Snappy") "snappy")
(("OGLCompiler") "")
(("OSDependent") "")
;; Don't search for cityhash/xxhash, we already have them.
(("add_library\\((city|xx)hash STATIC") "if()\nendif(")
(("ext/xxhash\\.[ch]") "")
(("ext/cityhash/.*\\.(cpp|h)") "")
;; Drop remaining references to GOLD.
(("UI/IAPScreen\\.(cpp|h)") "")
;; Link all of spirv-cross.
(("spirv-cross-glsl" all)
(string-append all
" spirv-cross-core spirv-cross-cpp"
" spirv-cross-reflect spirv-cross-util")))
(substitute* "ext/CMakeLists.txt"
(("add_subdirectory\\(cmake.*") "")
(("add_subdirectory\\(freetype.*") "")
(("add_subdirectory\\(glew.*") "")
(("add_subdirectory\\(glslang.*") "")
(("add_subdirectory\\(snappy.*") "")
(("add_subdirectory\\(SPIRV-Cross-build.*") "")
(("add_subdirectory\\(zstd.*") ""))
;; Finally, we can delete the bundled sources…
(for-each delete-file-recursively
'("ext/cmake"
"ext/glew"
"ext/glslang" "ext/glslang-build"
"ext/miniupnp" "ext/miniupnp-build"
"ext/native"
"ext/snappy"
"ext/SPIRV-Cross" "ext/SPIRV-Cross-build"
"ext/vulkan"
"ext/xxhash.c"
"ext/xxhash.h"
"ext/zlib"
"ext/zstd"))
;; … as well as the remaining files referencing GOLD.
(for-each delete-file
'("UI/IAPScreen.cpp"
"UI/IAPScreen.h"
"ios/IAPManager.mm"
"ios/IAPManager.h"))
;; Since we are not including git as an input, PPSSPP is confused
;; about its version. Let's fix that here.
(substitute* "git-version.cmake"
(("unknown") ,version))))))
(build-system cmake-build-system)
(arguments
(list
#:out-of-source? #f
#:configure-flags #~(list "-DARMIPS_USE_STD_FILESYSTEM=ON" ; from armips
"-DUSE_DISCORD=OFF"
"-DUSE_SYSTEM_FFMPEG=ON"
"-DUSE_SYSTEM_LIBZIP=ON"
"-DUSE_SYSTEM_MINIUPNPC=ON"
"-DUSE_SYSTEM_ZSTD=ON"
;; for testing
"-DUNITTEST=ON" "-DHEADLESS=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'set-paths 'add-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(dirname (search-input-file inputs
"include/SDL2/SDL.h"))
":"
(getenv "CPLUS_INCLUDE_PATH")))))
(add-after 'unpack 'add-external-sources
(lambda* (#:key inputs #:allow-other-keys)
;; TODO: unbundle armips.
(copy-recursively #$(package-source armips) "ext/armips")
;; XXX: Lua 5.4 is missing lapi.h, so we have to bundle it 😫
(with-directory-excursion "ext/lua"
(invoke "tar" "xvf" #$(package-source lua-5.4)
"--strip-components=2"))
(copy-recursively
#$(this-package-native-input "aemu-postoffice-source")
"ext/aemu_postoffice")
;; No public release, leave bundled for now.
(copy-recursively
#$(this-package-native-input "libchdr-source")
"ext/libchdr")
;; TODO: Unbundle rcheevos.
(copy-recursively
#$(this-package-native-input "rcheevos-source")
"ext/rcheevos")))
(add-after 'unpack 'fix-shader
(lambda _
(substitute* (find-files "Common/GPU/" "\\.cpp$")
(("#include \"glslang/SPIRV/GlslangToSpv\\.h\"" all)
(string-append "#include <glslang/Public/ShaderLang.h>\n"
all)))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin/ppsspp (string-append out "/bin/ppsspp"))
(share (string-append out "/share/ppsspp")))
(copy-recursively "icons/hicolor"
(string-append out "/share/icons/hicolor"))
(install-file "PPSSPPSDL" share)
(copy-recursively "assets" (string-append share "/assets"))
(make-desktop-entry-file
(string-append out "/share/applications/ppsspp.desktop")
#:name "PPSSPP"
#:exec (string-append share "/PPSSPPSDL")
#:icon "ppsspp")
(mkdir-p (string-append out "/bin"))
(with-output-to-file bin/ppsspp
(lambda ()
(format #t "#!~a~%exec ~a/PPSSPPSDL \"$@\""
(search-input-file inputs "/bin/bash") share)))
(chmod bin/ppsspp #o755)))))))
(native-inputs
(list pkg-config python
(package-source lua-5.4)
(aemu-postoffice-source
"2026-03-16"
(base32 "072w3jf87s8b00kp8nvscrggn1wq7nv37xfm527h2rg2sm57irp3"))
(libchdr-source
"8bba7745d758627258b315997a860039244cedaf"
(base32 "05syp2mk6m9mdvg7qq0wd612apps615x71kv6im9pxd2f76k1wy3"))
(rcheevos-source
"v12.3.0"
(base32 "09h9n7znl2ajkicshv4scawjb9zz3v9aka8986j9sg5y02a4h3wf"))))
(inputs (list bash
cityhash
cpu-features
ffmpeg
glew
glslang
libpng
libzip
;; lua-5.4
mesa
miniupnpc
nanosvg
openxr
rapidjson
sdl2
sdl2-ttf
snappy
spirv-cross
vulkan-headers
vulkan-loader
wayland
xxhash
zlib
`(,zstd "lib")))
(home-page "https://www.ppsspp.org/")
(synopsis "PSP emulator")
(description
"PPSSPP is a ``high-level'' emulator simulating the PSP operating
system.")
(license license:gpl2+)))
(define-public exomizer (define-public exomizer
(package (package
(name "exomizer") (name "exomizer")
+7 -5
View File
@@ -48,7 +48,7 @@
(define-public nuspell (define-public nuspell
(package (package
(name "nuspell") (name "nuspell")
(version "5.1.4") (version "5.1.7")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -58,12 +58,14 @@
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "05j1hmczy6v9dyxp77vxhgyl7y5hff3v45vlp86gyh7m9lgqpmra")))) (base32 "1xvy8qrpw1282akr873xzja61afnr27f1gab6jc4cgy8pkfqq308"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(if (%current-target-system) (list #:configure-flags
(list #:configure-flags #~(list "-DBUILD_TESTING=OFF")) #~(list "-DBUILD_DOCS=OFF" ;do not pull Pandoc
'())) #$@(if (%current-target-system)
'("-DBUILD_TESTING=OFF")
'()))))
(native-inputs (list catch2-3 pkg-config)) (native-inputs (list catch2-3 pkg-config))
(propagated-inputs (list icu4c)) (propagated-inputs (list icu4c))
(native-search-paths (list (search-path-specification (native-search-paths (list (search-path-specification
+12 -240
View File
@@ -135,6 +135,7 @@
#:use-module (gnu packages imagemagick) #:use-module (gnu packages imagemagick)
#:use-module (gnu packages javascript) #:use-module (gnu packages javascript)
#:use-module (gnu packages jupyter) #:use-module (gnu packages jupyter)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages kde-frameworks) #:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libcanberra) #:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
@@ -998,233 +999,6 @@ The viewer can be used interactively with a REPL (for example Geiser in
Emacs).") Emacs).")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public kicad
(package
(name "kicad")
(version "9.0.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/code/kicad.git")
(commit version)))
(sha256
(base32
"1b995p0qb9cjpj0n3x3szbqr6d7fxwmrp2nbx37y7ym2bc1lpxd8"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
#:tests? #f ;no tests
#:build-type "Release"
#:configure-flags
,#~(list "-DKICAD_SCRIPTING_PYTHON3=ON"
(string-append "-DOCC_INCLUDE_DIR="
#$(this-package-input "opencascade-occt")
"/include/opencascade")
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DKICAD_USE_EGL=OFF"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DCMAKE_BUILD_TYPE=RelWithDebInfo")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-ngspice-detection
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "eeschema/CMakeLists.txt"
(("NGSPICE_DLL_FILE=\"\\$\\{NGSPICE_DLL_FILE\\}\"")
(string-append "NGSPICE_DLL_FILE=\""
(assoc-ref inputs "libngspice")
"/lib/libngspice.so\"")))))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python"))
(file (string-append out "/bin/kicad"))
(path (string-append out "/lib/python"
,(version-major+minor (package-version
python))
"/site-packages:"
(getenv "GUIX_PYTHONPATH"))))
(wrap-program file
`("GUIX_PYTHONPATH" ":" prefix
(,path))
`("PATH" ":" prefix
(,(string-append python "/bin:"))))))))))
(native-search-paths
;; Currently, KiCad environment variables are single-valued
;; (see https://gitlab.com/kicad/code/kicad/-/issues/14792).
(list (search-path-specification
(variable "KICAD") ;to find kicad-doc
(files '(""))
(separator #f))
(search-path-specification
(variable "KICAD9_TEMPLATE_DIR")
(files '("share/kicad/template"))
(separator #f))
(search-path-specification
(variable "KICAD9_SYMBOL_DIR")
(files '("share/kicad/symbols"))
(separator #f))
(search-path-specification
(variable "KICAD9_FOOTPRINT_DIR")
(files '("share/kicad/footprints"))
(separator #f))
(search-path-specification
(variable "KICAD9_3DMODEL_DIR")
(files '("share/kicad/3dmodels"))
(separator #f))
(search-path-specification
(variable "KICAD_STOCK_DATA_HOME")
(files '("share/kicad"))
(separator #f))))
(native-inputs (list boost
desktop-file-utils
gettext-minimal
pkg-config
swig-4.0
unixodbc
zlib))
(inputs (list bash-minimal
cairo
curl
glew
glm
hicolor-icon-theme
libngspice
libsm
libgit2
libsecret
mesa
opencascade-occt
openssl
python-wrapper
gtk+
wxwidgets-sans-egl
nng
python-wxpython
protobuf
gdk-pixbuf
(list zstd "lib")))
(home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite")
(description
"Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+)))
(define-public kicad-doc
(package
(name "kicad-doc")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/services/kicad-doc.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"07g80p1igp8j3kh3qpmqd150i9950w1143yhncwik2ypccwjdfjy"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
#:tests? #f)) ;no test suite
(native-inputs (list asciidoc
gettext-minimal
git-minimal
perl
perl-unicode-linebreak
perl-yaml-tiny
po4a
ruby-asciidoctor/minimal
source-highlight))
(home-page "https://kicad.org")
(synopsis "KiCad official documentation")
(description "This repository contains the official KiCad documentation.")
(license license:gpl3+)))
(define-public kicad-symbols
(package
(name "kicad-symbols")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-symbols.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"08qb4rqxsyhrcvj1k200m2c06jjy7jwjmf9n1qkcm0biqqc5dba4"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
(home-page (package-home-page kicad))
(synopsis "Official KiCad schematic symbol libraries")
(description "This package contains the official KiCad schematic symbol
libraries.")
;; TODO: Exception: "To the extent that the creation of electronic designs
;; that use 'Licensed Material' can be considered to be 'Adapted Material',
;; then the copyright holder waives article 3 of the license with respect to
;; these designs and any generated files which use data provided as part of
;; the 'Licensed Material'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
(define-public kicad-footprints
(package
(inherit kicad-symbols)
(name "kicad-footprints")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-footprints.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1w7dkb93s84ymi1syxpzacbmkxlnlh0k4z1c62nabspb901nn524"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
(define-public kicad-packages3d
(package
(inherit kicad-symbols)
(name "kicad-packages3d")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-packages3D.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1j26dmgz7xfixlqrzclb1wpc6zkd10n1fq7rmdrgwwx083p3c7a8"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
(define-public kicad-templates
(package
(inherit kicad-symbols)
(name "kicad-templates")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-templates.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0zs29zn8qjgxv0w1vyr8yxmj02m8752zagn4vcraqgik46dwg2id"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
(define-public librseq (define-public librseq
;; There's no release. ;; There's no release.
(let ((commit "c3ed6b64bbe1944bd8de8b9fde14e7c290f02a90") (let ((commit "c3ed6b64bbe1944bd8de8b9fde14e7c290f02a90")
@@ -2947,16 +2721,17 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(define-public freecad (define-public freecad
(package (package
(name "freecad") (name "freecad")
(version "1.0.2") (version "1.1.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/FreeCAD/FreeCAD") (url "https://github.com/FreeCAD/FreeCAD")
(commit version))) (commit version)
(recursive? #t))) ;needed for the AddonManager
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1zyz473fzrz9h073wp4k65qq4bkhqsp245nsv6nv186sl78l99xa")) (base32 "029ndw1dypx0xhs4fyiinf7gpk8am0vm9b24idvdsx9x7ghrqz4j"))
(snippet (snippet
#~(begin #~(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
@@ -2973,7 +2748,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
#:configure-flags #:configure-flags
#~(list #~(list
"-DBUILD_FLAT_MESH:BOOL=ON" "-DBUILD_FLAT_MESH:BOOL=ON"
"-DBUILD_ENABLE_CXX_STD:STRING=C++17" "-DBUILD_ENABLE_CXX_STD:STRING=C++20" ; FreeCAD 1.1 requires C++20
"-DENABLE_DEVELOPER_TESTS=OFF" ;; see the above: #:tests? comment "-DENABLE_DEVELOPER_TESTS=OFF" ;; see the above: #:tests? comment
"-DFREECAD_QT_VERSION=6" ;; Build with Qt6 "-DFREECAD_QT_VERSION=6" ;; Build with Qt6
"-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=ON" ;; unbundle ondsel-solver "-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=ON" ;; unbundle ondsel-solver
@@ -2995,12 +2770,13 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(list c++-gsl (list c++-gsl
doxygen doxygen
graphviz graphviz
pybind11
qttools qttools
pkg-config pkg-config
swig-4.0)) swig-4.4))
(inputs (inputs
(list bash-minimal (list bash-minimal
boost-1.83 boost
coin3d coin3d
double-conversion double-conversion
eigen eigen
@@ -3010,6 +2786,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
gl2ps gl2ps
glew glew
hdf5-1.10 hdf5-1.10
icu4c
jsoncpp jsoncpp
libarea libarea
libjpeg-turbo libjpeg-turbo
@@ -3032,16 +2809,14 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
python-ply python-ply
python-pyside-6 python-pyside-6
python-pyyaml python-pyyaml
python-shiboken-6
python-wrapper python-wrapper
qtsvg qtsvg
qtwebchannel qtwebchannel
qtwebengine qtwebengine
qtwayland qtwayland
qtx11extras
sqlite sqlite
onetbb ;same version as opencascade-occt onetbb ;same version as opencascade-occt
vtk-9.5 vtk
xerces-c xerces-c
yaml-cpp yaml-cpp
zlib)) zlib))
@@ -4211,13 +3986,10 @@ G-codes to binary and vice versa.")
openvdb openvdb
pango pango
prusa-libbgcode prusa-libbgcode
;; XXX: Using Prusa wxWidgets fork as PrusaSlicer segfaults when compiled wxwidgets
;; with regular wxwidgets.
prusa-wxwidgets
qhull qhull
onetbb onetbb
webkitgtk-for-gtk3 webkitgtk-for-gtk3
webkitgtk-with-libsoup2
z3 z3
zlib)) zlib))
(home-page "https://www.prusa3d.com/prusaslicer/") (home-page "https://www.prusa3d.com/prusaslicer/")
+3 -3
View File
@@ -427,7 +427,7 @@ ones.")
(define-public fsarchiver (define-public fsarchiver
(package (package
(name "fsarchiver") (name "fsarchiver")
(version "0.8.7") (version "0.8.9")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -437,10 +437,10 @@ ones.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1vy8ay0fn32i298bx9scqghi7xm9z2101zxk5xshbrkl00b2m4nm")))) (base32 "0wyq140yzhhqzg364ai7m21z2kgvyi6dmqlw5ycblryf0zkvd7vq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake pkg-config)) (list autoconf-2.72 automake pkg-config))
(inputs (inputs
(list bzip2 (list bzip2
e2fsprogs e2fsprogs
+23 -23
View File
@@ -26,6 +26,7 @@
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
@@ -43,18 +44,9 @@
"flex-" version ".tar.gz")) "flex-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8")))) "15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))
(patches (search-patches "flex-fix-make-dependencies.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs
(let ((bison-for-tests
(package
(inherit bison)
(arguments
;; Disable tests, since they require flex.
(substitute-keyword-arguments arguments
((#:tests? _ #f) #f)))
(inputs (alist-delete "flex" (package-inputs bison))))))
`(("bison" ,bison-for-tests))))
(arguments (arguments
(if (%current-target-system) (if (%current-target-system)
(list #:configure-flags (list #:configure-flags
@@ -63,21 +55,29 @@
'())) '()))
;; m4 is not present in PATH when cross-building ;; m4 is not present in PATH when cross-building
(native-inputs (native-inputs
(list help2man m4)) (let ((bison-for-tests
(package
(inherit bison)
(arguments
;; Disable tests, since they require flex.
(substitute-keyword-arguments arguments
((#:tests? _ #f) #f)))
(inputs (modify-inputs inputs
(delete "flex"))))))
(list bison-for-tests help2man m4)))
(propagated-inputs (list m4)) (propagated-inputs (list m4))
(home-page "https://github.com/westes/flex") (home-page "https://github.com/westes/flex")
(synopsis "Fast lexical analyser generator") (synopsis "Fast lexical analyser generator")
(description (description
"Flex is a tool for generating scanners. A scanner, sometimes "Flex is a tool for generating scanners. A scanner, sometimes called a
called a tokenizer, is a program which recognizes lexical patterns in tokenizer, is a program which recognizes lexical patterns in text. The flex
text. The flex program reads user-specified input files, or its standard program reads user-specified input files, or its standard input if no file
input if no file names are given, for a description of a scanner to names are given, for a description of a scanner to generate. The description
generate. The description is in the form of pairs of regular expressions is in the form of pairs of regular expressions and C code, called rules. Flex
and C code, called rules. Flex generates a C source file named, generates a C source file named @file{lex.yy.c}, which defines the function
\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\" @code{yylex()}. The @file{lex.yy.c} can be compiled and linked to produce an
can be compiled and linked to produce an executable. When the executable executable. When the executable is run, it analyzes its input for occurrences
is run, it analyzes its input for occurrences of text matching the of text matching the regular expressions for each rule. Whenever it finds a
regular expressions for each rule. Whenever it finds a match, it match, it executes the corresponding C code.")
executes the corresponding C code.")
(license (non-copyleft "file://COPYING" (license (non-copyleft "file://COPYING"
"See COPYING in the distribution.")))) "See COPYING in the distribution."))))
+2 -2
View File
@@ -3847,7 +3847,7 @@ arrows and custom ligatures for @code{TODO:} and @code{NOTE:}.")
(define-public font-monaspace (define-public font-monaspace
(package (package
(name "font-monaspace") (name "font-monaspace")
(version "1.301") (version "1.400")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -3857,7 +3857,7 @@ arrows and custom ligatures for @code{TODO:} and @code{NOTE:}.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0f6i9v2m7x5zjdfwmcj180nmgxzlnbk2z0x7yv5sbdcrvndz1lzj")))) "1rldcci0nh5zqqcmj8mfqsv7c8bqy2nxgfn8gk4zsxvgdbxa79vk"))))
(build-system font-build-system) (build-system font-build-system)
(outputs '("out" "ttf" "woff")) (outputs '("out" "ttf" "woff"))
(home-page "https://monaspace.githubnext.com") (home-page "https://monaspace.githubnext.com")
+2 -2
View File
@@ -1457,7 +1457,7 @@ fullscreen) or other display servers.")
(define-public wayland-protocols (define-public wayland-protocols
(package (package
(name "wayland-protocols") (name "wayland-protocols")
(version "1.45") (version "1.47")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@@ -1466,7 +1466,7 @@ fullscreen) or other display servers.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1d2fv41vq75pvgkd3ykjypnp8zv0afv71p36cd91h19lbmwaia8h")))) "0i30fp6p03qrvv4msm9yj39sk6gmcryp3q6x29v2wycbv27wsgmw"))))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (inputs
(list wayland)) (list wayland))
+4 -4
View File
@@ -41,13 +41,13 @@
(define-public gawk (define-public gawk
(package (package
(name "gawk") (name "gawk")
(version "5.3.0") (version "5.3.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-" version (uri (string-append "mirror://gnu/gawk/gawk-" version
".tar.xz")) ".tar.xz"))
(sha256 (sha256
(base32 "02x97iyl9v84as4rkdrrkfk2j4vy4r3hpp3rkp3gh3qxs79id76a")))) (base32 "1k699kfajwzw4dyw1m9h9kld1gdv00nfy04b2f952w6y15jlihzq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:phases (list #:phases
@@ -56,7 +56,7 @@
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Refer to the right shell. ;; Refer to the right shell.
(let ((/bin/sh (search-input-file inputs "bin/sh"))) (let ((/bin/sh (search-input-file inputs "bin/sh")))
(substitute* "io.c" (substitute* '("io.c" "builtin.c")
(("/bin/sh") /bin/sh)) (("/bin/sh") /bin/sh))
;; When cross-compiling, remove dependencies on the ;; When cross-compiling, remove dependencies on the
@@ -73,7 +73,7 @@
;; Remove dependency on 'more' (from util-linux), which ;; Remove dependency on 'more' (from util-linux), which
;; would needlessly complicate bootstrapping. ;; would needlessly complicate bootstrapping.
(substitute* "test/Makefile" (substitute* "test/Makefile"
(("\\| more") "")) (("\\| \\$\\$\\{PAGER:-more\\}") ""))
;; Adjust the shebang in that file since it is then diff'd ;; Adjust the shebang in that file since it is then diff'd
;; against the actual test output. ;; against the actual test output.
+252 -261
View File
@@ -80,16 +80,16 @@ where the OS part is overloaded to denote a specific ABI---into GCC
(cond ((string-match "^mips64el.*gnuabin?64$" target) (cond ((string-match "^mips64el.*gnuabin?64$" target)
;; Triplets recognized by glibc as denoting the N64 ABI; see ;; Triplets recognized by glibc as denoting the N64 ABI; see
;; ports/sysdeps/mips/preconfigure. ;; ports/sysdeps/mips/preconfigure.
'("--with-abi=64")) #~(list "--with-abi=64"))
((string-match "^arm.*-gnueabihf$" target) ((string-match "^arm.*-gnueabihf$" target)
'("--with-arch=armv7-a" #~(list "--with-arch=armv7-a"
"--with-float=hard" "--with-float=hard"
"--with-mode=thumb" "--with-mode=thumb"
"--with-fpu=neon")) "--with-fpu=neon"))
((string-match "x86_64-linux-gnux32" target) ((string-match "x86_64-linux-gnux32" target)
'("--with-abi=mx32")) #~(list "--with-abi=mx32"))
((and (string-suffix? "-gnu" target) ((and (string-suffix? "-gnu" target)
(not (string-contains target "-linux"))) (not (string-contains target "-linux")))
@@ -97,36 +97,24 @@ where the OS part is overloaded to denote a specific ABI---into GCC
;; with: ;; with:
;; libcilkrts/runtime/os-unix.c:388:2: error: #error "Unknown architecture" ;; libcilkrts/runtime/os-unix.c:388:2: error: #error "Unknown architecture"
;; Cilk has been removed from GCC 8 anyway. ;; Cilk has been removed from GCC 8 anyway.
'("--disable-libcilkrts")) #~(list "--disable-libcilkrts"))
;; glibc needs the 128-bit long double type on these architectures. ;; glibc needs the 128-bit long double type on these architectures.
((or (string-prefix? "powerpc64le-" target) ((or (string-prefix? "powerpc64le-" target)
(string-prefix? "powerpc-" target)) (string-prefix? "powerpc-" target))
'("--with-long-double-128")) #~(list "--with-long-double-128"))
;; GCC 11.3.0's <libgcov.h> includes <sys/mman.h>, which MinGW lacks: ;; GCC 11.3.0's <libgcov.h> includes <sys/mman.h>, which MinGW lacks:
;; <https://bugs.gentoo.org/show_bug.cgi?id=843989>. ;; <https://bugs.gentoo.org/show_bug.cgi?id=843989>.
((target-mingw? target) ((target-mingw? target)
'("--disable-gcov")) #~(list "--disable-gcov"))
(else (else
;; TODO: Add `arm.*-gnueabi', etc. ;; TODO: Add `arm.*-gnueabi', etc.
'()))) #~(list))))
(define-public gcc-base (define-public gcc-base
(let* ((stripped? #t) ;whether to strip the compiler, not the libraries (let* ((stripped? #t) ;whether to strip the compiler, not the libraries
(maybe-target-tools
(lambda ()
;; Return the `_FOR_TARGET' variables that are needed when
;; cross-compiling GCC.
(let ((target (%current-target-system)))
(if target
(map (lambda (var tool)
(string-append (string-append var "_FOR_TARGET")
"=" target "-" tool))
'("CC" "CXX" "LD" "AR" "NM" "OBJDUMP" "RANLIB" "STRIP")
'("gcc" "g++" "ld" "ar" "nm" "objdump" "ranlib" "strip"))
'()))))
(libdir (libdir
(let ((base '(or (assoc-ref outputs "lib") (let ((base '(or (assoc-ref outputs "lib")
(assoc-ref outputs "out")))) (assoc-ref outputs "out"))))
@@ -134,45 +122,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC
;; Return the directory that contains lib/libgcc_s.so et al. ;; Return the directory that contains lib/libgcc_s.so et al.
(if (%current-target-system) (if (%current-target-system)
`(string-append ,base "/" ,(%current-target-system)) `(string-append ,base "/" ,(%current-target-system))
base)))) base)))))
(configure-flags
(lambda ()
;; This is terrible. Since we have two levels of quasiquotation,
;; we have to do this convoluted thing just so we can insert the
;; contents of (maybe-target-tools).
(list 'quasiquote
(append
'("--enable-plugin"
"--enable-languages=c,c++,objc,obj-c++"
"--disable-multilib"
"--with-system-zlib"
;; No pre-compiled libstdc++ headers, to save space.
"--disable-libstdcxx-pch"
"--with-local-prefix=/no-gcc-local-prefix"
;; With a separate "lib" output, the build system
;; incorrectly guesses GPLUSPLUS_INCLUDE_DIR, so force
;; it. (Don't use a versioned sub-directory, that's
;; unnecessary.)
,(string-append "--with-gxx-include-dir="
(assoc-ref %outputs "out")
"/include/c++")
,(let ((libc (assoc-ref %build-inputs "libc")))
(if libc
(string-append "--with-native-system-header-dir=" libc
"/include")
"--without-headers")))
;; Pass the right options for the target triplet.
(let ((triplet
(or (%current-target-system)
(nix-system->gnu-triplet (%current-system)))))
(gcc-configure-flags-for-triplet triplet))
(maybe-target-tools))))))
(hidden-package (hidden-package
(package (package
(name "gcc") (name "gcc")
@@ -202,201 +152,239 @@ where the OS part is overloaded to denote a specific ABI---into GCC
texinfo-5)) texinfo-5))
(arguments (arguments
`(#:out-of-source? #t (list
#:configure-flags ,(configure-flags) #:out-of-source? #t
#:configure-flags
#~(append
(list "--enable-plugin"
"--enable-languages=c,c++,objc,obj-c++"
"--disable-multilib"
"--with-system-zlib"
#:make-flags ;; No pre-compiled libstdc++ headers, to save space.
;; None of the flags below are needed when doing a Canadian cross. "--disable-libstdcxx-pch"
;; TODO: Simplify this.
,(if (%current-target-system)
(if stripped?
''("CFLAGS=-g0 -O2")
''())
`(let* ((libc (assoc-ref %build-inputs "libc"))
(libc-native (or (assoc-ref %build-inputs "libc-native")
libc)))
`(,@(if libc
(list (string-append "LDFLAGS_FOR_TARGET="
"-B" libc "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc
,(glibc-dynamic-linker)))
'())
;; Native programs like 'genhooks' also need that right. "--with-local-prefix=/no-gcc-local-prefix"
,(string-append "LDFLAGS="
"-Wl,-rpath=" libc-native "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc-native ,(glibc-dynamic-linker))
,(string-append "BOOT_CFLAGS=-O2 "
,(if stripped? "-g0" "-g")))))
#:tests? #f ;; With a separate "lib" output, the build system
;; incorrectly guesses GPLUSPLUS_INCLUDE_DIR, so force
;; it. (Don't use a versioned sub-directory, that's
;; unnecessary.)
(string-append "--with-gxx-include-dir="
#$output "/include/c++")
#:phases (let ((libc (assoc-ref %build-inputs "libc")))
(modify-phases %standard-phases (if libc
(add-before 'configure 'relax-gcc-14s-strictness (string-append "--with-native-system-header-dir=" libc
(lambda* (#:key inputs #:allow-other-keys) "/include")
(let ((bash (assoc-ref inputs "bash")) "--without-headers")))
(wrapper (string-append (getcwd) "/gcc.sh"))
(stage-wrapper (string-append (getcwd) "/stage-gcc.sh"))) ;; Pass the right options for the target triplet.
(with-output-to-file wrapper #$(gcc-configure-flags-for-triplet
(lambda _ (or (%current-target-system)
(format #t "#! ~a/bin/bash (nix-system->gnu-triplet (%current-system))))
;; Return the `_FOR_TARGET' variables that are needed when
;; cross-compiling GCC.
#$(let ((target (%current-target-system)))
(if target
#~(map (lambda (var tool)
(string-append (string-append var "_FOR_TARGET")
"=" #$target "-" tool))
'("CC" "CXX" "LD" "AR" "NM" "OBJDUMP" "RANLIB" "STRIP")
'("gcc" "g++" "ld" "ar" "nm" "objdump" "ranlib" "strip"))
#~(list))))
#:make-flags
(cond
((and (%current-target-system) stripped?)
#~(list "CFLAGS=-g0 -O2"))
((%current-target-system)
#~(list)) ;None of the flags are needed when doing a Canadian cross.
(else
#~(let* ((libc (assoc-ref %build-inputs "libc"))
(libc-native (or (assoc-ref %build-inputs "libc-native")
libc))
(loader #$(glibc-dynamic-linker)))
(cons*
;; Native programs like 'genhooks' need that right.
(string-append "LDFLAGS="
"-Wl,-rpath=" libc-native "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc-native loader)
(string-append "BOOT_CFLAGS=-O2 "
(if #$stripped? "-g0" "-g"))
(if libc
(list (string-append "LDFLAGS_FOR_TARGET="
"-B" libc "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc loader))
(list))))))
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'relax-gcc-14s-strictness
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (search-input-file inputs "/bin/bash"))
(wrapper (string-append (getcwd) "/gcc.sh"))
(stage-wrapper (string-append (getcwd) "/stage-gcc.sh")))
(with-output-to-file wrapper
(lambda _
(format #t "#! ~a
exec gcc \"$@\" \ exec gcc \"$@\" \
-Wno-error=implicit-function-declaration" -Wno-error=implicit-function-declaration"
bash))) bash)))
(chmod wrapper #o555) (chmod wrapper #o555)
(with-output-to-file stage-wrapper (with-output-to-file stage-wrapper
(lambda _ (lambda _
(format #t "#! ~a/bin/bash (format #t "#! ~a
exec \"$@\" \ exec \"$@\" \
-Wno-error=implicit-function-declaration" -Wno-error=implicit-function-declaration"
bash))) bash)))
(chmod stage-wrapper #o555) (chmod stage-wrapper #o555)
;; Rather than adding CC to #:configure-flags and ;; Rather than adding CC to #:configure-flags and
;; STAGE_CC_WRAPPER to #:make-flags, we add them to the ;; STAGE_CC_WRAPPER to #:make-flags, we add them to the
;; environment in this easily removable stage. ;; environment in this easily removable stage.
(cond (,(%current-target-system) ;cross-build? (cond (#$(%current-target-system) ;cross-build?
(setenv "CC_FOR_BUILD" wrapper)) (setenv "CC_FOR_BUILD" wrapper))
(else (else
(setenv "CC" wrapper) (setenv "CC" wrapper)
(setenv "STAGE_CC_WRAPPER" stage-wrapper)))))) (setenv "STAGE_CC_WRAPPER" stage-wrapper))))))
(add-before 'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((libdir ,(libdir)) (let ((libdir #$(libdir))
(libc (assoc-ref inputs "libc"))) (libc (assoc-ref inputs "libc")))
(when libc (when libc
;; The following is not performed for `--without-headers' ;; The following is not performed for `--without-headers'
;; cross-compiler builds. ;; cross-compiler builds.
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a ;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a
;; single line, to allow the next step to work properly. ;; single line, to allow the next step to work properly.
(for-each (for-each
(lambda (x) (lambda (x)
(substitute* (find-files "gcc/config" (substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line)
line))) line)))
'(1 2 3)) '(1 2 3))
;; Fix the dynamic linker's file name. ;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config" (substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$"
_ gnu-user suffix) _ gnu-user suffix)
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
gnu-user suffix gnu-user suffix
(string-append libc ,(glibc-dynamic-linker))))) (string-append libc #$(glibc-dynamic-linker)))))
;; Tell where to find libstdc++, libc, and `?crt*.o', except ;; Tell where to find libstdc++, libc, and `?crt*.o', except
;; `crt{begin,end}.o', which come with GCC. ;; `crt{begin,end}.o', which come with GCC.
(substitute* (find-files "gcc/config" (substitute* (find-files "gcc/config"
"^gnu-user.*\\.h$") "^gnu-user.*\\.h$")
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
;; Help libgcc_s.so be found (see also below.) Always use ;; Help libgcc_s.so be found (see also below.) Always use
;; '-lgcc_s' so that libgcc_s.so is always found by those ;; '-lgcc_s' so that libgcc_s.so is always found by those
;; programs that use 'pthread_cancel' (glibc dlopens ;; programs that use 'pthread_cancel' (glibc dlopens
;; libgcc_s.so when pthread_cancel support is needed, but ;; libgcc_s.so when pthread_cancel support is needed, but
;; having it in the application's RUNPATH isn't enough; see ;; having it in the application's RUNPATH isn't enough; see
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) ;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
;; ;;
;; NOTE: The '-lgcc_s' added below needs to be removed in a ;; NOTE: The '-lgcc_s' added below needs to be removed in a
;; later phase of %gcc-static. If you change the string ;; later phase of %gcc-static. If you change the string
;; below, make sure to update the relevant code in ;; below, make sure to update the relevant code in
;; %gcc-static package as needed. ;; %gcc-static package as needed.
(format #f "#define GNU_USER_TARGET_LIB_SPEC \ (format #f "#define GNU_USER_TARGET_LIB_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
libc libc libdir suffix)) libc libc libdir suffix))
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\" (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
#define STANDARD_STARTFILE_PREFIX_2 \"\" #define STANDARD_STARTFILE_PREFIX_2 \"\"
~a" ~a"
libc line))) libc line)))
;; The rs6000 (a.k.a. powerpc) config in GCC does not use ;; The rs6000 (a.k.a. powerpc) config in GCC does not use
;; GNU_USER_* defines. Do the above for this case. ;; GNU_USER_* defines. Do the above for this case.
(substitute* (substitute*
"gcc/config/rs6000/sysv4.h" "gcc/config/rs6000/sysv4.h"
(("#define LIB_LINUX_SPEC (.*)$" _ suffix) (("#define LIB_LINUX_SPEC (.*)$" _ suffix)
(format #f "#define LIB_LINUX_SPEC \ (format #f "#define LIB_LINUX_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
libc libc libdir suffix)) libc libc libdir suffix))
(("#define STARTFILE_LINUX_SPEC.*$" line) (("#define STARTFILE_LINUX_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\" (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
#define STANDARD_STARTFILE_PREFIX_2 \"\" #define STANDARD_STARTFILE_PREFIX_2 \"\"
~a" ~a"
libc line)))) libc line))))
(when (file-exists? "gcc/config/rs6000") (when (file-exists? "gcc/config/rs6000")
;; Force powerpc libdir to be /lib and not /lib64 ;; Force powerpc libdir to be /lib and not /lib64
(substitute* (find-files "gcc/config/rs6000") (substitute* (find-files "gcc/config/rs6000")
(("/lib64") "/lib"))) (("/lib64") "/lib")))
;; Don't retain a dependency on the build-time sed. ;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x" (substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;") (("static char const sed_cmd_z\\[\\] =.*;")
"static char const sed_cmd_z[] = \"sed\";")) "static char const sed_cmd_z[] = \"sed\";"))
;; Aarch64 support didn't land in GCC until the 4.8 series. ;; Aarch64 support didn't land in GCC until the 4.8 series.
(when (file-exists? "gcc/config/aarch64") (when (file-exists? "gcc/config/aarch64")
;; Force Aarch64 libdir to be /lib and not /lib64 ;; Force Aarch64 libdir to be /lib and not /lib64
(substitute* "gcc/config/aarch64/t-aarch64-linux" (substitute* "gcc/config/aarch64/t-aarch64-linux"
(("lib64") "lib"))) (("lib64") "lib")))
;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the ;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the
;; gcc:lib output, which causes ld to not find -lgcc_s. ;; gcc:lib output, which causes ld to not find -lgcc_s.
(when (file-exists? "gcc/config/riscv") (when (file-exists? "gcc/config/riscv")
(substitute* '("gcc/config/riscv/linux.h" (substitute* '("gcc/config/riscv/linux.h"
"gcc/config/riscv/riscv.h") ; GCC < 10 "gcc/config/riscv/riscv.h") ; GCC < 10
(("define STARTFILE_PREFIX_SPEC") (("define STARTFILE_PREFIX_SPEC")
"define __STARTFILE_PREFIX_SPEC"))) "define __STARTFILE_PREFIX_SPEC")))
(when (file-exists? "libbacktrace") (when (file-exists? "libbacktrace")
;; GCC 4.8+ comes with libbacktrace. By default it builds ;; GCC 4.8+ comes with libbacktrace. By default it builds
;; with -Werror, which fails with a -Wcast-qual error in glibc ;; with -Werror, which fails with a -Wcast-qual error in glibc
;; 2.21's stdlib-bsearch.h. Remove -Werror. ;; 2.21's stdlib-bsearch.h. Remove -Werror.
(substitute* "libbacktrace/configure" (substitute* "libbacktrace/configure"
(("WARN_FLAGS=(.*)-Werror" _ flags) (("WARN_FLAGS=(.*)-Werror" _ flags)
(string-append "WARN_FLAGS=" flags))) (string-append "WARN_FLAGS=" flags)))
(when (file-exists? "libsanitizer/libbacktrace") (when (file-exists? "libsanitizer/libbacktrace")
;; Same in libsanitizer's bundled copy (!) found in 4.9+. ;; Same in libsanitizer's bundled copy (!) found in 4.9+.
(substitute* "libsanitizer/libbacktrace/Makefile.in" (substitute* "libsanitizer/libbacktrace/Makefile.in"
(("-Werror") (("-Werror")
"")))) ""))))
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. ;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s.
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354> ;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354>
;; and <http://bugs.gnu.org/20358>. ;; and <http://bugs.gnu.org/20358>.
(substitute* "libstdc++-v3/src/Makefile.in" (substitute* "libstdc++-v3/src/Makefile.in"
(("^OPT_LDFLAGS = ") (("^OPT_LDFLAGS = ")
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) "OPT_LDFLAGS = -Wl,-rpath=$(libdir) "))
;; Move libstdc++*-gdb.py to the "lib" output to avoid a ;; Move libstdc++*-gdb.py to the "lib" output to avoid a
;; circularity between "out" and "lib". (Note: ;; circularity between "out" and "lib". (Note:
;; --with-python-dir is useless because it imposes $(prefix) as ;; --with-python-dir is useless because it imposes $(prefix) as
;; the parent directory.) ;; the parent directory.)
(substitute* "libstdc++-v3/python/Makefile.in" (substitute* "libstdc++-v3/python/Makefile.in"
(("pythondir = .*$") (("pythondir = .*$")
(string-append "pythondir = " libdir "/share" (string-append "pythondir = " libdir "/share"
"/gcc-$(gcc_version)/python\n"))) "/gcc-$(gcc_version)/python\n")))
;; Avoid another circularity between the outputs: this #define ;; Avoid another circularity between the outputs: this #define
;; ends up in auto-host.h in the "lib" output, referring to ;; ends up in auto-host.h in the "lib" output, referring to
;; "out". (This variable is used to augment cpp's search path, ;; "out". (This variable is used to augment cpp's search path,
;; but there's nothing useful to look for here.) ;; but there's nothing useful to look for here.)
(substitute* "gcc/config.in" (substitute* "gcc/config.in"
(("PREFIX_INCLUDE_DIR") (("PREFIX_INCLUDE_DIR")
"PREFIX_INCLUDE_DIR_isnt_necessary_here"))))) "PREFIX_INCLUDE_DIR_isnt_necessary_here")))))
(add-after 'configure 'post-configure (add-after 'configure 'post-configure
(lambda _ (lambda _
;; Don't store configure flags, to avoid retaining references to ;; Don't store configure flags, to avoid retaining references to
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. ;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'.
(substitute* "Makefile" (substitute* "Makefile"
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n"))))))) "TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))))))
(native-search-paths %gcc-search-paths) (native-search-paths %gcc-search-paths)
(properties `((gcc-libc . ,(assoc-ref inputs "libc")))) (properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
(synopsis "GNU Compiler Collection") (synopsis "GNU Compiler Collection")
@@ -440,21 +428,21 @@ Go. It also includes runtime support libraries for these languages.")
`((srfi srfi-1) `((srfi srfi-1)
,@modules)) ,@modules))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")) (let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc"))) (gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH" (setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete (string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH") (string-split (getenv "CPLUS_INCLUDE_PATH")
#\:) #\:)
(list (string-append libc "/include") (list (string-append libc "/include")
(string-append gcc "/include/c++"))) (string-append gcc "/include/c++")))
":")) ":"))
(format #t (format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))))))) (getenv "CPLUS_INCLUDE_PATH"))))))))))
(supported-systems (fold delete %supported-systems (supported-systems (fold delete %supported-systems
'("aarch64-linux" "riscv64-linux" '("aarch64-linux" "riscv64-linux"
"powerpc64le-linux" "x86_64-gnu"))))) "powerpc64le-linux" "x86_64-gnu")))))
@@ -498,21 +486,21 @@ Go. It also includes runtime support libraries for these languages.")
;; For native builds of some GCC versions the C++ include path needs to ;; For native builds of some GCC versions the C++ include path needs to
;; be adjusted so it does not interfere with GCC's own build processes. ;; be adjusted so it does not interfere with GCC's own build processes.
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")) (let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc"))) (gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH" (setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete (string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH") (string-split (getenv "CPLUS_INCLUDE_PATH")
#\:) #\:)
(list (string-append libc "/include") (list (string-append libc "/include")
(string-append gcc "/include/c++"))) (string-append gcc "/include/c++")))
":")) ":"))
(format #t (format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))))))) (getenv "CPLUS_INCLUDE_PATH"))))))))))
(supported-systems (fold delete %supported-systems (supported-systems (fold delete %supported-systems
'("riscv64-linux" "x86_64-gnu"))) '("riscv64-linux" "x86_64-gnu")))
(inputs (inputs
@@ -981,7 +969,8 @@ It also includes runtime support libraries for these languages.")
(patches (search-patches "gcc-12-strmov-store-file-names.patch" (patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch" "gcc-5.0-libvtv-runpath.patch"
"gcc-13-libsanitizer-no-crypt.patch" "gcc-13-libsanitizer-no-crypt.patch"
"gcc-libstdc++-newer-gcc.patch")) "gcc-libstdc++-newer-gcc.patch"
"gcc-mangle-guix-store.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet gcc-canadian-cross-objdump-snippet))) (snippet gcc-canadian-cross-objdump-snippet)))
(arguments (arguments
@@ -1012,7 +1001,8 @@ It also includes runtime support libraries for these languages.")
(base32 (base32
"0fna78ly417g69fdm4i5f3ms96g8xzzjza8gwp41lqr5fqlpgp70")) "0fna78ly417g69fdm4i5f3ms96g8xzzjza8gwp41lqr5fqlpgp70"))
(patches (search-patches "gcc-12-strmov-store-file-names.patch" (patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch")) "gcc-5.0-libvtv-runpath.patch"
"gcc-mangle-guix-store.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet gcc-canadian-cross-objdump-snippet))) (snippet gcc-canadian-cross-objdump-snippet)))
(arguments (substitute-keyword-arguments arguments (arguments (substitute-keyword-arguments arguments
@@ -1045,7 +1035,8 @@ It also includes runtime support libraries for these languages.")
"0knj4ph6y7r7yhnp1v4339af7mki5nkh7ni9b948433bhabdk3s3")) "0knj4ph6y7r7yhnp1v4339af7mki5nkh7ni9b948433bhabdk3s3"))
(patches (search-patches "gcc-12-strmov-store-file-names.patch" (patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch" "gcc-5.0-libvtv-runpath.patch"
"gcc-hurd-split-stack.patch")) "gcc-hurd-split-stack.patch"
"gcc-mangle-guix-store.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet gcc-canadian-cross-objdump-snippet))) (snippet gcc-canadian-cross-objdump-snippet)))
(arguments (arguments
+40 -38
View File
@@ -13,6 +13,7 @@
;;; Copyright © 2020 EuAndreh <eu@euandre.org> ;;; Copyright © 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2022, 2024, 2025 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2022, 2024, 2025 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer maxim@guixotic.coop> ;;; Copyright © 2023 Maxim Cournoyer maxim@guixotic.coop>
;;; Copyright © 2026 Robin Templeton <robin@guixotic.coop>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -57,24 +58,21 @@
(define-public gettext-minimal (define-public gettext-minimal
(package (package
(name "gettext-minimal") (name "gettext-minimal")
(version "0.23.1") (version "1.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-" (uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj")))) "06jgjxnm5xhw0d0zwl9birlwfxfgfqhk9q029j3h9941r5wrpnc5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ;9 MiB of HTML "doc")) ;9 MiB of HTML
(inputs (inputs
(list libunistring (list libunistring
libxml2 libxml2
;; TODO: ncurses is only needed for the 'libtextstyle' library. libtextstyle))
;; The next version of gettext can use a separate libtextstyle,
;; but for now we include it here in 'gettext-minimal'.
ncurses))
(arguments (arguments
(list #:configure-flags #~'("--with-included-libunistring=no" (list #:configure-flags #~'("--with-included-libunistring=no"
"--with-included-libxml=no") "--with-included-libxml=no")
@@ -93,11 +91,11 @@
(("/bin/pwd") "pwd")))) (("/bin/pwd") "pwd"))))
(add-before 'check 'patch-tests (add-before 'check 'patch-tests
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;;libgettextlib-0.23.so => not found ;;libgettextlib-1.0.so => not found
(substitute* "gettext-tools/gnulib-tests/test-execute.sh" (substitute* "gettext-tools/gnulib-tests/test-execute.sh"
(("^#!.*" all) (("^#!.*" all)
(string-append all "exit 77;\n"))) (string-append all "exit 77;\n")))
(let* ((bash (which "sh"))) (let* ((bash (search-input-file inputs "bin/sh")))
;; Some of the files we're patching are ;; Some of the files we're patching are
;; ISO-8859-1-encoded, so choose it as the default ;; ISO-8859-1-encoded, so choose it as the default
;; encoding so the byte encoding is preserved. ;; encoding so the byte encoding is preserved.
@@ -106,7 +104,7 @@
(find-files "gettext-tools/tests" (find-files "gettext-tools/tests"
"^(lang-sh|msg(exec|filter)-[0-9])") "^(lang-sh|msg(exec|filter)-[0-9])")
(("#![[:blank:]]/bin/sh") (("#![[:blank:]]/bin/sh")
(format #f "#!~a" bash))) (string-append "#!" bash)))
(substitute* (cons "gettext-tools/src/msginit.c" (substitute* (cons "gettext-tools/src/msginit.c"
(find-files "gettext-tools/gnulib-tests" (find-files "gettext-tools/gnulib-tests"
@@ -124,6 +122,14 @@
;; See 'coreutils' for the rationale. ;; See 'coreutils' for the rationale.
((" test-tls\\$\\(EXEEXT\\) ") " "))) ((" test-tls\\$\\(EXEEXT\\) ") " ")))
'()))))) '())))))
(add-after 'install 'patch-gettext.sh
(lambda _
;; This matches only the relevant command invocations, but
;; is sensitive to the formatting of gettext.sh. (The
;; string "gettext" appears in program output.)
(substitute* (string-append #$output "/bin/gettext.sh")
(("(^ |`|; )(gettext|ngettext|envsubst)" _ prefix program)
(string-append prefix #$output "/bin/" program)))))
#$@(if (%current-target-system) #$@(if (%current-target-system)
#~((add-after 'install 'patch-cross-shebangs #~((add-after 'install 'patch-cross-shebangs
(lambda _ (lambda _
@@ -151,30 +157,31 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(cpe-name . "gettext"))) (cpe-name . "gettext")))
(license gpl3+))) ;some files are under GPLv2+ (license gpl3+))) ;some files are under GPLv2+
(define-public gettext-minimal-0.21 ;; Starting with gettext 0.24 some gnulib files are no longer public.
;; keep this here to easily fix autoreconf
(define-public gettext-minimal-0.23
(package/inherit gettext-minimal (package/inherit gettext-minimal
(version "0.21") (version "0.23.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-" (uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7")) "0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
(patches (search-patches "gettext-libunicode-update.patch"))))
(arguments (arguments
(substitute-keyword-arguments arguments (substitute-keyword-arguments arguments
((#:phases phases) ((#:make-flags flags)
#~(modify-phases #$phases ;; these gnulib tests fail with newer libunistring
(add-after 'unpack 'touch-test #~(cons (string-append "XFAIL_TESTS="
(lambda _ "test-uc_tolower "
(with-output-to-file "gettext-tools/gnulib-tests/test-execute.sh" "test-ctype_alnum "
(lambda _ (display ""))))) "test-ctype_alpha "
(add-before 'check 'patch-test "test-ctype_graph "
(lambda _ "test-ctype_lower "
;; This test fails with ggc-14. "test-ctype_print "
(substitute* "gettext-tools/tests/xgettext-javascript-6" "test-ctype_punct "
(("^#!.*" all) (string-append all "exit 77;\n"))))))))))) "test-ctype_upper") #$flags))))))
;; Use that name to avoid clashes with Guile's 'gettext' procedure. ;; Use that name to avoid clashes with Guile's 'gettext' procedure.
;; ;;
@@ -203,22 +210,17 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(define-public libtextstyle (define-public libtextstyle
(package (package
(name "libtextstyle") (name "libtextstyle")
(version "0.21") (version (package-version gnu-gettext))
(source (origin (source (package-source gnu-gettext))
(inherit (package-source gnu-gettext))
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--disable-static") (list
#:phases (modify-phases %standard-phases #:configure-flags #~(list "--disable-static")
(add-after 'unpack 'chdir #:phases
(lambda _ #~(modify-phases %standard-phases
(chdir "libtextstyle") (add-after 'unpack 'chdir
#t))))) (lambda _
(chdir "libtextstyle"))))))
;; libtextstyle bundles libxml2, glib (a small subset thereof), and ;; libtextstyle bundles libxml2, glib (a small subset thereof), and
;; libcroco, but it purposefully prevents users from using an external ;; libcroco, but it purposefully prevents users from using an external
;; copy, to reduce the startup time of programs using libtextstyle. ;; copy, to reduce the startup time of programs using libtextstyle.
+98 -86
View File
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017-2019, 2021, 2023-2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017-2019, 2021, 2023-2026 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -22,7 +22,7 @@
;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Arnaud Lechevallier <arnaud.lechevallier@free.fr> ;;; Copyright © 2024 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
;;; Copyright © 2024 aurtzy <aurtzy@gmail.com> ;;; Copyright © 2024-2025 Alvin Hsu <aurtzy@gmail.com>
;;; Copyright © 2025 Sughosha <sughosha@disroot.org> ;;; Copyright © 2025 Sughosha <sughosha@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@@ -43,6 +43,7 @@
(define-module (gnu packages gl) (define-module (gnu packages gl)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages build-tools) #:use-module (gnu packages build-tools)
#:use-module (gnu packages check) #:use-module (gnu packages check)
@@ -57,6 +58,7 @@
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build) #:use-module (gnu packages python-build)
@@ -74,6 +76,7 @@
#:use-module (guix hg-download) #:use-module (guix hg-download)
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system python) #:use-module (guix build-system python)
@@ -241,7 +244,6 @@ generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
(define-public glad (define-public glad
(package (package
(inherit glad-0.1)
(name "glad") (name "glad")
(version "2.0.8") (version "2.0.8")
(source (origin (source (origin
@@ -255,20 +257,26 @@ generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
"0c9cygiq35aiq6bpdvbwqs0wxc2dvxsh4jnx50466savscxalsk9")))) "0c9cygiq35aiq6bpdvbwqs0wxc2dvxsh4jnx50466savscxalsk9"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (arguments
(substitute-keyword-arguments (package-arguments glad-0.1) (list
((#:phases phases '%standard-phases) #:phases
#~(modify-phases #$phases #~(modify-phases %standard-phases
(replace 'install-cmakelists.txt (add-after 'install 'install-cmakelists.txt
(lambda _ (lambda _
(let ((share (string-append #$output "/share/" (let ((share (string-append #$output "/share/"
#$(package-name this-package)))) #$(package-name this-package))))
(install-file "cmake/CMakeLists.txt" share)))) (install-file "cmake/CMakeLists.txt" share)
(replace 'check (install-file "cmake/GladConfig.cmake" share))))
(lambda* (#:key tests? #:allow-other-keys) (replace 'check
(when tests? (lambda* (#:key tests? #:allow-other-keys)
(invoke "xvfb-run" "utility/test.sh")))))))) (when tests?
(invoke "xvfb-run" "utility/test.sh")))))))
(native-inputs (list python-setuptools python-wheel xvfb-run-for-tests)) (native-inputs (list python-setuptools python-wheel xvfb-run-for-tests))
(propagated-inputs (list python-jinja2)))) (propagated-inputs (list python-jinja2))
(home-page "https://github.com/Dav1dde/glad")
(synopsis "Multi-language GL/GLES/EGL/GLX/WGL loader generator")
(description "Glad uses the official Khronos XML specifications to
generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
(license license:expat)))
(define-public s2tc (define-public s2tc
(package (package
@@ -316,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa (define-public mesa
(package (package
(name "mesa") (name "mesa")
(version "25.2.3") (version "26.0.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@@ -325,8 +333,7 @@ also known as DXTn or DXTC) for Mesa.")
(string-append "ftp://ftp.freedesktop.org/pub/mesa/" (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
"mesa-" version ".tar.xz"))) "mesa-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32 "0ikk7hb60q581i2wb1pasphv7sgqkv74qaw4cdiiq8dy45956gwp"))))
"1y5lj9zy2hfvx9ji1rvsjapmzap7mpp5i3pf2yfcpmpica2v5mpj"))))
(build-system meson-build-system) (build-system meson-build-system)
(propagated-inputs (propagated-inputs
;; The following are in the Requires.private field of gl.pc. ;; The following are in the Requires.private field of gl.pc.
@@ -339,17 +346,28 @@ also known as DXTn or DXTC) for Mesa.")
libxxf86vm libxxf86vm
xorgproto)) xorgproto))
(inputs (inputs
(list elfutils ;libelf required for r600 when using llvm (append
expat (list elfutils ;libelf required for r600 when using llvm
(force libva-without-mesa) expat
libxml2 (force libva-without-mesa)
libxrandr libxml2
libxvmc libxrandr
llvm-for-mesa libxvmc
vulkan-loader llvm-for-mesa
wayland vulkan-loader
wayland-protocols wayland
`(,zstd "lib"))) wayland-protocols
`(,zstd "lib"))
;; The freedreno driver wants libarchive and lua.
(if (target-arm?)
(list libarchive
lua-5.4)
'())
;; Rust isn't needed for all architectures.
(if (target-x86-64?)
;; NVK dependencies
(cargo-inputs 'mesa)
'())))
(native-inputs (native-inputs
(append (append
(list bison (list bison
@@ -375,13 +393,12 @@ also known as DXTn or DXTC) for Mesa.")
wayland wayland
wayland-protocols) wayland-protocols)
'()) '())
;; Rust isn't needed for all architectures.
(if (target-x86-64?) (if (target-x86-64?)
;; NVK dependencies ;; NVK dependencies
(list rust (list rust
(module-ref (resolve-interface '(gnu packages rust-apps)) rust-bindgen-cli
'rust-bindgen-cli) rust-cbindgen)
(module-ref (resolve-interface '(gnu packages rust-apps))
'rust-cbindgen-0.26))
'()))) '())))
(outputs '("out" "bin")) (outputs '("out" "bin"))
(arguments (arguments
@@ -390,15 +407,15 @@ also known as DXTn or DXTC) for Mesa.")
#~(list #~(list
#$@(cond #$@(cond
((target-aarch64?) ((target-aarch64?)
;; This includes more drivers than "auto": asahi, r300, r600 ;; This includes more drivers than "auto": r300, r600
'("-Dgallium-drivers=asahi,etnaviv,freedreno,lima,nouveau,\ '("-Dgallium-drivers=asahi,etnaviv,freedreno,iris,lima,nouveau,\
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink")) panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
((target-arm32?) ((target-arm32?)
;; This includes more drivers than "auto": r300, r600 ;; This includes more drivers than "auto": r300, r600
'("-Dgallium-drivers=etnaviv,freedreno,lima,nouveau,\ '("-Dgallium-drivers=etnaviv,freedreno,iris,lima,nouveau,\
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink")) panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?)) ((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
;; This include more drivers than "auto": svga ;; This includes more drivers than "auto": svga
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,softpipe,llvmpipe,virgl,zink")) '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,softpipe,llvmpipe,virgl,zink"))
(else (else
'("-Dgallium-drivers=auto"))) '("-Dgallium-drivers=auto")))
@@ -412,18 +429,23 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
;; features required by wayland ;; features required by wayland
"-Dgles2=enabled" "-Dgles2=enabled"
"-Dgbm=enabled" "-Dgbm=enabled"
"-Dshared-glapi=enabled"
"--wrap-mode=nodownload" ; XXX: disable "--wrap-mode=nodownload" ; XXX: disable
#$@(cond #$@(cond
;; Increase the number of vulkan drivers on each architecture:
((target-x86-32?) ((target-x86-32?)
;; This doesn't include nouveau (which is in "auto") as it needs ;; TODO: Reenable nouveau/NVK when rust support lands.
;; rust. '("-Dvulkan-drivers=amd,intel,intel_hasvk,swrast,virtio"))
;; TODO: Enable nouveau/NVK. ((target-x86-64?)
'("-Dvulkan-drivers=intel,intel_hasvk,amd,swrast")) '("-Dvulkan-drivers=amd,intel,intel_hasvk,nouveau,swrast,virtio"))
((target-arm32?)
'("-Dvulkan-drivers=swrast,intel,panfrost,freedreno,virtio"))
((target-aarch64?) ((target-aarch64?)
;; This differs from "auto" which only includes swrast and intel ;; This includes more drivers than "auto": amd, broadcom
'("-Dvulkan-drivers=freedreno,amd,broadcom,swrast,asahi")) '("-Dvulkan-drivers=swrast,intel,panfrost,freedreno,asahi,amd,broadcom,virtio"))
;; The default fallback seems to be amd and swrast.
((target-linux?)
'("-Dvulkan-drivers=amd,swrast,virtio"))
(else (else
'("-Dvulkan-drivers=auto"))) '("-Dvulkan-drivers=auto")))
@@ -440,9 +462,6 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
;; Also enable the tests. ;; Also enable the tests.
"-Dbuild-tests=true" "-Dbuild-tests=true"
;; Re-enable X11 protocol support for the DRI2 extension.
"-Dlegacy-x11=dri2"
"-Dllvm=enabled") ; default is x86/x86_64 only "-Dllvm=enabled") ; default is x86/x86_64 only
;; XXX: 'debugoptimized' causes LTO link failures on some drivers. The ;; XXX: 'debugoptimized' causes LTO link failures on some drivers. The
@@ -450,9 +469,13 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
#:build-type "release" #:build-type "release"
#:modules '((ice-9 match) #:modules '((ice-9 match)
(ice-9 ftw)
(srfi srfi-1) (srfi srfi-1)
(guix build utils) (guix build utils)
((guix build cargo-build-system) #:prefix cargo:)
(guix build meson-build-system)) (guix build meson-build-system))
#:imported-modules (append %cargo-build-system-modules
%meson-build-system-modules)
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
#$@(if (%current-target-system) #$@(if (%current-target-system)
@@ -468,6 +491,30 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
(search-input-file (search-input-file
native-inputs "/bin/cmake"))))) native-inputs "/bin/cmake")))))
#~()) #~())
#$@(if (this-package-native-input "rust")
#~((add-after 'unpack 'prepare-rust-crates
(lambda args
(apply (assoc-ref cargo:%standard-phases
'prepare-rust-crates)
args)
;; Use /tmp/rust-crates as the source.
(substitute* (find-files "subprojects" "-rs\\.wrap$")
(("source_url = (.*)" _ url)
(let ((split-url (string-split url #\/)))
(string-append
"source_url = file:///tmp/rust-crates/rust-"
(string-join
(string-split (list-ref split-url 6) #\_) "-")
"-" (list-ref split-url 7) ".tar.gz\n"))))
;; "Download" the packages.
(for-each
(lambda (wrapper)
(invoke "meson" "subprojects" "download"
(string-drop-right wrapper 5)))
(scandir "subprojects"
(lambda (file)
(string-suffix? "-rs.wrap" file)))))))
#~())
(add-after 'unpack 'disable-failing-test (add-after 'unpack 'disable-failing-test
(lambda _ (lambda _
;; Disable the intel vulkan (anv_state_pool) tests, as they may ;; Disable the intel vulkan (anv_state_pool) tests, as they may
@@ -510,41 +557,6 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
(("'lp_test_arit', ") "")))) (("'lp_test_arit', ") ""))))
(_ (_
'((display "No tests to disable on this architecture.\n")))))) '((display "No tests to disable on this architecture.\n"))))))
#$@(if (target-x86-64?)
#~((add-after 'unpack 'patch-subproject-sources
(lambda _
;; Patch each relevant subproject source URL in wrapfiles to
;; use the store, which avoids an attempt to download them
;; mid-build.
(for-each
(match-lambda
((name source)
(let ((wrap-file (string-append
"subprojects/" name ".wrap"))
(subproject-dest (string-append
"subprojects/" name))
(overlay-dir (string-append
"subprojects/packagefiles/" name)))
(mkdir-p subproject-dest)
(invoke "tar" "xf" source "-C" subproject-dest
"--strip-components=1")
;; Normally when the patch_directory wrap file property
;; is specified, meson automatically copies from
;; packagefiles, but this is not the case here (only
;; happens when downloading source?) so we manually copy
;; overlay-dir to subproject-dest.
(when (file-exists? overlay-dir)
(copy-recursively overlay-dir subproject-dest))
(call-with-output-file wrap-file
(lambda (port)
(format port "[wrap-file]
directory = ~a
"
name))))))
'#+(module-ref (resolve-interface
'(gnu packages rust-crates))
'mesa-cargo-inputs)))))
#~())
(add-after 'unpack 'set-home-directory (add-after 'unpack 'set-home-directory
;; Build tries to use a shader cache (non-fatal error). ;; Build tries to use a shader cache (non-fatal error).
(lambda _ (setenv "HOME" "/tmp"))) (lambda _ (setenv "HOME" "/tmp")))
@@ -664,7 +676,7 @@ from software emulation to complete hardware acceleration for modern GPUs.")
#~(cons* "-Dgallium-rusticl=true" #~(cons* "-Dgallium-rusticl=true"
;; Enable all drivers by default. ;; Enable all drivers by default.
(string-append "-Dgallium-rusticl-enable-drivers=" (string-append "-Dgallium-rusticl-enable-drivers="
"iris,llvmpipe,nouveau,panfrost,radeonsi,r600") "asahi,freedreno,radeonsi")
#$flags)) #$flags))
((#:phases phases) ((#:phases phases)
#~(modify-phases #$phases #~(modify-phases #$phases
+2 -1
View File
@@ -7058,7 +7058,8 @@ runtime image loader executables that are used inside the sandbox.")
#:vendor-dir "vendor" #:vendor-dir "vendor"
#:cargo-target #$(cargo-triplet) #:cargo-target #$(cargo-triplet)
args)) args))
'(unpack-rust-crates '(prepare-rust-crates
unpack-rust-crates
configure configure
check-for-pregenerated-files check-for-pregenerated-files
patch-cargo-checksums)))) patch-cargo-checksums))))
+387 -66
View File
@@ -382,10 +382,14 @@ devices.")
;; - cloud.google.com/go/auth ;; - cloud.google.com/go/auth
;; - cloud.google.com/go/auth/oauth2adapt ;; - cloud.google.com/go/auth/oauth2adapt
;; - cloud.google.com/go/compute/metadata ;; - cloud.google.com/go/compute/metadata
;; - cloud.google.com/go/longrunning
;; - cloud.google.com/go/monitoring
;; - cloud.google.com/go/storage ;; - cloud.google.com/go/storage
(for-each delete-file-recursively (for-each delete-file-recursively
(list "auth" (list "auth"
"compute/metadata" "compute/metadata"
"longrunning"
"monitoring"
"storage")))))) "storage"))))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
@@ -421,15 +425,12 @@ devices.")
"internal/tracecontext" "internal/tracecontext"
"internal/uid" "internal/uid"
"internal/version" "internal/version"
"longrunning"
"pubsub/internal/distribution" "pubsub/internal/distribution"
"pubsub/internal/scheduler" "pubsub/internal/scheduler"
"pubsub/internal/testutil" "pubsub/internal/testutil"
"pubsub/v2/internal/distribution" "pubsub/v2/internal/distribution"
"pubsub/v2/internal/scheduler" "pubsub/v2/internal/scheduler"
"pubsub/v2/internal/testutil" "pubsub/v2/internal/testutil"
"pubsublite/internal/test"
"pubsublite/internal/wire"
"rpcreplay" "rpcreplay"
"spanner/spansql" "spanner/spansql"
"translate"))) "translate")))
@@ -456,7 +457,7 @@ Services.")
(define-public go-cloud-google-com-go-auth (define-public go-cloud-google-com-go-auth
(package (package
(name "go-cloud-google-com-go-auth") (name "go-cloud-google-com-go-auth")
(version "0.17.0") (version "0.18.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -466,7 +467,7 @@ Services.")
#:subdir "auth")))) #:subdir "auth"))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0i18wkz04w9wpckw021nawr82dh92krmcsn471rpjx1jrmgsbi5v")) (base32 "1c2i8jhc4rizmwz6716bwxwy04adjmm7k2cigki3m1f00rwblmki"))
(modules '((guix build utils) (modules '((guix build utils)
(ice-9 ftw) (ice-9 ftw)
(srfi srfi-26))) (srfi srfi-26)))
@@ -488,25 +489,28 @@ Services.")
#~(list "-skip" #~(list "-skip"
(string-join (string-join
;; These tests all require credentials/tokens ;; These tests all require credentials/tokens
'("TestGetGRPCTransportConfigAndEndpoint_S2A" (list "TestDownscopedToken"
"TestGetHTTPTransportConfig_S2A" "TestLogDirectPathMisconfigDirectPathNotSet"
"TestDownscopedToken" "TestLogDirectPathMisconfigNotOnGCE"
"TestDialTCPUserTimeout" ;; Runint OTP instance is required.
"TestFetchTrustBoundaryData" "TestDial_OpenTelemetry/telemetry_enabled_success"
"TestLogDirectPathMisconfigDirectPathNotSet" "TestDial_OpenTelemetry/telemetry_enabled_error")
"TestLogDirectPathMisconfigNotOnGCE") "|")))) "|"))))
(propagated-inputs (propagated-inputs
(list go-google-golang-org-protobuf (list go-cloud-google-com-go-compute-metadata
go-google-golang-org-grpc
go-golang-org-x-time
go-golang-org-x-net
go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc
go-github-com-googleapis-gax-go-v2
go-github-com-googleapis-enterprise-certificate-proxy
go-github-com-google-s2a-go
go-github-com-google-go-cmp go-github-com-google-go-cmp
go-cloud-google-com-go-compute-metadata)) go-github-com-google-s2a-go
go-github-com-googleapis-enterprise-certificate-proxy
go-github-com-googleapis-gax-go-v2
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-sdk
go-go-opentelemetry-io-otel-trace
go-golang-org-x-net
go-golang-org-x-time
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://cloud.google.com/go") (home-page "https://cloud.google.com/go")
(synopsis "Google Auth Library for Go") (synopsis "Google Auth Library for Go")
(description (description
@@ -562,7 +566,7 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
(define-public go-cloud-google-com-go-compute-metadata (define-public go-cloud-google-com-go-compute-metadata
(package (package
(name "go-cloud-google-com-go-compute-metadata") (name "go-cloud-google-com-go-compute-metadata")
(version "0.8.0") (version "0.9.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -572,7 +576,7 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
#:subdir "compute/metadata")))) #:subdir "compute/metadata"))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "02xl6mnw3i1x8zfafrsl2gr0v5a29nn3aiif6ndzssqr0pqfg5dw")))) (base32 "1xhiyv3p9kh6qj007yqd8fic2w48ngrff2vwi9i21v82v5zp51gv"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(list (list
@@ -580,6 +584,8 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
#:unpack-path "cloud.google.com/go")) #:unpack-path "cloud.google.com/go"))
(native-inputs (native-inputs
(list go-github-com-google-go-cmp)) (list go-github-com-google-go-cmp))
(propagated-inputs
(list go-golang-org-x-sys))
(home-page "https://pkg.go.dev/cloud.google.com/go/compute/metadata") (home-page "https://pkg.go.dev/cloud.google.com/go/compute/metadata")
(synopsis "Go wrapper for Google Compute Engine metadata service") (synopsis "Go wrapper for Google Compute Engine metadata service")
(description (description
@@ -587,6 +593,98 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
API service accounts for Go.") API service accounts for Go.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public go-cloud-google-com-go-longrunning
(package
(name "go-cloud-google-com-go-longrunning")
(version "0.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/google-cloud-go")
(commit (go-version->git-ref version #:subdir "longrunning"))))
(file-name (git-file-name name version))
(sha256
(base32 "1ykr9kj0sbb4w0h190lp9gcxppv18dp0d5ak2g93dky8hjyc2wfa"))
(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-all-but "." "longrunning")))))
(build-system go-build-system)
(arguments
(list
#:import-path "cloud.google.com/go/longrunning"
#:unpack-path "cloud.google.com/go"))
(propagated-inputs
(list go-cloud-google-com-go
go-github-com-googleapis-gax-go-v2
go-google-golang-org-api
go-google-golang-org-genproto
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://cloud.google.com/go")
(synopsis "Helper library for working with long running operations")
(description
"Package longrunning supports Long Running Operations for the Google
Cloud Libraries. See google.golang.org/genproto/googleapis/longrunning for
its service definition.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-monitoring
(package
(name "go-cloud-google-com-go-monitoring")
(version "1.24.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/google-cloud-go")
(commit (go-version->git-ref version #:subdir "monitoring"))))
(file-name (git-file-name name version))
(sha256
(base32 "13rdnpz6jz5242gfx6xv6q66rr7k2sbrf7s507wq09bxvd4g20p0"))
(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-all-but "." "monitoring")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "cloud.google.com/go/monitoring"
#:unpack-path "cloud.google.com/go"))
(propagated-inputs
(list go-cloud-google-com-go-longrunning
go-github-com-googleapis-gax-go-v2
go-google-golang-org-api
go-google-golang-org-genproto
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://cloud.google.com/go")
(synopsis "Cloud Monitoring API")
(description
"This package provides a Go Client Library for Cloud Monitoring API.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-storage (define-public go-cloud-google-com-go-storage
(package (package
(name "go-cloud-google-com-go-storage") (name "go-cloud-google-com-go-storage")
@@ -624,14 +722,14 @@ API service accounts for Go.")
(list go-github-com-google-go-cmp)) (list go-github-com-google-go-cmp))
(propagated-inputs (propagated-inputs
(list go-cloud-google-com-go (list go-cloud-google-com-go
;; go-cloud-google-com-go-auth go-cloud-google-com-go-auth
;; go-cloud-google-com-go-compute-metadata ;; go-cloud-google-com-go-compute-metadata
;; go-cloud-google-com-go-iam ;; go-cloud-google-com-go-iam
;; go-cloud-google-com-go-longrunning go-cloud-google-com-go-longrunning
go-github-com-google-uuid go-github-com-google-uuid
go-github-com-googleapis-gax-go-v2 go-github-com-googleapis-gax-go-v2
;; go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric
;; go-go-opentelemetry-io-contrib-detectors-gcp go-go-opentelemetry-io-contrib-detectors-gcp
go-go-opentelemetry-io-otel go-go-opentelemetry-io-otel
;; go-go-opentelemetry-io-otel-exporters-stdout-stdoutmetric ;; go-go-opentelemetry-io-otel-exporters-stdout-stdoutmetric
go-go-opentelemetry-io-otel-sdk go-go-opentelemetry-io-otel-sdk
@@ -7327,7 +7425,7 @@ sanitization, to use in various HTML contexts and with various DOM APIs.")
(define-public go-github-com-googleapis-enterprise-certificate-proxy (define-public go-github-com-googleapis-enterprise-certificate-proxy
(package (package
(name "go-github-com-googleapis-enterprise-certificate-proxy") (name "go-github-com-googleapis-enterprise-certificate-proxy")
(version "0.3.7") (version "0.3.14")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -7336,17 +7434,21 @@ sanitization, to use in various HTML contexts and with various DOM APIs.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1jblnaa4hn9x5gfrsiw007wws7hy4h795xzzrw2bzf297ydrlnyg")))) (base32 "16ypygh5jk2ndwkbdai1z23xn872z6fsj1iis28fp6mgw9s89hl8"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(list (list
#:tests? #f ;; TODO: Tests require additional dependencies
#:skip-build? #t #:skip-build? #t
#:import-path "github.com/googleapis/enterprise-certificate-proxy")) #:import-path "github.com/googleapis/enterprise-certificate-proxy"
;; TODO: Tests require additional dependencies
#:test-subdirs
#~(list "client"
"client/util"
"internal/signer/util")))
(propagated-inputs (propagated-inputs
(list go-golang-org-x-sys go-golang-org-x-crypto (list ;; go-github-com-google-go-pkcs11
;; go-github-com-google-go-pkcs11 go-golang-org-x-crypto
)) go-golang-org-x-sys))
(home-page "https://github.com/googleapis/enterprise-certificate-proxy") (home-page "https://github.com/googleapis/enterprise-certificate-proxy")
(synopsis "Google Proxies for Enterprise Certificates (GA)") (synopsis "Google Proxies for Enterprise Certificates (GA)")
(description (description
@@ -7363,7 +7465,7 @@ Terraform by using the enterprise certificates feature.")
(define-public go-github-com-googleapis-gax-go-v2 (define-public go-github-com-googleapis-gax-go-v2
(package (package
(name "go-github-com-googleapis-gax-go-v2") (name "go-github-com-googleapis-gax-go-v2")
(version "2.15.0") (version "2.19.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -7372,22 +7474,28 @@ Terraform by using the enterprise certificates feature.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0mp07716zjb7q9di6sfglscahrg053lsq3j5w68dknxn1fks5j6f")))) (base32 "1nd5qv2dhn6xiw27hmxxyan9v3hiwcqpg9cy2q679v6b0vj7ijmj"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(list (list
#:tests? #f ;; TODO: Tests require additional dependencies #:go go-1.25
#:skip-build? #t #:skip-build? #t
#:import-path "github.com/googleapis/gax-go/v2" #:import-path "github.com/googleapis/gax-go/v2"
#:unpack-path "github.com/googleapis/gax-go")) #:unpack-path "github.com/googleapis/gax-go"
;; TODO: Tests require additional dependencies
#:test-subdirs #~(list "internallog" "internallog/grpclog")))
(native-inputs
(list go-github-com-google-go-cmp))
(propagated-inputs (propagated-inputs
(list go-google-golang-org-protobuf (list go-go-opentelemetry-io-otel
go-google-golang-org-grpc go-go-opentelemetry-io-otel-metric
go-google-golang-org-genproto-googleapis-rpc go-go-opentelemetry-io-otel-sdk-metric
;; go-google-golang-org-api ;cycles, boostrap is required
;; go-google-golang-org-genproto ;cycles, boostrap is required
go-google-golang-org-genproto-googleapis-api go-google-golang-org-genproto-googleapis-api
;; go-google-golang-org-genproto go-google-golang-org-genproto-googleapis-rpc
;; go-google-golang-org-api go-google-golang-org-grpc
go-github-com-google-go-cmp)) go-google-golang-org-protobuf))
(home-page "https://github.com/googleapis/gax-go") (home-page "https://github.com/googleapis/gax-go")
(synopsis "Google API Extensions for Go") (synopsis "Google API Extensions for Go")
(description (description
@@ -7395,6 +7503,140 @@ Terraform by using the enterprise certificates feature.")
for clients and servers based on @code{gRPC} and Google API conventions.") for clients and servers based on @code{gRPC} and Google API conventions.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp
(package
(name
"go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp")
(version "1.31.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(commit (go-version->git-ref version #:subdir "detectors/gcp"))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp"
#:unpack-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-cloud-google-com-go-compute-metadata))
(home-page
"https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(synopsis "GCP Resource detection library")
(description
"This is a library intended to be used by Upstream @code{OpenTelemetry}
resource detectors. It exists within this repository to allow for integration
testing of the detection functions in real GCP environments.")
(license license:asl2.0)))
(define-public go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric
(package
(name "go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric")
(version "0.55.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(commit (go-version->git-ref version #:subdir "exporter/metric"))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))
(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-all-but "exporter" "metric")
(delete-all-but "." "exporter")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:tests? #f ;TODO: more packaging is required
#:import-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric"
#:unpack-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go"))
(native-inputs
(list go-github-com-stretchr-testify
#;go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-cloudmock))
(propagated-inputs
(list go-cloud-google-com-go-monitoring
go-github-com-googleapis-gax-go-v2
go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-metric
go-go-opentelemetry-io-otel-sdk
go-go-opentelemetry-io-otel-sdk-metric
go-go-opentelemetry-io-otel-trace
go-golang-org-x-oauth2
go-google-golang-org-api
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(synopsis "OpenTelemetry Google Cloud Monitoring Exporter")
(description
"@code{OpenTelemetry} Google Cloud Monitoring Exporter allows the user to
send collected metrics to Google Cloud.")
(license license:asl2.0)))
(define-public go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping
(package
(name "go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping")
(version "0.55.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(commit (go-version->git-ref version
#:subdir "internal/resourcemapping"))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))
(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-all-but "internal" "resourcemapping")
(delete-all-but "." "internal")))))
(build-system go-build-system)
(arguments
(list
#:import-path (string-append "github.com/GoogleCloudPlatform/"
"opentelemetry-operations-go/"
"internal/resourcemapping")
#:unpack-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go"))
(propagated-inputs
(list go-go-opentelemetry-io-otel
go-google-golang-org-genproto-googleapis-api))
(home-page "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(synopsis "OpenTelemetry Google Cloud resource mapping module")
;; XXX: Project lacks proper descripton.
(description
"This package provides an OpenTelemetry Google Cloud resource mapping
module.")
(license license:asl2.0)))
(define-public go-github-com-gopacket-gopacket (define-public go-github-com-gopacket-gopacket
(package (package
(name "go-github-com-gopacket-gopacket") (name "go-github-com-gopacket-gopacket")
@@ -17149,6 +17391,51 @@ lists)
"Package sdk provides an auto-instrumentable @code{OpenTelemetry} SDK.") "Package sdk provides an auto-instrumentable @code{OpenTelemetry} SDK.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public go-go-opentelemetry-io-contrib-detectors-gcp
(package
(name "go-go-opentelemetry-io-contrib-detectors-gcp")
(version "1.42.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/open-telemetry/opentelemetry-go-contrib")
(commit (go-version->git-ref version #:subdir "detectors/gcp"))))
(file-name (git-file-name name version))
(sha256
(base32 "18k9pqwzlcjkiz8cy2hgl5jwal10ypj171hra4zsqizbqjivd4lc"))
(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-all-but "detectors" "gcp")
(delete-all-but "." "detectors")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "go.opentelemetry.io/contrib/detectors/gcp"
#:unpack-path "go.opentelemetry.io/contrib"))
(propagated-inputs
(list go-cloud-google-com-go-compute-metadata
go-github-com-google-go-cmp
go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp
go-github-com-stretchr-testify
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-sdk))
(home-page "https://go.opentelemetry.io/contrib")
(synopsis "GCP Resource detector")
(description
"Package gcp provides a resource detector for GCP Cloud Function.")
(license license:asl2.0)))
(define-public go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc (define-public go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc
(package (package
(name (name
@@ -18262,7 +18549,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
(define-public go-google-golang-org-api (define-public go-google-golang-org-api
(package (package
(name "go-google-golang-org-api") (name "go-google-golang-org-api")
(version "0.247.0") (version "0.272.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -18271,7 +18558,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "19rj4m4qfc6lfik6p562a2nyf9mhmz0nfargpnvkcvdzi0rh350x")) (base32 "1agvmw1sj2xy2p0ig2xdivn8i5pjnw93d2kq4hix7s5ysiswnpw4"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
@@ -18289,25 +18576,16 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
(list "TestLogDirectPathMisconfigAttrempDirectPathNotSet" (list "TestLogDirectPathMisconfigAttrempDirectPathNotSet"
"TestLogDirectPathMisconfigNotOnGCE" "TestLogDirectPathMisconfigNotOnGCE"
"TestNewClient" "TestNewClient"
"TestNewTokenSource" "TestNewTokenSource")
"TestNewTokenSource_WithCredentialJSON")
"|")) "|"))
#:test-subdirs #:phases
;; XXX: Remove when all dependencies are packaged. #~(modify-phases %standard-phases
#~(list "." (add-after 'unpack 'remove-integration-tests
"google-api-go-generator/..." (lambda* (#:key import-path #:allow-other-keys)
"googleapi/..." ;; Tests require network access and credential to reach external
"impersonate/..." ;; API.
"internal/..." (with-directory-excursion (string-append "src/" import-path)
"iterator/..." (delete-file-recursively "integration-tests")))))))
"option/..."
"support/bundler/..."
"transport"
"transport/grpc"
"transport/http"
"idtoken/..."
"transport/grpc/..."
"transport/http/...")))
(propagated-inputs (propagated-inputs
(list go-cloud-google-com-go-auth (list go-cloud-google-com-go-auth
go-cloud-google-com-go-auth-oauth2adapt go-cloud-google-com-go-auth-oauth2adapt
@@ -18323,7 +18601,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
go-golang-org-x-oauth2 go-golang-org-x-oauth2
go-golang-org-x-sync go-golang-org-x-sync
go-golang-org-x-time go-golang-org-x-time
;; go-google-golang-org-genproto-googleapis-bytestream go-google-golang-org-genproto-googleapis-bytestream
go-google-golang-org-genproto-googleapis-rpc go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc go-google-golang-org-grpc
go-google-golang-org-protobuf)) go-google-golang-org-protobuf))
@@ -18353,6 +18631,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
;; Submodules with their own go.mod files and packaged separately: ;; Submodules with their own go.mod files and packaged separately:
;; ;;
(delete-file-recursively "googleapis/api") (delete-file-recursively "googleapis/api")
(delete-file-recursively "googleapis/bytestream")
(delete-file-recursively "googleapis/rpc"))))) (delete-file-recursively "googleapis/rpc")))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
@@ -18546,6 +18825,48 @@ interacting with Google's @code{gRPC} APIs.")
"This package provides an API to interact with @acronym{GCP, Google Cloud Platform}.") "This package provides an API to interact with @acronym{GCP, Google Cloud Platform}.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public go-google-golang-org-genproto-googleapis-bytestream
(package
(name "go-google-golang-org-genproto-googleapis-bytestream")
(version "0.0.0-20260316180232-0b37fe3546d5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/go-genproto")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "0yvcd9xiyarwmzgl70xqiaxxla3qiys1iysqajwmbrf8k4ghr26p"))
(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-all-but "googleapis" "bytestream")
(delete-all-but "." "googleapis")))))
(build-system go-build-system)
(arguments
(list
#:go go-1.25
#:import-path "google.golang.org/genproto/googleapis/bytestream"
#:unpack-path "google.golang.org/genproto"))
(propagated-inputs
(list go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://google.golang.org/genproto")
(synopsis "Bytestream implementation of Google Cloud Platform in Golang")
(description
"This package provides an Bytestream to interact with @acronym{GCP,
Google Cloud Platform}.")
(license license:asl2.0)))
(define-public go-google-golang-org-grpc (define-public go-google-golang-org-grpc
(package (package
(name "go-google-golang-org-grpc") (name "go-google-golang-org-grpc")
+2 -2
View File
@@ -2763,7 +2763,7 @@ Some feature highlights:
(define-public openxr (define-public openxr
(package (package
(name "openxr") (name "openxr")
(version "1.0.26") (version "1.1.57")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -2781,7 +2781,7 @@ Some feature highlights:
; ;; Delete bundled jsoncpp. ; ;; Delete bundled jsoncpp.
; (delete-file-recursively "src/external/jsoncpp"))) ; (delete-file-recursively "src/external/jsoncpp")))
(sha256 (sha256
(base32 "0s66xgwkdj5vn05l493hqydrxfpxxidd6mcb8l7l5awhn88cy16f")))) (base32 "1s4cg0cl6cn98d3cvgvwsichic4q3bx34flbdklnzprc18vmaqv7"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) ; there are no tests `(#:tests? #f)) ; there are no tests
+4 -6
View File
@@ -1002,10 +1002,6 @@ par compared to the rest.")
"-Dquinn=disabled" ;test fails "-Dquinn=disabled" ;test fails
"-Dskia=disabled" ;attempts to download binaries "-Dskia=disabled" ;attempts to download binaries
"-Dsodium-source=system" "-Dsodium-source=system"
;; The 'spotify' option causes the build error: "the trait
;; bound `vergen::feature::build::Build:
;; vergen_lib::entries::Add` is not satisfied"
"-Dspotify=disabled"
"-Dtests=enabled" "-Dtests=enabled"
"-Dtracers=disabled" ;test fails "-Dtracers=disabled" ;test fails
"-Dthreadshare=disabled" ;test fails "-Dthreadshare=disabled" ;test fails
@@ -1041,7 +1037,8 @@ par compared to the rest.")
(apply (assoc-ref cargo:%standard-phases phase) (apply (assoc-ref cargo:%standard-phases phase)
#:cargo-target #$(cargo-triplet) #:cargo-target #$(cargo-triplet)
args)) args))
'(unpack-rust-crates '(prepare-rust-crates
unpack-rust-crates
configure configure
check-for-pregenerated-files check-for-pregenerated-files
patch-cargo-checksums)))) patch-cargo-checksums))))
@@ -1061,7 +1058,8 @@ par compared to the rest.")
"libgstlewton.so" "libgstlewton.so"
"libgstrsaudiofx.so" "libgstrsaudiofx.so"
"libgstrsaudioparsers.so" "libgstrsaudioparsers.so"
"libgstspeechmatics.so")) "libgstspeechmatics.so"
"libgstspotify.so"))
(,#$output:net (,#$output:net
. ("libgstdeepgram.so" . ("libgstdeepgram.so"
"libgsthlsmultivariantsink.so" "libgsthlsmultivariantsink.so"
+1 -1
View File
@@ -3941,7 +3941,7 @@ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
(list autoconf (list autoconf
automake automake
texinfo texinfo
gettext-minimal gettext-minimal-0.23 ;for 'AC_LIB_LINKFLAGS_FROM_LIBS'
guile-3.0 guile-3.0
pkg-config)) pkg-config))
(inputs (inputs
+28 -19
View File
@@ -4,7 +4,7 @@
;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2015, 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2023, 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016, 2023-2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
@@ -212,6 +212,10 @@ without requiring the source code to be rewritten.")
;; <https://bugs.gnu.org/20272>, which affects 2.0, 2.2, and 3.0 so far. ;; <https://bugs.gnu.org/20272>, which affects 2.0, 2.2, and 3.0 so far.
#:parallel-build? #f #:parallel-build? #f
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 regex))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
,@(if (system-hurd?) ,@(if (system-hurd?)
@@ -236,22 +240,9 @@ without requiring the source code to be rewritten.")
(add-before 'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Tell (ice-9 popen) the file name of Bash. ;; Tell (ice-9 popen) the file name of Bash.
(substitute* "module/ice-9/popen.scm"
;; TODO: On the next rebuild cycle, unconditionally use (("/bin/sh")
;; 'search-input-file' instead of 'assoc-ref'. (search-input-file inputs "/bin/bash")))))
(let ((bash (assoc-ref inputs "bash")))
(substitute* "module/ice-9/popen.scm"
;; If bash is #f allow fallback for user to provide
;; "bash" in PATH. This happens when cross-building to
;; MinGW for which we do not have Bash yet.
(("/bin/sh")
,(cond ((target-mingw?)
"bash")
((%current-target-system)
'(search-input-file inputs "/bin/bash"))
(else
'(string-append bash "/bin/bash")))))
#t)))
(add-after 'install 'add-libxcrypt-reference-pkgconfig (add-after 'install 'add-libxcrypt-reference-pkgconfig
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(define out (assoc-ref outputs "out")) (define out (assoc-ref outputs "out"))
@@ -263,8 +254,26 @@ without requiring the source code to be rewritten.")
(find-files (string-append out "/lib/pkgconfig") (find-files (string-append out "/lib/pkgconfig")
".*\\.pc") ".*\\.pc")
(("-lcrypt") (("-lcrypt")
(string-append "-L" libxcrypt " -lcrypt"))))))))) (string-append "-L" libxcrypt " -lcrypt"))))))
,@(if (target-mingw?)
'()
'((add-after 'install 'install-major.minor-symlinks
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (in-vicinity out "bin"))
(m (string-match
".*-([0-9]+[.][0-9]+)[.][0-9]+$" out))
(effective-version (match:substring m 1)))
(define (symlink-version name)
(let ((name-version
(string-append name "-" effective-version)))
(symlink name (in-vicinity bin name-version))))
(for-each symlink-version
'("guild"
"guile"
"guile-config"
"guile-snarf"
"guile-tools"))))))))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "GUILE_LOAD_PATH") (variable "GUILE_LOAD_PATH")
+13 -11
View File
@@ -1186,8 +1186,7 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/" "https://www.haskell.org/ghc/dist/"
version "/" name "-" version "-testsuite.tar.xz")) version "/" name "-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch" (patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch" "ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-recomp015-execstack.patch"))
(sha256 (sha256
(base32 (base32
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91")) "0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))
@@ -1241,7 +1240,14 @@ interactive environment for the functional language Haskell.")
(substitute* "libraries/unix/tests/all.T" (substitute* "libraries/unix/tests/all.T"
(("^test\\('T8108'") "# guix skipped: test('T8108'")) (("^test\\('T8108'") "# guix skipped: test('T8108'"))
(substitute* "libraries/unix/tests/libposix/all.T" (substitute* "libraries/unix/tests/libposix/all.T"
(("^test\\('posix010'") "# guix skipped: test('posix010'")))))))) (("^test\\('posix010'") "# guix skipped: test('posix010'"))))
;; binutils@2.39 warns for execstack deprecation by default, causing
;; some tests to fail ; explicitely disable during linking instead.
(add-after 'unpack-testsuite 'fix-tests-with-binutils@2.39
(lambda _
(substitute* "testsuite/mk/test.mk"
(("^TEST_HC_OPTS = ")
"TEST_HC_OPTS = -optl -Wl,-z,noexecstack "))))))))
(native-search-paths (list (search-path-specification (native-search-paths (list (search-path-specification
(variable "GHC_PACKAGE_PATH") (variable "GHC_PACKAGE_PATH")
(files (list (files (list
@@ -1269,8 +1275,7 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/" "https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz")) version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch" (patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch" "ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-recomp015-execstack.patch"))
(sha256 (sha256
(base32 (base32
"0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z")) "0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))
@@ -1329,8 +1334,7 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/" "https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz")) version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch" (patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch" "ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-recomp015-execstack.patch"))
(sha256 (sha256
(base32 (base32
"1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz")) "1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))
@@ -1525,8 +1529,7 @@ interactive environment for the functional language Haskell.")
(sha256 (sha256
(base32 (base32
"1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s")) "1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s"))
(patches (search-patches "ghc-9.2-grep-warnings.patch" (patches (search-patches "ghc-9.2-grep-warnings.patch"))
"ghc-testsuite-recomp015-execstack.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; collections.Iterable was moved to collections.abc in Python 3.10. ;; collections.Iterable was moved to collections.abc in Python 3.10.
@@ -1612,8 +1615,7 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
(sha256 (sha256
(base32 (base32
"0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225")) "0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225"))
(patches (search-patches "ghc-9.2-grep-warnings.patch" (patches (search-patches "ghc-9.2-grep-warnings.patch"))))
"ghc-testsuite-recomp015-execstack.patch"))))
,@(filter (match-lambda ,@(filter (match-lambda
(("ghc-bootstrap" . _) #f) (("ghc-bootstrap" . _) #f)
(("ghc-testsuite" . _) #f) (("ghc-testsuite" . _) #f)
+2 -2
View File
@@ -247,7 +247,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
(define-public feh (define-public feh
(package (package
(name "feh") (name "feh")
(version "3.10.3") (version "3.11.3")
(home-page "https://feh.finalrewind.org/") (home-page "https://feh.finalrewind.org/")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@@ -255,7 +255,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1j79850gwrjamgc22cv1hiynia4w5lc8qbhww3qpl8bhjxwy49jl")))) "0qqha3k1pivrw8kr6alk3l92qh75cgynb4vsvg024fa359cs7k7j"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:phases (list #:phases
+2 -1
View File
@@ -378,7 +378,8 @@ method, one of the most popular choices for Traditional Chinese users.")
texinfo texinfo
perl perl
pkg-config pkg-config
python-minimal)) python-minimal
python-setuptools))
(synopsis "Braille translator and back-translator") (synopsis "Braille translator and back-translator")
(description "Liblouis is a braille translator and back-translator named in (description "Liblouis is a braille translator and back-translator named in
honor of Louis Braille. It features support for computer and literary braille, honor of Louis Braille. It features support for computer and literary braille,
+7 -7
View File
@@ -125,14 +125,14 @@
;; ex: ;; ex:
;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \ ;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \
;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision ;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision
(let ((commit "c316776e57fcf5c11054c115054b083ce0790ce7")) (let ((commit "d1394212aed0ce0063c0f818aa236e7d4f955ac9"))
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/mozilla-l10n/firefox-l10n.git") (url "https://github.com/mozilla-l10n/firefox-l10n.git")
(commit commit))) (commit commit)))
(file-name (git-file-name "firefox-l10n" commit)) (file-name (git-file-name "firefox-l10n" commit))
(sha256 (base32 "19ph6rj4s5f1vdmkifk2n1lb2lnlps87miy49552x5czxy40wwh4"))))) (sha256 (base32 "16s515xf0i7a7acv0m1bbgflbdx9a87b1dcg7q3yswym8x1bhvaj")))))
(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n) (define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n)
(let* ((ff-src (firefox-source-origin (let* ((ff-src (firefox-source-origin
@@ -238,23 +238,23 @@
;;; but since in Guix only the latest packaged Rust is officially supported, ;;; but since in Guix only the latest packaged Rust is officially supported,
;;; it is a tradeoff worth making. ;;; it is a tradeoff worth making.
;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html ;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html
(define rust-librewolf rust-1.92) (define rust-librewolf rust-1.93)
;; Update this id with every update to its release date. ;; Update this id with every update to its release date.
;; It's used for cache validation and therefore can lead to strange bugs. ;; It's used for cache validation and therefore can lead to strange bugs.
;; ex: date '+%Y%m%d%H%M%S' ;; ex: date '+%Y%m%d%H%M%S'
;; or: (format-time-string "%Y%m%d%H%M%S") ;; or: (format-time-string "%Y%m%d%H%M%S")
(define %librewolf-build-id "20260319204056") (define %librewolf-build-id "20260326135749")
(define-public librewolf (define-public librewolf
(package (package
(name "librewolf") (name "librewolf")
(version "148.0.2-3") (version "149.0-1")
(source (source
(make-librewolf-source (make-librewolf-source
#:version version #:version version
#:firefox-hash "142f4k4ykcm65kbvj60p472103r4k79v9fdsfljdav2rbr6qxjx6" #:firefox-hash "12jb930qhqhpzjpn5smms7g4n6y40zvxcrg8w42696wxk7pgsqdq"
#:librewolf-hash "193yh89chifcvqn03h9xs39g0pdiiamzb4wjf8f7qczgc23b7y8w" #:librewolf-hash "0igv0fr0vl2nf5rlgnidfz2a3gh55bsqwcray0jg7x2kl6qnkzwm"
#:l10n firefox-l10n)) #:l10n firefox-l10n))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
+2 -2
View File
@@ -27,14 +27,14 @@
(define-public libsigsegv (define-public libsigsegv
(package (package
(name "libsigsegv") (name "libsigsegv")
(version "2.14") (version "2.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://gnu/libsigsegv/libsigsegv-" "mirror://gnu/libsigsegv/libsigsegv-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "15d2r831xz94s7540nvb1gbfl062g7mrnj88m60wyr1kh10kkb6d")))) (base32 "1n992y64ni16bv9lijxsa5h87rscfvk01z4hl4bkijr509k5as03"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.gnu.org/software/libsigsegv/") (home-page "https://www.gnu.org/software/libsigsegv/")
(synopsis "Library for handling page faults") (synopsis "Library for handling page faults")
+2 -2
View File
@@ -36,7 +36,7 @@
(define-public libunistring (define-public libunistring
(package (package
(name "libunistring") (name "libunistring")
(version "1.3") (version "1.4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@@ -44,7 +44,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"09wmas38i9fw7l3sv92xkbvy7idcl76ifhzv7l7ia98xhdn7higj")))) "0qvp61m14xi9kx2gg44rjnq1g8h2g33ni23q0ccqc9r5i4q89n37"))))
(propagated-inputs (libiconv-if-needed)) (propagated-inputs (libiconv-if-needed))
(outputs '("out" "static")) (outputs '("out" "static"))
(build-system gnu-build-system) (build-system gnu-build-system)
+3 -3
View File
@@ -11480,7 +11480,7 @@ found in custom keyboard firmware like QMK.")
(define-public pipewire (define-public pipewire
(package (package
(name "pipewire") (name "pipewire")
(version "1.5.85") (version "1.6.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@@ -11489,7 +11489,7 @@ found in custom keyboard firmware like QMK.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1nd74wjy16bw8ng00acc26rakpqabcq1z64h23w97i18pb7z64xq")))) "01jvq9ck8dhkbmw21jw0frgbgvzwfq1dxkvl3zynrj179kpm4v9w"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list (list
@@ -11521,7 +11521,7 @@ found in custom keyboard firmware like QMK.")
gstreamer gstreamer
jack-2 jack-2
ldacbt ldacbt
libcamera libcamera-minimal
libdrm libdrm
libfdk libfdk
libfreeaptx libfreeaptx
+1 -1
View File
@@ -495,7 +495,7 @@ interface.")
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs (native-inputs
`(("config-patch" ,@(search-patches "cl-asdf-config-directories.patch")) `(("config-patch" ,@(search-patches "cl-asdf-config-directories.patch"))
("patch" ,patch/pinned))) ("patch" ,patch)))
(arguments (arguments
`(#:modules ((guix build utils) `(#:modules ((guix build utils)
(guix build lisp-utils)) (guix build lisp-utils))
+2
View File
@@ -2083,6 +2083,8 @@ generator targetting AMD hardware.")
(substitute* "clang/cindex.py" (substitute* "clang/cindex.py"
(("libclang\\.so") libclang)))))))) (("libclang\\.so") libclang))))))))
(inputs (list clang)) (inputs (list clang))
(native-inputs (modify-inputs (package-native-inputs clang)
(append python-setuptools)))
(synopsis "Python bindings to libclang"))) (synopsis "Python bindings to libclang")))
(define-public python-clang-12 (define-public python-clang-12
+2 -24
View File
@@ -37,7 +37,7 @@
(define-public lsof (define-public lsof
(package (package
(name "lsof") (name "lsof")
(version "4.99.3") (version "4.99.6")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@@ -46,8 +46,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax")) "08p0c0wci9vam6b29ym7z7sip8gd0j0dz7zy4f0b32dw51rb3z9k"))))
(patches (search-patches "lsof-compat-linux-6.9.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list automake (native-inputs (list automake
autoconf autoconf
@@ -57,27 +56,6 @@
pkg-config pkg-config
procps ;for ps procps ;for ps
util-linux)) ;for unshare util-linux)) ;for unshare
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-configure-ac-version
;; see https://github.com/lsof-org/lsof/commit/932a0b3b1992497e23fd9b8d31116b9ca9b0f98d
;; to fix tests/case-01-version.bash test fail.
(lambda _
(substitute* "configure.ac"
(("4\\.99\\.0")
"4.99.3"))))
(add-before 'bootstrap 'disable-failing-tests
(lambda _
(substitute* "Makefile.am"
;; Fails with ERROR!!! client gethostbyaddr() failure.
(("(TESTS \\+=.*) tests/LTsock" _ prefix)
prefix)
;; Fails on CoW filesystems (eg. btrfs)
(("tests/LTlock") "")
;; Fails because /proc not mounted in sandbox
(("\tdialects/linux/tests/case-20-epoll.bash \\\\")
"\\")))))))
(synopsis "Display information about open files") (synopsis "Display information about open files")
(description (description
"Lsof stands for LiSt Open Files, and it does just that. "Lsof stands for LiSt Open Files, and it does just that.
+2 -2
View File
@@ -30,14 +30,14 @@
(define-public m4 (define-public m4
(package (package
(name "m4") (name "m4")
(version "1.4.19") (version "1.4.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/m4/m4-" (uri (string-append "mirror://gnu/m4/m4-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"15mghcksh11saylpm86h1zkz4in0rbi0pk8i6nqxkdikdmfdxbk3")))) "0axgilr6n88br7msm3ls8m4zlwgk4q3vcjqw1cknqpyg3hxfldp2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; Explicitly disable tests when cross-compiling, otherwise 'make check' `(;; Explicitly disable tests when cross-compiling, otherwise 'make check'
+3 -3
View File
@@ -2872,17 +2872,17 @@ data by providing clean labels during training.")
(define-public python-cma (define-public python-cma
(package (package
(name "python-cma") (name "python-cma")
(version "4.4.1") (version "4.4.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "cma" version)) (uri (pypi-uri "cma" version))
(sha256 (sha256
(base32 (base32
"1n17shbcmy7h7k105ar9yhj2zmgykx1wv9fhwd5kbwrcypa221mz")))) "0w41k8dk8g1ngx797dzag5xcwws77sfnfriim874rq6wnmadcav3"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (arguments
(list #:test-backend #~'custom (list #:test-backend #~'custom
#:test-flags #~'("cma/test.py"))) #:test-flags #~'("src/cma/test.py")))
(native-inputs (list python-pytest python-setuptools)) (native-inputs (list python-pytest python-setuptools))
(propagated-inputs (list python-numpy)) (propagated-inputs (list python-numpy))
(home-page "https://github.com/CMA-ES/pycma") (home-page "https://github.com/CMA-ES/pycma")
+3 -3
View File
@@ -1346,7 +1346,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
(define-public mu (define-public mu
(package (package
(name "mu") (name "mu")
(version "1.12.15") (version "1.14.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -1355,7 +1355,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "191q23nj690bn4cbb26yf7pw5ihb1xmbna6ccdrkkf4m19yrxr12")))) (base32 "1fhnnm58ndfd6hzdagrsgcdcm2qlcjlda13vyx5d9lclhxgdn0vf"))))
(build-system meson-build-system) (build-system meson-build-system)
(native-inputs (native-inputs
(list pkg-config (list pkg-config
@@ -1364,7 +1364,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
tzdata-for-tests ; for tests tzdata-for-tests ; for tests
texinfo)) texinfo))
(inputs (inputs
(list glib gmime guile-3.0 xapian readline python)) (list glib gmime guile-3.0-latest xapian readline python))
(arguments (arguments
(list (list
#:modules '((guix build meson-build-system) #:modules '((guix build meson-build-system)
+2 -2
View File
@@ -410,7 +410,7 @@ on any distribution, and the nroff source is included."))))
;; input "locales" contain the original (English) text. ;; input "locales" contain the original (English) text.
(package (package
(name "help2man") (name "help2man")
(version "1.49.2") (version "1.49.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@@ -418,7 +418,7 @@ on any distribution, and the nroff source is included."))))
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0dnxx96lbcb8ab8yrdkqll14cl5n0bch8qpd9qj3c2ky78hhwbly")))) "0kzxla1w0w4z5la255lg9q51wy3qx8f1b0i6gbhaz9pcybg4yzjd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
+2 -2
View File
@@ -9760,7 +9760,7 @@ diagrams.")
(define-public libpoly (define-public libpoly
(package (package
(name "libpoly") (name "libpoly")
(version "0.2.0") (version "0.2.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@@ -9769,7 +9769,7 @@ diagrams.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0vwdffmff3widzj8x1pjvpw48s7h1y1pm8cad3zscmg2hzaqwkc0")))) "1nyiddvxzziagz7zrl2in8k1mypaj8z7vmm633h9mk4iiy586ddq"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (list gmp)) (inputs (list gmp))
(native-inputs (native-inputs
+21 -22
View File
@@ -46,6 +46,7 @@
;;; Copyright © 2024 Nguyễn Gia Phong <cnx@loang.net> ;;; Copyright © 2024 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2025 Evgeny Pisemsky <mail@pisemsky.site> ;;; Copyright © 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Adrien 'neox' Bourmault <neox@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -1149,25 +1150,20 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp (define-public python-nbxmpp
(package (package
(name "python-nbxmpp") (name "python-nbxmpp")
(version "5.0.4") (version "7.1.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (pypi-uri "nbxmpp" version)) (uri (git-reference
(url "https://dev.gajim.org/gajim/python-nbxmpp")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "04fnc743d523gb38mm1inii80agmpb9r6hvn3f8ygnj3yq7s2vhn")))) (base32 "1n7b6yv2k89hsmhmx9pi7m8l3aq97xppaz3hm7mvqgvxnlw0c1kr"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (arguments (list #:test-backend #~'unittest))
(list (propagated-inputs
#:phases (list python-setuptools))
#~(modify-phases %standard-phases
;; XXX: This probably should be an option for pyproject-build-system
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests? (invoke "python" "-m" "unittest" "-v")))))))
(native-inputs
(list python-setuptools
python-wheel))
(inputs (inputs
(list glib (list glib
glib-networking glib-networking
@@ -1187,7 +1183,7 @@ of xmpppy.")
(define-public gajim (define-public gajim
(package (package
(name "gajim") (name "gajim")
(version "1.9.5") (version "2.4.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@@ -1195,7 +1191,7 @@ of xmpppy.")
(version-major+minor version) (version-major+minor version)
"/gajim-" version ".tar.gz")) "/gajim-" version ".tar.gz"))
(sha256 (sha256
(base32 "0g2nhy6ypj4jbz216sgiy37spq34bwa0ydn2g73fp9qnxfq4vpvz")) (base32 "0s2jryg8c0ifgf88pfj7k1ifhl1l2fw4w8w80g7xh3qpk5gj7ml0"))
(patches (patches
(search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
@@ -1282,13 +1278,14 @@ of xmpppy.")
glib-networking glib-networking
gsettings-desktop-schemas gsettings-desktop-schemas
gsound gsound
gspell libspelling
libadwaita
gstreamer gstreamer
gst-plugins-base gst-plugins-base
gtk+ gst-plugins-good
gtksourceview-4 gtk
gtksourceview
gupnp-igd gupnp-igd
libappindicator
libnice libnice
libomemo libomemo
libsecret libsecret
@@ -1299,6 +1296,7 @@ of xmpppy.")
python-dbus-1.2 python-dbus-1.2
python-emoji python-emoji
python-gssapi python-gssapi
python-httpx
python-idna python-idna
python-keyring python-keyring
python-nbxmpp python-nbxmpp
@@ -1310,7 +1308,8 @@ of xmpppy.")
python-pygobject python-pygobject
python-pyopenssl python-pyopenssl
python-qrcode python-qrcode
python-sqlalchemy-2)) python-sqlalchemy-2
python-truststore))
(propagated-inputs (propagated-inputs
(list dconf)) (list dconf))
(synopsis "Fully-featured XMPP client") (synopsis "Fully-featured XMPP client")
+105 -62
View File
@@ -166,70 +166,113 @@ bind processes, and much more.")
(define-public hwloc-2 (define-public hwloc-2
(package (package
(inherit hwloc-1) (name "hwloc")
(version "2.13.0") (version "2.13.0")
(source (origin (source
(method url-fetch) (origin
(uri (string-append "https://download.open-mpi.org/release/hwloc/v" (method git-fetch)
(version-major+minor version) (uri (git-reference
"/hwloc-" version ".tar.bz2")) (url "https://github.com/open-mpi/hwloc")
(sha256 (commit (string-append "hwloc-" version))))
(base32 (file-name (git-file-name name version))
"1aqdznqp7f18yg95vbr5n6ccxxdiywacygvn3wbhzn7bnspkdsaj")) (sha256
;; XXX: Remove after updating package from 2.13.0. (base32 "1l9skkcizlv0qvw2lzmysndbm528xvszhiqq3569da157qpa5xav"))
(patches (search-patches "hwloc-add-with-opencl.patch")))) ;; XXX: Remove after updating package from 2.13.0.
(patches (search-patches "hwloc-add-with-opencl.patch"))))
(native-inputs (modify-inputs native-inputs (build-system gnu-build-system)
(append autoconf) (outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc.
(append automake) "lib" ;small closure
(append libtool) "doc" ;400+ section 3 man pages
(append opencl-headers) "debug"))
(append bash))) ;for completion tests (native-inputs
(inputs (modify-inputs inputs (list autoconf automake libtool opencl-headers bash pkg-config))
;; XXX: rocm-smi requires libdrm/drm.h but doesn't propagate a (inputs
;; package providing these. For now, libdrm is used to provide (append (if (%current-target-system)
;; this header. '() ;fewer dependencies when cross-compiling
(append libdrm) (list libx11 cairo ncurses expat))
(append opencl-icd-loader) (list
(append rocm-smi-lib) ;; XXX: rocm-smi requires libdrm/drm.h but doesn't
(delete "numactl"))) ;libnuma is no longer needed. ;; propagate a package providing these. For now, libdrm is
(propagated-inputs (modify-inputs propagated-inputs ;; used to provide this header.
;; hwloc.pc lists libze_loader and libxml2 in libdrm
;; 'Requires.private' in 'hwloc.pc'. opencl-icd-loader
(append level-zero libxml2))) rocm-smi-lib)))
(propagated-inputs
;; hwloc.pc lists libze_loader and libxml2 in
;; 'Requires.private' in 'hwloc.pc'.
(list level-zero libpciaccess libxml2))
(arguments (arguments
(substitute-keyword-arguments arguments (list
((#:configure-flags flags '()) #:configure-flags
#~(cons* (string-append "--with-opencl=" #~(list
#$(this-package-input "opencl-icd-loader")) (string-append
"--enable-rsmi" "--with-opencl=" #$(this-package-input "opencl-icd-loader"))
(string-append "--with-rocm=" "--enable-rsmi"
#$(this-package-input "rocm-smi-lib")) (string-append "--with-rocm=" #$(this-package-input "rocm-smi-lib"))
#$flags)) "--localstatedir=/var")
((#:phases phases) #:phases
#~(modify-phases #$phases #~(modify-phases %standard-phases
(add-after 'unpack 'delete-configure (add-before 'check 'skip-linux-libnuma-test
(lambda _ (lambda _
;; Remove configure file to generate it with patch. ;; Arrange to skip 'tests/hwloc/linux-libnuma', which fails on
(delete-file "configure"))) ;; some machines: <https://github.com/open-mpi/hwloc/issues/213>.
(replace 'skip-linux-libnuma-test (substitute* "tests/hwloc/linux-libnuma.c"
(lambda _ (("numa_available\\(\\)")
;; Arrange to skip 'tests/hwloc/linux-libnuma', which fails on "-1"))))
;; some machines: <https://github.com/open-mpi/hwloc/issues/213>. (add-after 'install 'refine-libnuma
(substitute* "tests/hwloc/linux-libnuma.c" ;; Give -L arguments for libraries to avoid propagation
(("numa_available\\(\\)") (lambda* (#:key inputs outputs #:allow-other-keys)
"-1")))) (let ((out (assoc-ref outputs "lib"))
(add-before 'check 'skip-tests-that-require-/sys (numa (assoc-ref inputs "numactl")))
(lambda _ (substitute* (map (lambda (f) (string-append out "/" f))
;; 'test-gather-topology.sh' requires /sys as of 2.9.0; skip it. '("lib/pkgconfig/hwloc.pc" "lib/libhwloc.la"))
(setenv "HWLOC_TEST_GATHER_TOPOLOGY" "0"))) (("-lnuma" lib)
(add-before 'check 'skip-test-that-fails-on-qemu (string-append "-L" numa "/lib " lib))))))
(lambda _ (add-after 'install 'avoid-circular-references
;; Skip test that fails on emulated hardware due to QEMU bug: (lambda* (#:key outputs #:allow-other-keys)
;; <https://bugs.gnu.org/40342>. (let ((lib (assoc-ref outputs "lib")))
(substitute* "tests/hwloc/hwloc_get_last_cpu_location.c" ;; Suppress the 'prefix=' and 'exec_prefix=' lines so that the
(("hwloc_topology_init" all) ;; "lib" output doesn't refer to "out".
(string-append "exit (77);\n" all))))))))))) (substitute* (string-append lib "/lib/pkgconfig/hwloc.pc")
(("^.*prefix=.*$")
"")))))
(add-after 'install 'move-man-pages
(lambda _
;; Move section 1 and 3 man pages to the "doc" output.
(copy-recursively (string-append #$output "/share/man/man1")
(string-append #$output:doc "/share/man/man1"))
(copy-recursively (string-append #$output "/share/man/man7")
(string-append #$output:doc "/share/man/man7"))
(delete-file-recursively
(string-append #$output "/share/man/man1"))
(delete-file-recursively
(string-append #$output "/share/man/man7"))))
(add-before 'check 'skip-tests-that-require-/sys
(lambda _
;; 'test-gather-topology.sh' requires /sys as of 2.9.0; skip it.
(setenv "HWLOC_TEST_GATHER_TOPOLOGY" "0")))
(add-before 'check 'skip-test-that-fails-on-qemu
(lambda _
;; Skip test that fails on emulated hardware due to QEMU bug:
;; <https://bugs.gnu.org/40342>.
(substitute* "tests/hwloc/hwloc_get_last_cpu_location.c"
(("hwloc_topology_init" all)
(string-append "exit (77);\n" all))))))))
(home-page "https://www.open-mpi.org/projects/hwloc/")
(synopsis "Abstraction of hardware architectures")
(description
"hwloc provides a portable abstraction (across OS,
versions, architectures, ...) of the hierarchical topology of modern
architectures, including NUMA memory nodes, sockets, shared caches, cores and
simultaneous multithreading. It also gathers various attributes such as cache
and memory information. It primarily aims at helping high-performance
computing applications with gathering information about the hardware so as to
exploit it accordingly and efficiently.
hwloc may display the topology in multiple convenient formats. It also offers
a powerful programming interface to gather information about the hardware,
bind processes, and much more.")
(license license:bsd-3)))
(define-public hwloc (define-public hwloc
;; The latest stable series of hwloc. ;; The latest stable series of hwloc.
+41 -2
View File
@@ -540,8 +540,9 @@ enables iPod support in music players such as Clementine.")
python-setuptools)) python-setuptools))
(inputs (inputs
(list bash-minimal (list bash-minimal
gst-libav gst-libav))
python-gst (propagated-inputs
(list python-gst
python-pygobject python-pygobject
python-pykka python-pykka
python-requests python-requests
@@ -554,6 +555,44 @@ from local disk or cloud services, and can be controlled using a variety of
MPD and web clients.") MPD and web clients.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public mopidy-local
(package
(name "mopidy-local")
(version "3.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mopidy/mopidy-local")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1fqw6rq39w4q53w6jgl80x358rhzl4c9gdqb9kfgckmcz6vbcfm1"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
python-setuptools))
(propagated-inputs
(list mopidy
python-pykka
python-uritools))
(home-page "https://mopidy.com/ext/local/")
(synopsis "Mopidy extension for playing music from local file archive")
(description
"This package provides Mopidy's extension for playing music from local
file archive.
In contrast to @url{https://mopidy.com/ext/file, Mopidy-File}, Mopidy-Local
builds an index of archives metadata ahead of time, and can thus provide
additional features like search.
The music metadata is stored in a SQLite database. This lets users to browse
their music collection by album, artist, composer and performer, and provides
full-text search capabilities based on SQLites FTS modules. It also notices
updates via @command{mopidy local scan} while Mopidy is running, so you can
scan your media library periodically, for example from a cron job.")
(license license:asl2.0)))
(define-public clementine (define-public clementine
;; Clementine has one automatic release per commit at ;; Clementine has one automatic release per commit at
;; <https://github.com/clementine-player/Clementine/releases>. ;; <https://github.com/clementine-player/Clementine/releases>.
+2 -29
View File
@@ -42,23 +42,10 @@
#:use-module ((guix memoization) #:select (mlambda)) #:use-module ((guix memoization) #:select (mlambda))
#:use-module (ice-9 match)) #:use-module (ice-9 match))
(define ncurses-rollup-patch
(mlambda (version)
(origin
(method url-fetch)
(uri (match (string-split (version-major+minor+point version) #\.)
((major minor point)
(string-append "https://invisible-mirror.net/archives"
"/ncurses/" major "." minor "/ncurses-"
major "." minor "-" point "-patch.sh.bz2"))))
(sha256
(base32
"1b6522cvi4066bgh9lp93q8lk93zcjjssvnw1512z447xvazy2y6")))))
(define-public ncurses (define-public ncurses
(package (package
(name "ncurses") (name "ncurses")
(version "6.2.20210619") (version "6.6.20260103")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/ncurses/ncurses-" (uri (string-append "mirror://gnu/ncurses/ncurses-"
@@ -66,7 +53,7 @@
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"17bcm2z1rdx5gmzj5fb8cp7f28aw5b4g2z4qvvqg3yg0fq66wc1h")))) "04gz96vhj83yls2czsajbmc65qsnfrxn2ijcl20h62w8xnxlqnrm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ;1 MiB of man pages "doc")) ;1 MiB of man pages
@@ -91,18 +78,6 @@
(cons (string-append "--host=" target) (cons (string-append "--host=" target)
configure-flags) configure-flags)
configure-flags))))) configure-flags)))))
(apply-rollup-patch-phase
;; Ncurses distributes "stable" patchsets to be applied on top
;; of the release tarball. These are only available as shell
;; scripts(!) so we decompress and apply them in a phase.
;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>.
#~(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let ((rollup-patch #$(ncurses-rollup-patch
(package-version this-package))))
(copy-file rollup-patch
(string-append (getcwd) "/rollup-patch.sh.bz2"))
(invoke "bzip2" "-d" "rollup-patch.sh.bz2")
(invoke "sh" "rollup-patch.sh"))))
(remove-shebang-phase (remove-shebang-phase
#~(lambda _ #~(lambda _
;; To avoid retaining a reference to the bootstrap Bash via the ;; To avoid retaining a reference to the bootstrap Bash via the
@@ -205,8 +180,6 @@
#$@(if (target-mingw?) #~("--enable-term-driver") #~())) #$@(if (target-mingw?) #~("--enable-term-driver") #~()))
#:tests? #f ; no "check" target #:tests? #f ; no "check" target
#:phases #~(modify-phases %standard-phases #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'apply-rollup-patch
#$apply-rollup-patch-phase)
(replace 'configure #$configure-phase) (replace 'configure #$configure-phase)
(add-after 'install 'post-install (add-after 'install 'post-install
#$post-install-phase) #$post-install-phase)
+50 -35
View File
@@ -478,9 +478,9 @@ Raspberry Pi ISP (PiSP), consisting of the Frontend and Backend hardware
components.") components.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public libcamera (define-public libcamera-minimal
(package (package
(name "libcamera") (name "libcamera-minimal")
(version "0.6.0") (version "0.6.0")
(source (source
(origin (origin
@@ -491,27 +491,18 @@ components.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(patches (search-patches (patches (search-patches
"libcamera-ipa_manager-disable-signature-verification.patch")) "libcamera-ipa_manager-disable-signature-verification.patch"))
(file-name (file-name (git-file-name "libcamera" version))
(git-file-name name version))
(sha256 (sha256
(base32 "0g6rphsa1hi9y22l2vw5cj75bf57clq3cggviwd1bnjhpp61nryc")))) (base32 "0g6rphsa1hi9y22l2vw5cj75bf57clq3cggviwd1bnjhpp61nryc"))))
(build-system meson-build-system) (build-system meson-build-system)
(outputs '("out" "doc" "gst" "tools"))
(arguments (arguments
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas (list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
#:configure-flags #:configure-flags
#~(list (string-append "-Dbindir=" #$output:tools "/bin") #~(list "-Dudev=enabled"
"-Dudev=enabled" "-Dv4l2=enabled"
"-Dv4l2=true"
"-Dtest=true") "-Dtest=true")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'set-sphinx-theme
;; sphinx_book_theme requires node for packaging
;; use the default sphinx theme instead
(lambda _
(substitute* "Documentation/conf.py.in"
(("sphinx_book_theme") "alabaster"))))
(add-after 'unpack 'disable-gstreamer-tests (add-after 'unpack 'disable-gstreamer-tests
;; these require /dev/udmabuf ;; these require /dev/udmabuf
(lambda _ (lambda _
@@ -530,39 +521,24 @@ components.")
(substitute* "test/meson.build" (substitute* "test/meson.build"
((".*'name': 'file'.*") ((".*'name': 'file'.*")
""))))) "")))))
#~()) #~()))))
(add-after 'install 'move-doc-and-gst
(lambda _
(mkdir-p (string-append #$output:doc "/share"))
(rename-file (string-append #$output "/share/doc")
(string-append #$output:doc "/share/doc"))
(mkdir-p (string-append #$output:gst "/lib"))
(rename-file
(string-append #$output "/lib/gstreamer-1.0")
(string-append #$output:gst "/lib/gstreamer-1.0")))))))
(native-inputs (native-inputs
(list googletest (list pkg-config
graphviz ;for 'dot'
doxygen
pkg-config
python-wrapper python-wrapper
python-sphinx python-pyyaml
python-sphinxcontrib-doxylink python-packaging))
python-pyyaml))
(inputs (inputs
(append (append
(list eudev (list eudev
glib glib
gstreamer
gst-plugins-base gst-plugins-base
libevent
libjpeg-turbo libjpeg-turbo
libtiff
libyaml libyaml
libyuv libyuv
pybind11-2 pybind11-2
python-jinja2 python-jinja2
python-ply python-ply)
qtbase)
;; libpisp is only needed for the rpi/pisp pipeline on ARM. ;; libpisp is only needed for the rpi/pisp pipeline on ARM.
(if (target-arm?) (if (target-arm?)
(list libpisp) (list libpisp)
@@ -573,6 +549,45 @@ Android, and ChromeOS.")
(home-page "https://libcamera.org/") (home-page "https://libcamera.org/")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
;; Drop the documentation and the sample utilities.
;; The README.rst gives a nice list of what packages are required.
(define-public libcamera
(package/inherit libcamera-minimal
(name "libcamera")
(outputs '("out" "doc" "gst" "tools"))
(arguments
(substitute-keyword-arguments (package-arguments libcamera-minimal)
((#:configure-flags flags #~'())
#~(cons (string-append "-Dbindir=" #$output:tools "/bin")
#$flags))
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(add-after 'unpack 'set-sphinx-theme
;; sphinx_book_theme requires node for packaging
;; use the default sphinx theme instead
(lambda _
(substitute* "Documentation/conf.py.in"
(("sphinx_book_theme") "alabaster"))))
(add-after 'install 'move-doc-and-gst
(lambda _
(mkdir-p (string-append #$output:doc "/share"))
(rename-file (string-append #$output "/share/doc")
(string-append #$output:doc "/share/doc"))
(mkdir-p (string-append #$output:gst "/lib"))
(rename-file
(string-append #$output "/lib/gstreamer-1.0")
(string-append #$output:gst "/lib/gstreamer-1.0"))))))))
(native-inputs
(modify-inputs (package-native-inputs libcamera-minimal)
(append googletest
doxygen
graphviz
python-sphinx
python-sphinxcontrib-doxylink)))
(inputs
(modify-inputs (package-inputs libcamera-minimal)
(append libevent libtiff qtbase)))))
(define-public libnice (define-public libnice
(package (package
(name "libnice") (name "libnice")
+23 -16
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2024 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2024,2026 Eric Bavier <bavier@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -20,35 +20,42 @@
(define-module (gnu packages nickle) (define-module (gnu packages nickle)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (guix build-system gnu) #:use-module (gnu packages ruby-xyz)
#:use-module (guix build-system meson)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)) #:use-module (guix packages))
(define-public nickle (define-public nickle
(package (package
(name "nickle") (name "nickle")
(version "2.97") (version "2.107")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://nickle.org/release/nickle-" (uri (string-append "https://nickle.org/release/nickle-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0gqashcs3r0d1yp6rq6q2ayjdwsjxnd8z0ij55ayrbhn296l7mp2")) "1wli8p5fv2ldy51ycc8pcx8rl3ph2wbyiqs21qpjadlvildaaqj0"))))
(patches (search-patches "nickle-man-release-date.patch")))) (build-system meson-build-system)
(build-system gnu-build-system)
(inputs (list readline))
(arguments (arguments
'(#:phases (list #:phases #~(modify-phases %standard-phases
(modify-phases %standard-phases (add-before 'configure 'disable-benchmarks
(add-after 'unpack 'patch-build-date ;; Benchmarks would require `gmp` and don't
(lambda _ ;; test anything not already covered by other
;; Our patch touches Makefile.am, but rather than rebootstrap, ;; tests, so disable them here.
;; make the substitution directly in Makefile.in. (lambda _
(substitute* "Makefile.in" (substitute* "meson.build"
(("BUILD_DATE") "RELEASE_DATE"))))))) (("^subdir\\('bench'\\)" &)
(string-append "# " &))))))))
(native-inputs (list bc bison flex pkg-config ruby-asciidoctor-pdf))
(inputs (list readline))
(synopsis "Numeric oriented programming language") (synopsis "Numeric oriented programming language")
(description (description
"Nickle is a programming language based prototyping environment with "Nickle is a programming language based prototyping environment with
+2 -2
View File
@@ -82,7 +82,7 @@
(define-public parallel (define-public parallel
(package (package
(name "parallel") (name "parallel")
(version "20260222") (version "20260322")
(outputs '("out" "doc")) (outputs '("out" "doc"))
(source (source
(origin (origin
@@ -90,7 +90,7 @@
(uri (string-append "mirror://gnu/parallel/parallel-" (uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 "0j0zmq1klbvpz590vr2di8yvsniwixlhsmir7zfjy3rajx42l9y6")) (base32 "1q7g5f13nlwichgh0dk8w5fqjnfnxvwxk6rjy0fd5l7l6blq0ikn"))
(snippet (snippet
'(begin '(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
@@ -0,0 +1,26 @@
Ensure that the examples tarball is reproducible.
See https://reproducible-builds.org/docs/archives/
diff -upr a/gprofng/doc/Makefile.in b/gprofng/doc/Makefile.in
--- a/gprofng/doc/Makefile.in 2025-02-02 01:00:00.000000000 +0100
+++ b/gprofng/doc/Makefile.in 2026-03-15 11:03:49.597737186 +0100
@@ -894,14 +894,14 @@ gprofng-display-text.1: $(srcdir)/gprofn
info: $(man_MANS)
-examples.tar.gz:
- $(AM_V_at)( tar czf $@ $(srcdir)/../examples )
+examples.tar:
+ $(AM_V_at)( tar --owner=0 --group=0 --sort=name --mtime='2015-10-21 00:00Z' -cf $@ $(srcdir)/../examples )
.PHONY: install-data-local
-install-data-local: examples.tar.gz
+install-data-local: examples.tar
$(mkinstalldirs) $(DESTDIR)$(docdir)/gprofng
- $(INSTALL_DATA) examples.tar.gz $(DESTDIR)$(docdir)/gprofng
+ $(INSTALL_DATA) examples.tar $(DESTDIR)$(docdir)/gprofng
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -0,0 +1,54 @@
Retrieved from Poky:
https://git.enea.com/cgit/linux/poky.git/plain/meta/recipes-devtools/flex/flex/0001-build-tests-add-missing-parser-scanner-dependencies.patch?id=bf94ea1cc4e966fa2cf55206389f9c34fbd5419d
From 47e3916842ffefd7def84ae85758fdcceeb77839 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Thu, 20 Mar 2025 12:16:50 +0000
Subject: [PATCH] build(tests): add missing parser->scanner dependencies
With sufficient parallelism and `make --shuffle` to reorder builds the
test suite occasionally fails to build with errors like this:
tests/bison_yylval_parser.y:36:10: fatal error: bison_yylval_scanner.h: No such file or directory
36 | #include "bison_yylval_scanner.h"
Solve this by adding the missing dependencies to the *_parser.o targets
on the _scanner.h files.
Upstream-Status: Submitted [https://github.com/westes/flex/pull/702]
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
tests/Makefile.am | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2cb51df..d0c199d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -343,6 +343,7 @@ FLEX = $(top_builddir)/src/flex
bison_nr_main.$(OBJEXT): bison_nr_parser.h bison_nr_scanner.h
bison_nr_scanner.$(OBJEXT): bison_nr_parser.h
+bison_nr_parser.$(OBJEXT): bison_nr_scanner.h
bison_nr_scanner.h: bison_nr_scanner.c
@if test ! -f $@; then rm -f $<; else :; fi
@@ -350,6 +351,7 @@ bison_nr_scanner.h: bison_nr_scanner.c
bison_yylloc_main.$(OBJEXT): bison_yylloc_parser.h bison_yylloc_scanner.h
bison_yylloc_scanner.$(OBJEXT): bison_yylloc_parser.h
+bison_yylloc_parser.$(OBJEXT): bison_yylloc_scanner.h
bison_yylloc_scanner.h: bison_yylloc_scanner.c
@if test ! -f $@; then rm -f $<; else :; fi
@@ -357,6 +359,7 @@ bison_yylloc_scanner.h: bison_yylloc_scanner.c
bison_yylval_main.$(OBJEXT): bison_yylval_parser.h bison_yylval_scanner.h
bison_yylval_scanner.$(OBJEXT): bison_yylval_parser.h
+bison_yylval_parser.$(OBJEXT): bison_yylval_scanner.h
bison_yylval_scanner.h: bison_yylval_scanner.c
@if test ! -f $@; then rm -f $<; else :; fi
--
2.43.0
+30 -10
View File
@@ -2,9 +2,20 @@ As for libc's `system', change Awk to look for `sh' in $PATH. This patch is
only meant to be used during bootstrapping, where we don't know in advance the only meant to be used during bootstrapping, where we don't know in advance the
absolute file name of `sh'. absolute file name of `sh'.
--- gawk-4.1.3/io.c 2015-05-19 15:37:20.000000000 +0200 --- gawk-5.3.2/builtin.c
+++ gawk-4.1.3/io.c 2015-06-09 18:39:36.918414881 +0200 +++ gawk-5.3.2/builtin.c
@@ -2025,7 +2025,7 @@ @@ -3341,7 +3341,7 @@ gawk_system(const char *command)
if ((childpid = fork()) == 0) {
// child
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", command, NULL);
+ execlp("sh", "sh", "-c", command, NULL);
_exit(errno == ENOENT ? 127 : 126);
} else {
// parent
--- gawk-5.3.2/io.c
+++ gawk-5.3.2/io.c
@@ -2084,7 +2084,7 @@ fork_and_open_slave_pty(const char *slavenam, int master, const char *command, p
set_sigpipe_to_default(); set_sigpipe_to_default();
@@ -13,7 +24,7 @@ absolute file name of `sh'.
_exit(errno == ENOENT ? 127 : 126); _exit(errno == ENOENT ? 127 : 126);
case -1: case -1:
@@ -2077,7 +2077,7 @@ @@ -2136,7 +2136,7 @@ fork_and_open_slave_pty(const char *slavenam, int master, const char *command, p
signal(SIGPIPE, SIG_DFL); signal(SIGPIPE, SIG_DFL);
@@ -22,21 +33,30 @@ absolute file name of `sh'.
_exit(errno == ENOENT ? 127 : 126); _exit(errno == ENOENT ? 127 : 126);
case -1: case -1:
@@ -2422,7 +2422,7 @@ @@ -2475,7 +2475,7 @@ use_pipes:
fatal(_("close of pipe failed (%s)"), strerror(errno)); fatal(_("close of pipe failed: %s"), strerror(errno));
/* stderr does NOT get dup'ed onto child's stdout */ /* stderr does NOT get dup'ed onto child's stdout */
set_sigpipe_to_default(); set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", str, NULL); - execl("/bin/sh", "sh", "-c", str, NULL);
+ execlp("sh", "sh", "-c", str, NULL); + execlp("sh", "sh", "-c", str, NULL);
_exit(errno == ENOENT ? 127 : 126); _exit(errno == ENOENT ? 127 : 126);
} }
#endif /* NOT __EMX__, NOT __MINGW32__ */ #endif /* NOT __MINGW32__ */
@@ -2659,7 +2659,7 @@ @@ -2706,7 +2706,7 @@ gawk_popen(const char *cmd, struct redirect *rp)
if (close(p[0]) == -1 || close(p[1]) == -1) if (close(p[0]) == -1 || close(p[1]) == -1)
fatal(_("close of pipe failed (%s)"), strerror(errno)); fatal(_("close of pipe failed: %s"), strerror(errno));
set_sigpipe_to_default(); set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", cmd, NULL); - execl("/bin/sh", "sh", "-c", cmd, NULL);
+ execlp("sh", "sh", "-c", cmd, NULL); + execlp("sh", "sh", "-c", cmd, NULL);
_exit(errno == ENOENT ? 127 : 126); _exit(errno == ENOENT ? 127 : 126);
} }
#endif /* NOT __EMX__, NOT __MINGW32__ */ #endif /* NOT __MINGW32__ */
@@ -4642,7 +4642,7 @@ gawk_popen_write(const char *cmd)
fatal(_("gawk_popen_write: failed to move pipe fd to standard input"));
(void) close(pipefds[0]);
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", cmd, NULL);
+ execlp("sh", "sh", "-c", cmd, NULL);
_exit(errno == ENOENT ? 127 : 126);
} else if (childpid < 0) {
(void) close(pipefds[0]);
@@ -0,0 +1,70 @@
Patch for GCC to mangle store item references to inputs introduced by __FILE__
macros from derivation outputs. This helps reduce the closure size of certain
packages.
This patch is based on:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch
At the time of writting, this patch applies successfuly for GCC versions from
13 to 16. The patch is not meant to be upstreamed, it provides a solution to
a specific problem of Guix.
---
gcc/file-prefix-map.cc | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/gcc/file-prefix-map.cc b/gcc/file-prefix-map.cc
index 6b432e2a15a..6cc20bacd38 100644
--- a/gcc/file-prefix-map.cc
+++ b/gcc/file-prefix-map.cc
@@ -74,7 +74,7 @@ add_prefix_map (file_prefix_map *&maps, const char *arg, const char *opt)
remapping was performed. */
static const char *
-remap_filename (file_prefix_map *maps, const char *filename)
+remap_filename (file_prefix_map *maps, const char *filename, bool mangle_guix_store = false)
{
file_prefix_map *map;
char *s;
@@ -102,6 +102,30 @@ remap_filename (file_prefix_map *maps, const char *filename)
break;
if (!map)
{
+ if (mangle_guix_store && getenv("GUIX_GCC_MANGLE_PREFIX_MAP"))
+ {
+ /* Remap all fo $NIX_STORE/.{32} paths to uppercase
+ *
+ * That way we avoid argument parameters explosion
+ * and still avoid embedding headers into runtime closure:
+ * https://gcc.gnu.org/PR111527
+ */
+ const char * guix_store = getenv("NIX_STORE") ? getenv("NIX_STORE") : "/gnu/store";
+ size_t guix_store_len = guix_store ? strlen(guix_store) : 0;
+ const char * name = realname ? realname : filename;
+ size_t name_len = strlen(name);
+ if (guix_store && name_len >= guix_store_len + 1 + 32 && memcmp(name, guix_store, guix_store_len) == 0)
+ {
+ s = (char *) ggc_alloc_atomic (name_len + 1);
+ memcpy(s, name, name_len + 1);
+ for (size_t i = guix_store_len + 1; i < guix_store_len + 1 + 32; i++) {
+ s[i] = TOUPPER(s[i]);
+ }
+ if (realname != filename)
+ free (const_cast <char *> (realname));
+ return s;
+ }
+ }
if (realname != filename)
free (const_cast <char *> (realname));
return filename;
@@ -163,7 +187,7 @@ add_profile_prefix_map (const char *arg)
const char *
remap_macro_filename (const char *filename)
{
- return remap_filename (macro_prefix_maps, filename);
+ return remap_filename (macro_prefix_maps, filename, true);
}
/* Remap using -fdebug-prefix-map. Return the GC-allocated new name
--
2.52.0
@@ -1,10 +0,0 @@
--- a/testsuite/tests/driver/recomp015/Makefile 2024-01-13 16:22:42.643106725 +0100
+++ b/testsuite/tests/driver/recomp015/Makefile 2024-01-13 16:23:18.406867917 +0100
@@ -26,6 +26,7 @@
# number of sections)
'$(TEST_HC)' $(TEST_HC_OPTS) Generate.hs
./Generate > ManySections.s
+ echo '.section .note.GNU-stack,"",@progbits' > ManySections.s
echo 'main = putStrLn "Running main..."' > Main.hs
'$(TEST_HC)' $(TEST_HC_OPTS) -c ManySections.s
'$(TEST_HC)' $(TEST_HC_OPTS) --make -O Main.hs ManySections.o
@@ -0,0 +1,23 @@
This patch is based on patch from NixOS/nixpkgs
pkgs/development/libraries/glibc/fix_path_attribute_in_getconf.patch
It adjusts the CS_PATH definition in sysdeps/unix/confstr.h so that getconf PATH
includes /run/current-system/profile/bin, which is where Guix stores profile binaries.
Unlike traditional distributions, Guix does not use /bin or /usr/bin as actual locations
for executables. This change ensures that tools and scripts relying on getconf PATH
receive a correct and functional PATH.
From bff411feec1f381a51d7127971e5d6fda1167254 Mon Sep 17 00:00:00 2001
From: Nikita Mitasov <me@ch4og.com>
Date: Sun, 13 Jul 2025 17:48:19 +0300
Subject: [PATCH] Add Guix profile path to getconf
diff --git a/sysdeps/unix/confstr.h b/sysdeps/unix/confstr.h
index 15859c3b..837837c7 100644
--- a/sysdeps/unix/confstr.h
+++ b/sysdeps/unix/confstr.h
@@ -1 +1 @@
-#define CS_PATH "/bin:/usr/bin"
+#define CS_PATH "/run/current-system/profile/bin:/bin:/usr/bin"
@@ -1,51 +0,0 @@
Don't escape forward slashes to prevent a warning from grep 3.8.
diff --git a/tests/link-order.at b/tests/link-order.at
--- a/tests/link-order.at
+++ b/tests/link-order.at
@@ -99,12 +99,12 @@ aix* | interix*) ;; # These systems have different path syntax
case $hardcode_direct$hardcode_direct_absolute in
yesno)
AT_CHECK([if $EGREP relinking stderr; then
- $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" stdout
+ $EGREP " .*/new/lib/libb$shared_ext .*/old/lib/libcee$shared_ext" stdout
else :; fi], [0], [ignore], [], [echo "wrong link order"])
;;
*)
AT_CHECK([if $EGREP relinking stderr; then
- $EGREP " -L.*\/new\/lib -lb -L.*\/old\/lib -lcee" stdout
+ $EGREP " -L.*/new/lib -lb -L.*/old/lib -lcee" stdout
else :; fi], [0], [ignore], [], [echo "wrong link order"])
;;
esac
diff --git a/tests/testsuite b/tests/testsuite
--- a/tests/testsuite
+++ b/tests/testsuite
@@ -20611,11 +20611,11 @@ aix* | interix*) ;; # These systems have different path syntax
yesno)
{ set +x
$as_echo "$at_srcdir/link-order.at:101: if \$EGREP relinking stderr; then
- \$EGREP \" .*\\/new\\/lib/libb\$shared_ext .*\\/old\\/lib/libcee\$shared_ext\" stdout
+ \$EGREP \" .*/new/lib/libb\$shared_ext .*/old/lib/libcee\$shared_ext\" stdout
else :; fi"
at_fn_check_prepare_notrace 'an embedded newline' "link-order.at:101"
( $at_check_trace; if $EGREP relinking stderr; then
- $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" stdout
+ $EGREP " .*/new/lib/libb$shared_ext .*/old/lib/libcee$shared_ext" stdout
else :; fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
@@ -20633,11 +20633,11 @@ $at_traceon; }
*)
{ set +x
$as_echo "$at_srcdir/link-order.at:106: if \$EGREP relinking stderr; then
- \$EGREP \" -L.*\\/new\\/lib -lb -L.*\\/old\\/lib -lcee\" stdout
+ \$EGREP \" -L.*/new\\/lib -lb -L.*/old/lib -lcee\" stdout
else :; fi"
at_fn_check_prepare_notrace 'an embedded newline' "link-order.at:106"
( $at_check_trace; if $EGREP relinking stderr; then
- $EGREP " -L.*\/new\/lib -lb -L.*\/old\/lib -lcee" stdout
+ $EGREP " -L.*/new/lib -lb -L.*/old/lib -lcee" stdout
else :; fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
@@ -1,33 +0,0 @@
Skip the nopic test on ARM, MIPS and RISC-V systems.
--- libtool-2.4.6/tests/demo.at.orig 2015-01-16 13:52:04.000000000 -0500
+++ libtool-2.4.6/tests/demo.at 2015-02-16 10:48:51.435851966 -0500
@@ -510,7 +510,7 @@
AT_SETUP([force non-PIC objects])
AT_CHECK([case $host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*|riscv*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
--- libtool-2.4.6/tests/testsuite.orig 2015-02-15 11:15:25.000000000 -0500
+++ libtool-2.4.6/tests/testsuite 2015-02-16 10:50:58.736483216 -0500
@@ -8741,7 +8741,7 @@
{ set +x
$as_echo "$at_srcdir/demo.at:513: case \$host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*|riscv*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@@ -8766,7 +8766,7 @@
"
at_fn_check_prepare_notrace 'a `...` command substitution' "demo.at:513"
( $at_check_trace; case $host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*|riscv*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@@ -1,67 +0,0 @@
This commit adds the patch that fixes:
<https://github.com/lsof-org/lsof/issues/317>
The issue was triggering the following error in the `test` phase that
resulted in a build failure in Linux 6.9 or higher:
FAIL: lib/dialects/linux/tests/case-20-pidfd-pid.bash
From c1678e3f6e4b4d984cb3078b7bf0c9e24bedb8ca Mon Sep 17 00:00:00 2001
From: Jiajie Chen <c@jia.je>
Date: Fri, 17 May 2024 15:22:35 +0800
Subject: [PATCH] [linux] Maintain original output for pidfd in linux 6.9
---
00DIST | 3 +++
lib/dialects/linux/dproc.c | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git a/00DIST b/00DIST
index d5a0349..9a29611 100644
--- a/00DIST
+++ b/00DIST
@@ -5605,6 +5605,9 @@ Supplement Regenerated the 4.04 distribution to correct a non-
[linux] Do not embed kernel version in CFLAGS (#314)
+ [linux] Linux 6.9 changed the pidfs appearence in procfs. Try
+ to maintain original output in lsof (#317)
+
Vic Abell <abe@purdue.edu>
July 14, 2018
diff --git a/lib/dialects/linux/dproc.c b/lib/dialects/linux/dproc.c
index cb6bb64..3a7a120 100644
--- a/lib/dialects/linux/dproc.c
+++ b/lib/dialects/linux/dproc.c
@@ -1273,6 +1273,10 @@ static int process_id(struct lsof_context *ctx, /* context */
#endif /* defined(HASEPTOPTS) */
if (rest && rest[0] == '[' && rest[1] == 'p')
fdinfo_mask |= FDINFO_PID;
+ else if (Lf->ntype == N_REGLR && rest && *rest && strcmp(pbuf, "pidfd") == 0) {
+ // https://github.com/lsof-org/lsof/issues/317
+ fdinfo_mask |= FDINFO_PID;
+ }
if ((av = get_fdinfo(ctx, pathi, fdinfo_mask, &fi)) &
FDINFO_POS) {
@@ -1338,6 +1342,15 @@ static int process_id(struct lsof_context *ctx, /* context */
Lf->sf |= SELPTYINFO;
}
#endif /* defined(HASEPTOPTS) && defined(HASPTYEPT) */
+ else if (Lf->ntype == N_REGLR && rest && *rest && Lf->nm &&
+ strcmp(Lf->nm, "pidfd") == 0) {
+ // https://github.com/lsof-org/lsof/issues/317
+ // pidfd since Linux 6.9 becomes a regular file:
+ // /proc/PID/fd/FD -> pidfd:[INODE]
+ (void)snpf(rest, sizeof(pbuf) - (rest - pbuf),
+ "[pidfd:%d]", fi.pid);
+ enter_nm(ctx, rest);
+ }
if (Lf->sf)
link_lfile(ctx);
--
2.45.2
@@ -1,41 +0,0 @@
Submitted close to upstream at
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1070162
From 95ff7e9de4ed815e060b1df59b5b2b105307e0d7 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@posteo.net>
Date: Mon, 29 Apr 2024 23:34:15 -0500
Subject: [PATCH] Fixes substitution of REALEASE_DATE in nickle.1
* Makefile.am (nickle.1): 'BUILD_DATE' -> 'RELEASE_DATE'.
* nickle.1.in: Include version in footer.
---
Makefile.am | 2 +-
nickle.1.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index ba28ec9..5ed56a3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,7 +96,7 @@ RELEASE_FILES = $(TARFILE) $(SIGFILE) $(SRPMFILE) $(RPMFILE)
nickle.1: nickle.1.in nickle-config.h
sed -e 's,@''VERSION@,$(VERSION),' \
- -e 's,@''BUILD_DATE@,$(BUILD_DATE),' \
+ -e 's,@''RELEASE_DATE@,$(RELEASE_DATE),' \
-e 's,@''pkgdatadir@,$(pkgdatadir),' $(top_srcdir)/nickle.1.in > $@
nickle.spec: nickle.spec.in nickle-config.h
diff --git a/nickle.1.in b/nickle.1.in
index 4871ac2..1ab9e08 100644
--- a/nickle.1.in
+++ b/nickle.1.in
@@ -1,4 +1,4 @@
-.TH NICKLE 1 "@RELEASE_DATE@"
+.TH NICKLE 1 "@RELEASE_DATE@" "nickle @VERSION@"
.SH NAME
nickle \- a desk calculator language
.SH SYNOPSIS
--
2.41.0
@@ -0,0 +1,984 @@
From 82e98cf24808754578ab26adef5c33acc949f75e Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Sat, 5 Jun 2021 22:47:00 -0400
Subject: [PATCH] ppsspp: Remove upgrade code and gold support.
Original patch from Liliana Marie Prikler.
Rebased on master (commit 69fa20744958aef8da9ca052ba7675fdc1636e46) by
Maxim Cournoyer.
Revised again by Liliana Marie Prikler for versions 1.12.3 and 1.14.4.
Revised again again by Liliana Marie Prikler for version 1.20.3.
---
CMakeLists.txt | 78 +++++------------------
Common/System/Request.cpp | 2 -
Common/System/System.h | 1 -
Core/Config.cpp | 123 +------------------------------------
Core/Config.h | 11 ----
Core/MIPS/IR/IRJit.h | 5 --
Qt/QtMain.cpp | 6 --
Qt/mainwindow.cpp | 8 +--
Qt/mainwindow.h | 3 +-
SDL/SDLMain.cpp | 11 +---
UI/Background.cpp | 2 +-
UI/GameSettingsScreen.cpp | 7 ---
UI/MainScreen.cpp | 91 +--------------------------
UI/MainScreen.h | 3 -
UI/MemStickScreen.cpp | 9 +--
UI/MiscScreens.cpp | 36 +----------
UI/ReportScreen.cpp | 11 +---
UI/UIAtlas.cpp | 1 -
UWP/PPSSPP_UWPMain.cpp | 8 +--
Windows/MainWindowMenu.cpp | 9 ---
Windows/main.cpp | 10 +--
Windows/resource.h | 1 -
ios/main.mm | 33 ++++------
23 files changed, 39 insertions(+), 430 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 070f49b..f206ced 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,27 +137,6 @@ if(OPENXR AND NOT ARMV7_DEVICE)
message("OpenXR enabled")
endif()
-if(GOLD)
- add_compile_definitions(GOLD)
- message("Gold Build")
- if(IOS_APP_STORE)
- message("WARNING: Gold build for iOS is deprecated")
- endif()
-else()
- message("Non-gold Build")
-endif()
-
-if(USE_IAP)
- if(GOLD)
- message(FATAL_ERROR "USE_IAP and GOLD can't be enabled together")
- endif()
- if(NOT IOS_APP_STORE)
- message(FATAL_ERROR "USE_IAP can only be enabled in app store builds")
- endif()
- message("USE_IAP for iOS enabled")
- add_compile_definitions(USE_IAP)
-endif()
-
if(IOS_APP_STORE)
add_compile_definitions(PPSSPP_PLATFORM_IOS_APP_STORE)
add_compile_definitions(GLES_SILENCE_DEPRECATION)
@@ -211,8 +190,6 @@ option(USE_ASAN "Use address sanitizer" OFF)
option(USE_UBSAN "Use undefined behaviour sanitizer" OFF)
option(USE_CCACHE "Use ccache if detected" ON)
option(USE_NO_MMAP "Disable mmap usage" OFF)
-option(USE_IAP "IAP enabled" OFF)
-option(GOLD "Gold build" OFF)
if(USE_CCACHE)
include(ccache)
@@ -1462,11 +1439,7 @@ elseif(WIN32)
set(TargetBin PPSSPPWindows)
elseif(LIBRETRO)
else()
- if(GOLD)
- set(TargetBin PPSSPPGold)
- else()
- set(TargetBin PPSSPPSDL)
- endif()
+ set(TargetBin PPSSPPSDL)
# Require SDL
add_compile_definitions(SDL)
list(APPEND nativeExtra
@@ -2972,17 +2945,10 @@ endif()
if(TargetBin)
if(APPLE)
if(NOT IOS)
- if(GOLD)
- set(ICON_PATH_ABS ${CMAKE_CURRENT_SOURCE_DIR}/icons/ppsspp_gold.icns)
- set(MACOSX_BUNDLE_ICON_FILE ppsspp_gold.icns)
- set(MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP Gold")
- set(MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppssppgold)
- else()
- set(ICON_PATH_ABS ${CMAKE_CURRENT_SOURCE_DIR}/icons/ppsspp.icns)
- set(MACOSX_BUNDLE_ICON_FILE ppsspp.icns)
- set(MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP")
- set(MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppsspp)
- endif()
+ set(ICON_PATH_ABS ${CMAKE_CURRENT_SOURCE_DIR}/icons/ppsspp.icns)
+ set(MACOSX_BUNDLE_ICON_FILE ppsspp.icns)
+ set(MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP")
+ set(MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppsspp)
set_source_files_properties(${ICON_PATH_ABS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
endif()
@@ -3081,25 +3047,15 @@ if(IOS AND NOT LIBRETRO)
set(PRODUCT_NAME "PPSSPP")
set(BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ios/PPSSPP-Info.plist")
set(BUNDLE_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/ios/App.entitlements")
- if(GOLD)
- if(IOS_APP_STORE)
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp-gold")
- else()
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppssppgold")
- endif()
- set(ICON_NAME "PPSSPPGold")
- set(DISPLAY_NAME "PPSSPP Gold")
+ if(IOS_APP_STORE)
+ set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp-free")
else()
- if(IOS_APP_STORE)
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp-free")
- else()
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp")
- endif()
- set(ICON_NAME "AppIcon")
- set(DISPLAY_NAME "PPSSPP")
+ set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp")
endif()
+ set(ICON_NAME "AppIcon")
+ set(DISPLAY_NAME "PPSSPP")
if(IOS_APP_STORE)
- message(STATUS "DevTeam: ${DEVELOPMENT_TEAM_ID} Icon: ${ICON_NAME} Target: ${TargetBin} Gold: ${GOLD} IAP: ${USE_IAP}")
+ message(STATUS "DevTeam: ${DEVELOPMENT_TEAM_ID} Icon: ${ICON_NAME} Target: ${TargetBin}")
message(STATUS "CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}")
# This is for injecting the version into the plist, and also copying resources.
@@ -3191,15 +3147,9 @@ if(IOS AND NOT LIBRETRO)
endif()
if(MACOSX AND NOT IOS)
- if(GOLD)
- set_target_properties(${TargetBin} PROPERTIES
- MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macOS/InfoGold.plist"
- )
- else()
- set_target_properties(${TargetBin} PROPERTIES
- MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist"
- )
- endif()
+ set_target_properties(${TargetBin} PROPERTIES
+ MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist"
+ )
endif()
if(UNIX AND NOT ANDROID AND NOT APPLE)
diff --git a/Common/System/Request.cpp b/Common/System/Request.cpp
index 8332529..00035fd 100644
--- a/Common/System/Request.cpp
+++ b/Common/System/Request.cpp
@@ -49,8 +49,6 @@ const char *RequestTypeAsString(SystemRequestType type) {
case SystemRequestType::MICROPHONE_COMMAND: return "MICROPHONE_COMMAND";
case SystemRequestType::RUN_CALLBACK_IN_WNDPROC: return "RUN_CALLBACK_IN_WNDPROC";
case SystemRequestType::MOVE_TO_TRASH: return "MOVE_TO_TRASH";
- case SystemRequestType::IAP_RESTORE_PURCHASES: return "IAP_RESTORE_PURCHASES";
- case SystemRequestType::IAP_MAKE_PURCHASE: return "IAP_MAKE_PURCHASE";
default: return "N/A";
}
}
diff --git a/Common/System/System.h b/Common/System/System.h
index e58a5cc..3c227be 100644
--- a/Common/System/System.h
+++ b/Common/System/System.h
@@ -194,7 +194,6 @@ enum SystemProperty {
SYSPROP_DISPLAY_HAS_CAMERA_CUTOUT,
SYSPROP_DEVICE_TYPE,
- SYSPROP_APP_GOLD, // To avoid having #ifdef GOLD other than in main.cpp and similar.
// Exposed on Android. Choosing the optimal sample rate for audio
// will result in lower latencies. Buffer size is automatically matched
diff --git a/Core/Config.cpp b/Core/Config.cpp
index 4380e80..afd177a 100644
--- a/Core/Config.cpp
+++ b/Core/Config.cpp
@@ -237,7 +237,6 @@ static const ConfigSetting generalSettings[] = {
ConfigSetting("CurrentDirectory", SETTING(g_Config, currentDirectory), "", CfgFlag::DEFAULT),
ConfigSetting("ShowDebuggerOnLoad", SETTING(g_Config, bShowDebuggerOnLoad), false, CfgFlag::DEFAULT),
ConfigSetting("ShowImDebugger", SETTING(g_Config, bShowImDebugger), false, CfgFlag::DONT_SAVE),
- ConfigSetting("CheckForNewVersion", SETTING(g_Config, bCheckForNewVersion), true, CfgFlag::DEFAULT),
ConfigSetting("Language", SETTING(g_Config, sLanguageIni), &DefaultLangRegion, CfgFlag::DEFAULT),
ConfigSetting("ForceLagSync2", SETTING(g_Config, bForceLagSync), false, CfgFlag::PER_GAME),
ConfigSetting("DiscordRichPresence", SETTING(g_Config, bDiscordRichPresence), false, CfgFlag::DEFAULT),
@@ -1112,12 +1111,6 @@ static const ConfigSetting jitSettings[] = {
ConfigSetting("DiscardRegsOnJRRA", SETTING(g_Config, bDiscardRegsOnJRRA), false, CfgFlag::DONT_SAVE | CfgFlag::REPORT),
};
-static const ConfigSetting upgradeSettings[] = {
- ConfigSetting("UpgradeMessage", SETTING(g_Config, sUpgradeMessage), "", CfgFlag::DEFAULT),
- ConfigSetting("UpgradeVersion", SETTING(g_Config, sUpgradeVersion), "", CfgFlag::DEFAULT),
- ConfigSetting("DismissedVersion", SETTING(g_Config, sDismissedVersion), "", CfgFlag::DEFAULT),
-};
-
static const ConfigSetting themeSettings[] = {
ConfigSetting("ThemeName", SETTING(g_Config, sThemeName), "Default", CfgFlag::DEFAULT),
};
@@ -1156,7 +1149,6 @@ static const ConfigSectionMeta g_sectionMeta[] = {
{ &g_Config, themeSettings, ARRAY_SIZE(themeSettings), "Theme" },
{ &g_Config, vrSettings, ARRAY_SIZE(vrSettings), "VR" },
{ &g_Config, achievementSettings, ARRAY_SIZE(achievementSettings), "Achievements" },
- { &g_Config, upgradeSettings, ARRAY_SIZE(upgradeSettings), "Upgrade" },
{ &g_Config.displayLayoutLandscape, displayLayoutSettings, ARRAY_SIZE(displayLayoutSettings), "DisplayLayout.Landscape", "Graphics" }, // We read the old settings from [Graphics], since most people played in landscape before.
{ &g_Config.displayLayoutPortrait, displayLayoutSettings, ARRAY_SIZE(displayLayoutSettings), "DisplayLayout.Portrait"}, // These we don't want to read from the old settings, since for most people, those settings will be bad.
{ &g_Config.touchControlsLandscape, touchControlSettings, ARRAY_SIZE(touchControlSettings), "TouchControls.Landscape", "Control" }, // We read the old settings from [Control], since most people played in landscape before.
@@ -1400,8 +1392,6 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
}
}
- CheckForUpdate();
-
INFO_LOG(Log::Loader, "Loading controller config: %s", controllerIniFilename_.c_str());
bSaveSettings = true;
@@ -1623,117 +1613,6 @@ void Config::NotifyUpdatedCpuCore() {
}
}
-bool Config::SupportsUpgradeCheck() const {
-#if PPSSPP_PLATFORM(WINDOWS) || PPSSPP_PLATFORM(LINUX) || PPSSPP_PLATFORM(MACOS) || PPSSPP_PLATFORM(ANDROID) || PPSSPP_PLATFORM(IOS_APP_STORE)
- return true;
-#else
- return false;
-#endif
-}
-
-#if 0
-// Use for debugging the version check without messing with the server
-#define NEW_VERSION_OVERRIDE "v1.100.3-gaaaaaaaaa"
-constexpr int UPDATE_CHECK_FREQ = 1;
-#else
-constexpr int UPDATE_CHECK_FREQ = 5;
-#endif
-
-void Config::CheckForUpdate() {
- if (!bCheckForNewVersion || !SupportsUpgradeCheck()) {
- return;
- }
-
- const char *gitVer = PPSSPP_GIT_VERSION;
- Version installed(gitVer);
- Version upgrade(sUpgradeVersion);
- const bool versionsValid = installed.IsValid() && upgrade.IsValid();
-
- // Do this regardless of iRunCount to prevent a silly bug where one might use an older
- // build of PPSSPP, receive an upgrade notice, then start a newer version, and still receive the upgrade notice,
- // even if said newer version is >= the upgrade found online.
- if ((sDismissedVersion == sUpgradeVersion) || (versionsValid && (installed >= upgrade))) {
- sUpgradeMessage.clear();
- }
-
- // Check for new version on every 10 runs.
- // Sometimes the download may not be finished when the main screen shows (if the user dismisses the
- // splash screen quickly), but then we'll just show the notification next time instead, we store the
- // upgrade number in the ini.
-
- const bool checkThisTime = iRunCount % UPDATE_CHECK_FREQ == 0;
- if (checkThisTime) {
- const char *versionUrl = "http://www.ppsspp.org/version.json";
- const char *acceptMime = "application/json, text/*; q=0.9, */*; q=0.8";
- g_DownloadManager.StartDownload(versionUrl, Path(), http::RequestFlags::Default, acceptMime, "version", [this](http::Request &download) { VersionJsonDownloadCompleted(download); });
- }
-}
-
-void Config::VersionJsonDownloadCompleted(http::Request &download) {
- if (download.ResultCode() != 200) {
- ERROR_LOG(Log::Loader, "Failed to download %s: %d", download.url().c_str(), download.ResultCode());
- return;
- }
- std::string data;
- download.buffer().TakeAll(&data);
- if (data.empty()) {
- ERROR_LOG(Log::Loader, "Version check: Empty data from server!");
- return;
- }
-
- json::JsonReader reader(data.c_str(), data.size());
- const json::JsonGet root = reader.root();
- if (!root) {
- ERROR_LOG(Log::Loader, "Failed to parse json");
- return;
- }
-
- std::string version;
- root.getString("version", &version);
-
- #ifdef NEW_VERSION_OVERRIDE
- version = NEW_VERSION_OVERRIDE;
- #endif
-
- const char *gitVer = PPSSPP_GIT_VERSION;
- Version installed(gitVer);
- Version upgrade(version);
- Version dismissed(g_Config.sDismissedVersion);
-
- if (!installed.IsValid()) {
- ERROR_LOG(Log::Loader, "Version check: Local version string invalid. Build problems? %s", PPSSPP_GIT_VERSION);
- return;
- }
- if (!upgrade.IsValid()) {
- ERROR_LOG(Log::Loader, "Version check: Invalid server version: %s", version.c_str());
- return;
- }
-
- if (installed >= upgrade) {
- INFO_LOG(Log::Loader, "Version check: Already up to date, erasing any upgrade message");
- g_Config.sUpgradeMessage.clear();
- g_Config.sUpgradeVersion = upgrade.ToString();
- g_Config.sDismissedVersion.clear();
- return;
- }
-
- if (installed < upgrade && dismissed != upgrade) {
- g_Config.sUpgradeMessage = "New version of PPSSPP available!";
- g_Config.sUpgradeVersion = upgrade.ToString();
- g_Config.sDismissedVersion.clear();
- }
-}
-
-bool Config::ShowUpgradeReminder() {
- return !sUpgradeMessage.empty() && !sUpgradeVersion.empty() && sUpgradeVersion != sDismissedVersion;
-}
-
-void Config::DismissUpgrade() {
- INFO_LOG(Log::Loader, "Upgrade dismissed for version %s", sUpgradeVersion.c_str());
- sDismissedVersion = sUpgradeVersion;
- sUpgradeMessage.clear();
-}
-
void Config::SetSearchPath(const Path &searchPath) {
searchPath_ = searchPath;
}
diff --git a/Core/Config.h b/Core/Config.h
index 3cb451c..b7f6d10 100644
--- a/Core/Config.h
+++ b/Core/Config.h
@@ -679,11 +679,6 @@ struct Config : public ConfigBlock {
Path mountRoot; // Actually, mount as host0. keeping consistent with headless args.
- // Data for upgrade prompt
- std::string sUpgradeMessage; // The actual message from the server is currently not used, need a translation mechanism. So this just acts as a flag.
- std::string sUpgradeVersion;
- std::string sDismissedVersion;
-
void Load(const char *iniFileName = nullptr, const char *controllerIniFilename = nullptr);
bool Save(const char *saveReason);
void Reload();
@@ -706,12 +701,6 @@ struct Config : public ConfigBlock {
void UpdateIniLocation(const char *iniFileName = nullptr, const char *controllerIniFilename = nullptr);
- bool SupportsUpgradeCheck() const;
- void CheckForUpdate();
- void VersionJsonDownloadCompleted(http::Request &download);
- void DismissUpgrade();
- bool ShowUpgradeReminder();
-
void GetReportingInfo(UrlEncoder &data) const;
int NextValidBackend();
diff --git a/Core/MIPS/IR/IRJit.h b/Core/MIPS/IR/IRJit.h
index 4667043..e3af580 100644
--- a/Core/MIPS/IR/IRJit.h
+++ b/Core/MIPS/IR/IRJit.h
@@ -38,11 +38,6 @@
//
// #define IR_PROFILING
-// Try to catch obvious misses of be above rule.
-#if defined(IR_PROFILING) && defined(GOLD)
-#error
-#endif
-
namespace MIPSComp {
// TODO : Use arena allocators. For now let's just malloc.
diff --git a/Qt/QtMain.cpp b/Qt/QtMain.cpp
index c7d43a3..4e0786d 100644
--- a/Qt/QtMain.cpp
+++ b/Qt/QtMain.cpp
@@ -262,12 +262,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_SUPPORTS_OPEN_FILE_IN_EDITOR:
return true; // FileUtil.cpp: OpenFileInEditor
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_HAS_KEYBOARD:
diff --git a/Qt/mainwindow.cpp b/Qt/mainwindow.cpp
index cbd9fda..670a1ca 100644
--- a/Qt/mainwindow.cpp
+++ b/Qt/mainwindow.cpp
@@ -112,7 +112,7 @@ void MainWindow::updateMenus()
int width = (internalPortrait ? 272 : 480) * action->data().toInt();
int height = (internalPortrait ? 480 : 272) * action->data().toInt();
if (g_Config.iWindowWidth == width && g_Config.iWindowHeight == height) {
- action->setChecked(true);
+ action->setChecked(true);
break;
}
}
@@ -423,11 +423,6 @@ void MainWindow::forumAct()
QDesktopServices::openUrl(QUrl("https://forums.ppsspp.org/"));
}
-void MainWindow::goldAct()
-{
- QDesktopServices::openUrl(QUrl("https://www.ppsspp.org/buygold"));
-}
-
void MainWindow::gitAct()
{
QDesktopServices::openUrl(QUrl("https://github.com/hrydgard/ppsspp/"));
@@ -680,7 +675,6 @@ void MainWindow::createMenus()
MenuTree* helpMenu = new MenuTree(this, menuBar(), QT_TR_NOOP("&Help"));
helpMenu->add(new MenuAction(this, SLOT(websiteAct()), QT_TR_NOOP("Visit www.&ppsspp.org")));
helpMenu->add(new MenuAction(this, SLOT(forumAct()), QT_TR_NOOP("PPSSPP &forums")));
- helpMenu->add(new MenuAction(this, SLOT(goldAct()), QT_TR_NOOP("Buy &Gold")));
helpMenu->add(new MenuAction(this, SLOT(gitAct()), QT_TR_NOOP("Git&Hub")));
helpMenu->add(new MenuAction(this, SLOT(discordAct()), QT_TR_NOOP("Discord")));
helpMenu->addSeparator();
diff --git a/Qt/mainwindow.h b/Qt/mainwindow.h
index 5e735ae..55a180f 100644
--- a/Qt/mainwindow.h
+++ b/Qt/mainwindow.h
@@ -100,7 +100,7 @@ private slots:
void stopAct();
void resetAct();
void switchUMDAct();
- void displayRotationGroup_triggered(QAction *action) {
+ void displayRotationGroup_triggered(QAction *action) {
DisplayLayoutConfig &config = g_Config.GetDisplayLayoutConfig(g_display.GetDeviceOrientation());
config.iInternalScreenRotation = action->data().toInt();
}
@@ -187,7 +187,6 @@ private slots:
// Help
void websiteAct();
void forumAct();
- void goldAct();
void gitAct();
void discordAct();
void aboutAct();
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
index 5eea6e5..9799010 100644
--- a/SDL/SDLMain.cpp
+++ b/SDL/SDLMain.cpp
@@ -438,7 +438,7 @@ bool System_MakeRequest(SystemRequestType type, int requestId, const std::string
case SystemRequestType::SET_WINDOW_TITLE:
{
std::lock_guard<std::mutex> guard(g_mutexWindow);
- const char *app_name = System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold" : "PPSSPP";
+ const char *app_name = "PPSSPP";
g_windowState.title = param1.empty() ? app_name : param1;
g_windowState.update = true;
return true;
@@ -742,12 +742,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
#endif
case SYSPROP_HAS_KEYBOARD:
return true;
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_SUPPORTS_OPEN_FILE_IN_EDITOR:
@@ -777,9 +771,6 @@ case SYSPROP_HAS_FILE_BROWSER:
#else
return false;
#endif
- // hack for testing - do not commit
- case SYSPROP_USE_IAP:
- return false;
default:
return false;
}
diff --git a/UI/Background.cpp b/UI/Background.cpp
index 73be05b..3d5fb96 100644
--- a/UI/Background.cpp
+++ b/UI/Background.cpp
@@ -272,7 +272,7 @@ class BouncingIconAnimation : public Animation {
// Draw the image.
float xpos = xbase + dc.GetBounds().x;
float ypos = ybase + dc.GetBounds().y;
- ImageID icon = !color_ix && System_GetPropertyBool(SYSPROP_APP_GOLD) ? ImageID("I_ICON_GOLD") : ImageID("I_ICON");
+ ImageID icon = ImageID("I_ICON");
ui_draw2d.DrawImage(icon, xpos, ypos, scale, COLORS[color_ix], ALIGN_CENTER);
dc.Flush();
diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp
index 85cd7f7..fa0c330 100644
--- a/UI/GameSettingsScreen.cpp
+++ b/UI/GameSettingsScreen.cpp
@@ -1439,13 +1439,6 @@ void GameSettingsScreen::CreateSystemSettings(UI::ViewGroup *systemSettings) {
systemSettings->Add(new CheckBox(&g_Config.bCacheFullIsoInRam, sy->T("Cache full ISO in RAM")))->SetEnabled(!PSP_IsInited());
}
- CheckBox *checkForUpdate = systemSettings->Add(new CheckBox(&g_Config.bCheckForNewVersion, sy->T("VersionCheck", "Check for new versions of PPSSPP")));
- checkForUpdate->OnClick.Add([](UI::EventParams &e) {
- // Reset the dismissed version so it will check again.
- if (g_Config.bCheckForNewVersion) {
- g_Config.sDismissedVersion.clear();
- }
- });
systemSettings->Add(new CheckBox(&g_Config.bScreenshotsAsPNG, sy->T("Screenshots as PNG")));
static const char *screenshotModeChoices[] = { "Final processed image", "Raw game image" };
systemSettings->Add(new PopupMultiChoice(&g_Config.iScreenshotMode, sy->T("Screenshot mode"), screenshotModeChoices, 0, ARRAY_SIZE(screenshotModeChoices), I18NCat::SYSTEM, screenManager()));
diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp
index 8e7ca54..6153025 100644
--- a/UI/MainScreen.cpp
+++ b/UI/MainScreen.cpp
@@ -57,7 +57,6 @@
#include "UI/GameSettingsScreen.h"
#include "UI/BaseScreens.h"
#include "UI/ControlMappingScreen.h"
-#include "UI/IAPScreen.h"
#include "UI/RemoteISOScreen.h"
#include "UI/DisplayLayoutScreen.h"
#include "UI/SavedataScreen.h"
@@ -1280,7 +1279,7 @@ class LogoView : public UI::AnchorLayout {
private:
ImageID GetIconID() const {
- return System_GetPropertyBool(SYSPROP_APP_GOLD) ? ImageID("I_ICON_GOLD") : ImageID("I_ICON");
+ return ImageID("I_ICON");
}
const bool portrait_;
@@ -1302,16 +1301,6 @@ void MainScreen::CreateMainButtons(UI::ViewGroup *parent, bool portrait) {
parent->Add(new Choice(mm->T("www.ppsspp.org")))->OnClick.Handle(this, &MainScreen::OnPPSSPPOrg);
}
- if (!System_GetPropertyBool(SYSPROP_APP_GOLD) && (System_GetPropertyInt(SYSPROP_DEVICE_TYPE) != DEVICE_TYPE_VR)) {
- Choice *gold = parent->Add(portrait ? new Choice(ImageID("I_ICON_GOLD"), portrait ? new LinearLayoutParams() : nullptr) : new Choice(mm->T("Buy PPSSPP Gold")));
- gold->OnClick.Add([this](UI::EventParams &) {
- LaunchBuyGold(this->screenManager());
- });
- gold->SetIconRight(ImageID("I_ICON_GOLD"), 0.5f);
- gold->SetImageScale(0.6f); // for the left-icon in case of vertical.
- gold->SetShine(true);
- }
-
if (!portrait) {
parent->Add(new Spacer(16.0));
}
@@ -1384,7 +1373,7 @@ void MainScreen::CreateViews() {
if (g_recentFiles.HasAny()) {
tabHolder_->SetCurrentTab(std::clamp(g_Config.iDefaultTab, 0, g_Config.bRemoteTab ? 3 : 2), true);
} else if (g_Config.iMaxRecent > 0) {
- tabHolder_->SetCurrentTab(1, true);
+ tabHolder_->SetCurrentTab(1, true);
}
if (backFromStore_ || showHomebrewTab) {
@@ -1490,41 +1479,6 @@ void MainScreen::CreateViews() {
}
root_->SetTag("mainroot");
-
- if (!g_Config.sUpgradeMessage.empty()) {
- auto di = GetI18NCategory(I18NCat::DIALOG);
- Margins margins(0, 0);
- if (vertical) {
- margins.bottom = ITEM_HEIGHT;
- }
- UI::LinearLayout *upgradeBar = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT, margins));
-
- UI::Margins textMargins(10, 5);
- UI::Margins buttonMargins(5, 0);
- UI::Drawable solid(0xFFbd9939);
- upgradeBar->SetSpacing(5.0f);
- upgradeBar->SetBG(solid);
- std::string upgradeMessage(di->T("New version of PPSSPP available"));
- if (!vertical) {
- // The version only really fits in the horizontal layout.
- upgradeMessage += ": " + g_Config.sUpgradeVersion;
- }
- upgradeBar->Add(new TextView(upgradeMessage, new LinearLayoutParams(1.0f, UI::Gravity::G_VCENTER, textMargins)));
- upgradeBar->Add(new Choice(di->T("Download"), new LinearLayoutParams(buttonMargins)))->OnClick.Handle(this, &MainScreen::OnDownloadUpgrade);
- Choice *dismiss = upgradeBar->Add(new Choice("", ImageID("I_CROSS"), new LinearLayoutParams(buttonMargins)));
- dismiss->OnClick.Add([this](UI::EventParams &e) {
- g_Config.DismissUpgrade();
- g_Config.Save("dismissupgrade");
- RecreateViews();
- });
-
- // Slip in under root_
- LinearLayout *newRoot = new LinearLayout(ORIENT_VERTICAL);
- newRoot->Add(root_);
- newRoot->Add(upgradeBar);
- root_->ReplaceLayoutParams(new LinearLayoutParams(1.0));
- root_ = newRoot;
- }
}
bool MainScreen::key(const KeyInput &key) {
@@ -1565,26 +1519,6 @@ void MainScreen::OnAllowStorage(UI::EventParams &e) {
System_AskForPermission(SYSTEM_PERMISSION_STORAGE);
}
-// See Config::SupportsUpgradeCheck() if you add more platforms.
-void MainScreen::OnDownloadUpgrade(UI::EventParams &e) {
-#if PPSSPP_PLATFORM(ANDROID)
- // Go to app store
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "market://details?id=org.ppsspp.ppssppgold");
- } else {
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "market://details?id=org.ppsspp.ppsspp");
- }
-#elif PPSSPP_PLATFORM(WINDOWS)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/download");
-#elif PPSSPP_PLATFORM(IOS_APP_STORE)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "itms-apps://itunes.apple.com/app/id6496972903");
-#else
- // Go directly to ppsspp.org and let the user sort it out
- // (for details and in case downloads doesn't have their platform.)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/");
-#endif
-}
-
void MainScreen::sendMessage(UIMessage message, const char *value) {
// Always call the base class method first to handle the most common messages.
UIBaseScreen::sendMessage(message, value);
@@ -1732,24 +1666,6 @@ void MainScreen::OnCredits(UI::EventParams &e) {
screenManager()->push(new CreditsScreen());
}
-void LaunchBuyGold(ScreenManager *screenManager) {
- if (System_GetPropertyBool(SYSPROP_USE_IAP)) {
- screenManager->push(new IAPScreen(true));
- } else if (System_GetPropertyBool(SYSPROP_USE_APP_STORE)) {
-#if PPSSPP_PLATFORM(ANDROID)
- LaunchPlayStoreOrWebsiteGold();
-#else
- screenManager->push(new IAPScreen(false));
-#endif
- } else {
-#if PPSSPP_PLATFORM(IOS_APP_STORE)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/buygold_ios");
-#else
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/buygold");
-#endif
- }
-}
-
void MainScreen::OnPPSSPPOrg(UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org");
}
@@ -1785,9 +1701,6 @@ void MainScreen::dialogFinished(const Screen *dialog, DialogResult result) {
if (gameBrowsers_.size() >= 2) {
gameBrowsers_[1]->RequestRefresh();
}
- } else if (tag == "IAP") {
- // Gold status may have changed.
- RecreateViews();
} else if (tag == "Upload") {
// Files may have been uploaded.
RecreateViews();
diff --git a/UI/MainScreen.h b/UI/MainScreen.h
index 49d743c..457ccd7 100644
--- a/UI/MainScreen.h
+++ b/UI/MainScreen.h
@@ -166,7 +166,6 @@ class MainScreen : public UIBaseScreen {
void OnCredits(UI::EventParams &e);
void OnPPSSPPOrg(UI::EventParams &e);
void OnForums(UI::EventParams &e);
- void OnDownloadUpgrade(UI::EventParams &e);
void OnAllowStorage(UI::EventParams &e);
UI::TabHolder *tabHolder_ = nullptr;
@@ -218,5 +217,3 @@ class GridSettingsPopupScreen : public UI::PopupScreen {
const float MAX_GAME_GRID_SCALE = 3.0f;
const float MIN_GAME_GRID_SCALE = 0.8f;
};
-
-void LaunchBuyGold(ScreenManager *screenManager);
diff --git a/UI/MemStickScreen.cpp b/UI/MemStickScreen.cpp
index 69b9d3d..8a02aff 100644
--- a/UI/MemStickScreen.cpp
+++ b/UI/MemStickScreen.cpp
@@ -123,12 +123,10 @@ static void AddExplanation(UI::ViewGroup *viewGroup, MemStickScreen::Choice choi
case MemStickScreen::CHOICE_STORAGE_ROOT:
// Old school choice
holder->Add(new TextView(iz->T("DataWillStay", "Data will stay even if you uninstall PPSSPP"), flags, false))->SetBullet(true);
- holder->Add(new TextView(iz->T("DataCanBeShared", "Data can be shared between PPSSPP regular/Gold"), flags, false))->SetBullet(true);
holder->Add(new TextView(iz->T("EasyUSBAccess", "Easy USB access"), flags, false))->SetBullet(true);
break;
case MemStickScreen::CHOICE_BROWSE_FOLDER:
holder->Add(new TextView(iz->T("DataWillStay", "Data will stay even if you uninstall PPSSPP"), flags, false))->SetBullet(true);
- holder->Add(new TextView(iz->T("DataCanBeShared", "Data can be shared between PPSSPP regular/Gold"), flags, false))->SetBullet(true);
#if !PPSSPP_PLATFORM(UWP)
holder->Add(new TextView(iz->T("EasyUSBAccess", "Easy USB access"), flags, false))->SetBullet(true);
#endif
@@ -136,13 +134,8 @@ static void AddExplanation(UI::ViewGroup *viewGroup, MemStickScreen::Choice choi
case MemStickScreen::CHOICE_PRIVATE_DIRECTORY:
// Consider https://www.compart.com/en/unicode/U+26A0 (unicode warning sign?)? or a graphic?
holder->Add(new TextView(iz->T("DataWillBeLostOnUninstall", "Warning! Data will be lost when you uninstall PPSSPP!"), flags, false))->SetBullet(true);
- holder->Add(new TextView(iz->T("DataCannotBeShared", "Data CANNOT be shared between PPSSPP regular/Gold!"), flags, false))->SetBullet(true);
#if !PPSSPP_PLATFORM(UWP)
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- holder->Add(new TextView(iz->T("USBAccessThroughGold", "USB access through Android/data/org.ppsspp.ppssppgold/files"), flags, false))->SetBullet(true);
- } else {
- holder->Add(new TextView(iz->T("USBAccessThrough", "USB access through Android/data/org.ppsspp.ppsspp/files"), flags, false))->SetBullet(true);
- }
+ holder->Add(new TextView(iz->T("USBAccessThrough", "USB access through Android/data/org.ppsspp.ppsspp/files"), flags, false))->SetBullet(true);
#endif
break;
case MemStickScreen::CHOICE_SET_MANUAL:
diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp
index 1dedbef..9c4f965 100644
--- a/UI/MiscScreens.cpp
+++ b/UI/MiscScreens.cpp
@@ -441,12 +441,7 @@ void LogoScreen::DrawForeground(UIContext &dc) {
// Manually formatting UTF-8 is fun. \xXX doesn't work everywhere.
snprintf(temp, sizeof(temp), "%s Henrik Rydg%c%crd", cr->T_cstr("created", "Created by"), 0xC3, 0xA5);
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- UI::DrawIconShine(dc, Bounds::FromCenter(bounds.centerX() - 125, startY, 60.0f), 0.7f, true);
- dc.Draw()->DrawImage(ImageID("I_ICON_GOLD"), bounds.centerX() - 125, startY, 1.2f, 0xFFFFFFFF, ALIGN_CENTER);
- } else {
- dc.Draw()->DrawImage(ImageID("I_ICON"), bounds.centerX() - 125, startY, 1.2f, 0xFFFFFFFF, ALIGN_CENTER);
- }
+ dc.Draw()->DrawImage(ImageID("I_ICON"), bounds.centerX() - 125, startY, 1.2f, 0xFFFFFFFF, ALIGN_CENTER);
dc.Draw()->DrawImage(ImageID("I_LOGO"), bounds.centerX() + 45, startY, 1.5f, 0xFFFFFFFF, ALIGN_CENTER);
//dc.Draw()->DrawTextShadow(UBUNTU48, "PPSSPP", bounds.w / 2, bounds.h / 2 - 30, textColor, ALIGN_CENTER);
dc.SetFontScale(1.0f, 1.0f);
@@ -512,15 +507,6 @@ void CreditsScreen::CreateDialogViews(UI::ViewGroup *parent) {
const bool portrait = GetDeviceOrientation() == DeviceOrientation::Portrait;
- const bool gold = System_GetPropertyBool(SYSPROP_APP_GOLD);
-
- /*
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- root_->Add(new ShinyIcon(ImageID("I_ICON_GOLD"), new AnchorLayoutParams(WRAP_CONTENT, WRAP_CONTENT, 10, 10, NONE, NONE, false)))->SetScale(1.5f);
- } else {
- root_->Add(new ImageView(ImageID("I_ICON"), "", IS_DEFAULT, new AnchorLayoutParams(WRAP_CONTENT, WRAP_CONTENT, 10, 10, NONE, NONE, false)))->SetScale(1.5f);
- }*/
-
constexpr float columnWidth = 265.0f;
LinearLayout *left;
@@ -544,18 +530,6 @@ void CreditsScreen::CreateDialogViews(UI::ViewGroup *parent) {
}
int rightYOffset = 0;
- if (!System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- ScreenManager *sm = screenManager();
- Choice *gold = new Choice(mm->T("Buy PPSSPP Gold"));
- gold->SetIconRight(ImageID("I_ICON_GOLD"), 0.5f);
- gold->SetImageScale(0.6f); // for the left-icon in case of vertical.
- gold->SetShine(true);
-
- left->Add(gold)->OnClick.Add([sm](UI::EventParams) {
- LaunchBuyGold(sm);
- });
- rightYOffset = 74;
- }
left->Add(new Choice(cr->T("PPSSPP Forums"), ImageID("I_LINK_OUT")))->OnClick.Add([](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://forums.ppsspp.org");
});
@@ -611,7 +585,7 @@ void CreditsScroller::Draw(UIContext &dc) {
specialthankssolarmystic += ')';
std::string_view credits[] = {
- System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold" : "PPSSPP",
+ "PPSSPP",
"",
cr->T("title", "A fast and portable PSP emulator"),
"",
@@ -735,11 +709,7 @@ void CreditsScroller::Draw(UIContext &dc) {
// TODO: This is kinda ugly, done on every frame...
char temp[256];
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- snprintf(temp, sizeof(temp), "PPSSPP Gold %s", PPSSPP_GIT_VERSION);
- } else {
- snprintf(temp, sizeof(temp), "PPSSPP %s", PPSSPP_GIT_VERSION);
- }
+ snprintf(temp, sizeof(temp), "PPSSPP %s", PPSSPP_GIT_VERSION);
credits[0] = (const char *)temp;
dc.Begin();
diff --git a/UI/ReportScreen.cpp b/UI/ReportScreen.cpp
index 02080aa..7a0e773 100644
--- a/UI/ReportScreen.cpp
+++ b/UI/ReportScreen.cpp
@@ -478,11 +478,7 @@ void ReportFinishScreen::ShowSuggestions() {
bool valid = false;
for (const auto &item : suggestions) {
std::string_view suggestion = "";
- if (item == "Upgrade") {
- suggestion = rp->T("SuggestionUpgrade", "Upgrade to a newer PPSSPP build");
- } else if (item == "Downgrade") {
- suggestion = rp->T("SuggestionDowngrade", "Downgrade to an older PPSSPP version (please report this bug)");
- } else if (item == "VerifyDisc") {
+ if (item == "VerifyDisc") {
suggestion = rp->T("SuggestionVerifyDisc", "Check your ISO is a good copy of your disc");
} else if (item == "Config:CPUSpeed:0") {
suggestion = rp->T("SuggestionCPUSpeed0", "Disable locked CPU speed setting");
@@ -500,11 +496,6 @@ void ReportFinishScreen::ShowSuggestions() {
resultItems_->Add(new TextView(std::string(" - ") + std::string(suggestion), FLAG_WRAP_TEXT, false))->SetShadow(true);
}
}
-
- if (!valid) {
- // No actual valid versions. Let's just say upgrade and hope the server's not broken.
- resultItems_->Add(new TextView(std::string(" - ") + rp->T_cstr("SuggestionUpgrade", "Upgrade to a newer PPSSPP build"), FLAG_WRAP_TEXT, false))->SetShadow(true);
- }
}
}
diff --git a/UI/UIAtlas.cpp b/UI/UIAtlas.cpp
index 92b1d3a..50199d2 100644
--- a/UI/UIAtlas.cpp
+++ b/UI/UIAtlas.cpp
@@ -75,7 +75,6 @@ static const ImageMeta imageIDs[] = {
{"I_GRID", false},
{"I_LOGO", false},
{"I_ICON", false},
- {"I_ICON_GOLD", false},
{"I_FOLDER", false},
{"I_UP_DIRECTORY", false},
{"I_GEAR", false},
diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
index a89ee1f..eed5bdf 100644
--- a/UWP/PPSSPP_UWPMain.cpp
+++ b/UWP/PPSSPP_UWPMain.cpp
@@ -478,12 +478,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_HAS_ACCELEROMETER:
return IsMobile();
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_HAS_KEYBOARD:
@@ -705,7 +699,7 @@ std::string GetCPUBrandString() {
winrt::hstring dev_filter = L"System.Devices.DeviceInstanceID:=\"" + cpu_id + L"\"";
try {
- auto collection = winrt::Windows::Devices::Enumeration::DeviceInformation::FindAllAsync(dev_filter, {},
+ auto collection = winrt::Windows::Devices::Enumeration::DeviceInformation::FindAllAsync(dev_filter, {},
winrt::Windows::Devices::Enumeration::DeviceInformationKind::Device).get();
if (collection.Size() > 0) {
cpu_name = collection.GetAt(0).Name();
diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp
index 856e39d..cc22d2b 100644
--- a/Windows/MainWindowMenu.cpp
+++ b/Windows/MainWindowMenu.cpp
@@ -170,10 +170,6 @@ namespace MainWindow {
// Don't need to update here, happens later.
HMENU helpMenu = GetSubmenuById(hMenu, ID_HELP_MENU);
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- RemoveMenu(helpMenu, ID_HELP_BUYGOLD, MF_BYCOMMAND);
- }
-
HMENU hMenuOptions = GetSubmenuById(hMenu, ID_OPTIONS_MENU);
g_hMenuBackend = GetSubmenuById(hMenuOptions, ID_OPTIONS_BACKEND_MENU);
}
@@ -310,7 +306,6 @@ namespace MainWindow {
// Help menu: it's translated in CreateHelpMenu.
TranslateMenuItem(menu, ID_HELP_OPENWEBSITE);
TranslateMenuItem(menu, ID_HELP_OPENFORUM);
- TranslateMenuItem(menu, ID_HELP_BUYGOLD);
TranslateMenuItem(menu, ID_HELP_GITHUB);
TranslateMenuItem(menu, ID_HELP_DISCORD);
TranslateMenuItem(menu, ID_HELP_ABOUT);
@@ -933,10 +928,6 @@ namespace MainWindow {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/");
break;
- case ID_HELP_BUYGOLD:
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/buygold");
- break;
-
case ID_HELP_OPENFORUM:
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://forums.ppsspp.org/");
break;
diff --git a/Windows/main.cpp b/Windows/main.cpp
index c7ad098..0280cb9 100644
--- a/Windows/main.cpp
+++ b/Windows/main.cpp
@@ -450,12 +450,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_HAS_LOGIN_DIALOG:
return true;
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_HAS_KEYBOARD:
@@ -478,8 +472,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
#endif
case SYSPROP_HAS_ACCELEROMETER:
return g_InputManager.AnyAccelerometer();
- case SYSPROP_USE_IAP:
- return false; // This should never be set to true on Windows. Only for testing/dev.
case SYSPROP_USE_APP_STORE:
return false;
default:
@@ -654,7 +646,7 @@ bool System_MakeRequest(SystemRequestType type, int requestId, const std::string
}
case SystemRequestType::SET_WINDOW_TITLE:
{
- const char *name = System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold " : "PPSSPP ";
+ const char *name = "PPSSPP ";
std::wstring winTitle = ConvertUTF8ToWString(std::string(name) + PPSSPP_GIT_VERSION);
if (!param1.empty()) {
winTitle.append(ConvertUTF8ToWString(" - " + param1));
diff --git a/Windows/resource.h b/Windows/resource.h
index 0dee92b..602b2fb 100644
--- a/Windows/resource.h
+++ b/Windows/resource.h
@@ -353,7 +353,6 @@
// Dummy option to let the buffered rendering hotkey cycle through all the options.
#define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500
#define IDC_STEPOUT 40501
-#define ID_HELP_BUYGOLD 40502
#define IDC_STATIC -1
diff --git a/ios/main.mm b/ios/main.mm
index 0407b8b..13aace6 100644
--- a/ios/main.mm
+++ b/ios/main.mm
@@ -379,16 +379,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
case SYSPROP_KEYBOARD_IS_SOFT:
// If a hardware keyboard is connected, and we add support, we could return false here.
return true;
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- // This is deprecated.
- return true;
-#elif PPSSPP_PLATFORM(IOS_APP_STORE)
- // Check the IAP status.
- return [[IAPManager sharedIAPManager] isGoldUnlocked];
-#else
- return false;
-#endif
case SYSPROP_USE_IAP:
#if PPSSPP_PLATFORM(IOS_APP_STORE) && defined(USE_IAP)
return true;
@@ -701,4 +691,3 @@ int main(int argc, char *argv[]) {
return UIApplicationMain(argc, argv, NSStringFromClass([PPSSPPUIApplication class]), NSStringFromClass([AppDelegate class]));
}
}
-
--
2.52.0
@@ -1,112 +0,0 @@
diff --git a/Makefile.in b/Makefile.in
index 8f33aa2ff4..39928382da 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -4358,7 +4358,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_msw_utils.o \
monodll_utilsexc.o \
monodll_fswatcher.o \
- monodll_msw_secretstore.o
+ monodll_msw_secretstore.o \
monodll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS \
@@ -5284,7 +5284,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS = \
monodll_uuid.o \
monodll_msw_evtloop.o \
monodll_access.o \
- monodll_dark_mode.o
+ monodll_dark_mode.o \
monodll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS = \
@@ -6196,7 +6196,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_uuid.o \
monodll_msw_evtloop.o \
monodll_access.o \
- monodll_dark_mode.o
+ monodll_dark_mode.o \
monodll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_1)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_1 = \
@@ -6371,7 +6371,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_msw_utils.o \
monolib_utilsexc.o \
monolib_fswatcher.o \
- monolib_msw_secretstore.o
+ monolib_msw_secretstore.o \
monolib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_1 \
@@ -7297,7 +7297,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_uuid.o \
monolib_msw_evtloop.o \
monolib_access.o \
- monolib_dark_mode.o
+ monolib_dark_mode.o \
monolib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_2 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_2)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_2 = \
@@ -8209,7 +8209,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_uuid.o \
monolib_msw_evtloop.o \
monolib_access.o \
- monolib_dark_mode.o
+ monolib_dark_mode.o \
monolib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_3 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_3)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_3 = \
@@ -8436,7 +8436,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_msw_utils.o \
basedll_utilsexc.o \
basedll_fswatcher.o \
- basedll_msw_secretstore.o
+ basedll_msw_secretstore.o \
basedll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_2 \
@@ -8523,7 +8523,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_msw_utils.o \
baselib_utilsexc.o \
baselib_fswatcher.o \
- baselib_msw_secretstore.o
+ baselib_msw_secretstore.o \
baselib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_3 \
@@ -9464,7 +9464,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_uuid.o \
coredll_msw_evtloop.o \
coredll_access.o \
- coredll_dark_mode.o
+ coredll_dark_mode.o \
coredll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_4 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_4)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_4 = \
@@ -10376,7 +10376,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_uuid.o \
coredll_msw_evtloop.o \
coredll_access.o \
- coredll_dark_mode.o
+ coredll_dark_mode.o \
coredll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_5 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_5)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_5 = \
@@ -11204,7 +11204,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_uuid.o \
corelib_msw_evtloop.o \
corelib_access.o \
- corelib_dark_mode.o
+ corelib_dark_mode.o \
corelib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_6 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_6)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_6 = \
@@ -12116,7 +12116,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_uuid.o \
corelib_msw_evtloop.o \
corelib_access.o \
- corelib_dark_mode.o
+ corelib_dark_mode.o \
corelib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_7 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_7)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_7 = \
+199 -202
View File
@@ -128,126 +128,125 @@
"perl-reproducible-build-date.patch")))) "perl-reproducible-build-date.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f (list
#:configure-flags #:tests? #f
(let ((out (assoc-ref %outputs "out")) #:configure-flags
(libc (assoc-ref %build-inputs "libc"))) #~(let* ((libc.so (search-input-file %build-inputs "/lib/libc.so"))
(list (libc (dirname (dirname libc.so))))
(string-append "-Dprefix=" out) (list (string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" out "/share/man/man1") (string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3") (string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc" "-de" "-Dcc=gcc"
"-Uinstallusrbinperl" "-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5" "-Dinstallstyle=lib/perl5"
"-Duseshrplib" "-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include") (string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib") (string-append "-Dloclibpth=" libc "/lib")
"-Dusethreads")) "-Dusethreads"))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-before 'configure 'setup-configure (add-before 'configure 'setup-configure
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Use the right path for `pwd'. ;; Use the right path for `pwd'.
(substitute* "dist/PathTools/Cwd.pm" (substitute* "dist/PathTools/Cwd.pm"
(("'/bin/pwd'") (("'/bin/pwd'")
(string-append "'" (search-input-file inputs "bin/pwd") "'"))) (string-append "'" (search-input-file inputs "bin/pwd") "'")))
;; Build in GNU89 mode to tolerate C++-style comment in libc's ;; Build in GNU89 mode to tolerate C++-style comment in libc's
;; <bits/string3.h>. ;; <bits/string3.h>.
(substitute* "cflags.SH" (substitute* "cflags.SH"
(("-std=c89") (("-std=c89")
"-std=gnu89")))) "-std=gnu89"))))
,@(if (%current-target-system) #$@(if (%current-target-system)
`((add-after 'unpack 'unpack-cross #~((add-after 'unpack 'unpack-cross
(lambda* (#:key native-inputs inputs #:allow-other-keys) (lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((cross-checkout (let ((cross-checkout
(assoc-ref native-inputs "perl-cross"))) (assoc-ref native-inputs "perl-cross")))
(rename-file "Artistic" "Artistic.perl") (rename-file "Artistic" "Artistic.perl")
(rename-file "Copying" "Copying.perl") (rename-file "Copying" "Copying.perl")
(copy-recursively cross-checkout ".")) (copy-recursively cross-checkout "."))
(let ((bash (search-input-file inputs "bin/bash"))) (let ((bash (search-input-file inputs "bin/bash")))
(substitute* '("Makefile.config.SH" (substitute* '("Makefile.config.SH"
"cnf/config.guess" "cnf/config.guess"
"cnf/config.sub" "cnf/config.sub"
"cnf/configure" "cnf/configure"
"cnf/configure_misc.sh" "cnf/configure_misc.sh"
"miniperl_top") "miniperl_top")
(("! */bin/sh") (string-append "! " bash)) (("! */bin/sh")
((" /bin/sh") bash)) (string-append "! " bash))
(substitute* '("ext/Errno/Errno_pm.PL") ((" /bin/sh")
(("\\$cpp < errno.c") "$Config{cc} -E errno.c"))))) bash))
(replace 'configure (substitute* '("ext/Errno/Errno_pm.PL")
(lambda* (#:key configure-flags outputs inputs #:allow-other-keys) (("\\$cpp < errno.c")
(let* ((out (assoc-ref outputs "out")) "$Config{cc} -E errno.c")))))
(store-directory (%store-directory)) (replace 'configure
(configure-flags (lambda* (#:key configure-flags inputs #:allow-other-keys)
(cons* (let* ((store-directory (%store-directory))
;; `perl-cross' confuses target and host (configure-flags
(string-append "--target=" ,(%current-target-system)) (cons*
(string-append "--prefix=" out) ;; `perl-cross' confuses target and host
(string-append "-Dcc=" ,(%current-target-system) "-gcc") (string-append "--target=" #$(%current-target-system))
"-Dbyteorder=1234" (string-append "--prefix=" #$output)
(filter (negate (string-append "-Dcc=" #$(%current-target-system) "-gcc")
(lambda (x) (or (string-prefix? "-d" x) "-Dbyteorder=1234"
(string-prefix? "-Dcc=" x)))) (remove (lambda (x) (or (string-prefix? "-d" x)
configure-flags))) (string-prefix? "-Dcc=" x)))
(bash (assoc-ref inputs "bash-minimal"))) configure-flags)))
(format (current-error-port) (bash (assoc-ref inputs "bash-minimal")))
"running ./configure ~a\n" (format (current-error-port)
(string-join configure-flags)) "running ./configure ~a\n"
(apply invoke (cons "./configure" configure-flags)) (string-join configure-flags))
(substitute* "config.sh" (apply invoke (cons "./configure" configure-flags))
(((string-append store-directory "/[^/]*-bash-[^/]*")) (substitute* "config.sh"
bash)) (((string-append store-directory "/[^/]*-bash-[^/]*"))
(substitute* '("config.h") bash))
(("^#define SH_PATH .*") (substitute* '("config.h")
(string-append "#define SH_PATH \"" (("^#define SH_PATH .*")
bash "/bin/bash\"\n")))))) (string-append "#define SH_PATH \""
(add-after 'build 'touch-non-built-files-for-install bash "/bin/bash\"\n"))))))
(lambda _ (add-after 'build 'touch-non-built-files-for-install
;; `make install' wants to install these although they do (lambda _
;; not get built... ;; `make install' wants to install these although they do
(with-directory-excursion "cpan" ;; not get built...
(mkdir-p "Pod-Usage/blib/script") (with-directory-excursion "cpan"
(mkdir-p "Pod-Parser/blib/script") (mkdir-p "Pod-Usage/blib/script")
(for-each (lambda (file) (mkdir-p "Pod-Parser/blib/script")
(call-with-output-file file (for-each (lambda (file)
(lambda (port) (display "" port)))) (call-with-output-file file
'("Pod-Usage/blib/script/pod2text" (lambda (port) (display "" port))))
"Pod-Usage/blib/script/pod2usage" '("Pod-Usage/blib/script/pod2text"
"Pod-Checker/blib/script/podchecker" "Pod-Usage/blib/script/pod2usage"
"Pod-Parser/blib/script/podselect")))))) "Pod-Checker/blib/script/podchecker"
`((replace 'configure "Pod-Parser/blib/script/podselect"))))))
(lambda* (#:key configure-flags #:allow-other-keys) #~((replace 'configure
(format #t "Perl configure flags: ~s~%" configure-flags) (lambda* (#:key configure-flags #:allow-other-keys)
(apply invoke "./Configure" configure-flags))))) (format #t "Perl configure flags: ~s~%" configure-flags)
(add-after 'install 'remove-extra-references (apply invoke "./Configure" configure-flags)))))
(lambda* (#:key inputs outputs #:allow-other-keys) (add-after 'install 'remove-extra-references
(let* ((out (assoc-ref outputs "out")) (lambda* (#:key inputs #:allow-other-keys)
(libc (assoc-ref inputs (let* ((lib-perl5 (string-append #$output "/lib/perl5"))
,(if (%current-target-system) (libc.so (search-input-file
"cross-libc" "libc"))) #$(if (%current-target-system)
(config1 (car (find-files (string-append out "/lib/perl5") #~%build-target-inputs
"^Config_heavy\\.pl$"))) #~%build-inputs)
(config2 (find-files (string-append out "/lib/perl5") "/lib/libc.so"))
"^Config\\.pm$"))) (libc (dirname (dirname libc.so)))
;; Force the library search path to contain only libc because (config1 (find-files lib-perl5 "^Config_heavy\\.pl$"))
;; it is recorded in Config.pm and Config_heavy.pl; we don't (config2 (find-files lib-perl5 "^Config\\.pm$")))
;; want to keep a reference to everything that's in ;; Force the library search path to contain only libc because
;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file, ;; it is recorded in Config.pm and Config_heavy.pl; we don't
;; etc.) ;; want to keep a reference to everything that's in
(substitute* config1 ;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file,
(("^incpth=.*$") ;; etc.)
(string-append "incpth='" libc "/include'\n")) (substitute* (car config1)
(("^(libpth|plibpth|libspath)=.*$" _ variable) (("^incpth=.*$")
(string-append variable "='" libc "/lib'\n"))) (string-append "incpth='" libc "/include'\n"))
(("^(libpth|plibpth|libspath)=.*$" _ variable)
(string-append variable "='" libc "/lib'\n")))
(for-each (lambda (file) (substitute* config2
(substitute* config2 (("libpth => .*$")
(("libpth => .*$") (string-append "libpth => '" libc "/lib',\n")))))))))
(string-append "libpth => '" libc
"/lib',\n"))))
config2)))))))
(inputs (inputs
(if (%current-target-system) (if (%current-target-system)
(list bash-minimal coreutils-minimal) (list bash-minimal coreutils-minimal)
@@ -296,46 +295,44 @@ more.")
(properties `((release-date . "2013-03-10"))) (properties `((release-date . "2013-03-10")))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f (list
#:phases #:tests? #f
(modify-phases %standard-phases #:phases
(replace 'configure #~(modify-phases %standard-phases
(lambda* (#:key inputs outputs #:allow-other-keys) (replace 'configure
(let ((out (assoc-ref outputs "out")) (lambda* (#:key inputs #:allow-other-keys)
(libc (assoc-ref inputs "libc"))) (let ((libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'. ;; Use the right path for `pwd'.
(substitute* "dist/Cwd/Cwd.pm" (substitute* "dist/Cwd/Cwd.pm"
(("/bin/pwd") (("/bin/pwd")
(which "pwd"))) (which "pwd")))
(invoke "./Configure" (invoke "./Configure"
(string-append "-Dprefix=" out) (string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" out "/share/man/man1") (string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3") (string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc" "-de" "-Dcc=gcc"
"-Uinstallusrbinperl" "-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5" "-Dinstallstyle=lib/perl5"
"-Duseshrplib" "-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include") (string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib") (string-append "-Dloclibpth=" libc "/lib")
;; Force the library search path to contain only libc ;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and ;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference ;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build ;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.) ;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib") (string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib"))))) (string-append "-Dplibpth=" libc "/lib")))))
(add-before 'strip 'make-shared-objects-writable (add-before 'strip 'make-shared-objects-writable
(lambda* (#:key outputs #:allow-other-keys) (lambda _
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them ;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them. ;; writable so that 'strip' actually strips them.
(let* ((out (assoc-ref outputs "out")) (for-each
(lib (string-append out "/lib"))) (lambda (dso) (chmod dso #o755))
(for-each (lambda (dso) (find-files (string-append #$output "/lib") "\\.so$")))))))
(chmod dso #o755))
(find-files lib "\\.so$"))))))))
(native-inputs (native-inputs
(list gcc-7)) (list gcc-7))
(native-search-paths (list (search-path-specification (native-search-paths (list (search-path-specification
@@ -366,55 +363,55 @@ more.")
(hidden? . #t))) ;only for GHC 4. (hidden? . #t))) ;only for GHC 4.
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f (list
#:phases #:tests? #f
(modify-phases %standard-phases #:phases
(replace 'configure #~(modify-phases %standard-phases
(lambda* (#:key inputs outputs #:allow-other-keys) (replace 'configure
(let ((out (assoc-ref outputs "out")) (lambda* (#:key inputs #:allow-other-keys)
(libc (assoc-ref inputs "libc"))) (let ((libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'. ;; Use the right path for `pwd'.
(substitute* "lib/Cwd.pm" (substitute* "lib/Cwd.pm"
(("/bin/pwd") (("/bin/pwd")
(which "pwd"))) (which "pwd")))
(invoke "./Configure" (invoke "./Configure"
(string-append "-Dprefix=" out) (string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" out "/share/man/man1") (string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3") (string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc -std=c90" "-de" "-Dcc=gcc -std=c90"
"-Uinstallusrbinperl" "-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5" "-Dinstallstyle=lib/perl5"
"-Duseshrplib" "-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include") (string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib") (string-append "-Dloclibpth=" libc "/lib")
;; Force the library search path to contain only libc ;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and ;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference ;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build ;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.) ;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib") (string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib"))))) (string-append "-Dplibpth=" libc "/lib")))))
(add-after 'configure 'bleh (add-after 'configure 'bleh
(lambda _ (lambda _
(substitute* '("makefile" (substitute* '("makefile" "x2p/makefile")
"x2p/makefile") ((".*\\<command-line>.*")
((".*\\<command-line>.*") "")) ""))
;; Don't look for /usr/include/errno.h. ;; Don't look for /usr/include/errno.h.
(substitute* "ext/Errno/Errno_pm.PL" (substitute* "ext/Errno/Errno_pm.PL"
(("O eq 'linux'") "O eq 'loonix'")) (("O eq 'linux'")
(substitute* "ext/IPC/SysV/SysV.xs" "O eq 'loonix'"))
((".*asm/page.h.*") "")))) (substitute* "ext/IPC/SysV/SysV.xs"
(add-before 'strip 'make-shared-objects-writable ((".*asm/page.h.*")
(lambda* (#:key outputs #:allow-other-keys) ""))))
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them (add-before 'strip 'make-shared-objects-writable
;; writable so that 'strip' actually strips them. (lambda _
(let* ((out (assoc-ref outputs "out")) ;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
(lib (string-append out "/lib"))) ;; writable so that 'strip' actually strips them.
(for-each (lambda (dso) (for-each
(chmod dso #o755)) (lambda (dso) (chmod dso #o755))
(find-files lib "\\.so$")))))))) (find-files (string-append #$output "/lib") "\\.so$")))))))
(native-inputs '()))) (native-inputs '())))
(define-public perl-algorithm-c3 (define-public perl-algorithm-c3
+2 -2
View File
@@ -236,7 +236,7 @@ it.")
(define-public trealla (define-public trealla
(package (package
(name "trealla") (name "trealla")
(version "2.92.3") (version "2.92.7")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -245,7 +245,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla") (url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "14cycv7cgnz24pzd2zghc401s21j2y70ir5hl2l5acw169snm9jk")) (base32 "07z2i0bkqzdx0szwr4v98cb9r7a3ghy0vz5jn3xa7zh41yfr33nx"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
+4 -24
View File
@@ -1067,30 +1067,6 @@ any dependency management. It aims to keep dependencies to a minimum, in
order to make bootstrapping easier.") order to make bootstrapping easier.")
(license license:expat))) (license license:expat)))
;; There are quite a few amount of Python installers in the wild we need the
;; one from PyPa team.
(define-public python-pypa-installer
(package
(name "python-pypa-installer")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "installer" version))
(sha256
(base32 "0cdnqh3a3amw8k4s1pzfjh0hpvzw4pczgl702s1b16r82qqkwvd2"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f)) ; Depends on pytest, which we cannot import into this module.
(native-inputs
(list python-flit-core))
(home-page "https://installer.readthedocs.io/")
(synopsis "low-level library for installing from a Python wheel distribution")
(description
"This package provides a library for installing Python wheels.")
(license license:expat)))
(define-public python-poetry-core (define-public python-poetry-core
(package (package
(name "python-poetry-core") (name "python-poetry-core")
@@ -1526,6 +1502,10 @@ package from a wheel distribution. It provides basic functionality and
abstractions for handling wheels and installing packages from wheels.") abstractions for handling wheels and installing packages from wheels.")
(license license:expat))) (license license:expat)))
;; Both packages have been merged into a single one.
(define-deprecated-package python-pypa-installer
python-installer)
(define-public python-jaraco-classes (define-public python-jaraco-classes
(package (package
(name "python-jaraco-classes") (name "python-jaraco-classes")
+3 -2
View File
@@ -33,6 +33,7 @@
;;; Copyright © 2024 jgart <jgart@dismail.de> ;;; Copyright © 2024 jgart <jgart@dismail.de>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2025 Nguyễn Gia Phong <cnx@loang.net> ;;; Copyright © 2025 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2025 Adrien 'neox' Bourmault <neox@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -719,7 +720,7 @@ python-axolotl.")
(define-public python-omemo-dr (define-public python-omemo-dr
(package (package
(name "python-omemo-dr") (name "python-omemo-dr")
(version "1.0.1") (version "1.2.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@@ -728,7 +729,7 @@ python-axolotl.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1gx0znbfvs8jg9s754hha81l8wpghswkfsqx2jzpgv6gigf3sm8z")))) (base32 "18snryk95wyiz5jh5wa5x58yych9d8l9hmnqq828gsb5ncxq3szk"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (list #:test-backend #~'unittest)) (arguments (list #:test-backend #~'unittest))
(propagated-inputs (propagated-inputs
+4 -5
View File
@@ -3686,24 +3686,23 @@ SLURM jobs (meant for internal use by python-snakemake-executor-plugin-slurm).")
(define-public python-sparse (define-public python-sparse
(package (package
(name "python-sparse") (name "python-sparse")
(version "0.15.5") (version "0.18.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "sparse" version)) (uri (pypi-uri "sparse" version))
(sha256 (sha256
(base32 (base32
"0rp29gp82qwwkq210pzh2qmlqhi2007nb7p7nwqmrkgmjq6cwxjc")))) "1x5zkgbsgmpr6nis0k2y5vrsg7l61ly2zishnijcgh0fxdhjdyap"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(propagated-inputs (propagated-inputs
(list python-numba python-numpy python-scipy)) (list python-numba python-numpy python-scipy))
(native-inputs (native-inputs
(list python-dask (list python-dask
python-pytest python-pytest
python-pytest-cov python-pytest-cov ; runs by default
python-setuptools python-setuptools
python-setuptools-scm python-setuptools-scm))
python-wheel))
(home-page "https://github.com/pydata/sparse/") (home-page "https://github.com/pydata/sparse/")
(synopsis "Library for multi-dimensional sparse arrays") (synopsis "Library for multi-dimensional sparse arrays")
(description (description
+46 -13
View File
@@ -6074,6 +6074,15 @@ commonly used storage backends.")
(base32 (base32
"0snprxdnh3m45r3b0az4v0l28h90ycmfbybzla6xg1qviwv9w1ak")))) "0snprxdnh3m45r3b0az4v0l28h90ycmfbybzla6xg1qviwv9w1ak"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "tests/test_match.py"
(("assertRaisesRegexp")
"assertRaisesRegex")))))))
(native-inputs (native-inputs
(list python-pytest python-setuptools)) (list python-pytest python-setuptools))
(inputs (inputs
@@ -16163,7 +16172,7 @@ file (e.g. @file{PKG-INFO}).")
(build-system pyproject-build-system) (build-system pyproject-build-system)
;; tests: 124 passed, 16 skipped ;; tests: 124 passed, 16 skipped
(native-inputs (native-inputs
(list git-minimal (list git-minimal/pinned
patchelf patchelf
python-pytest python-pytest
python-pytest-mock)) python-pytest-mock))
@@ -16527,22 +16536,21 @@ TODO notes checker plugin for flake8.")
(define-public python-flake8-isort (define-public python-flake8-isort
(package (package
(name "python-flake8-isort") (name "python-flake8-isort")
(version "6.1.1") (version "7.0.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (pypi-uri "flake8_isort" version)) (uri (git-reference
(url "https://github.com/gforcada/flake8-isort")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "1cvh0d18scgq36gqa2vqbifjarln1r3axgq93lzc303ay0y2zy61")))) (base32 "0d7j2ws59bm9143m69ah6h865i2pn97p4gjpwx6jrwi9sy26kj5z"))))
(build-system pyproject-build-system) (build-system pyproject-build-system)
(arguments (arguments (list #:test-backend #~'custom
(list #:test-flags #~(list "run_tests.py")))
#:tests? #f)) ; no tests in PiPY or git checkout (native-inputs (list python-hatchling python-pytest))
(native-inputs (propagated-inputs (list python-flake8 python-isort))
(list python-hatchling))
(propagated-inputs
(list python-flake8
python-isort))
(home-page "https://github.com/gforcada/flake8-isort") (home-page "https://github.com/gforcada/flake8-isort")
(synopsis "Flake8 plugin integrating isort") (synopsis "Flake8 plugin integrating isort")
(description (description
@@ -39539,6 +39547,31 @@ package updates.")
adherence to RFC 6570, but adds a few extensions.") adherence to RFC 6570, but adds a few extensions.")
(license license:expat))) (license license:expat)))
(define-public python-uritools
(package
(name "python-uritools")
(version "6.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tkem/uritools/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "115a8xphnv0ykd4c0pjh5rd4zy92znpdv4nwbn7n2d6irznvk00v"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
python-setuptools))
(home-page "https://github.com/tkem/uritools/")
(synopsis "URI parsing, classification and composition")
(description
"This package provides RFC 3986 compliant functions for parsing,
classifying and composing URIs and URI references, largely replacing the
Python Standard Library's urllib.parse module.")
(license license:expat)))
(define-public python-urwid (define-public python-urwid
(package (package
(name "python-urwid") (name "python-urwid")
+8 -19
View File
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -50,22 +51,10 @@
(list (readline-patch version seqno (base32 hash)) (list (readline-patch version seqno (base32 hash))
...)) ...))
(define %patch-series-8.2 (define %patch-series-8.3
(patch-series (patch-series
"8.2" "8.3"
(1 "1xxgfgr6hn3ads8m8xsrdi1kbx1f3s69k0danpd9x4haqhg7zydv") (1 "1pl4midx7kc56bw4ansrdpdjpanv1vmp0p6jghrrgrnv0qqs1w11")))
(2 "0ly0siy6qy3l7hv12847adpfa34yq1w4qz9qkw6vrxv25j106rg0")
(3 "1c5cwvvkx9mfmpaapymq9cavmzh4fnagkjlchsqx4vml8sx8gx94")
(4 "1b15sndx9v5vj3x1f3h73099nlagknx4rbfpd5ldrbw2xgm2wmvr")
(5 "16ac25jz1a1mgkpfp1sydqf6qpsfh0s0dcmrnjpqbhg5va3s6av2")
(6 "18gmh6y3klh0vv28cyqz4is3rlb32pl7f1kf5r482kfjq3w5zd67")
(7 "1xmnpahs983n4w0gn3j0wr8nh1dpva33yj7fvfmhm46ph2wsa4ar")
(8 "0smjjzhwxi2ibpdisnk53lh1pzgka6rhlqyh3662xy69v34ysxx1")
(9 "05m1fwbs7mbs3pz3pg87gbbayandrrcgaqawzliqb6g1jbk8b61x")
(10 "0k3vyrjs2g6y2cfs03l2gp37fhxgqpiwvxb1c7z4q88cbb32x3km")
(11 "1msdahvz56l9m5m69a87zp2c7qrfv0dxwd09rj1697isgy83s0g0")
(12 "1lybzig73pqpcbw79im0kn6299lkcbnh24yigygn5jm2sj7dz2kc")
(13 "1a48lyrhvn6nbj5qhradfpbbs3md5maz7wb32yvaghvfgnak990y")))
(define %patch-series-7.0 (define %patch-series-7.0
(patch-series (patch-series
@@ -79,16 +68,16 @@
(define-public readline (define-public readline
(package (package
(name "readline") (name "readline")
(version (string-append "8.2." (version (string-append "8.3."
(number->string (length %patch-series-8.2)))) (number->string (length %patch-series-8.3))))
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/readline/readline-" (uri (string-append "mirror://gnu/readline/readline-"
(version-major+minor version) ".tar.gz")) (version-major+minor version) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0dbw02ai0z8x6d9s14pl0hnaa2g1kdxnv8qqra1fx13ay5qp3srz")) "1k31j1prf9zn86hccay2i49vlzks0cy1v3gfjpa8r0k78hh86lzy"))
(patches (append %patch-series-8.2 (patches (append %patch-series-8.3
(search-patches "readline-link-ncurses.patch"))) (search-patches "readline-link-ncurses.patch")))
(patch-flags '("-p0")))) (patch-flags '("-p0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
+27 -21
View File
@@ -957,33 +957,36 @@ highlighting tool to ease code review from your terminal.")
(define-public difftastic (define-public difftastic
(package (package
(name "difftastic") (name "difftastic")
(version "0.63.0") (version "0.68.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (crate-uri "difftastic" version)) (uri (crate-uri "difftastic" version))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "012h76wx5jv6czc9j4awfan7vhrc6g5fdgnxrjmzg5q27wn99hn6"))))
"0md332fch4b87akdvljzxp4m2k5yri7cpkz3n54jc762j7j9qmrz"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:install-source? #f (list
#:cargo-test-flags #:install-source? #f
`("--release" "--" #:cargo-test-flags
"--skip=display::side_by_side::tests::test_display_hunks" '(list "--"
"--skip=display::style::tests::split_string_cjk" "--skip=display::side_by_side::tests::test_display_hunks"
"--skip=display::style::tests::split_string_cjk2" "--skip=display::style")
"--skip=display::style::tests::split_string_simple" #:phases
"--skip=display::style::tests::split_string_unicode" #~(modify-phases %standard-phases
"--skip=display::style::tests::test_combining_char" ;; jemalloc needs unbundling for tikv-jemallocator-sys
"--skip=display::style::tests::test_split_and_apply" (add-before 'build 'override-jemalloc
,(string-append "--skip=display::style::tests::" (lambda* (#:key inputs #:allow-other-keys)
"test_split_and_apply_gap_between_styles_on_wrap_boundary") (let ((jemalloc (assoc-ref inputs "jemalloc")))
"--skip=display::style::tests::test_split_and_apply_trailing_text" ;; This flag is needed when not using the bundled jemalloc.
"--skip=display::style::tests::test_split_and_apply_trailing_text_newline"))) ;; https://github.com/tikv/jemallocator/issues/19
(setenv
"CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
(setenv "JEMALLOC_OVERRIDE"
(string-append jemalloc "/lib/libjemalloc.so"))))))))
(inputs (inputs
(cons mimalloc (cargo-inputs 'difftastic))) (cons jemalloc (cargo-inputs 'difftastic)))
(home-page "https://difftastic.wilfred.me.uk/") (home-page "https://difftastic.wilfred.me.uk/")
(synopsis "Structural diff command that understands syntax") (synopsis "Structural diff command that understands syntax")
(description (description
@@ -3089,11 +3092,14 @@ support, watch support (like @command{top}) and a tree view.")
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((bin (string-append (assoc-ref outputs "out") "/bin")) (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
(bindgen (string-append bin "/bindgen")) (bindgen (string-append bin "/bindgen"))
(llvm-dir (string-append (clang (assoc-ref inputs "clang"))
(assoc-ref inputs "clang") "/lib"))) (llvm-dir (string-append clang "/lib"))
(clang-bin (string-append clang "/bin")))
(install-file "target/release/bindgen" bin) (install-file "target/release/bindgen" bin)
(wrap-program bindgen (wrap-program bindgen
`("LIBCLANG_PATH" = (,llvm-dir)))))) `("LIBCLANG_PATH" = (,llvm-dir))
;; The bindgen binary requires clang, add one as a fallback.
`("PATH" suffix (,clang-bin))))))
(add-after 'install 'install-completions (add-after 'install 'install-completions
(lambda* (#:key native-inputs outputs #:allow-other-keys) (lambda* (#:key native-inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
+448 -120
View File
@@ -752,6 +752,10 @@
(crate-source "arbitrary" "1.4.2" (crate-source "arbitrary" "1.4.2"
"1wcbi4x7i3lzcrkjda4810nqv03lpmvfhb0a85xrq1mbqjikdl63")) "1wcbi4x7i3lzcrkjda4810nqv03lpmvfhb0a85xrq1mbqjikdl63"))
(define rust-arbitrary-int-1.2.7
(crate-source "arbitrary-int" "1.2.7"
"0vgl3n5zzpdn2hxpz6gqk8zg2psk5gwyjzsgpngzd9iqwc1w0ky8"))
(define rust-arboard-3.5.0 (define rust-arboard-3.5.0
(crate-source "arboard" "3.5.0" (crate-source "arboard" "3.5.0"
"0w1yqcx51153hy5w3y0702xjc9nmlhncw9f5l0rdwbl62pvj3py1")) "0w1yqcx51153hy5w3y0702xjc9nmlhncw9f5l0rdwbl62pvj3py1"))
@@ -1476,6 +1480,10 @@
(crate-source "attribute-derive-macro" "0.10.3" (crate-source "attribute-derive-macro" "0.10.3"
"06zph2lyllkp6g1lsv7v4p84dnglbw2gw58r9fpn1d6m1ynm6fs6")) "06zph2lyllkp6g1lsv7v4p84dnglbw2gw58r9fpn1d6m1ynm6fs6"))
(define rust-attrs-0.2.9
(crate-source "attrs" "0.2.9"
"0pvy6b7arfr2f6awwkw6k1hc8sxidjxhj1fyyf2m5rixyi07s81a"))
(define rust-atty-0.2.11 (define rust-atty-0.2.11
(crate-source "atty" "0.2.11" (crate-source "atty" "0.2.11"
"0lln6vaczj521qqjbaqnb81w5p6xk4fjfkg33r0m22cm4f3mnzcs")) "0lln6vaczj521qqjbaqnb81w5p6xk4fjfkg33r0m22cm4f3mnzcs"))
@@ -2174,6 +2182,14 @@
(crate-source "bigdecimal" "0.4.10" (crate-source "bigdecimal" "0.4.10"
"159nc0bs6bbzxrpfxbnn83ccyzq8bc2ia40zd22ssfjvavqnfs2d")) "159nc0bs6bbzxrpfxbnn83ccyzq8bc2ia40zd22ssfjvavqnfs2d"))
(define rust-bilge-0.2.0
(crate-source "bilge" "0.2.0"
"0mvvwq9caiq701bmmwyd4q4pc8c69i5zaj3zdk6ya7gqxgc7ww6w"))
(define rust-bilge-impl-0.2.0
(crate-source "bilge-impl" "0.2.0"
"1n5jml0c1z0np76ms0h5rxx19krblz46h84wycx29b9q4001xcgy"))
(define rust-binascii-0.1.4 (define rust-binascii-0.1.4
(crate-source "binascii" "0.1.4" (crate-source "binascii" "0.1.4"
"0wnaglgl72pn5ilv61q6y34w76gbg7crb8ifqk6lsxnq2gajjg9q")) "0wnaglgl72pn5ilv61q6y34w76gbg7crb8ifqk6lsxnq2gajjg9q"))
@@ -2790,7 +2806,8 @@
(define rust-burn-store-0.20.1 (define rust-burn-store-0.20.1
(crate-source "burn-store" "0.20.1" (crate-source "burn-store" "0.20.1"
"0v8snhnhcrqwi7g6dzkrb1bmqv12gsvyk8nhq4fr06aa11xhms2b")) "0v8snhnhcrqwi7g6dzkrb1bmqv12gsvyk8nhq4fr06aa11xhms2b"
#:snippet '(delete-file-recursively "src/pytorch/tests")))
(define rust-burn-tensor-0.20.1 (define rust-burn-tensor-0.20.1
(crate-source "burn-tensor" "0.20.1" (crate-source "burn-tensor" "0.20.1"
@@ -3693,6 +3710,10 @@
(crate-source "cc" "1.2.57" (crate-source "cc" "1.2.57"
"08q464b62d03zm7rgiixavkrh5lzfq18lwf884vgycj9735d23bs")) "08q464b62d03zm7rgiixavkrh5lzfq18lwf884vgycj9735d23bs"))
(define rust-cc-1.2.58
(crate-source "cc" "1.2.58"
"1qb0zyqhn8pqzdp7d3scm19zmvgvbyh3iabmj1q7fc4ynva2isg1"))
(define rust-cc-traits-2.0.0 (define rust-cc-traits-2.0.0
(crate-source "cc-traits" "2.0.0" (crate-source "cc-traits" "2.0.0"
"1db2m7drl9w3yda4ybxvhykz45krqrlapcg16wkm4jpg67ph60q6")) "1db2m7drl9w3yda4ybxvhykz45krqrlapcg16wkm4jpg67ph60q6"))
@@ -4430,7 +4451,8 @@
(define rust-claxon-0.4.3 (define rust-claxon-0.4.3
(crate-source "claxon" "0.4.3" (crate-source "claxon" "0.4.3"
"1206mxvw833ysg10029apcsjjwly8zmsvksgza5cm7ma4ikzbysb")) "1206mxvw833ysg10029apcsjjwly8zmsvksgza5cm7ma4ikzbysb"
#:snippet '(delete-file-recursively "testsamples")))
(define rust-clearscreen-2.0.1 (define rust-clearscreen-2.0.1
(crate-source "clearscreen" "2.0.1" (crate-source "clearscreen" "2.0.1"
@@ -6327,7 +6349,8 @@
(define rust-dash-mpd-0.19.3 (define rust-dash-mpd-0.19.3
(crate-source "dash-mpd" "0.19.3" (crate-source "dash-mpd" "0.19.3"
"1qigvq43j93p4mdj41kf0d6a485x7raksn41962da1z1si2r3y8n")) "1qigvq43j93p4mdj41kf0d6a485x7raksn41962da1z1si2r3y8n"
#:snippet '(delete-file-recursively "tests")))
(define rust-dashmap-4.0.2 (define rust-dashmap-4.0.2
(crate-source "dashmap" "4.0.2" (crate-source "dashmap" "4.0.2"
@@ -6473,7 +6496,9 @@
(define rust-dav1d-0.11.1 (define rust-dav1d-0.11.1
(crate-source "dav1d" "0.11.1" (crate-source "dav1d" "0.11.1"
"0q9bm3igd4bdxfh39xlrqxbhp46vminddp10fp36jq31c2w9rs1y")) "0q9bm3igd4bdxfh39xlrqxbhp46vminddp10fp36jq31c2w9rs1y"
#:snippet '(for-each delete-file
'("test-420-12.ivf" "test-420-8.ivf"))))
(define rust-dav1d-sys-0.8.3 (define rust-dav1d-sys-0.8.3
(crate-source "dav1d-sys" "0.8.3" (crate-source "dav1d-sys" "0.8.3"
@@ -6570,7 +6595,8 @@
(define rust-deepgram-0.7.0 (define rust-deepgram-0.7.0
(crate-source "deepgram" "0.7.0" (crate-source "deepgram" "0.7.0"
"1l8zgsvdi5wmdl3mlyzdxnwzsdj5ys18y6f49z4yghcgvk213gs9")) "1l8zgsvdi5wmdl3mlyzdxnwzsdj5ys18y6f49z4yghcgvk213gs9"
#:snippet '(delete-file-recursively "examples")))
(define rust-defer-drop-1.3.0 (define rust-defer-drop-1.3.0
(crate-source "defer-drop" "1.3.0" (crate-source "defer-drop" "1.3.0"
@@ -7399,6 +7425,10 @@
(crate-source "ego-tree" "0.10.0" (crate-source "ego-tree" "0.10.0"
"1n2csy99chk5v5vzjl0ff79vxpxhl76xmcb3aj6brrzzipmjz5xj")) "1n2csy99chk5v5vzjl0ff79vxpxhl76xmcb3aj6brrzzipmjz5xj"))
(define rust-either-1.12.0
(crate-source "either" "1.12.0"
"12xmhlrv5gfsraimh6xaxcmb0qh6cc7w7ap4sw40ky9wfm095jix"))
(define rust-either-1.13.0 (define rust-either-1.13.0
(crate-source "either" "1.13.0" (crate-source "either" "1.13.0"
"1w2c1mybrd7vljyxk77y9f4w9dyjrmp3yp82mk7bcm8848fazcb0")) "1w2c1mybrd7vljyxk77y9f4w9dyjrmp3yp82mk7bcm8848fazcb0"))
@@ -8630,6 +8660,10 @@
"0aqxjgghmn8javsc5jcvx8lqpcrzajndl7v6q1j47zz87xmy2mrf" "0aqxjgghmn8javsc5jcvx8lqpcrzajndl7v6q1j47zz87xmy2mrf"
#:snippet '(delete-file-recursively "images"))) #:snippet '(delete-file-recursively "images")))
(define rust-foreign-0.3.1
(crate-source "foreign" "0.3.1"
"0ijqb18gllqr0319brxsrjdb036cgaf81wc6ygd21ly9x1dipjhp"))
(define rust-foreign-types-0.3.2 (define rust-foreign-types-0.3.2
(crate-source "foreign-types" "0.3.2" (crate-source "foreign-types" "0.3.2"
"1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn")) "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn"))
@@ -12843,6 +12877,10 @@
(crate-source "hashbrown" "0.14.0" (crate-source "hashbrown" "0.14.0"
"0yj3nf0w30pf30w503kgaw4sbjnh62l5cbmc7dd0mnczzywh2qic")) "0yj3nf0w30pf30w503kgaw4sbjnh62l5cbmc7dd0mnczzywh2qic"))
(define rust-hashbrown-0.14.1
(crate-source "hashbrown" "0.14.1"
"04hdcir5sqgw9318c3sjnhf3jid1mq5ipy0ma2pawpgm28madzbx"))
(define rust-hashbrown-0.14.5 (define rust-hashbrown-0.14.5
(crate-source "hashbrown" "0.14.5" (crate-source "hashbrown" "0.14.5"
"1wa1vy1xs3mp11bn3z9dv0jricgr6a2j0zkf1g19yz3vw4il89z5")) "1wa1vy1xs3mp11bn3z9dv0jricgr6a2j0zkf1g19yz3vw4il89z5"))
@@ -13156,7 +13194,8 @@
(define rust-hound-3.5.1 (define rust-hound-3.5.1
(crate-source "hound" "3.5.1" (crate-source "hound" "3.5.1"
"0kw5yybfc7hdwxwm6d3m3h4ms52fkw0n0zch35drb52ci2xsmbb2")) "0kw5yybfc7hdwxwm6d3m3h4ms52fkw0n0zch35drb52ci2xsmbb2"
#:snippet '(delete-file-recursively "testsamples")))
(define rust-hrtf-0.8.1 (define rust-hrtf-0.8.1
(crate-source "hrtf" "0.8.1" (crate-source "hrtf" "0.8.1"
@@ -13495,6 +13534,7 @@
"1iy8rhsap5iyigj6s86nk449zl5bahjycy2mswy6nlllp7imqv4q")) "1iy8rhsap5iyigj6s86nk449zl5bahjycy2mswy6nlllp7imqv4q"))
(define rust-hyphenation-0.8.4 (define rust-hyphenation-0.8.4
;; TODO: Rebuild dictionaries.
(crate-source "hyphenation" "0.8.4" (crate-source "hyphenation" "0.8.4"
"1w2hib167vpz7jbg3zs92ifihj4akirlhb5509aib1df8i6dvx5w")) "1w2hib167vpz7jbg3zs92ifihj4akirlhb5509aib1df8i6dvx5w"))
@@ -14062,6 +14102,10 @@
(crate-source "indexmap" "2.0.1" (crate-source "indexmap" "2.0.1"
"0kmi1dhkmnv937mbkzlqq9kmkdr8k5030vfk19bi8jcxy4x7q8md")) "0kmi1dhkmnv937mbkzlqq9kmkdr8k5030vfk19bi8jcxy4x7q8md"))
(define rust-indexmap-2.2.6
(crate-source "indexmap" "2.2.6"
"09hgwi2ig0wyj5rjziia76zmhgfj95k0jb4ic3iiawm4vlavg3qn"))
(define rust-indexmap-2.10.0 (define rust-indexmap-2.10.0
(crate-source "indexmap" "2.10.0" (crate-source "indexmap" "2.10.0"
"0qd6g26gxzl6dbf132w48fa8rr95glly3jhbk90i29726d9xhk7y")) "0qd6g26gxzl6dbf132w48fa8rr95glly3jhbk90i29726d9xhk7y"))
@@ -15129,7 +15173,8 @@
(define rust-jsonwebtoken-10.3.0 (define rust-jsonwebtoken-10.3.0
(crate-source "jsonwebtoken" "10.3.0" (crate-source "jsonwebtoken" "10.3.0"
"1q8w7j0f8iycr97rqk05ys3lr67q9mw9i20h1fk2k1r3pq542a85")) "1q8w7j0f8iycr97rqk05ys3lr67q9mw9i20h1fk2k1r3pq542a85"
#:snippet '(delete-file-recursively "tests")))
(define rust-jsonwebtoken-9.3.1 (define rust-jsonwebtoken-9.3.1
(crate-source "jsonwebtoken" "9.3.1" (crate-source "jsonwebtoken" "9.3.1"
@@ -15640,6 +15685,14 @@
(crate-source "libc" "0.2.155" (crate-source "libc" "0.2.155"
"0z44c53z54znna8n322k5iwg80arxxpdzjj5260pxxzc9a58icwp")) "0z44c53z54znna8n322k5iwg80arxxpdzjj5260pxxzc9a58icwp"))
(define rust-libc-0.2.162
(crate-source "libc" "0.2.162"
"1633a00yyx45kzx9r54fndvr8njsjqyr7zl12mzgsmgyczg8glhq"))
(define rust-libc-0.2.168
(crate-source "libc" "0.2.168"
"0vab4inpw0dz78nii02hsxp1skqn06xzh64psw8wl1h63scb5bjs"))
(define rust-libc-0.2.169 (define rust-libc-0.2.169
(crate-source "libc" "0.2.169" (crate-source "libc" "0.2.169"
"02m253hs8gw0m1n8iyrsc4n15yzbqwhddi7w1l0ds7i92kdsiaxm")) "02m253hs8gw0m1n8iyrsc4n15yzbqwhddi7w1l0ds7i92kdsiaxm"))
@@ -16380,11 +16433,37 @@
(define rust-libwebp-sys2-0.1.11 (define rust-libwebp-sys2-0.1.11
(crate-source "libwebp-sys2" "0.1.11" (crate-source "libwebp-sys2" "0.1.11"
"16dvhpx3s3y9nsqk8s48bsxs08z6r148j70l1b63x15625j1i427")) "16dvhpx3s3y9nsqk8s48bsxs08z6r148j70l1b63x15625j1i427"
#:snippet
'(begin
(delete-file-recursively "tests")
;; Remove bundled C sources.
(delete-file-recursively "c_src")
;; Remove the original build.rs which builds bundled code.
(delete-file "build.rs")
;; Replace it with a simple linker hint to use system libwebp.
(with-output-to-file "build.rs"
(lambda _
(format #t "fn main() {~@
println!(\"cargo:rustc-link-lib=webp\");~@
}~%"))))))
(define rust-libwebp-sys2-0.2.0 (define rust-libwebp-sys2-0.2.0
(crate-source "libwebp-sys2" "0.2.0" (crate-source "libwebp-sys2" "0.2.0"
"0195g4cxd61z5841kz7j87xy0daihg0kn07k6m7vzmm1x85d1hvd")) "0195g4cxd61z5841kz7j87xy0daihg0kn07k6m7vzmm1x85d1hvd"
#:snippet
'(begin
(delete-file-recursively "tests")
;; Remove bundled C sources.
(delete-file-recursively "c_src")
;; Remove the original build.rs which builds bundled code.
(delete-file "build.rs")
;; Replace it with a simple linker hint to use system libwebp.
(with-output-to-file "build.rs"
(lambda _
(format #t "fn main() {~@
println!(\"cargo:rustc-link-lib=webp\");~@
}~%"))))))
(define rust-libz-ng-sys-1.1.22 (define rust-libz-ng-sys-1.1.22
;; TODO: Find a way to unbundle libz-ng. ;; TODO: Find a way to unbundle libz-ng.
@@ -17421,7 +17500,8 @@
(define rust-metal-0.32.0 (define rust-metal-0.32.0
(crate-source "metal" "0.32.0" (crate-source "metal" "0.32.0"
"01g6a10l2p576ibybz0v9hignw7qj0r6d513qbf2vxrzcxpmmh80")) "01g6a10l2p576ibybz0v9hignw7qj0r6d513qbf2vxrzcxpmmh80"
#:snippet '(delete-file-recursively "examples")))
(define rust-metrics-0.23.1 (define rust-metrics-0.23.1
(crate-source "metrics" "0.23.1" (crate-source "metrics" "0.23.1"
@@ -17564,6 +17644,10 @@
(crate-source "mio" "1.1.1" (crate-source "mio" "1.1.1"
"1z2phpalqbdgihrcjp8y09l3kgq6309jnhnr6h11l9s7mnqcm6x6")) "1z2phpalqbdgihrcjp8y09l3kgq6309jnhnr6h11l9s7mnqcm6x6"))
(define rust-mio-1.2.0
(crate-source "mio" "1.2.0"
"1hanrh4fwsfkdqdaqfidz48zz1wdix23zwn3r2x78am0garfbdsh"))
(define rust-mio-extras-2.0.6 (define rust-mio-extras-2.0.6
(crate-source "mio-extras" "2.0.6" (crate-source "mio-extras" "2.0.6"
"069gfhlv0wlwfx1k2sriwfws490kjp490rv2qivyfb01j3i3yh2j")) "069gfhlv0wlwfx1k2sriwfws490kjp490rv2qivyfb01j3i3yh2j"))
@@ -17659,7 +17743,8 @@
(define rust-mp4-atom-0.10.1 (define rust-mp4-atom-0.10.1
(crate-source "mp4-atom" "0.10.1" (crate-source "mp4-atom" "0.10.1"
"1xqghqk90g0gf37azjfgigk2n850lvrnm4vdxfknxlmv8j9993jy")) "1xqghqk90g0gf37azjfgigk2n850lvrnm4vdxfknxlmv8j9993jy"
#:snippet '(delete-file-recursively "src/test")))
(define rust-mp4parse-0.17.0 (define rust-mp4parse-0.17.0
(crate-source "mp4parse" "0.17.0" (crate-source "mp4parse" "0.17.0"
@@ -18345,6 +18430,7 @@
"1lzmcqcnb9z8l4aq5ympx71bcwc0y5yf7d8jv6hnn7hc682hfvax")) "1lzmcqcnb9z8l4aq5ympx71bcwc0y5yf7d8jv6hnn7hc682hfvax"))
(define rust-nnnoiseless-0.5.2 (define rust-nnnoiseless-0.5.2
;; TODO: Rebuild src/weights.rnn.
(crate-source "nnnoiseless" "0.5.2" (crate-source "nnnoiseless" "0.5.2"
"036sz2qjjsfp3gldzw9mig8nck88fnp7vvfwgxm01877s5j5jpc0")) "036sz2qjjsfp3gldzw9mig8nck88fnp7vvfwgxm01877s5j5jpc0"))
@@ -19313,6 +19399,10 @@
(crate-source "omnipath" "0.1.6" (crate-source "omnipath" "0.1.6"
"0xd5a4xwsfmhzk59v6wz65f59rk16d7gvkg90w1qhb0jg08b7bc0")) "0xd5a4xwsfmhzk59v6wz65f59rk16d7gvkg90w1qhb0jg08b7bc0"))
(define rust-once-cell-1.8.0
(crate-source "once_cell" "1.8.0"
"0mkbbxg6416z11r2yzsq91cqrkj9w1iyx5hakq15h5sbnriwnbv9"))
(define rust-once-cell-1.18.0 (define rust-once-cell-1.18.0
(crate-source "once_cell" "1.18.0" (crate-source "once_cell" "1.18.0"
"0vapcd5ambwck95wyz3ymlim35jirgnqn9a0qmi19msymv95v2yx")) "0vapcd5ambwck95wyz3ymlim35jirgnqn9a0qmi19msymv95v2yx"))
@@ -20160,14 +20250,18 @@
(crate-source "password-hash" "0.5.0" (crate-source "password-hash" "0.5.0"
"0ri1mim11zk0a9s40zdi288dfqvmdiryc7lw8vl46b59ifa08vrl")) "0ri1mim11zk0a9s40zdi288dfqvmdiryc7lw8vl46b59ifa08vrl"))
(define rust-paste-0.1.18 (define rust-paste-1.0.14
(crate-source "paste" "0.1.18" (crate-source "paste" "1.0.14"
"10587zrlmzhq66yhd0z36fzglf32m1nlhi9bxxm6dgl0gp3j1jj5")) "0k7d54zz8zrz0623l3xhvws61z5q2wd3hkwim6gylk8212placfy"))
(define rust-paste-1.0.15 (define rust-paste-1.0.15
(crate-source "paste" "1.0.15" (crate-source "paste" "1.0.15"
"02pxffpdqkapy292harq6asfjvadgp1s005fip9ljfsn9fvxgh2p")) "02pxffpdqkapy292harq6asfjvadgp1s005fip9ljfsn9fvxgh2p"))
(define rust-paste-0.1.18
(crate-source "paste" "0.1.18"
"10587zrlmzhq66yhd0z36fzglf32m1nlhi9bxxm6dgl0gp3j1jj5"))
(define rust-paste-impl-0.1.18 (define rust-paste-impl-0.1.18
(crate-source "paste-impl" "0.1.18" (crate-source "paste-impl" "0.1.18"
"1dlqzk05cx74522s4iyhyzzhszig4n401pp6r1qg6zmr02r7snnr")) "1dlqzk05cx74522s4iyhyzzhszig4n401pp6r1qg6zmr02r7snnr"))
@@ -20253,6 +20347,7 @@
"191z4xjsdzn8k821071z4m8zl0jnd2r7j8ki2wpzdkdjha2g5mvn")) "191z4xjsdzn8k821071z4m8zl0jnd2r7j8ki2wpzdkdjha2g5mvn"))
(define rust-pbjson-0.6.0 (define rust-pbjson-0.6.0
;; TODO: Rebuild descriptors.bin.
(crate-source "pbjson" "0.6.0" (crate-source "pbjson" "0.6.0"
"143vazvr2dc3jx7nyxmz6313rkqszxn9swnzlljjsapcn0cwfc0h")) "143vazvr2dc3jx7nyxmz6313rkqszxn9swnzlljjsapcn0cwfc0h"))
@@ -21978,7 +22073,8 @@
(define rust-pyo3-0.28.2 (define rust-pyo3-0.28.2
(crate-source "pyo3" "0.28.2" (crate-source "pyo3" "0.28.2"
"1qgqaizb5gp4rvjv6hhman4sacz1cahmibiflbasy2h8hrzf51fg")) "1qgqaizb5gp4rvjv6hhman4sacz1cahmibiflbasy2h8hrzf51fg"
#:snippet '(delete-file-recursively "branding")))
(define rust-pyo3-async-runtimes-0.24.0 (define rust-pyo3-async-runtimes-0.24.0
(crate-source "pyo3-async-runtimes" "0.24.0" (crate-source "pyo3-async-runtimes" "0.24.0"
@@ -22488,6 +22584,10 @@
(crate-source "quote" "1.0.33" (crate-source "quote" "1.0.33"
"1biw54hbbr12wdwjac55z1m2x2rylciw83qnjn564a3096jgqrsj")) "1biw54hbbr12wdwjac55z1m2x2rylciw83qnjn564a3096jgqrsj"))
(define rust-quote-1.0.35
(crate-source "quote" "1.0.35"
"1vv8r2ncaz4pqdr78x7f138ka595sp2ncr1sa2plm4zxbsmwj7i9"))
(define rust-quote-1.0.36 (define rust-quote-1.0.36
(crate-source "quote" "1.0.36" (crate-source "quote" "1.0.36"
"19xcmh445bg6simirnnd4fvkmp6v2qiwxh5f6rw4a70h76pnm9qg")) "19xcmh445bg6simirnnd4fvkmp6v2qiwxh5f6rw4a70h76pnm9qg"))
@@ -23402,6 +23502,10 @@
(crate-source "relative-path" "2.0.1" (crate-source "relative-path" "2.0.1"
"1c4jm6x0p88722c77xx53mb7zcs4xznp9d3whdsbmn1248qhm95w")) "1c4jm6x0p88722c77xx53mb7zcs4xznp9d3whdsbmn1248qhm95w"))
(define rust-remain-0.2.12
(crate-source "remain" "0.2.12"
"157pzbzkwrj1m111ns3mmr3yla4qnrd0qiij0m6jgb8c4c8y1m8s"))
(define rust-remoteprocess-0.5.0 (define rust-remoteprocess-0.5.0
(crate-source "remoteprocess" "0.5.0" (crate-source "remoteprocess" "0.5.0"
"087z016qvypalbqjgdxmri97vsrqg4k1kpmc8b5d5hdgqxq4f6g6")) "087z016qvypalbqjgdxmri97vsrqg4k1kpmc8b5d5hdgqxq4f6g6"))
@@ -23798,7 +23902,8 @@
(define rust-rqrr-0.10.1 (define rust-rqrr-0.10.1
(crate-source "rqrr" "0.10.1" (crate-source "rqrr" "0.10.1"
"0cb61i3jqvc92pn277p0zp10h2z0a20l3lny4ln6b5fvx3cqggpz")) "0cb61i3jqvc92pn277p0zp10h2z0a20l3lny4ln6b5fvx3cqggpz"
#:snippet '(delete-file-recursively "src/test_data")))
(define rust-rsa-0.9.0-pre.0 (define rust-rsa-0.9.0-pre.0
(crate-source "rsa" "0.9.0-pre.0" (crate-source "rsa" "0.9.0-pre.0"
@@ -26123,7 +26228,9 @@
(define rust-signalsmith-stretch-0.1.3 (define rust-signalsmith-stretch-0.1.3
(crate-source "signalsmith-stretch" "0.1.3" (crate-source "signalsmith-stretch" "0.1.3"
"1zbny48q6cw1h1kq41yfyvn3mgmsd3cc82f3cl7m2cjm1gqydnji")) "1zbny48q6cw1h1kq41yfyvn3mgmsd3cc82f3cl7m2cjm1gqydnji"
#:snippet '(delete-file-recursively
"signalsmith-stretch/web/demo")))
(define rust-signature-1.6.4 (define rust-signature-1.6.4
(crate-source "signature" "1.6.4" (crate-source "signature" "1.6.4"
@@ -26282,7 +26389,8 @@
(define rust-skia-safe-0.93.1 (define rust-skia-safe-0.93.1
(crate-source "skia-safe" "0.93.1" (crate-source "skia-safe" "0.93.1"
"0h7r55c79gnqf4qhqnr8n0fv49kjvgy0p64gxvpwjcfmm5z877kz")) "0h7r55c79gnqf4qhqnr8n0fv49kjvgy0p64gxvpwjcfmm5z877kz"
#:snippet '(delete-file-recursively "tests")))
(define rust-skrifa-0.37.0 (define rust-skrifa-0.37.0
(crate-source "skrifa" "0.37.0" (crate-source "skrifa" "0.37.0"
@@ -28148,6 +28256,10 @@
(crate-source "thiserror" "1.0.69" (crate-source "thiserror" "1.0.69"
"0lizjay08agcr5hs9yfzzj6axs53a2rgx070a1dsi3jpkcrzbamn")) "0lizjay08agcr5hs9yfzzj6axs53a2rgx070a1dsi3jpkcrzbamn"))
(define rust-thiserror-2.0.11
(crate-source "thiserror" "2.0.11"
"1z0649rpa8c2smzx129bz4qvxmdihj30r2km6vfpcv9yny2g4lnl"))
(define rust-thiserror-2.0.18 (define rust-thiserror-2.0.18
(crate-source "thiserror" "2.0.18" (crate-source "thiserror" "2.0.18"
"1i7vcmw9900bvsmay7mww04ahahab7wmr8s925xc083rpjybb222")) "1i7vcmw9900bvsmay7mww04ahahab7wmr8s925xc083rpjybb222"))
@@ -28196,6 +28308,10 @@
(crate-source "thiserror-impl" "2.0.6" (crate-source "thiserror-impl" "2.0.6"
"04k3dz901mymm06j3x6f65hpbsqlk6g51fmiky9g2kqgnk550myn")) "04k3dz901mymm06j3x6f65hpbsqlk6g51fmiky9g2kqgnk550myn"))
(define rust-thiserror-impl-2.0.11
(crate-source "thiserror-impl" "2.0.11"
"1hkkn7p2y4cxbffcrprybkj0qy1rl1r6waxmxqvr764axaxc3br6"))
(define rust-thiserror-impl-2.0.12 (define rust-thiserror-impl-2.0.12
(crate-source "thiserror-impl" "2.0.12" (crate-source "thiserror-impl" "2.0.12"
"07bsn7shydaidvyyrm7jz29vp78vrxr9cr9044rfmn078lmz8z3z")) "07bsn7shydaidvyyrm7jz29vp78vrxr9cr9044rfmn078lmz8z3z"))
@@ -29359,6 +29475,14 @@
(crate-source "tree-sitter" "0.26.6" (crate-source "tree-sitter" "0.26.6"
"0j2877prcc79kcmmw97dpssizv03hnd6i91b6h3yygwc2395dx0k")) "0j2877prcc79kcmmw97dpssizv03hnd6i91b6h3yygwc2395dx0k"))
(define rust-tree-sitter-0.26.7
(crate-source "tree-sitter" "0.26.7"
"18mph7xrpy7lpsc5l2kvwdk19rmlgskzxfmn6zghj0gc38mmk9p7"))
(define rust-tree-sitter-ada-0.1.0
(crate-source "tree-sitter-ada" "0.1.0"
"188wnq7kla0x1d1kkb15wdndgmm5dhynsbypk768zjar8gbcv7wd"))
(define rust-tree-sitter-bash-0.23.3 (define rust-tree-sitter-bash-0.23.3
(crate-source "tree-sitter-bash" "0.23.3" (crate-source "tree-sitter-bash" "0.23.3"
"0bm5chcqq5fvfb505h87d6ab5ny9l60lxy0x5ga3ghrsc944v6ij")) "0bm5chcqq5fvfb505h87d6ab5ny9l60lxy0x5ga3ghrsc944v6ij"))
@@ -29387,6 +29511,14 @@
(crate-source "tree-sitter-clojure" "0.1.0" (crate-source "tree-sitter-clojure" "0.1.0"
"131khpl74pkr0i9l912r0sld0lz9nh11ygpsg0frli09qm68h120")) "131khpl74pkr0i9l912r0sld0lz9nh11ygpsg0frli09qm68h120"))
(define rust-tree-sitter-clojure-orchard-0.2.5
(crate-source "tree-sitter-clojure-orchard" "0.2.5"
"0kbq1riaffgajj32a1l0qf9fjsfwbcr3csb5j2bn88mbl4ldpqn3"))
(define rust-tree-sitter-cmake-0.7.1
(crate-source "tree-sitter-cmake" "0.7.1"
"16jh11mbnknjx7aqkf95j5zfq5drfpwv0sw27r5x55kkvp8ka6vw"))
(define rust-tree-sitter-cpp-0.23.4 (define rust-tree-sitter-cpp-0.23.4
(crate-source "tree-sitter-cpp" "0.23.4" (crate-source "tree-sitter-cpp" "0.23.4"
"0hs7p45av437iw8rzsyw46qs06axbam7wadr655apd27kpm9c8fz")) "0hs7p45av437iw8rzsyw46qs06axbam7wadr655apd27kpm9c8fz"))
@@ -29403,6 +29535,18 @@
(crate-source "tree-sitter-dart" "0.0.4" (crate-source "tree-sitter-dart" "0.0.4"
"12p3yhv81fxsmd55nlw7jpl9sbmsnmkyzz5a2hz38hffh05zgw8r")) "12p3yhv81fxsmd55nlw7jpl9sbmsnmkyzz5a2hz38hffh05zgw8r"))
(define rust-tree-sitter-dart-orchard-0.2.1
(crate-source "tree-sitter-dart-orchard" "0.2.1"
"1bg9j81b8lgr3m3h3fj2v4y4ai29bcpw1a9a2mxv1skbndi00v90"))
(define rust-tree-sitter-devicetree-0.14.1
(crate-source "tree-sitter-devicetree" "0.14.1"
"0sylmv12namxx3agd99154bfs5vf2r9723vmz6x2q9fqb55qgrmi"))
(define rust-tree-sitter-elisp-1.6.1
(crate-source "tree-sitter-elisp" "1.6.1"
"02fs4kpa8lwfs73rmh95xzvk76wvaj2zkhfd87529gyfndm9lbjy"))
(define rust-tree-sitter-elixir-0.3.4 (define rust-tree-sitter-elixir-0.3.4
(crate-source "tree-sitter-elixir" "0.3.4" (crate-source "tree-sitter-elixir" "0.3.4"
"0grdkbx6bqw3s1w3mkk94sibmhgdicdlqirjzpc57zdl8x348pg4")) "0grdkbx6bqw3s1w3mkk94sibmhgdicdlqirjzpc57zdl8x348pg4"))
@@ -29411,10 +29555,30 @@
(crate-source "tree-sitter-elixir" "0.3.5" (crate-source "tree-sitter-elixir" "0.3.5"
"0h5shirf9ds1cc7xw4l1p1f1xfq3fk5s6zw557y5pn9ffr50dpb6")) "0h5shirf9ds1cc7xw4l1p1f1xfq3fk5s6zw557y5pn9ffr50dpb6"))
(define rust-tree-sitter-elm-5.9.0
(crate-source "tree-sitter-elm" "5.9.0"
"170yp6hidmbydli77zb9957n5j5s0ckh0iw0cg3kykf7pxch5113"))
(define rust-tree-sitter-erlang-0.13.0
(crate-source "tree-sitter-erlang" "0.13.0"
"1bz1icmrd2q7x6ff3yp76ybh0gm02i0sdqf2xjr7ajdh8jj6b4pb"))
(define rust-tree-sitter-erlang-0.15.0 (define rust-tree-sitter-erlang-0.15.0
(crate-source "tree-sitter-erlang" "0.15.0" (crate-source "tree-sitter-erlang" "0.15.0"
"1gm6cwj11h1sx7hxv4anlak4ax31qs56134jfwyw06fs9v71q2gj")) "1gm6cwj11h1sx7hxv4anlak4ax31qs56134jfwyw06fs9v71q2gj"))
(define rust-tree-sitter-fortran-0.5.1
(crate-source "tree-sitter-fortran" "0.5.1"
"0h2v24frvx9kaaksyxcl8g5vy3ak6192xasxibzs5hrc98vsnn6f"))
(define rust-tree-sitter-fsharp-0.1.0
(crate-source "tree-sitter-fsharp" "0.1.0"
"0h8bc9pxl1ji19w21akan28dd6pvggbc7qpb7z23ggs814551nzj"))
(define rust-tree-sitter-gleam-1.0.0
(crate-source "tree-sitter-gleam" "1.0.0"
"1crgpxhzrqlicwfm4zzvdbb1hga64pfmmpb08d25vnivg59mq5zh"))
(define rust-tree-sitter-go-0.23.4 (define rust-tree-sitter-go-0.23.4
(crate-source "tree-sitter-go" "0.23.4" (crate-source "tree-sitter-go" "0.23.4"
"0cc4w4p12inxpsn2hgpmbvw1nyf5cm0l9pa705hbw3928milfgdi")) "0cc4w4p12inxpsn2hgpmbvw1nyf5cm0l9pa705hbw3928milfgdi"))
@@ -29427,6 +29591,10 @@
(crate-source "tree-sitter-haskell" "0.23.1" (crate-source "tree-sitter-haskell" "0.23.1"
"19057d99kaq7bn8k86baf7v4q4mjv8p5mjr7zh9vm32l0kjm2z4p")) "19057d99kaq7bn8k86baf7v4q4mjv8p5mjr7zh9vm32l0kjm2z4p"))
(define rust-tree-sitter-hcl-1.1.0
(crate-source "tree-sitter-hcl" "1.1.0"
"04phkjfwvlcz1zjrmvry80hd9wrz3g8vkyh98fw5658jsz1jqyss"))
(define rust-tree-sitter-highlight-0.24.7 (define rust-tree-sitter-highlight-0.24.7
(crate-source "tree-sitter-highlight" "0.24.7" (crate-source "tree-sitter-highlight" "0.24.7"
"15axx9avb1cb3mjyhkf5h36n2lsxwqy0z2xrj79qgg4y98z824b4")) "15axx9avb1cb3mjyhkf5h36n2lsxwqy0z2xrj79qgg4y98z824b4"))
@@ -29479,6 +29647,10 @@
(crate-source "tree-sitter-lua" "0.4.1" (crate-source "tree-sitter-lua" "0.4.1"
"1bq30iva40mv92d5w189dhlnqnflqiwf36i3y4g3fgyqci0jz6ga")) "1bq30iva40mv92d5w189dhlnqnflqiwf36i3y4g3fgyqci0jz6ga"))
(define rust-tree-sitter-lua-0.5.0
(crate-source "tree-sitter-lua" "0.5.0"
"035169zpbbnxmlsck6d26q6r4jsxzban15y30f3ab22i4gsgbald"))
(define rust-tree-sitter-make-1.1.1 (define rust-tree-sitter-make-1.1.1
(crate-source "tree-sitter-make" "1.1.1" (crate-source "tree-sitter-make" "1.1.1"
"0101h5ilrv2aqjffdlnq2d2m9mpj5fcfzvwamsgv3nnbrg3qv6f5")) "0101h5ilrv2aqjffdlnq2d2m9mpj5fcfzvwamsgv3nnbrg3qv6f5"))
@@ -29491,10 +29663,18 @@
(crate-source "tree-sitter-md" "0.5.3" (crate-source "tree-sitter-md" "0.5.3"
"10m8mwhd25bq0xc4l6si85rafs8pyp05dvlq8n0nqia6wn5kkz9f")) "10m8mwhd25bq0xc4l6si85rafs8pyp05dvlq8n0nqia6wn5kkz9f"))
(define rust-tree-sitter-newick-1.1.0
(crate-source "tree-sitter-newick" "1.1.0"
"1qgl2gh15h5wv6jiab034vflscvlyp8sica2cbhq9piarxdpii88"))
(define rust-tree-sitter-nix-0.0.2 (define rust-tree-sitter-nix-0.0.2
(crate-source "tree-sitter-nix" "0.0.2" (crate-source "tree-sitter-nix" "0.0.2"
"0160v6rqal8lsw9slx7x52ccq7cc5lfk6xd088rdcxyk0n3lz39s")) "0160v6rqal8lsw9slx7x52ccq7cc5lfk6xd088rdcxyk0n3lz39s"))
(define rust-tree-sitter-nix-0.3.0
(crate-source "tree-sitter-nix" "0.3.0"
"1qrdv5d7d1ldaicfvvl4gqpsbdsav0si1k8c79lgd61s7xrsjlj9"))
(define rust-tree-sitter-objc-3.0.2 (define rust-tree-sitter-objc-3.0.2
(crate-source "tree-sitter-objc" "3.0.2" (crate-source "tree-sitter-objc" "3.0.2"
"1lp1570h6lwhknzq3nn9sf26cfkqbx99vrrm0mpigz13ciavpa4w")) "1lp1570h6lwhknzq3nn9sf26cfkqbx99vrrm0mpigz13ciavpa4w"))
@@ -29503,6 +29683,14 @@
(crate-source "tree-sitter-ocaml" "0.23.2" (crate-source "tree-sitter-ocaml" "0.23.2"
"0xz3dkvb40b5anir8ld7547w2kibbms75y7i1kfhcn8p7ni09hck")) "0xz3dkvb40b5anir8ld7547w2kibbms75y7i1kfhcn8p7ni09hck"))
(define rust-tree-sitter-pascal-0.10.2
(crate-source "tree-sitter-pascal" "0.10.2"
"1a3j9frx64azgr12m9v1j8s56x3zkxs6cxaiwhvx4gs9ayd1xddd"))
(define rust-tree-sitter-perl-1.1.2
(crate-source "tree-sitter-perl" "1.1.2"
"0bd99p2sxa3fj6mm7g0f82yn50fyba85jjrm9k19bra23gklm7g7"))
(define rust-tree-sitter-php-0.23.11 (define rust-tree-sitter-php-0.23.11
(crate-source "tree-sitter-php" "0.23.11" (crate-source "tree-sitter-php" "0.23.11"
"030kiknyk2lw54yj7mzj92kfr5v0qr81qymhvkqy9kvjj97fjrph")) "030kiknyk2lw54yj7mzj92kfr5v0qr81qymhvkqy9kvjj97fjrph"))
@@ -29511,6 +29699,10 @@
(crate-source "tree-sitter-php" "0.24.2" (crate-source "tree-sitter-php" "0.24.2"
"14jmvysx66irxjgpgvlp3dfw46yxfbcmrzx7x9g2q1b9mg1ig30d")) "14jmvysx66irxjgpgvlp3dfw46yxfbcmrzx7x9g2q1b9mg1ig30d"))
(define rust-tree-sitter-proto-0.2.0
(crate-source "tree-sitter-proto" "0.2.0"
"091rkm2psxy5gbx8db2r87pryqc836gg4zhkjz1hz65m6js60hwf"))
(define rust-tree-sitter-python-0.23.6 (define rust-tree-sitter-python-0.23.6
(crate-source "tree-sitter-python" "0.23.6" (crate-source "tree-sitter-python" "0.23.6"
"012bgzycya91lpdbrrr8xnw9xjz116nf1w61c2pwxapk4ym5l1ix")) "012bgzycya91lpdbrrr8xnw9xjz116nf1w61c2pwxapk4ym5l1ix"))
@@ -29519,6 +29711,18 @@
(crate-source "tree-sitter-python" "0.25.0" (crate-source "tree-sitter-python" "0.25.0"
"072anxf7f3wn2jzpa1c8fnnskhwjjkd4qvzlc2zl1rsjjv9mzy3b")) "072anxf7f3wn2jzpa1c8fnnskhwjjkd4qvzlc2zl1rsjjv9mzy3b"))
(define rust-tree-sitter-qmljs-0.3.0
(crate-source "tree-sitter-qmljs" "0.3.0"
"0qlvkmzmwpxv7pbd3d1irj34adrls9yjx3k25ypssznd6ylmwi37"))
(define rust-tree-sitter-r-1.2.0
(crate-source "tree-sitter-r" "1.2.0"
"0mbja7yin41q453ssp2qz1sjiln3nsmydapk7vh4d2lzvb5k74a2"))
(define rust-tree-sitter-racket-0.24.7
(crate-source "tree-sitter-racket" "0.24.7"
"0a7ib1n36g5zplw9dinpnxsnby6477r1by8ygv368qjf0mm5nfgq"))
(define rust-tree-sitter-ruby-0.23.1 (define rust-tree-sitter-ruby-0.23.1
(crate-source "tree-sitter-ruby" "0.23.1" (crate-source "tree-sitter-ruby" "0.23.1"
"15cz4h1sfgf838r2pmf7vg9ahh0kwgkvvnjgbdbrrfzn9vm8815y")) "15cz4h1sfgf838r2pmf7vg9ahh0kwgkvvnjgbdbrrfzn9vm8815y"))
@@ -29531,6 +29735,10 @@
(crate-source "tree-sitter-rust" "0.24.0" (crate-source "tree-sitter-rust" "0.24.0"
"1q8vqslcnp2pvyg06733ddag4i4w3jlv5s1bf8h28jk89h1ii6sb")) "1q8vqslcnp2pvyg06733ddag4i4w3jlv5s1bf8h28jk89h1ii6sb"))
(define rust-tree-sitter-rust-orchard-0.16.3
(crate-source "tree-sitter-rust-orchard" "0.16.3"
"1183bzjbryz8ch8i6wm399363b6ha6zzm378k9rj7dwgpxmwsny9"))
(define rust-tree-sitter-scala-0.23.4 (define rust-tree-sitter-scala-0.23.4
(crate-source "tree-sitter-scala" "0.23.4" (crate-source "tree-sitter-scala" "0.23.4"
"0bsxq5ihmi4qp1g3cfrnmgznp8h4y739d8mz2yn9wvkknil5xppg")) "0bsxq5ihmi4qp1g3cfrnmgznp8h4y739d8mz2yn9wvkknil5xppg"))
@@ -29539,6 +29747,22 @@
(crate-source "tree-sitter-scala" "0.24.0" (crate-source "tree-sitter-scala" "0.24.0"
"0ldjl3cq5rvm1d6c61nx2i2l7cwkd7l67ca5627dw3pls6rsw5km")) "0ldjl3cq5rvm1d6c61nx2i2l7cwkd7l67ca5627dw3pls6rsw5km"))
(define rust-tree-sitter-scheme-0.24.7
(crate-source "tree-sitter-scheme" "0.24.7"
"0caiaxsl7kpcf70dksfk0x9q962n30rifpbh4rgi8f6zdcapyzla"))
(define rust-tree-sitter-sequel-0.3.11
(crate-source "tree-sitter-sequel" "0.3.11"
"05vxxkfgny0r1jjg3bpzjv5sydxqjv3ixyhyq91jxh0rqg9ql6cx"))
(define rust-tree-sitter-sfapex-2.4.0
(crate-source "tree-sitter-sfapex" "2.4.0"
"0jq2xbjz89iabkn1nqyp5i88mchq5aqgkv32h58w5krvrdx675vv"))
(define rust-tree-sitter-solidity-1.2.13
(crate-source "tree-sitter-solidity" "1.2.13"
"098bm6lfws7i7rn4wiz1v598gdnh78ihpikhnq69z1vhbf3zib2f"))
(define rust-tree-sitter-svelte-ng-1.0.2 (define rust-tree-sitter-svelte-ng-1.0.2
(crate-source "tree-sitter-svelte-ng" "1.0.2" (crate-source "tree-sitter-svelte-ng" "1.0.2"
"0dzsclhsy24d4r4a541kbnr9p8n860v8jr3cr0y3g52yrzwp22pg")) "0dzsclhsy24d4r4a541kbnr9p8n860v8jr3cr0y3g52yrzwp22pg"))
@@ -29559,6 +29783,10 @@
(crate-source "tree-sitter-typescript" "0.23.2" (crate-source "tree-sitter-typescript" "0.23.2"
"1zsyaxx3v1sd8gx2zkscwv6z1sq2nvccqpvd8k67ayllipnpcpvc")) "1zsyaxx3v1sd8gx2zkscwv6z1sq2nvccqpvd8k67ayllipnpcpvc"))
(define rust-tree-sitter-verilog-1.0.3
(crate-source "tree-sitter-verilog" "1.0.3"
"0rlwlsg4dv303pgqhc87h78mfrfwf8nbidzmdwgjz1cm0cvf1ryl"))
(define rust-tree-sitter-xml-0.7.0 (define rust-tree-sitter-xml-0.7.0
(crate-source "tree-sitter-xml" "0.7.0" (crate-source "tree-sitter-xml" "0.7.0"
"1cxnr3q72fvld0ia8xjc5hl0x4xw9s7wvpcpsma4z68xb4gh8w76")) "1cxnr3q72fvld0ia8xjc5hl0x4xw9s7wvpcpsma4z68xb4gh8w76"))
@@ -30028,6 +30256,10 @@
(crate-source "ubyte" "0.10.4" (crate-source "ubyte" "0.10.4"
"1spj3k9sx6xvfn7am9vm1b463hsr79nyvj8asi2grqhyrvvdw87p")) "1spj3k9sx6xvfn7am9vm1b463hsr79nyvj8asi2grqhyrvvdw87p"))
(define rust-ucd-trie-0.1.6
(crate-source "ucd-trie" "0.1.6"
"1ff4yfksirqs37ybin9aw71aa5gva00hw7jdxbw8w668zy964r7d"))
(define rust-ucd-trie-0.1.7 (define rust-ucd-trie-0.1.7
(crate-source "ucd-trie" "0.1.7" (crate-source "ucd-trie" "0.1.7"
"0wc9p07sqwz320848i52nvyjvpsxkx3kv5bfbmm6s35809fdk5i8")) "0wc9p07sqwz320848i52nvyjvpsxkx3kv5bfbmm6s35809fdk5i8"))
@@ -30239,6 +30471,10 @@
"0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k" "0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k"
#:snippet '(delete-file-recursively "tests"))) #:snippet '(delete-file-recursively "tests")))
(define rust-unicode-ident-1.0.12-unpatched
(crate-source "unicode-ident" "1.0.12"
"0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k"))
(define rust-unicode-ident-1.0.13 (define rust-unicode-ident-1.0.13
(crate-source "unicode-ident" "1.0.13" (crate-source "unicode-ident" "1.0.13"
"1zm1xylzsdfvm2a5ib9li3g5pp7qnkv4amhspydvgbmd9k6mc6z9" "1zm1xylzsdfvm2a5ib9li3g5pp7qnkv4amhspydvgbmd9k6mc6z9"
@@ -33975,6 +34211,10 @@
(crate-source "zerocopy" "0.7.35" (crate-source "zerocopy" "0.7.35"
"1w36q7b9il2flg0qskapgi9ymgg7p985vniqd09vi0mwib8lz6qv")) "1w36q7b9il2flg0qskapgi9ymgg7p985vniqd09vi0mwib8lz6qv"))
(define rust-zerocopy-0.8.13
(crate-source "zerocopy" "0.8.13"
"07g29nsr3hvf2vyh9wk39l3yg144hprjx7aykvkd5gzka6s4m4b7"))
(define rust-zerocopy-0.8.23 (define rust-zerocopy-0.8.23
(crate-source "zerocopy" "0.8.23" (crate-source "zerocopy" "0.8.23"
"1inbxgqhsxghawsss8x8517g30fpp8s3ll2ywy88ncm40m6l95zx")) "1inbxgqhsxghawsss8x8517g30fpp8s3ll2ywy88ncm40m6l95zx"))
@@ -34031,6 +34271,10 @@
(crate-source "zerocopy-derive" "0.7.35" (crate-source "zerocopy-derive" "0.7.35"
"0gnf2ap2y92nwdalzz3x7142f2b83sni66l39vxp2ijd6j080kzs")) "0gnf2ap2y92nwdalzz3x7142f2b83sni66l39vxp2ijd6j080kzs"))
(define rust-zerocopy-derive-0.8.13
(crate-source "zerocopy-derive" "0.8.13"
"0pgjqk2w5wrw752wfsxgf7rwqjlk1r4vq5iky2fjijh38cxdg23r"))
(define rust-zerocopy-derive-0.8.23 (define rust-zerocopy-derive-0.8.23
(crate-source "zerocopy-derive" "0.8.23" (crate-source "zerocopy-derive" "0.8.23"
"0m7iwisxz111sgkski722nyxv0rixbs0a9iylrcvhpfx1qfw0lk3")) "0m7iwisxz111sgkski722nyxv0rixbs0a9iylrcvhpfx1qfw0lk3"))
@@ -34490,15 +34734,6 @@
;;; Cargo inputs. ;;; Cargo inputs.
;;; ;;;
;; TODO: Maintain this automatically too.
(define-public mesa-cargo-inputs
`(("paste" ,rust-paste-1.0.15)
("proc-macro2" ,rust-proc-macro2-1.0.94)
("quote" ,rust-quote-1.0.40)
("rustc-hash" ,rust-rustc-hash-2.1.1)
("syn" ,rust-syn-2.0.100)
("unicode-ident" ,rust-unicode-ident-1.0.18)))
(define-cargo-inputs lookup-cargo-inputs (define-cargo-inputs lookup-cargo-inputs
(aardvark-dns => (aardvark-dns =>
(list rust-addr2line-0.24.2 (list rust-addr2line-0.24.2
@@ -43919,25 +44154,25 @@
rust-windows-x86-64-gnullvm-0.52.6 rust-windows-x86-64-gnullvm-0.52.6
rust-windows-x86-64-msvc-0.52.6)) rust-windows-x86-64-msvc-0.52.6))
(difftastic => (difftastic =>
(list rust-ahash-0.8.11 (list rust-ahash-0.8.12
rust-aho-corasick-1.1.3 rust-aho-corasick-1.1.4
rust-allocator-api2-0.2.21 rust-allocator-api2-0.2.21
rust-anstream-0.6.18 rust-anstream-1.0.0
rust-anstyle-1.0.10 rust-anstyle-1.0.14
rust-anstyle-parse-0.2.6 rust-anstyle-parse-1.0.0
rust-anstyle-query-1.1.2 rust-anstyle-query-1.1.5
rust-anstyle-wincon-3.0.7 rust-anstyle-wincon-3.0.11
rust-assert-cmd-2.0.8 rust-assert-cmd-2.2.0
rust-autocfg-1.4.0 rust-autocfg-1.5.0
rust-bitflags-2.9.0 rust-bitflags-2.11.0
rust-bstr-1.12.0 rust-bstr-1.12.1
rust-bumpalo-3.17.0 rust-bumpalo-3.20.2
rust-cc-1.2.19 rust-cc-1.2.58
rust-cfg-if-1.0.0 rust-cfg-if-1.0.4
rust-clap-4.5.35 rust-clap-4.6.0
rust-clap-builder-4.5.35 rust-clap-builder-4.6.0
rust-clap-lex-0.7.4 rust-clap-lex-1.1.0
rust-colorchoice-1.0.3 rust-colorchoice-1.0.5
rust-crossbeam-deque-0.8.6 rust-crossbeam-deque-0.8.6
rust-crossbeam-epoch-0.9.18 rust-crossbeam-epoch-0.9.18
rust-crossbeam-utils-0.8.21 rust-crossbeam-utils-0.8.21
@@ -43945,133 +44180,158 @@
rust-crossterm-winapi-0.9.1 rust-crossterm-winapi-0.9.1
rust-diff-0.1.13 rust-diff-0.1.13
rust-difflib-0.4.0 rust-difflib-0.4.0
rust-doc-comment-0.3.3
rust-either-1.15.0 rust-either-1.15.0
rust-encoding-rs-0.8.35 rust-encoding-rs-0.8.35
rust-env-logger-0.10.2 rust-env-logger-0.10.2
rust-equivalent-1.0.2 rust-equivalent-1.0.2
rust-errno-0.3.11 rust-errno-0.3.14
rust-fixedbitset-0.4.2 rust-find-msvc-tools-0.1.9
rust-float-cmp-0.9.0 rust-fixedbitset-0.5.7
rust-fnv-1.0.7 rust-float-cmp-0.10.0
rust-glob-0.3.2 rust-foldhash-0.1.5
rust-globset-0.4.16 rust-glob-0.3.3
rust-globset-0.4.18
rust-hashbrown-0.14.5 rust-hashbrown-0.14.5
rust-hashbrown-0.15.2 rust-hashbrown-0.15.5
rust-hashbrown-0.16.1
rust-heck-0.5.0 rust-heck-0.5.0
rust-hermit-abi-0.5.0 rust-hermit-abi-0.5.2
rust-humansize-2.1.3 rust-humansize-2.1.3
rust-humantime-2.2.0 rust-humantime-2.3.0
rust-ignore-0.4.23 rust-ignore-0.4.23
rust-indexmap-2.9.0 rust-indexmap-2.13.0
rust-is-terminal-0.4.16 rust-is-terminal-0.4.17
rust-is-terminal-polyfill-1.70.1 rust-is-terminal-polyfill-1.70.2
rust-itertools-0.10.5 rust-itoa-1.0.18
rust-itertools-0.11.0
rust-itoa-1.0.15
rust-lazy-static-1.5.0 rust-lazy-static-1.5.0
rust-libc-0.2.171 rust-libc-0.2.183
rust-libm-0.2.11 rust-libm-0.2.16
rust-libmimalloc-sys-0.1.24
rust-line-numbers-0.3.1 rust-line-numbers-0.3.1
rust-linux-raw-sys-0.4.15 rust-linux-raw-sys-0.4.15
rust-linux-raw-sys-0.9.4 rust-linux-raw-sys-0.12.1
rust-lock-api-0.4.12 rust-lock-api-0.4.14
rust-log-0.4.27 rust-log-0.4.29
rust-memchr-2.7.4 rust-memchr-2.8.0
rust-mimalloc-0.1.28 rust-mio-1.2.0
rust-minimal-lexical-0.2.1 rust-nom-8.0.0
rust-mio-1.0.3
rust-nom-7.1.3
rust-normalize-line-endings-0.3.0 rust-normalize-line-endings-0.3.0
rust-num-traits-0.2.19 rust-num-traits-0.2.19
rust-once-cell-1.21.3 rust-once-cell-1.21.4
rust-owo-colors-3.5.0 rust-once-cell-polyfill-1.70.2
rust-parking-lot-0.12.3 rust-owo-colors-4.3.0
rust-parking-lot-core-0.9.10 rust-parking-lot-0.12.5
rust-petgraph-0.6.5 rust-parking-lot-core-0.9.12
rust-predicates-2.1.5 rust-petgraph-0.8.3
rust-predicates-core-1.0.9 rust-predicates-3.1.4
rust-predicates-tree-1.0.12 rust-predicates-core-1.0.10
rust-predicates-tree-1.0.13
rust-pretty-assertions-1.4.1 rust-pretty-assertions-1.4.1
rust-pretty-env-logger-0.5.0 rust-pretty-env-logger-0.5.0
rust-proc-macro2-1.0.94 rust-proc-macro2-1.0.106
rust-quote-1.0.40 rust-quote-1.0.45
rust-radix-heap-0.4.2 rust-radix-heap-0.4.2
rust-rayon-1.10.0 rust-rayon-1.11.0
rust-rayon-core-1.12.1 rust-rayon-core-1.13.0
rust-redox-syscall-0.5.11 rust-redox-syscall-0.5.18
rust-regex-1.11.1 rust-regex-1.12.3
rust-regex-automata-0.4.9 rust-regex-automata-0.4.14
rust-regex-syntax-0.8.5 rust-regex-syntax-0.8.10
rust-rustc-hash-2.1.1 rust-rustc-hash-2.1.1
rust-rustix-0.38.44 rust-rustix-0.38.44
rust-rustix-1.0.5 rust-rustix-1.1.4
rust-rustversion-1.0.20 rust-rustversion-1.0.22
rust-ryu-1.0.20
rust-same-file-1.0.6 rust-same-file-1.0.6
rust-scopeguard-1.2.0 rust-scopeguard-1.2.0
rust-serde-1.0.219 rust-serde-1.0.228
rust-serde-derive-1.0.219 rust-serde-core-1.0.228
rust-serde-json-1.0.140 rust-serde-derive-1.0.228
rust-serde-json-1.0.149
rust-shlex-1.3.0 rust-shlex-1.3.0
rust-signal-hook-0.3.17 rust-signal-hook-0.3.18
rust-signal-hook-mio-0.2.4 rust-signal-hook-mio-0.2.5
rust-signal-hook-registry-1.4.2 rust-signal-hook-registry-1.4.8
rust-smallvec-1.15.0 rust-smallvec-1.15.1
rust-streaming-iterator-0.1.9 rust-streaming-iterator-0.1.9
rust-strsim-0.10.0
rust-strsim-0.11.1 rust-strsim-0.11.1
rust-strum-0.26.3 rust-strum-0.26.3
rust-strum-macros-0.26.4 rust-strum-macros-0.26.4
rust-syn-2.0.100 rust-syn-2.0.117
rust-termcolor-1.4.1 rust-termcolor-1.4.1
rust-terminal-size-0.4.2 rust-terminal-size-0.4.4
rust-termtree-0.5.1 rust-termtree-0.5.1
rust-tree-sitter-0.24.7 rust-tikv-jemalloc-sys-0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
rust-tree-sitter-bash-0.23.3 rust-tikv-jemallocator-0.6.1
rust-tree-sitter-c-0.23.4 rust-tree-sitter-0.26.7
rust-tree-sitter-ada-0.1.0
rust-tree-sitter-bash-0.25.1
rust-tree-sitter-c-0.24.1
rust-tree-sitter-c-sharp-0.23.1 rust-tree-sitter-c-sharp-0.23.1
rust-tree-sitter-clojure-orchard-0.2.5
rust-tree-sitter-cmake-0.7.1
rust-tree-sitter-cpp-0.23.4 rust-tree-sitter-cpp-0.23.4
rust-tree-sitter-css-0.23.2 rust-tree-sitter-css-0.23.2
rust-tree-sitter-elixir-0.3.4 rust-tree-sitter-dart-orchard-0.2.1
rust-tree-sitter-go-0.23.4 rust-tree-sitter-devicetree-0.14.1
rust-tree-sitter-elisp-1.6.1
rust-tree-sitter-elixir-0.3.5
rust-tree-sitter-elm-5.9.0
rust-tree-sitter-erlang-0.13.0
rust-tree-sitter-fortran-0.5.1
rust-tree-sitter-fsharp-0.1.0
rust-tree-sitter-gleam-1.0.0
rust-tree-sitter-go-0.25.0
rust-tree-sitter-haskell-0.23.1 rust-tree-sitter-haskell-0.23.1
rust-tree-sitter-hcl-1.1.0
rust-tree-sitter-html-0.23.2 rust-tree-sitter-html-0.23.2
rust-tree-sitter-java-0.23.5 rust-tree-sitter-java-0.23.5
rust-tree-sitter-javascript-0.23.1 rust-tree-sitter-javascript-0.25.0
rust-tree-sitter-json-0.24.8 rust-tree-sitter-json-0.24.8
rust-tree-sitter-julia-0.23.1 rust-tree-sitter-julia-0.23.1
rust-tree-sitter-language-0.1.5 rust-tree-sitter-language-0.1.7
rust-tree-sitter-lua-0.2.0 rust-tree-sitter-lua-0.5.0
rust-tree-sitter-make-1.1.1 rust-tree-sitter-make-1.1.1
rust-tree-sitter-nix-0.0.2 rust-tree-sitter-newick-1.1.0
rust-tree-sitter-nix-0.3.0
rust-tree-sitter-objc-3.0.2 rust-tree-sitter-objc-3.0.2
rust-tree-sitter-ocaml-0.23.2 rust-tree-sitter-ocaml-0.23.2
rust-tree-sitter-pascal-0.10.2
rust-tree-sitter-perl-1.1.2
rust-tree-sitter-php-0.23.11 rust-tree-sitter-php-0.23.11
rust-tree-sitter-proto-0.2.0
rust-tree-sitter-python-0.23.6 rust-tree-sitter-python-0.23.6
rust-tree-sitter-qmljs-0.3.0
rust-tree-sitter-r-1.2.0
rust-tree-sitter-racket-0.24.7
rust-tree-sitter-ruby-0.23.1 rust-tree-sitter-ruby-0.23.1
rust-tree-sitter-rust-0.23.3 rust-tree-sitter-rust-orchard-0.16.3
rust-tree-sitter-scala-0.23.4 rust-tree-sitter-scala-0.23.4
rust-tree-sitter-scheme-0.24.7
rust-tree-sitter-sequel-0.3.11
rust-tree-sitter-sfapex-2.4.0
rust-tree-sitter-solidity-1.2.13
rust-tree-sitter-swift-0.7.1
rust-tree-sitter-toml-ng-0.7.0 rust-tree-sitter-toml-ng-0.7.0
rust-tree-sitter-typescript-0.23.2 rust-tree-sitter-typescript-0.23.2
rust-tree-sitter-verilog-1.0.3
rust-tree-sitter-xml-0.7.0 rust-tree-sitter-xml-0.7.0
rust-tree-sitter-yaml-0.7.0 rust-tree-sitter-yaml-0.7.2
rust-tree-magic-mini-3.1.6 rust-tree-sitter-zig-1.1.2
rust-tree-magic-mini-3.2.2
rust-typed-arena-2.0.2 rust-typed-arena-2.0.2
rust-unicode-ident-1.0.18 rust-unicode-ident-1.0.24
rust-unicode-width-0.1.14 rust-unicode-width-0.1.14
rust-utf8parse-0.2.2 rust-utf8parse-0.2.2
rust-version-check-0.9.5 rust-version-check-0.9.5
rust-wait-timeout-0.2.1 rust-wait-timeout-0.2.1
rust-walkdir-2.5.0 rust-walkdir-2.5.0
rust-wasi-0.11.0+wasi-snapshot-preview1 rust-wasi-0.11.1+wasi-snapshot-preview1
rust-winapi-0.3.9 rust-winapi-0.3.9
rust-winapi-i686-pc-windows-gnu-0.4.0 rust-winapi-i686-pc-windows-gnu-0.4.0
rust-winapi-util-0.1.9 rust-winapi-util-0.1.11
rust-winapi-x86-64-pc-windows-gnu-0.4.0 rust-winapi-x86-64-pc-windows-gnu-0.4.0
rust-windows-sys-0.52.0 rust-windows-link-0.2.1
rust-windows-sys-0.59.0 rust-windows-sys-0.59.0
rust-windows-sys-0.61.2
rust-windows-targets-0.52.6 rust-windows-targets-0.52.6
rust-windows-aarch64-gnullvm-0.52.6 rust-windows-aarch64-gnullvm-0.52.6
rust-windows-aarch64-msvc-0.52.6 rust-windows-aarch64-msvc-0.52.6
@@ -44083,8 +44343,9 @@
rust-windows-x86-64-msvc-0.52.6 rust-windows-x86-64-msvc-0.52.6
rust-wu-diff-0.1.2 rust-wu-diff-0.1.2
rust-yansi-1.0.1 rust-yansi-1.0.1
rust-zerocopy-0.7.35 rust-zerocopy-0.8.47
rust-zerocopy-derive-0.7.35)) rust-zerocopy-derive-0.8.47
rust-zmij-1.0.21))
(drill => (drill =>
(list rust-addr2line-0.24.2 (list rust-addr2line-0.24.2
rust-adler2-2.0.0 rust-adler2-2.0.0
@@ -52704,7 +52965,7 @@
rust-valuable-0.1.1 rust-valuable-0.1.1
rust-variadics-please-1.1.0 rust-variadics-please-1.1.0
rust-vcpkg-0.2.15 rust-vcpkg-0.2.15
rust-vergen-9.1.0 rust-vergen-9.0.6
rust-vergen-gitcl-1.0.8 rust-vergen-gitcl-1.0.8
rust-vergen-lib-0.1.6 rust-vergen-lib-0.1.6
rust-vergen-lib-9.1.0 rust-vergen-lib-9.1.0
@@ -59066,6 +59327,36 @@
rust-zstd-0.13.3 rust-zstd-0.13.3
rust-zstd-safe-7.2.4 rust-zstd-safe-7.2.4
rust-zstd-sys-2.0.16+zstd.1.5.7)) rust-zstd-sys-2.0.16+zstd.1.5.7))
(mesa => ; TODO: Maintain this automatically.
(list rust-bitflags-2.9.1
rust-cfg-if-1.0.0
rust-equivalent-1.0.1
rust-errno-0.3.12
rust-hashbrown-0.14.1
rust-indexmap-2.2.6
rust-libc-0.2.171
rust-log-0.4.27
rust-once-cell-1.8.0
rust-paste-1.0.14
rust-pest-2.8.0
rust-pest-derive-2.8.0
rust-pest-generator-2.8.0
rust-pest-meta-2.8.0
rust-proc-macro2-1.0.86
rust-quote-1.0.35
rust-remain-0.2.12
rust-roxmltree-0.20.0
rust-rustc-hash-2.1.1
rust-rustix-1.1.2
rust-syn-2.0.87
rust-thiserror-2.0.11
rust-thiserror-impl-2.0.11
rust-ucd-trie-0.1.6
rust-unicode-ident-1.0.12-unpatched
rust-windows-link-0.2.0
rust-windows-sys-0.61.1
rust-zerocopy-0.8.13
rust-zerocopy-derive-0.8.13))
(mollysocket => (mollysocket =>
(list rust-ahash-0.8.12 (list rust-ahash-0.8.12
rust-aho-corasick-1.1.3 rust-aho-corasick-1.1.3
@@ -68141,6 +68432,43 @@
rust-windows-result-0.4.1 rust-windows-result-0.4.1
rust-windows-strings-0.5.1 rust-windows-strings-0.5.1
rust-zxcvbn-3.1.0)) rust-zxcvbn-3.1.0))
(qemu =>
(list rust-anyhow-1.0.98
rust-arbitrary-int-1.2.7
rust-attrs-0.2.9
rust-bilge-0.2.0
rust-bilge-impl-0.2.0
rust-cfg-expr-0.20.3
rust-either-1.12.0
rust-equivalent-1.0.2
rust-foreign-0.3.1
rust-glib-sys-0.21.2
rust-hashbrown-0.16.0
rust-heck-0.5.0
rust-indexmap-2.11.4
rust-itertools-0.11.0
rust-libc-0.2.162
rust-memchr-2.7.6
rust-pkg-config-0.3.32
rust-proc-macro-error-1.0.4
rust-proc-macro-error-attr-1.0.4
rust-proc-macro2-1.0.95
rust-quote-1.0.36
rust-serde-1.0.226
rust-serde-core-1.0.226
rust-serde-derive-1.0.226
rust-serde-spanned-0.6.9
rust-smallvec-1.15.1
rust-syn-2.0.104
rust-system-deps-7.0.5
rust-target-lexicon-0.13.2
rust-toml-0.8.23
rust-toml-datetime-0.6.11
rust-toml-edit-0.22.27
rust-unicode-ident-1.0.12-unpatched
rust-version-compare-0.2.0
rust-version-check-0.9.4
rust-winnow-0.7.13))
(rabbitmqadmin => (rabbitmqadmin =>
(list rust-addr2line-0.24.2 (list rust-addr2line-0.24.2
rust-adler2-2.0.1 rust-adler2-2.0.1
+2 -2
View File
@@ -50,14 +50,14 @@
(define-public scribus (define-public scribus
(package (package
(name "scribus") (name "scribus")
(version "1.6.4") (version "1.6.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/scribus/scribus/" (uri (string-append "mirror://sourceforge/scribus/scribus/"
version "/scribus-" version ".tar.gz")) version "/scribus-" version ".tar.gz"))
(sha256 (sha256
(base32 "1ddsga862wwq2lb12rlsm6009gfx9nxx3s5323jifs53fs1y3knp")))) (base32 "1jj86a2xydkyqfdyhfikcxxl3m4j861mbbcswdd7779q11wysckq"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ;no test target `(#:tests? #f ;no test target
+8 -8
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2016, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net> ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
@@ -190,7 +190,8 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
(apply (assoc-ref cargo:%standard-phases phase) (apply (assoc-ref cargo:%standard-phases phase)
#:cargo-target #$(cargo-triplet) #:cargo-target #$(cargo-triplet)
args)) args))
'(unpack-rust-crates '(prepare-rust-crates
unpack-rust-crates
configure configure
check-for-pregenerated-files check-for-pregenerated-files
patch-cargo-checksums)))) patch-cargo-checksums))))
@@ -1045,23 +1046,22 @@ JavaScript users who avoid shell.")
(define-public gash (define-public gash
(package (package
(name "gash") (name "gash")
(version "0.3.1") (version "0.3.2")
(source (source
;; Use a copy built from the unofficial 'EBADF-fixes' branch, ;; Note: Pre-built tarballs are no longer hosted at
;; <https://codeberg.org/civodul/gash/commit/7c9bf2110cfe85424fba0cd14445d5f0926c3fbd>. ;; <https://savannah.nongnu.org/projects/gash>.
;; See <https://issues.guix.gnu.org/75658>.
(origin (method url-fetch) (origin (method url-fetch)
(uri (string-append "mirror://gnu/guix/mirror/gash-" (uri (string-append "mirror://gnu/guix/mirror/gash-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"069wizkfkkifij9n0r6fkwbgcnjyr6xvnjid11ckppx0waixc0s7")))) "1r74k5qms2rrpx7cywpg9hdywd3y893rl1f4467l86h1gpkih368"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))
(inputs (inputs
(list guile-3.0)) (list guile-3.0))
(home-page "https://savannah.nongnu.org/projects/gash/") (home-page "https://codeberg.org/guix/gash")
(synopsis "POSIX-compatible shell written in Guile Scheme") (synopsis "POSIX-compatible shell written in Guile Scheme")
(description "Gash is a POSIX-compatible shell written in Guile (description "Gash is a POSIX-compatible shell written in Guile
Scheme. It provides both the shell interface, as well as a Guile Scheme. It provides both the shell interface, as well as a Guile
+5 -2
View File
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016, 2023, 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
@@ -391,7 +391,10 @@ modules for Tk, all written in high-level Tcl. Examples of provided widgets:
(files (list (string-append "lib/Tclxml" version)))))) (files (list (string-append "lib/Tclxml" version))))))
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list (string-append "--exec-prefix=" (assoc-ref %outputs "out")) (list (string-append "CFLAGS=-g -O2"
" -Wno-implicit-function-declaration"
" -Wno-incompatible-pointer-types")
(string-append "--exec-prefix=" (assoc-ref %outputs "out"))
(string-append "--with-tclconfig=" (string-append "--with-tclconfig="
(assoc-ref %build-inputs "tcl") "/lib") (assoc-ref %build-inputs "tcl") "/lib")
(string-append "--with-xml2-config=" (string-append "--with-xml2-config="
+3 -9
View File
@@ -140,24 +140,18 @@
(define-public ed (define-public ed
(package (package
(name "ed") (name "ed")
(version "1.21") (version "1.22.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/ed/ed-" (uri (string-append "mirror://gnu/ed/ed-"
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"0xddpcdsdhf1cx7izk9l5dmf8vakjx5ncm1cy1f3libxfac4kqk0")))) "1k2ql71ybnsfwh81f95qwcg9wl2ijyziav1pj1kav7gjqbfhgqan"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list lzip)) (native-inputs (list lzip))
(arguments (arguments
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target))) `(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))))
#:phases
(modify-phases %standard-phases
(add-before 'patch-source-shebangs 'patch-test-suite
(lambda _
(substitute* "testsuite/check.sh"
(("/bin/sh") (which "sh"))))))))
(home-page "https://www.gnu.org/software/ed/") (home-page "https://www.gnu.org/software/ed/")
(synopsis "Line-oriented text editor") (synopsis "Line-oriented text editor")
(description (description
+12
View File
@@ -67,6 +67,7 @@
;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz> ;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2025 Matthew Elwin <elwin@northwestern.edu> ;;; Copyright © 2025 Matthew Elwin <elwin@northwestern.edu>
;;; Copyright © 2026 Ingar <ingar@onionmail.info> ;;; Copyright © 2026 Ingar <ingar@onionmail.info>
;;; Copyright © 2026 Robin Templeton <robin@guixotic.coop>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@@ -443,6 +444,16 @@ Python 3.3 and later, rather than on Python 2.")
"MINGW" "MINGW"
"GNU"))) ;matched against '*' "GNU"))) ;matched against '*'
;; Patch git-sh-i18n.sh to source gettext.sh from
;; gettext-minimal. By default, it uses gettext.sh from $PATH
;; if available, and falls back to English if not.
(let ((gettext-sh (search-input-file inputs "bin/gettext.sh")))
(substitute* "git-sh-i18n.sh"
(("type gettext.sh")
(format #f "type ~a" gettext-sh))
(("\\. gettext.sh")
(format #f ". ~a" gettext-sh))))
;; git-submodule sources 'git-sh-setup.sh', but not before ;; git-submodule sources 'git-sh-setup.sh', but not before
;; invoking the basename and sed commands... patch them to their ;; invoking the basename and sed commands... patch them to their
;; absolute location. ;; absolute location.
@@ -583,6 +594,7 @@ Python 3.3 and later, rather than on Python 2.")
coreutils-minimal coreutils-minimal
curl ;for HTTP(S) access curl ;for HTTP(S) access
expat ;for 'git push' over HTTP(S) expat ;for 'git push' over HTTP(S)
gettext-minimal ;for gettext.sh
openssl openssl
perl perl
sed sed
+4 -9
View File
@@ -3154,8 +3154,7 @@ wallpaper using mpv.")
(define-public libvpx (define-public libvpx
(package (package
(name "libvpx") (name "libvpx")
(version "1.15.2") (version "1.16.0")
(replacement libvpx/fixed)
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@@ -3164,8 +3163,9 @@ wallpaper using mpv.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"07c29a5q19613pldp8qm6harqwl7kvqhs7vw4mr8s3dnwyb5jpnl")) "0llik9k5rs9ychw9fnknwrz8662dm370yf76r6d6n07727faylyg"))
(patches (search-patches "libvpx-CVE-2016-2818.patch")))) (patches (search-patches "libvpx-CVE-2016-2818.patch"
"libvpx-CVE-2026-2447.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list "--enable-shared" `(#:configure-flags (list "--enable-shared"
@@ -3194,11 +3194,6 @@ wallpaper using mpv.")
(license license:bsd-3) (license license:bsd-3)
(home-page "https://www.webmproject.org/"))) (home-page "https://www.webmproject.org/")))
(define-public libvpx/fixed
(hidden-package
(package-with-extra-patches libvpx
(search-patches "libvpx-CVE-2026-2447.patch"))))
(define-public orfondl (define-public orfondl
(package (package
(name "orfondl") (name "orfondl")
+100 -40
View File
@@ -161,6 +161,8 @@
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages ruby-check) #:use-module (gnu packages ruby-check)
#:use-module (gnu packages ruby-xyz) #:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages rsync) #:use-module (gnu packages rsync)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages selinux) #:use-module (gnu packages selinux)
@@ -217,6 +219,9 @@
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
;; Delete the bundled rust crates.
(delete-file-recursively "subprojects/packagecache")
(mkdir-p "subprojects/packagecache")
;; TODO: Scrub all firmwares from this directory! ;; TODO: Scrub all firmwares from this directory!
(with-directory-excursion "pc-bios" (with-directory-excursion "pc-bios"
;; Delete firmwares provided by SeaBIOS. ;; Delete firmwares provided by SeaBIOS.
@@ -261,28 +266,34 @@
"share/qemu/pxe-virtio.rom")) "share/qemu/pxe-virtio.rom"))
#~((string-append #$output "/share/qemu")))) #~((string-append #$output "/share/qemu"))))
(out #$output)) (out #$output))
(list (string-append "--cc=" gcc) (cons* (string-append "--cc=" gcc)
;; Some architectures insist on using HOST_CC. ;; Some architectures insist on using HOST_CC.
(string-append "--host-cc=" gcc) (string-append "--host-cc=" gcc)
(string-append "--prefix=" out) (string-append "--prefix=" out)
"--sysconfdir=/etc" "--sysconfdir=/etc"
"--enable-fdt=system" "--enable-fdt=system"
(string-append "--firmwarepath=" out "/share/qemu:" (string-append "--firmwarepath=" out "/share/qemu:"
(dirname seabios) ":" (dirname seabios) ":"
(dirname ipxe) ":" (dirname ipxe) ":"
(dirname openbios) ":" (dirname openbios) ":"
(dirname opensbi)) (dirname opensbi))
(string-append "--smbd=" out "/libexec/samba-wrapper") (string-append "--smbd=" out "/libexec/samba-wrapper")
"--disable-debug-info" ;for space considerations "--disable-debug-info" ;for space considerations
;; The binaries need to be linked against -lrt. ;; The binaries need to be linked against -lrt.
(string-append "--extra-ldflags=-lrt"))) (string-append "--extra-ldflags=-lrt")
#$@(if (this-package-native-input "rust")
#~((list "--enable-rust"))
#~((list)))))
;; Make build and test output verbose to facilitate investigation upon failure. ;; Make build and test output verbose to facilitate investigation upon failure.
#:make-flags #~'("V=1") #:make-flags #~'("V=1")
#:modules `((srfi srfi-1) #:modules `((srfi srfi-1)
(srfi srfi-26) (srfi srfi-26)
(ice-9 ftw) (ice-9 ftw)
(ice-9 match) (ice-9 match)
((guix build cargo-build-system) #:prefix cargo:)
,@%default-gnu-modules) ,@%default-gnu-modules)
#:imported-modules `(,@%cargo-build-system-modules
,@%default-gnu-imported-modules)
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
;; Since we removed the bundled firmwares above, many tests ;; Since we removed the bundled firmwares above, many tests
@@ -325,6 +336,29 @@
"\"~a\",~%" file)) "\"~a\",~%" file))
allowed-differences) allowed-differences)
(close-port allowed-differences-whitelist)))) (close-port allowed-differences-whitelist))))
#$@(if (this-package-native-input "rust")
#~((add-after 'unpack 'prepare-rust-crates
(lambda args
(apply (assoc-ref cargo:%standard-phases
'prepare-rust-crates)
args)
;; Use /tmp/rust-crates as the source.
(substitute* (find-files "subprojects" "-rs\\.wrap$")
(("source_url = (.*)" _ url)
(let ((split-url (string-split url #\/)))
(string-append
"source_url = file:///tmp/rust-crates/rust-"
(list-ref split-url 6) "-"
(list-ref split-url 7) ".tar.gz\n"))))
;; "Download" the packages.
(for-each
(lambda (wrapper)
(invoke "meson" "subprojects" "download"
(string-drop-right wrapper 5)))
(scandir "subprojects"
(lambda (file)
(string-suffix? "-rs.wrap" file)))))))
#~())
;; If the ipxe firmware isn't available, remove it from the list ;; If the ipxe firmware isn't available, remove it from the list
;; of files expected to be available and remove some of the tests. ;; of files expected to be available and remove some of the tests.
#$@(if (not (this-package-input "ipxe-qemu")) #$@(if (not (this-package-input "ipxe-qemu"))
@@ -587,27 +621,38 @@ exec smbd $@")))
zlib zlib
`(,zstd "lib")))) `(,zstd "lib"))))
(native-inputs (native-inputs
;; Note: acpica is here only to pretty-print firmware differences with IASL (append
;; (see the replace-firmwares phase above). ;; The rust code doesn't seem to be in use yet.
(list acpica (if #f ;(supported-package? rust)
bison (append
flex (cons* rust
gettext-minimal rust-bindgen-cli
`(,glib "bin") ;gtester, etc. (cargo-inputs 'qemu))
meson (or (and=> (%current-target-system)
ninja (compose list make-rust-sysroot))
perl '()))
pkg-config '())
python-wrapper ;; Note: acpica is here only to pretty-print firmware differences with
python-sphinx ;; IASL (see the replace-firmwares phase above).
python-sphinx-rtd-theme (list acpica
python-tomli bison
texinfo flex
;; The following static libraries are required to build gettext-minimal
;; the static output of QEMU. `(,glib "bin") ;gtester, etc.
`(,glib "static") meson
`(,pcre2 "static") ninja
`(,zlib "static"))) perl
pkg-config
python-wrapper
python-sphinx
python-sphinx-rtd-theme
python-tomli
texinfo
;; The following static libraries are required to build
;; the static output of QEMU.
`(,glib "static")
`(,pcre2 "static")
`(,zlib "static"))))
(home-page "https://www.qemu.org") (home-page "https://www.qemu.org")
(synopsis "Machine emulator and virtualizer") (synopsis "Machine emulator and virtualizer")
(description (description
@@ -2467,9 +2512,23 @@ Open Container Initiative specification.")
#:build-flags #:build-flags
#~(list (string-append "-ldflags=" #~(list (string-append "-ldflags="
"-X github.com/opencontainers/umoci.version=" "-X github.com/opencontainers/umoci.version="
#$version)))) #$version))
;; TODO: build manpages from <doc/man> with 'go-md2man'. #:phases
(propagated-inputs #~(modify-phases %standard-phases
(add-after 'install 'build-and-install-man-pages
(lambda* (#:key unpack-path #:allow-other-keys)
(with-directory-excursion
(string-append "src/" unpack-path "/doc/man")
(mkdir-p (string-append #$output "/share/man/man1"))
(for-each
(lambda (file)
(let* ((file (string-drop-right file 3)) ;cut .md
(in-md (string-append file ".md"))
(out-man (string-append #$output
"/share/man/man1/" file)))
(invoke "go-md2man" "-in" in-md "-out" out-man)))
(find-files "." "\\.md$"))))))))
(native-inputs
(list go-github-com-adalogics-go-fuzz-headers (list go-github-com-adalogics-go-fuzz-headers
go-github-com-apex-log go-github-com-apex-log
go-github-com-blang-semver-v4 go-github-com-blang-semver-v4
@@ -2489,7 +2548,8 @@ Open Container Initiative specification.")
go-github-com-stretchr-testify go-github-com-stretchr-testify
go-github-com-urfave-cli go-github-com-urfave-cli
go-golang-org-x-sys go-golang-org-x-sys
go-google-golang-org-protobuf)) go-google-golang-org-protobuf
go-md2man))
(home-page "https://umo.ci/") (home-page "https://umo.ci/")
(synopsis "Tool for modifying Open Container images") (synopsis "Tool for modifying Open Container images")
(description (description
-33
View File
@@ -242,39 +242,6 @@ and many other languages.")
(substitute* "src/unix/mimetype.cpp" (substitute* "src/unix/mimetype.cpp"
(("/usr(/local)?/share/mime") mime)))))))))) (("/usr(/local)?/share/mime") mime))))))))))
(define-public prusa-wxwidgets
;; There is no proper tag/release, all patches are in separate branches based on
;; the wxWidgets release (e.g. this commit is taken from "v3.2.0-patched" branch".)
(let ((commit "78aa2dc0ea7ce99dc19adc1140f74c3e2e3f3a26")
(revision "0"))
(package
(inherit wxwidgets-sans-egl)
(name "prusa-wxwidgets")
(version (git-version "3.2.0" revision commit))
(home-page "https://github.com/prusa3d/wxWidgets")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (git-file-name name version))
;; The patch is taken from the NixOS nixpkgs repository (see
;; <https://github.com/NixOS/nixpkgs/commit/0e724ac89f3dbf6ed31d647290a371b44a85e5ad>.)
(patches (search-patches "prusa-wxwidgets-makefile-fix.patch"))
(sha256
(base32
"1xk6w7q4xv4cj906xa5dwam5q51mc8bszbkkz7l8d3wjmsz73rwv"))))
(native-inputs (modify-inputs native-inputs
(prepend nanosvg)))
(arguments
(substitute-keyword-arguments arguments
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'copy-nanosvg-source
(lambda _
(copy-recursively #$(package-source nanosvg) "3rdparty/nanosvg/"))))))))))
(define-public python-wxpython (define-public python-wxpython
(package (package
(name "python-wxpython") (name "python-wxpython")
+6 -4
View File
@@ -688,7 +688,7 @@ avoiding password prompts when X11 forwarding has already been setup.")
(define-public libxkbcommon (define-public libxkbcommon
(package (package
(name "libxkbcommon") (name "libxkbcommon")
(version "1.11.0") (version "1.13.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@@ -697,7 +697,7 @@ avoiding password prompts when X11 forwarding has already been setup.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1swa6rf63c0wi0qq5r661g63yk2iwa9l66148078xkrwcf05sp91")))) "1440s6w7m7xpxw44d3x9wyn5wy4wxdx33idvklxkhp9irnq32jy1"))))
(outputs '("out" "doc")) (outputs '("out" "doc"))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (inputs
@@ -713,6 +713,8 @@ avoiding password prompts when X11 forwarding has already been setup.")
doxygen doxygen
pkg-config pkg-config
python python
;; setxkbmap needed for tests.
setxkbmap
;; wayland-scanner is required at build time. ;; wayland-scanner is required at build time.
wayland wayland
;; Xvfb for tests. ;; Xvfb for tests.
@@ -955,7 +957,7 @@ rasterisation.")
(define-public libdrm (define-public libdrm
(package (package
(name "libdrm") (name "libdrm")
(version "2.4.124") (version "2.4.131")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@@ -963,7 +965,7 @@ rasterisation.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0yd37j3c1qz9gmwvv7vwqgss8aiizypsg8hn9fpsyjnac4zjjdmc")))) "1m8pyv2l7mbkf1wy54b3dsvm7f8ksf0xwm6nlc36928wnn1rkfj5"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list #:configure-flags (list #:configure-flags
+3 -3
View File
@@ -2513,7 +2513,7 @@ XC-APPGROUP, XTEST.")
(define-public libevdev (define-public libevdev
(package (package
(name "libevdev") (name "libevdev")
(version "1.13.3") (version "1.13.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@@ -2521,11 +2521,11 @@ XC-APPGROUP, XTEST.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1gygrc20d7cw70fdb5mp0ns3pmy8skggyl1mbpfyp3i0hv7amwdb")))) "040ialc9galic1bxgllp9g26fzk8lay0db1p8x0ky8yqrgn1bwkk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--disable-static"))) `(#:configure-flags '("--disable-static")))
(native-inputs (list python)) (native-inputs (list pkg-config python))
(home-page "https://www.freedesktop.org/wiki/Software/libevdev/") (home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
(synopsis "Wrapper library for evdev devices") (synopsis "Wrapper library for evdev devices")
(description (description
+565 -6
View File
@@ -21,24 +21,39 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services monitoring) (define-module (gnu services monitoring)
#:use-module (gnu services) #:use-module (gnu packages admin)
#:use-module (gnu packages bash)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages networking)
#:use-module (gnu packages python)
#:use-module (gnu services configuration) #:use-module (gnu services configuration)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu services web) #:use-module (gnu services web)
#:use-module (gnu packages admin) #:use-module (gnu services)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages networking)
#:use-module (gnu system shadow) #:use-module (gnu system shadow)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module ((guix modules) #:select (source-module-closure))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix profiles) #:select (packages->manifest
profile
profile-search-paths))
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix utils) #:use-module ((guix search-paths) #:select (search-path-specification-variable))
#:use-module ((guix self) #:select (make-config.scm))
#:use-module ((guix ui) #:select (display-hint G_)) #:use-module ((guix ui) #:select (display-hint G_))
#:use-module (guix utils)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module ((srfi srfi-2) #:select (and-let*))
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module ((srfi srfi-171) #:select (list-transduce
rcons
tconcatenate
tfilter
tmap))
#:export (darkstat-configuration #:export (darkstat-configuration
darkstat-service-type darkstat-service-type
@@ -94,7 +109,49 @@
zabbix-agent-service-type zabbix-agent-service-type
zabbix-front-end-configuration zabbix-front-end-configuration
zabbix-front-end-service-type zabbix-front-end-service-type
%zabbix-front-end-configuration-nginx)) %zabbix-front-end-configuration-nginx
collectd-plugin-generic
collectd-plugin-generic?
collectd-plugin-generic-load-plugin?
collectd-plugin-generic-name
collectd-plugin-generic-options
collectd-plugin-python
collectd-plugin-python?
collectd-plugin-python-load-plugin?
collectd-plugin-python-type-databases
collectd-plugin-python-type-packages
collectd-plugin-python-module-paths
collectd-plugin-python-log-traces?
collectd-plugin-python-log-interactive?
collectd-plugin-python-import
collectd-plugin-python-module
collectd-plugin?
%collectd-default-type-database
%collectd-pid-file
collectd-configuration
collectd-configuration?
collectd-configuration-collectd
collectd-configuration-base-directory
collectd-configuration-auto-load-plugins?
collectd-configuration-collect-internal-stats?
collectd-configuration-type-databases
collectd-configuration-interval
collectd-configuration-max-read-interval
collectd-configuration-timeout
collectd-configuration-read-threads
collectd-configuration-write-threads
collectd-configuration-write-queue-limit-high
collectd-configuration-write-queue-limit-low
collectd-configuration-host-name
collectd-configuration-fully-qualified-domain-name-lookup?
collectd-configuration-plugins
collectd-service-type))
;;; ;;;
@@ -1186,3 +1243,505 @@ with Zabbix server.")))
`((zabbix-front-end-configuration `((zabbix-front-end-configuration
,zabbix-front-end-configuration-fields)) ,zabbix-front-end-configuration-fields))
'zabbix-front-end-configuration)) 'zabbix-front-end-configuration))
;;
;; collectd
;;
(define *indent* (make-parameter ""))
(defmacro with-indent (. body)
`(parameterize ((*indent* (string-append (*indent*) " ")))
,@body))
(define seconds? integer?)
(define-maybe/no-serialization seconds)
(define list-of-string? (list-of string?))
(define list-of-file-likes? (list-of file-like?))
(define (collectd-serialize-list-of-file-likes name value)
#~(string-join
(map
(lambda (v) (format #f "~a~a \"~a\"" #$name #$(*indent*) v))
'#$value)
"\n" 'suffix))
(define (collectd-serialize-file-like name value)
(collectd-serialize-list-of-file-likes name (list value)))
(define list-of-packages? (list-of package?))
(define (collectd-serialize-value value)
(cond
;; Strings get quoted and escaped.
((string? value)
(format #f "~s" value))
;; Keywords become unquoted strings (#:foo -> foo).
((keyword? value)
(collectd-serialize-value
(keyword->symbol value)))
;; Booleans become bare words.
((eq? value #t) "true")
((eq? value #f) "false")
;; Alists serialize to lines of KEY VALUE.
((alist? value)
(apply string-append
(map
(generic-serialize-alist-entry collectd-serialize-field)
value)))
;; Lists get their elements serialized and joined with a space.
((list? value) (string-join (map collectd-serialize-value value) " "))
;; Other types (numbers etc) turn into bare strings.
(else (object->string value))))
(define (collectd-serialize-field name value)
(if (and (list? value) (null-list? value))
""
(format #nil "~a~a ~a~%" (*indent*) name
(collectd-serialize-value value))))
(define (remap-names name-map serializer)
"Renaming serializer.
Wraps `serializer', renaming fields according to `name-map', an alist of
'((field-name . serialized-name))."
(lambda (name value)
(serializer (or (and=> (assoc name name-map) cdr) name) value)))
(define (collectd-make-load-plugin?-serializer plugin-name)
(lambda (_ load-plugin?)
(if load-plugin?
(collectd-serialize-field "LoadPlugin" plugin-name)
"")))
;; Generic plugin support.
(define-configuration/no-serialization collectd-plugin-generic
(load-plugin?
(boolean #t)
"When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{auto-load-plugins?} is @code{#f}, all
plugins should set this to @code{#t}.")
(name
string
"The name of the plugin to configure. See @code{collect.conf(5)} for the
list of plugins.")
(options
(alist '())
"Configuration options for the plugin, as an alist. See
@code{collect.conf(5)} for the available plugin options."))
(define (collectd-serialize-plugin-generic _ value)
(match-record value <collectd-plugin-generic>
(name load-plugin? options)
#~(string-join
`("\n"
,#$((collectd-make-load-plugin?-serializer name) #nil load-plugin?)
,(string-append "<Plugin " #$name ">\n")
,#$(with-indent (collectd-serialize-value options))
"</Plugin>\n")
"")))
;; Python plugin support.
(define (collectd-serialize-python-module name value)
(apply string-append
`(,(string-append (*indent*) "<Module "
(collectd-serialize-value name)
">")
"\n"
,@(with-indent
(map
(lambda (kvs)
(collectd-serialize-field (car kvs) (cdr kvs)))
value))
,(string-append (*indent*) "</Module>"))))
(define collectd-plugin-python-remap
'((module-paths . "ModulePath")
(load-plugin? . "LoadPlugin")
(log-traces? . "LogTraces")
(interactive? . "Interactive")
(type-databases . "TypesDB")
(packages . "ModulePath")
(module . "Import")))
(define collectd-serialize-plugin-python-field
(remap-names collectd-plugin-python-remap
collectd-serialize-field))
(define-configuration collectd-plugin-python
(load-plugin?
(boolean #t)
"When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{collectd-configuration}'s
@code{auto-load-plugins?} is @code{#f}, all plugins should set this to
@code{#t}."
(serializer (collectd-make-load-plugin?-serializer "python")))
(type-databases
(list-of-file-likes '())
"One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files."
(serializer (remap-names collectd-plugin-python-remap
collectd-serialize-list-of-file-likes)))
(packages
(list-of-packages '())
"Packages to make available to the Python plugin. These can be
dependencies of the plugin code, or may contain the plugin."
(serializer empty-serializer))
(module-paths
(list-of-string '())
"Entries to prepend to @code{sys.path}."
(serializer collectd-serialize-plugin-python-field))
(log-traces?
(boolean #f)
"If a Python script throws an exception it will be logged by
collectd with the name of the exception and the message. If you set
this option to true it will also log the full stacktrace just like the
default output of an interactive Python interpreter. This does not
apply to the @code{CollectError} exception, which will never log a
stacktrace. This should probably be set to false most of the time but
is very useful for development and debugging of new modules."
(serializer collectd-serialize-plugin-python-field))
(interactive?
(boolean #f)
"This option will cause the module to launch an interactive Python
interpreter that reads from and writes to the terminal. Note that collectd
will terminate right after starting up if you try to run it as a daemon while
this option is enabled so make sure to start collectd with the @code{-f}
option. See the @code{collectd-python(5)} man page for more information on
this option."
(serializer collectd-serialize-plugin-python-field))
(module
string
"The name of the Python module to import into the collectd Python
process. The module must be available in @code{packages} or
@code{module-paths}, and register a MPD callback."
(serializer collectd-serialize-plugin-python-field))
(module-options
(alist '())
"Configuration options for the module."
(serializer (lambda (_ value) (collectd-serialize-value value)))))
(define (collectd-serialize-plugin-python _ value)
(define (serialize-fields fields)
(list-transduce
(base-transducer value) rcons
(filter-configuration-fields collectd-plugin-python-fields fields)))
(match-record
value <collectd-plugin-python> (module)
#~(string-append
"\n"
#$@(serialize-fields '(load-plugin? type-databases))
"<Plugin python>\n"
#$@(with-indent
(append
(serialize-fields '(log-traces? interactive? module-paths module))
(list (*indent*) "<Module " (collectd-serialize-value module) ">\n")
(with-indent (serialize-fields '(module-options)))
(list (*indent*) "</Module>\n")))
"</Plugin>\n")))
(define (collectd-plugin? x)
;; XXX: Extend this if plugin-specific configuration records are
;; added.
(or (collectd-plugin-generic? x)
(collectd-plugin-python? x)))
(define list-of-collectd-plugins? (list-of collectd-plugin?))
(define (collectd-serialize-plugin name value)
((match value
;; XXX: Extend this if plugin-specific configuration records are
;; added.
;; Note that these *must* return gexps, not strings, otherwise things
;; like type-databases won't work.
(($ <collectd-plugin-generic>) collectd-serialize-plugin-generic)
(($ <collectd-plugin-python>) collectd-serialize-plugin-python))
name value))
(define (collectd-serialize-list-of-plugins name value)
#~(string-append
#$@(map
(lambda (v) (collectd-serialize-plugin name v))
value)))
(define collectd-configuration-remap
'((base-directory . "BaseDir")
(auto-load-plugins? . "AutoLoadPlugin")
(collect-internal-stats? . "CollectInternalStats")
(type-databases . "TypesDB")
(interval . "Interval")
(max-read-interval . "MaxReadInterval")
(timeout . "Timeout")
(read-threads . "ReadThreads")
(write-threads . "WriteThreads")
(write-queue-limit-high . "WriteQueueLimitHigh")
(write-queue-limit-low . "WriteQueueLimitLow")
(host-name . "Hostname")
(fully-qualified-domain-name-lookup? . "FQDNLookup")))
(define collectd-configuration-serialize-field
(remap-names collectd-configuration-remap
collectd-serialize-field))
(define %collectd-default-type-database
(file-append collectd "/share/collectd/types.db"))
(define-configuration collectd-configuration
(collectd
(package collectd)
"The collectd package to use."
(serializer empty-serializer))
(base-directory
(string "/var/lib/collectd")
"Sets the base directory. This is the directory beneath which all
@acronym{RRD, round-robin database} files are created. Possibly more
subdirectories are created. This is also the working directory for
collectd."
(serializer collectd-configuration-serialize-field))
(auto-load-plugins?
(boolean #f)
"When set to @code{#f}, plugins must be loaded explicitly, by setting the
@code{load-plugin?} field of each plugin configuration to @code{#t}. If a
@code{<Plugin ...>} block is encountered and no configuration handling
callback for this plugin has been registered, a warning is logged and the
block is ignored.
When set to @code{#t}, each @code{<Plugin ...>} block acts as if it was
immediately preceded by a @code{LoadPlugin} statement. @code{LoadPlugin}
statements are still required for plugins that don't provide any
configuration, e.g. the @code{Load} plugin."
(serializer collectd-configuration-serialize-field))
(collect-internal-stats?
(boolean #f)
"When @code{#t}, various statistics about the collectd daemon will
be collected, with \"collectd\" as the plugin name."
(serializer collectd-configuration-serialize-field))
(type-databases
(list-of-file-likes (list %collectd-default-type-database))
"One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files."
(serializer (remap-names collectd-configuration-remap
collectd-serialize-list-of-file-likes)))
(interval
(seconds 60)
"Configures the interval in which to query the read plugins.
Smaller values lead to a higher system load produced by
collectd, while higher values lead to more coarse statistics.
Warning: You should set this once and then never touch it again. If
you do, you will have to delete all your RRD files or know some
serious RRDtool magic! (Assuming you're using the RRDtool or
RRDCacheD plugin.)"
(serializer collectd-configuration-serialize-field))
(max-read-interval
(seconds 86400)
"A read plugin doubles the interval between queries after each
failed attempt to get data.
This options limits the maximum value of the interval."
(serializer collectd-configuration-serialize-field))
(timeout
maybe-integer
"Consider a value list \"missing\" when no update has been read or
received for @code{Iterations} iterations. By default, collectd considers
a value list missing when no update has been received for twice the
update interval. Since this setting uses iterations, the maximum
allowed time without update depends on the @code{Interval} information
contained in each value list. This is used in the @code{Threshold}
configuration to dispatch notifications about missing values, see
@code{collectd-threshold(5)} for details."
(serializer collectd-configuration-serialize-field))
(read-threads
(integer 5)
"Number of threads to start for reading plugins. You may want to
increase this if you have more than five plugins that take a long time
to read. Mostly those are plugins that do network-IO. Setting this to
a value higher than the number of registered read callbacks is not
recommended."
(serializer collectd-configuration-serialize-field))
(write-threads
(integer 5)
"Number of threads to start for dispatching value lists to write
plugins. You may want to increase this if you have more than five
plugins that may take relatively long to write to."
(serializer collectd-configuration-serialize-field))
(write-queue-limit-high
maybe-integer
"Metrics are read by the read threads and then put into a queue to
be handled by the write threads. If one of the write plugins is
slow (e.g. network timeouts, I/O saturation of the disk) this queue
will grow. In order to avoid running into memory issues in such a
case, you can limit the size of this queue.
If there are @code{write-queue-limit-high} metrics in the queue, any
new metrics will be dropped.
If the number of metrics currently in the queue is between
@code{write-queue-limit-low} and @code{write-queue-limit-high}, the
metric is dropped with a probability that is proportional to the
number of metrics in the queue (i.e. it increases linearly until it
reaches 100%)."
(serializer collectd-configuration-serialize-field))
(write-queue-limit-low
maybe-integer
"If there are less than @code{write-queue-limit-low} metrics in the
queue, all new metrics will be enqueued.
If @code{write-queue-limit-high} is set to non-zero and
@code{write-queue-limit-low} is unset, the latter will default to half
of @code{write-queue-limit-high}."
(serializer collectd-configuration-serialize-field))
(host-name
maybe-string
"Sets the hostname that identifies a host. If you omit this setting,
the hostname will be determined using the @code{gethostname(2)} system
call."
(serializer collectd-configuration-serialize-field))
(fully-qualified-domain-name-lookup?
(boolean #t)
"If @code{host-name} is determined automatically, this setting
controls whether or not the daemon should try to figure out the
@acronym{FQDN, fully qualified domain name}. This is done using a
lookup of the name returned by @code{gethostname(2)}."
(serializer collectd-configuration-serialize-field))
(plugins
(list-of-collectd-plugins '())
"Configurations for collectd plugins."
(serializer collectd-serialize-list-of-plugins))
(prefix collectd-))
(define (collectd-configuration-python config)
"Return the Python package collectd was built with, or #f."
(and=> (assoc-ref (package-native-inputs
(collectd-configuration-collectd config))
"python")
car))
(define (collectd-python-packages config)
"Return a list of all packages in Python plugins."
(append-map
(lambda (plugin)
(if (collectd-plugin-python? plugin)
(collectd-plugin-python-packages plugin)
'()))
(collectd-configuration-plugins config)))
(define (collectd-profile-packages config)
"Return packages to include in the profile for collectd."
(let ((python (collectd-configuration-python config))
(python-packages (collectd-python-packages config)))
(cons
(collectd-configuration-collectd config)
;; Only include Python and packages if collectd has support.
(if python
(cons python python-packages)
'()))))
(define (make-collectd-profile-wrapper config)
"Return a gexp representing a wrapper for collectd, which runs it in a profile."
(let* ((collectd (collectd-configuration-collectd config))
(packages (collectd-profile-packages config))
(collectd-profile (profile
(content
(packages->manifest packages)))))
(computed-file
"collectd-profile-wrapper"
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(call-with-output-file #$output
(lambda (output)
(format output
(string-append
"#! ~a~%~%"
". ~a~%"
"exec -a \"${0##*/}\" ~a \"$@\"~%")
#$(file-append bash "/bin/bash")
#$(file-append collectd-profile "/etc/profile")
#$(file-append collectd "/sbin/collectd"))))
(chmod #$output #o755))))))
(define %collectd-pid-file "/var/run/collectd.pid")
(define (make-collectd-shepherd-service config)
(let ((config-file
(mixed-text-file
"collectd.conf"
(serialize-configuration config collectd-configuration-fields))))
(match-record config <collectd-configuration> (collectd)
(shepherd-service
(provision '(collectd))
(documentation "Run collectd.")
(requirement '(user-processes networking))
(start
#~(make-forkexec-constructor
(list #$(make-collectd-profile-wrapper config)
"-C" #$config-file
"-B" ; Don't create base dir.
"-P" #$%collectd-pid-file)
#:pid-file #$%collectd-pid-file))
(stop #~(make-kill-destructor))))))
(define (collectd-activation config)
(match-record config <collectd-configuration> (base-directory)
(with-imported-modules
(source-module-closure '((guix build utils)))
#~(begin
(use-modules (guix build utils))
(mkdir-p #$base-directory)))))
(define collectd-service-type
(service-type
(name 'collectd)
(description "Run collectd")
(extensions
(list
(service-extension shepherd-root-service-type
(compose list make-collectd-shepherd-service))
(service-extension activation-service-type
collectd-activation)))
(compose concatenate)
(extend
(lambda (config plugins)
(collectd-configuration
(inherit config)
(plugins (append (collectd-configuration-plugins config) plugins)))))
(default-value (collectd-configuration))))
+131
View File
@@ -313,6 +313,15 @@
patchwork-virtualhost patchwork-virtualhost
patchwork-service-type patchwork-service-type
sogogi-service-type
sogogi-configuration
sogogi-config-file
sogogi-configuration?
sogogi-user
sogogi-user?
sogogi-location
sogogi-location?
mumi-configuration mumi-configuration
mumi-configuration? mumi-configuration?
mumi-configuration-mumi mumi-configuration-mumi
@@ -2182,6 +2191,128 @@ WSGIPassAuthorization On
(description (description
"Patchwork patch tracking system."))) "Patchwork patch tracking system.")))
;;;
;;; sogogi.
;;;
(define (sogogi-serialize-section section-name value fields)
(let ((first-field (car fields)))
#~(format #f "~a ~a {~%~a}~%"
#$(object->string section-name)
#$((configuration-field-getter first-field) value)
#$(serialize-configuration value (cdr fields)))))
(define (sogogi-serialize-field field-name value)
(let ((field (object->string field-name)))
#~(format #f "~a ~a~%" #$field #$value)))
(define sogogi-serialize-string sogogi-serialize-field)
(define (sogogi-serialize-list-of-strings field-name value)
#~(string-append
#$@(map (cut sogogi-serialize-string field-name <>)
value)))
(define-maybe string (prefix sogogi-))
(define-maybe list-of-strings (prefix sogogi-))
(define-configuration sogogi-user
(name
maybe-string
"Name of the user.")
(password
maybe-string
"Password of the user.")
(prefix sogogi-))
(define (sogogi-serialize-sogogi-user field-name value)
(sogogi-serialize-section field-name value sogogi-user-fields))
(define-configuration sogogi-location
(path
string
"HTTP path at which the directory will be exposed.")
(dir
string
"Path to local directory to serve.")
(grant
maybe-list-of-strings
"Grant remote users access to the directory.")
(prefix sogogi-))
(define (sogogi-serialize-sogogi-location field-name value)
(sogogi-serialize-section field-name value sogogi-location-fields))
(define (sogogi-serialize-list-of-sogogi-location field-name value)
#~(string-append #$@(map (cut sogogi-serialize-sogogi-location field-name <>) value)))
(define (sogogi-serialize-list-of-sogogi-user field-name value)
#~(string-append #$@(map (cut sogogi-serialize-sogogi-user field-name <>) value)))
(define list-of-sogogi-user? (list-of sogogi-user?))
(define list-of-sogogi-location? (list-of sogogi-location?))
(define-configuration sogogi-configuration
(listen
(string "localhost:8080")
"Listening address.")
(location
(list-of-sogogi-location '())
"Local directories to expose via a HTTP path.")
(user
(list-of-sogogi-user '())
"Users with access to the location.")
(prefix sogogi-))
(define (sogogi-config-file config)
(mixed-text-file "sogogi.conf"
(serialize-configuration
config
sogogi-configuration-fields)))
(define (sogogi-shepherd-service config)
(let ((config-file (sogogi-config-file config)))
(list (shepherd-service
(documentation "Sogogi daemon.")
(provision '(sogogi))
;; sogogi may be bound to a particular IP address, hence
;; only start it after the networking service has started.
(requirement '(user-processes networking))
(actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor
(list (string-append #$sogogi "/bin/sogogi")
"-config" #$config-file)))
(stop #~(make-kill-destructor))))))
(define sogogi-account-service
(list (user-group (name "sogogi") (system? #t))
(user-account
(name "sogogi")
(group "sogogi")
(system? #t)
(comment "Sogogi daemon user")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin")))))
(define sogogi-service-type
(service-type (name 'sogogi)
(description "Run the sogogi WebDAV server.")
(extensions
(list (service-extension account-service-type
(const sogogi-account-service))
(service-extension shepherd-root-service-type
sogogi-shepherd-service)))
(compose concatenate)
(default-value (sogogi-configuration))))
;;; ;;;
;;; Mumi. ;;; Mumi.
+50
View File
@@ -60,6 +60,7 @@
%test-anonip %test-anonip
%test-go-webdav %test-go-webdav
%test-patchwork %test-patchwork
%test-sogogi
%test-agate %test-agate
%test-miniflux-admin-string %test-miniflux-admin-string
%test-miniflux-admin-file %test-miniflux-admin-file
@@ -780,6 +781,55 @@ HTTP-PORT."
(description "Connect to a running Patchwork service.") (description "Connect to a running Patchwork service.")
(value (run-patchwork-test patchwork)))) (value (run-patchwork-test patchwork))))
;;;
;;; sogogi
;;;
(define %sogogi-os
(simple-operating-system
(service dhcpcd-service-type)
(simple-service 'make-http-root activation-service-type
%make-http-root)
(service sogogi-service-type
(sogogi-configuration
(listen ":8080")
(user
(list
(sogogi-user
(name "testuser")
(password "testpass"))))
(location
(list
(sogogi-location
(path "/")
(dir "/srv/http/")
(grant '("all ro" "user:testuser rw")))))))))
(define %test-sogogi
(system-test
(name "sogogi")
(description "Test that the sogogi can handle HTTP requests.")
(value
(let ((http-port 8080))
(run-webserver-test name %sogogi-os
#:http-port http-port
#:extra-tests
#~(begin
(use-modules (srfi srfi-11) (srfi srfi-64)
(gnu build marionette)
(web uri)
(web client)
(web response))
(test-equal "unauthenticated delete"
401
(let-values
(((response _)
(http-delete #$(simple-format
#f "http://localhost:~A/index.html" http-port))))
(response-code response)))))))))
;;; ;;;
;;; Agate ;;; Agate
+12 -4
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013-2015, 2020-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013-2015, 2020-2022, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -123,7 +123,6 @@
"Return a bag for NAME." "Return a bag for NAME."
(define private-keywords (define private-keywords
`(#:cmake #:inputs #:native-inputs `(#:cmake #:inputs #:native-inputs
#:implicit-inputs? #:implicit-cross-inputs?
,@(if target '() '(#:target)))) ,@(if target '() '(#:target))))
(bag (bag
@@ -162,7 +161,10 @@
(define* (cmake-build name inputs (define* (cmake-build name inputs
#:key guile source #:key guile source
(outputs '("out")) (configure-flags ''()) (outputs '("out"))
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(configure-flags ''())
(search-paths '()) (search-paths '())
(make-flags ''()) (make-flags ''())
(out-of-source? #t) (out-of-source? #t)
@@ -231,7 +233,11 @@ provides a 'CMakeLists.txt' file as its build system."
#:graft? #f #:graft? #f
#:substitutable? substitutable? #:substitutable? substitutable?
#:allowed-references allowed-references #:allowed-references allowed-references
#:disallowed-references disallowed-references #:disallowed-references
(or disallowed-references
(and implicit-inputs?
(not allowed-references)
(default-disallowed-references system)))
#:guile-for-build guile))) #:guile-for-build guile)))
@@ -244,6 +250,8 @@ provides a 'CMakeLists.txt' file as its build system."
target target
build-inputs target-inputs host-inputs build-inputs target-inputs host-inputs
source guile source guile
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(outputs '("out")) (outputs '("out"))
(configure-flags ''()) (configure-flags ''())
(search-paths '()) (search-paths '())
+24 -2
View File
@@ -37,6 +37,7 @@
gnu-build-system gnu-build-system
standard-packages standard-packages
standard-cross-packages standard-cross-packages
default-disallowed-references
package-with-explicit-inputs package-with-explicit-inputs
package-with-extra-configure-variable package-with-extra-configure-variable
static-libgcc-package static-libgcc-package
@@ -275,6 +276,20 @@ standard packages used as implicit inputs of the GNU build system."
(let ((distro (resolve-module '(gnu packages commencement)))) (let ((distro (resolve-module '(gnu packages commencement))))
((module-ref distro '%final-inputs) system))) ((module-ref distro '%final-inputs) system)))
(define default-disallowed-references
(mlambda (system)
"Return the set of disallowed references for SYSTEM--i.e., build-time
dependencies that build outputs should not refer to by default."
;; XXX: Ideally we would mark all of them but this is too ambitious at
;; this stage: many packages keep a reference to coreutils, grep, etc.
(filter-map (match-lambda
(("gcc" gcc) gcc)
(("binutils" binutils) binutils)
(("ld-wrapper" ld-wrapper) ld-wrapper)
(("libc:static" libc "static") (gexp-input libc "static"))
(_ #f))
(standard-packages system))))
(define* (lower name (define* (lower name
#:key source inputs native-inputs outputs target #:key source inputs native-inputs outputs target
(implicit-inputs? #t) (implicit-cross-inputs? #t) (implicit-inputs? #t) (implicit-cross-inputs? #t)
@@ -284,7 +299,6 @@ standard packages used as implicit inputs of the GNU build system."
"Return a bag for NAME from the given arguments." "Return a bag for NAME from the given arguments."
(define private-keywords (define private-keywords
`(#:inputs #:native-inputs #:outputs `(#:inputs #:native-inputs #:outputs
#:implicit-inputs? #:implicit-cross-inputs?
,@(if target '() '(#:target)))) ,@(if target '() '(#:target))))
(bag (bag
@@ -341,6 +355,8 @@ standard packages used as implicit inputs of the GNU build system."
guile source guile source
(outputs '("out")) (outputs '("out"))
(search-paths '()) (search-paths '())
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(bootstrap-scripts %bootstrap-scripts) (bootstrap-scripts %bootstrap-scripts)
(configure-flags ''()) (configure-flags ''())
(make-flags ''()) (make-flags ''())
@@ -433,7 +449,11 @@ are allowed to refer to."
#:graft? #f #:graft? #f
#:substitutable? substitutable? #:substitutable? substitutable?
#:allowed-references allowed-references #:allowed-references allowed-references
#:disallowed-references disallowed-references #:disallowed-references
(or disallowed-references
(and implicit-inputs?
(not allowed-references)
(default-disallowed-references system)))
#:guile-for-build guile))) #:guile-for-build guile)))
@@ -478,6 +498,8 @@ is one of `host' or `target'."
target target
build-inputs target-inputs host-inputs build-inputs target-inputs host-inputs
guile source guile source
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(outputs '("out")) (outputs '("out"))
(search-paths '()) (search-paths '())
(native-search-paths '()) (native-search-paths '())
+66 -51
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com> ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019-2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019-2026 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -101,8 +101,9 @@ Cargo.toml file present at its root."
" | cut -d/ -f2" " | cut -d/ -f2"
" | grep -q '^Cargo.toml$'")))))) " | grep -q '^Cargo.toml$'"))))))
(define* (unpack-rust-crates #:key inputs (vendor-dir "guix-vendor") (define* (prepare-rust-crates #:key inputs (vendor-dir "guix-vendor")
#:allow-other-keys) #:allow-other-keys)
"Find the rust-crate inputs and cache them for future use."
(define (inputs->rust-inputs inputs) (define (inputs->rust-inputs inputs)
"Filter using the label part from INPUTS." "Filter using the label part from INPUTS."
(filter (lambda (input) (filter (lambda (input)
@@ -115,30 +116,71 @@ Cargo.toml file present at its root."
(((names . directories) ...) (((names . directories) ...)
directories))) directories)))
(chmod "." #o755)
(let ((rust-inputs (inputs->directories (inputs->rust-inputs inputs)))) (let ((rust-inputs (inputs->directories (inputs->rust-inputs inputs))))
(unless (null? rust-inputs) (unless (null? rust-inputs)
(mkdir-p "target/package") (let ((crate-cache "/tmp/rust-crates/"))
(mkdir-p vendor-dir) (mkdir-p crate-cache)
;; TODO: copy only regular inputs to target/package, not native-inputs. (mkdir-p vendor-dir)
(for-each (for-each
(lambda (input-crate) (lambda (input-crate)
(for-each (when (file-exists?
(lambda (packaged-crate) (string-append input-crate "/share/cargo/registry"))
(unless (for-each
(file-exists? (lambda (packaged-crate)
(string-append "target/package/" (basename packaged-crate))) (unless
(install-file packaged-crate "target/package/"))) (file-exists?
(find-files (string-append crate-cache (basename packaged-crate)))
(string-append input-crate "/share/cargo/registry") "\\.crate$"))) (install-file packaged-crate crate-cache))
(delete-duplicates rust-inputs)) ;; TODO: Move this to 'unpack-rust-crates.
;; Unpack the inputs from rust-sources.
(for-each (lambda (crate) (invoke "tar" "xzf" packaged-crate "-C" vendor-dir))
(invoke "tar" "xzf" crate "-C" vendor-dir)) (find-files
(find-files "target/package" "\\.crate$"))))) (string-append input-crate "/share/cargo/registry")
"\\.crate$")))
(unless
(file-exists?
(string-append crate-cache (strip-store-file-name input-crate)))
(copy-file input-crate
(string-append
crate-cache (strip-store-file-name input-crate)))))
(delete-duplicates rust-inputs))))))
(define (rust-package? name) (define (rust-package? name)
(string-prefix? "rust-" name)) (string-prefix? "rust-" name))
(define* (unpack-rust-crates #:key source inputs (vendor-dir "guix-vendor")
#:allow-other-keys)
"Vendor Cargo.toml dependencies as guix inputs."
;; Prepare one new directory with all the required dependencies.
;; It's necessary to do this (instead of just using /gnu/store as the
;; directory) because we want to hide the libraries in subdirectories
;; share/rust-source/... instead of polluting the user's profile root.
(chmod "." #o755)
(mkdir-p vendor-dir)
(for-each
(match-lambda
((name . path)
(let* ((basepath (strip-store-file-name path))
(crate-dir (string-append vendor-dir "/" basepath)))
(and (crate-src? path #:source source)
;; Gracefully handle duplicate inputs
(not (file-exists? crate-dir))
(if (directory-exists? path)
(copy-recursively path crate-dir)
(begin
(mkdir-p crate-dir)
;; Cargo crates are simply gzipped tarballs but with a
;; .crate extension. We expand the source to a directory
;; name we control so that we can generate any cargo
;; checksums. The --strip-components argument is needed to
;; prevent creating an extra directory within `crate-dir`.
(format #t "Unpacking ~a~%" name)
(invoke "tar" "xf" path "-C" crate-dir
"--strip-components" "1")))))))
inputs))
(define* (check-for-pregenerated-files #:key parallel-build? #:allow-other-keys) (define* (check-for-pregenerated-files #:key parallel-build? #:allow-other-keys)
"Check the source code for files which are known to generally be bundled "Check the source code for files which are known to generally be bundled
libraries or executables." libraries or executables."
@@ -169,35 +211,7 @@ libraries or executables."
(cargo-target #f) (cargo-target #f)
(vendor-dir "guix-vendor") (vendor-dir "guix-vendor")
#:allow-other-keys) #:allow-other-keys)
"Vendor Cargo.toml dependencies as guix inputs." "Prepare the environment for building the rust package."
(chmod "." #o755)
;; Prepare one new directory with all the required dependencies.
;; It's necessary to do this (instead of just using /gnu/store as the
;; directory) because we want to hide the libraries in subdirectories
;; share/rust-source/... instead of polluting the user's profile root.
(mkdir-p vendor-dir)
(for-each
(match-lambda
((name . path)
(let* ((basepath (strip-store-file-name path))
(crate-dir (string-append vendor-dir "/" basepath)))
(and (crate-src? path #:source source)
;; Gracefully handle duplicate inputs
(not (file-exists? crate-dir))
(if (directory-exists? path)
(copy-recursively path crate-dir)
(begin
(mkdir-p crate-dir)
;; Cargo crates are simply gzipped tarballs but with a
;; .crate extension. We expand the source to a directory
;; name we control so that we can generate any cargo
;; checksums. The --strip-components argument is needed to
;; prevent creating an extra directory within `crate-dir`.
(format #t "Unpacking ~a~%" name)
(invoke "tar" "xf" path "-C" crate-dir
"--strip-components" "1")))))))
inputs)
;; For cross-building ;; For cross-building
(when target (when target
(setenv "CARGO_BUILD_TARGET" cargo-target) (setenv "CARGO_BUILD_TARGET" cargo-target)
@@ -464,7 +478,8 @@ directory = '" vendor-dir "'") port)
(replace 'check check) (replace 'check check)
(replace 'install install) (replace 'install install)
(add-after 'build 'package package) (add-after 'build 'package package)
(add-after 'unpack 'unpack-rust-crates unpack-rust-crates) (add-after 'unpack 'prepare-rust-crates prepare-rust-crates)
(add-after 'prepare-rust-crates 'unpack-rust-crates unpack-rust-crates)
(add-after 'configure 'check-for-pregenerated-files check-for-pregenerated-files) (add-after 'configure 'check-for-pregenerated-files check-for-pregenerated-files)
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums patch-cargo-checksums))) (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums patch-cargo-checksums)))
+10 -1
View File
@@ -62,6 +62,14 @@ that incorporate timestamps as a way to tell them to use a fixed timestamp.
See https://reproducible-builds.org/specs/source-date-epoch/." See https://reproducible-builds.org/specs/source-date-epoch/."
(setenv "SOURCE_DATE_EPOCH" "1")) (setenv "SOURCE_DATE_EPOCH" "1"))
(define* (set-GUIX_GCC_MANGLE_PREFIX_MAP #:rest _)
"Set the 'GUIX_GCC_MANGLE_PREFIX_MAP' environment variable.
Guix applies 'gcc-mangle-guix-store.patch' to ensure that there are no
hardcoded references to inputs from the store in derivation outputs due to
macro expansions of __FILE__. Prefix mangling is enabled when this variable
is set. See https://codeberg.org/guix/guix/issues/2394."
(setenv "GUIX_GCC_MANGLE_PREFIX_MAP" "1"))
(define (first-subdirectory directory) (define (first-subdirectory directory)
"Return the file name of the first sub-directory of DIRECTORY or false, when "Return the file name of the first sub-directory of DIRECTORY or false, when
there are none." there are none."
@@ -936,7 +944,8 @@ that traversing all the RUNPATH entries entails."
(let-syntax ((phases (syntax-rules () (let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...))))) ((_ p ...) `((p . ,p) ...)))))
(phases separate-from-pid1 (phases separate-from-pid1
set-SOURCE-DATE-EPOCH set-paths install-locale unpack set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH
set-paths install-locale unpack
bootstrap bootstrap
patch-usr-bin-file patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs patch-source-shebangs configure patch-generated-file-shebangs

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