1
0
forked from tribes/guix

Compare commits

...

168 Commits

Author SHA1 Message Date
Zheng Junjie 07d4667b99 gnu: libgc: Add static output.
* gnu/packages/bdw-gc.scm (libgc)[arguments]<#:configure-flags>: Add
--enable-static.
<#:phases>: Add move-static-library phase.
[outputs]: Add static.

* gnu/packages/bdw-gc.scm (libgc/static-libs): Use define-deprecated/public-alias.
* gnu/packages/make-bootstrap.scm (make-guile-static): Use libgc:static.

Change-Id: If793d090dd34272a489f6175ac34fbc2c033072a
2026-05-22 10:09:06 +08:00
Ludovic Courtès ceead91168 gnu: gcc-mesboot: Build in parallel.
This can significantly reduce build times for gcc-core-mesboot1@4.6.4
gcc-mesboot1@4.6.4, and gcc-mesboot@4.9.4.

Partially addresses guix/guix#7449.

* gnu/packages/commencement.scm (gcc-core-mesboot1)[arguments]:
Drop #:parallel-build? #f argument.

Change-Id: I02ff0d304c086eac457da6abf38cb176af71fc63
2026-05-18 19:21:07 +02:00
Nicolas Graves 82e042d8fe gnu: bzip2: Don't refer to "bzip2" input label.
This is a follow-up to both 9e5d5f4f6e
and 6a35591167, those three commits
should most likely be merged together.

Change-Id: I48fe4ad99cc14acdbdf339bea78c68a8c0056e4a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8111
2026-05-18 19:12:09 +02:00
Nicolas Graves 8ddbf2ec2a gnu: bzip2: Improve style.
* gnu/packages/compression.scm (bzip2)[arguments]: Improve style:
Put <#:make-flags> and <#:tests?> keywords on top.
<#:phases>: Drop trailing #t, use gexps when simpler.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:09 +02:00
Nicolas Graves 2624a5fef2 gnu: %boot4-inputs: Don't drop %bootstrap-coreuils&co on the hurd.
This is a follow-up to c0d0623d4f and
can be merged with it.

* gnu/packages/commencement.scm (%boot4-inputs): Only drop
bash-mesboot rather, thus avoiding to drop %bootstrap-coreuils&co on
the hurd.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:09 +02:00
Nicolas Graves bc078c274a gnu: tcc-boot: Remove unused reference to absent libc.
* gnu/packages/commencement.scm (tcc-boot) [arguments]<#:phases>:
Remove unused reference to absent libc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves f7a4538595 gnu: glibc: Improve kernel headers fetch.
This is a follow-up to 7ecda67dfa and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves 25768be900 gnu: glibc: Correct style.
This is a follow-up to e24af7c41b and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves 5c7e74f198 gnu: hurd-core-headers: Adapt to the input-labels-drop.
This is a follow-up to 616abd90a3 and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves 98c39a6a15 gnu: make-libstdc++: Improve gcc detection.
This is a follow-up to ff1ac2d8c1 and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves 31d51697eb gnu: gcc-mesboot: Improve kernel headers fetch.
This is a follow-up to 1a15e067283e69bffe58cf68804e344a32ad1ef6 and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves 7e9a3cf120 gnu: glibc-mesboot: Improve kernel headers fetch.
This is a follow-up to 0749348e9a and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves 54376cfcdb gnu: glibc-headers-mesboot: Improve kernel headers fetch.
This is a follow-up to eb504359c7
and can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:08 +02:00
Nicolas Graves bb5405a109 gnu: gcc-core-mesboot1: Improve kernel headers fetch.
This is a follow-up to 431298f758 and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves 5600320877 gnu: glibc-mesboot0: Improve kernel headers fetch.
This is a follow-up to e639999ba7 and
can be merged with it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves 989fde4f5f gnu: %boot2-inputs: Remove %bootstrap-gcc.
This is a follow-up to 438bb5cf9e and
can be squashed with it.

Change-Id: I1ee11974e2438e22fb44f7d25068a7b9cdc47f25
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves 68acbd9507 gnu: %boot1-inputs: Re-inject %bootstrap-gcc by default.
This is a follow-up to 0598da6766 and
should be merged with it.

Fixes: guix/guix#8103
Change-Id: I926532d4efb1dfd1ccb219fa1e706ad30eb2f48f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves 98683348d7 gnu: ghc-9.4: Drop patch.
This is a follow-up to 88d75f99c3 and
can be merged with it.

Change-Id: Iee8d8991e0abddb5b0a22c02b3153fda02d52ac2
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves 84c6c5fa80 gnu: python-boot0: Fix build on hurd.
This is a follow-up to e46f164339 and
can be merged with it.

Fixes: guix/guix#8101
Change-Id: Id2a4f10ad8ad3738715bb087a5e0c34ff9a99e7e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves bf04164bb4 gnu: bootstrap: Fix x86_64-gnu hashes.
This is a follow-up to 94565a7df0 and
should be squashed with this commit.

Fixes: guix/guix#8093
Change-Id: I12def34b1709044d959e89c0db8b4644a5c1b0c8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves cbb311e047 gnu: hurd-core-headers-boot0: Fix inputs.
This is a follow-up to e46f164339
and can be squashed with this commit.

* gnu/packages/commencement.scm (hurd-core-headers-boot0)[inputs]: Fix
them.

Fixes: guix/guix#8099
Change-Id: I53434a27223e798188303fdef57dcbad53ba438d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:07 +02:00
Nicolas Graves 76bbe0b88b gnu: make: Fix build.
This is a follow-up to 2f1badab08 and
can be squashed with it.

* gnu/packages/base.scm (gnu-make)[arguments]: Use G-expressions for
configure-flags.

Fixes: guix/guix#8096
Change-Id: I1e37a266c1b034c58e3a8fb43414870515ea3a94
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-18 19:12:06 +02:00
Martin Schitter 2dc5f4b4ce gnu: gettext-minimal: Modify gettext-tools/gnulib-tests/test-lock for riscv64
* gnu/packages/gettext.scm (gettext-minimal)[arguments]: In ‘patch-tests’
phase, add ‘substitute*’ use for riscv64-linux.

Change-Id: I75f27d602f44ea76198819df5736ee26fe782fda
Merges: guix/guix#1207
2026-04-19 15:37:45 +02:00
Martin Schitter cf0b29d05f gnu: coreutils: Modify gnulib-tests/test-lock for riscv64
* gnu/packages/base.scm (coreutils)[arguments]: Add ‘modify-test-lock’ phase
for riscv64-linux.

Change-Id: Ic3fc25de49d6aa233cead2a04d6a2aaed77f6151
2026-04-19 15:36:46 +02:00
Martin Schitter 4cfd583258 gnu: libunistring: Modify tests/test-lock for riscv64
* gnu/packages/libunistring.scm (libunistring)[arguments]: Add
‘modify-test-lock’ phase for riscv64-linux.

Change-Id: I57f37383744fd1ee2c4839dd7d54d04167905b0c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-19 15:36:40 +02:00
Martin Schitter a43c5036c5 gnu: findutils: Modify gnulib-tests/test-lock for riscv64
* gnu/packages/base.scm (findutils)[arguments]: Add ‘modify-test-lock’ phase
for riscv64-linux.

Change-Id: I506d28d387505dceb6acf77163335f9762c877ab
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-04-19 15:35:11 +02:00
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
57 changed files with 3384 additions and 3202 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.
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
(phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack
(phases separate-from-pid1
set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH
set-paths install-locale unpack
bootstrap
patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
@@ -1298,7 +1300,7 @@ Or from the REPL:
(add-to-load-path "/path/to/guix/checkout")
,use (guix build gnu-build-system)
(map car %standard-phases)
@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
@result{} (separate-from-pid1 set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
@end lisp
If you want to know more about what happens during those phases, consult the
+5 -5
View File
@@ -75,6 +75,7 @@
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
# Copyright © 2025 bdunahu <bdunahu@operationnull.com>
# Copyright © 2025 Nikita Mitasov <me@ch4og.com>
#
# 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-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-2.41-fix-cross.patch \
%D%/packages/patches/binutils-reproducible-tar.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bmake-run-check-separately.patch \
%D%/packages/patches/boolector-find-googletest.patch \
@@ -1318,6 +1320,7 @@ dist_patch_DATA = \
%D%/packages/patches/flatpak-fix-fonts-icons.patch \
%D%/packages/patches/flatpak-fix-icon-validation.patch \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/flex-fix-make-dependencies.patch \
%D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \
%D%/packages/patches/fluxbox-1.3.7-gcc.patch \
%D%/packages/patches/fmt-9-overspecified-tests.patch \
@@ -1375,6 +1378,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-fix-texi2pod.patch \
%D%/packages/patches/gcc-hurd-split-stack.patch \
%D%/packages/patches/gcc-libstdc++-newer-gcc.patch \
%D%/packages/patches/gcc-mangle-guix-store.patch \
%D%/packages/patches/gcc-4.8-libsanitizer-fix.patch \
%D%/packages/patches/gcc-4.9-inline.patch \
%D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \
@@ -1442,7 +1446,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-basement-fix-32-bit.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-testsuite-grep-compat.patch \
%D%/packages/patches/ghc-testsuite-recomp015-execstack.patch \
%D%/packages/patches/ghc-aeson-encodeDouble.patch \
%D%/packages/patches/ghc-basement-fix-32bit.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
@@ -1484,6 +1487,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-cross-objdump.patch \
%D%/packages/patches/glibc-dl-cache.patch \
%D%/packages/patches/glibc-guix-locpath.patch \
%D%/packages/patches/glibc-fix-path-attribute-in-getconf.patch \
%D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
%D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
@@ -1824,8 +1828,6 @@ dist_patch_DATA = \
%D%/packages/patches/libtiff-CVE-2022-34526.patch \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.patch \
%D%/packages/patches/libtool-grep-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libtree-fix-check-non-x86.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \
@@ -1856,7 +1858,6 @@ dist_patch_DATA = \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-13-gcc-14.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/lua-CVE-2014-5461.patch \
%D%/packages/patches/lua-pkgconfig.patch \
@@ -1982,7 +1983,6 @@ dist_patch_DATA = \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/newlib-getentropy.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/nnpack-system-libraries.patch \
%D%/packages/patches/nsis-env-passthru.patch \
+2 -2
View File
@@ -43,7 +43,7 @@
(define-public acl
(package
(name "acl")
(version "2.3.1")
(version "2.3.2")
(source
(origin
(method url-fetch)
@@ -51,7 +51,7 @@
version ".tar.gz"))
(sha256
(base32
"1bqi7hj0xkpivwg7lx5cv3yvs9ks1i6azvpgbvfpzcq1i736233n"))))
"0z1gi82zc2xcbchfagd7apn2s7camaagj8y6hmysl1wpcanxnasz"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
+57 -43
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2018, 2020-2022, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
@@ -157,7 +157,7 @@ know anything about Autoconf or M4.")
(base32
"0niz4852fgyavfh3gr4h4kzalk01nk70v6vfsja6r3ap349mr25s"))))))
(define-public autoconf autoconf-2.69)
(define-public autoconf autoconf-2.72)
(define-public autoconf-2.68
(package (inherit autoconf)
@@ -438,14 +438,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public automake
(package/inherit automake-1.16.5
(name "automake")
(version "1.17")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"146rkdcwri2dkwn3pjrjs9v0wm4xyav9vvq4yw5vj4qy87yc2849"))
"11v8ckqx7z8hv4mq9dnhg58cwnssaa7l9136yndbhlc34xis72hn"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))
(arguments
@@ -483,16 +483,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public libtool
(package
(name "libtool")
(version "2.4.7")
(version "2.5.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz"))
(sha256
(base32
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))
(patches (search-patches "libtool-skip-tests2.patch"
"libtool-grep-compat.patch"))))
"0xb64rhambx6mhxwr613xgyad7ybs5hgmpmd9gccf2vbcrh5h7zq"))))
(build-system gnu-build-system)
(propagated-inputs (list m4))
(native-inputs
@@ -506,43 +504,59 @@ Makefile, simplifying the entire process for the developer.")
autoconf-wrapper)) ; others on 'autom4te'
(arguments
`(;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags '("--disable-ltdl-install")
(list ;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags #~'("--disable-ltdl-install")
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
;; Also, do not run tests when cross compiling
#:tests? ,(not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
;; The 'libtool' script refers to the toolchain; tolerate it.
#:disallowed-references '()
#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda* (#:key inputs native-inputs parallel-tests? #:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Patch references to /bin/sh.
(let ((/bin/sh (search-input-file (or native-inputs inputs) "bin/sh")))
(substitute* "tests/testsuite"
(("/bin/sh") /bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%" file)
(substitute* file
(("^#!.*/bin/sh") "#!/bin/sh")))
(find-files dir))))))))
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
;; Also, do not run tests when cross compiling
#:tests? (not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'skip-some-tests-on-extra-archs
(lambda _
(with-directory-excursion "tests"
(substitute* '("demo.at" "testsuite")
(("hppa\\*\\|amd64\\*\\|x86_64\\*\\|s390\\*"
all)
(string-append all "|arm*|mips*|riscv*"))))))
(add-before 'check 'pre-check
(lambda* (#:key inputs native-inputs parallel-tests?
#:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Patch references to /bin/sh.
(let ((/bin/sh (search-input-file (or native-inputs inputs)
"bin/sh")))
(substitute* "tests/testsuite"
(("/bin/sh")
/bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out
"/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%"
file)
(substitute* file
(("^#!.*/bin/sh")
"#!/bin/sh")))
(find-files dir))))))))
(synopsis "Generic shared library support tools")
(description
+334 -318
View File
@@ -24,6 +24,7 @@
;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2025 Nikita Mitasov <me@ch4og.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -119,14 +120,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
(version "3.11")
(version "3.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
"1avf4x8skxbqrjp5j2qr9sp5vlf8jkw2i5bdn51fl3cxx3fsxchx"))
"1f87i907dzw31xy1xr8xjj6z9979qq3bwmypvkm35rlh1ryb4j96"))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs (list perl)) ;some of the tests require it
@@ -247,47 +248,49 @@ implementation offers several extensions over the standard utility.")
(build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space.
(arguments
`(,@(cond
((target-hurd?)
'(#:make-flags
(list (string-append
"TESTSUITEFLAGS= -k '"
"!sparse"
",!renamed dirs in incrementals"
",!--exclude-tag option in incremental pass"
",!incremental dumps with -C"
",!incremental dumps of nested directories"
",!incremental restores with -C"
",!concatenated incremental archives (renames)"
",!renamed directory containing subdirectories"
",!renamed subdirectories"
",!chained renames"
",!Directory"
"'"))))
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
;; due to the small HDD and RAM present on these devices.
((target-ppc32?)
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
"'!tricky time stamps"
",!storing sparse files > 8G'"))))
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
;; skipping the test for this release on 32-bit systems.
((target-32bit?)
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
(else '()))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
,@(if (target-hurd32?)
(list #:configure-flags ''("--disable-year2038"))
'())
#:phases (modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/system.c"
(("/bin/sh")
(string-append bash "/bin/sh")))))))))
(append
(cond
((target-hurd?)
'(#:make-flags
(list (string-append
"TESTSUITEFLAGS= -k '"
"!sparse"
",!renamed dirs in incrementals"
",!--exclude-tag option in incremental pass"
",!incremental dumps with -C"
",!incremental dumps of nested directories"
",!incremental restores with -C"
",!concatenated incremental archives (renames)"
",!renamed directory containing subdirectories"
",!renamed subdirectories"
",!chained renames"
",!Directory"
"'"))))
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
;; due to the small HDD and RAM present on these devices.
((target-ppc32?)
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
"'!tricky time stamps"
",!storing sparse files > 8G'"))))
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
;; skipping the test for this release on 32-bit systems.
((not (target-64bit?))
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
(else '()))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
(if (target-hurd32?)
(list #:configure-flags #~(list "--disable-year2038"))
'())
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
(substitute* "src/system.c"
(("/bin/sh")
(search-input-file inputs "bin/sh")))))))))
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
;; to refer to the target Bash.
@@ -306,41 +309,8 @@ standard utility.")
(license gpl3+)
(home-page "https://www.gnu.org/software/tar/")))
;;; TODO: Replace/merge with 'patch' on core-updates.
(define-public patch/pinned
(hidden-package
(package
(name "patch")
(version "2.7.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/patch/patch-"
version ".tar.xz"))
(sha256
(base32
"1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"))
(patches (search-patches "patch-hurd-path-max.patch"))))
(build-system gnu-build-system)
(arguments
;; Work around a cross-compilation bug whereby libpatch.a would provide
;; '__mktime_internal', which conflicts with the one in libc.a.
(if (%current-target-system)
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
'()))
(native-inputs (list ed))
(synopsis "Apply differences to originals, with optional backups")
(description
"Patch is a program that applies changes to files based on differences
laid out as by the program \"diff\". The changes may be applied to one or more
files depending on the contents of the diff file. It accepts several
different diff formats. It may also be used to revert previously applied
differences.")
(license gpl3+)
(home-page "https://savannah.gnu.org/projects/patch/"))))
(define-public patch
(package
(inherit patch/pinned)
(name "patch")
(version "2.8")
(source (origin
@@ -350,13 +320,27 @@ differences.")
(sha256
(base32
"1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q"))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments patch/pinned)
((#:configure-flags flags #~'())
(if (target-hurd32?)
#~(cons* "--disable-year2038"
#$flags)
flags))))
(list
#:configure-flags
#~(append
(if #$(%current-target-system)
(list "gl_cv_func_working_mktime=yes")
'())
(if #$(target-hurd32?)
(list "--disable-year2038")
'()))))
(native-inputs (list ed))
(synopsis "Apply differences to originals, with optional backups")
(description
"Patch is a program that applies changes to files based on differences
laid out as by the program \"diff\". The changes may be applied to one or more
files depending on the contents of the diff file. It accepts several
different diff formats. It may also be used to revert previously applied
differences.")
(license gpl3+)
(home-page "https://savannah.gnu.org/projects/patch/")
(properties '())))
(define-public diffutils
@@ -447,6 +431,14 @@ interactive means to merge two files.")
"gnulib-tests/test-strerror_r.c"
(("(^| )main *\\(.*" all)
(string-append all "{\n exit (77);//"))))))
'())
,@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
'((add-before 'check 'modify-test-lock
(lambda _
(substitute* "gnulib-tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))))
'()))))
(synopsis "Operating on files matching given criteria")
(description
@@ -515,6 +507,14 @@ used to apply commands with arbitrarily long arguments.")
(("/bin/sh") (which "sh")))
(substitute* (find-files "tests" "\\.sh$")
(("#!/bin/sh") (string-append "#!" (which "sh"))))))
,@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
'((add-before 'check 'modify-test-lock
(lambda _
(substitute* "gnulib-tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))))
'())
(add-after 'unpack 'remove-tests
(lambda _
,@(if (system-hurd?)
@@ -632,20 +632,21 @@ standard.")
(inputs (list guile-3.0))
(outputs '("out" "debug"))
(arguments
`(,@(if (target-hurd?)
'(#:configure-flags '("CFLAGS=-D__alloca=alloca"
"ac_cv_func_posix_spawn=no"))
'())
(append
(if (target-hurd?)
(list #:configure-flags #~(list "CFLAGS=-D__alloca=alloca"
"ac_cv_func_posix_spawn=no"))
(list))
(list
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
#~(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(substitute* "src/job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))
(format #f "default_shell = \"~a\";\n"
(search-input-file inputs "/bin/sh"))))))))))
(synopsis "Remake files automatically")
(description
"Make is a program that is used to control the production of
@@ -669,17 +670,17 @@ change. GNU make offers many powerful extensions over the standard utility.")
(base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
(arguments
`(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))))
(list
#:configure-flags #~(list "CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a\";\n"
(search-input-file inputs "/bin/sh")))))))))))
(define-public binutils
(package
@@ -693,6 +694,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
(sha256
(base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn"))
(patches (search-patches
"binutils-reproducible-tar.patch"
"binutils-2.41-fix-cross.patch"
"binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
@@ -728,7 +730,8 @@ change. GNU make offers many powerful extensions over the standard utility.")
;; For some reason, the build machinery insists on rebuilding .info
;; files, even though they're already provided by the tarball.
#:make-flags #~'("MAKEINFO=true")))
(native-inputs (list bison)) ;needed to build 'gprofng'
(native-inputs (list bison ;needed to build 'gprofng'
perl)) ;needed to build the man pages (pod2man)
(synopsis "Binary utilities: bfd gas gprof ld")
(description
"GNU Binutils is a collection of tools for working with binary files.
@@ -908,6 +911,7 @@ the store.")
(list "glibc-ldd-powerpc.patch"
"glibc-2.41-ldd-x86_64.patch"
"glibc-2.40-dl-cache.patch"
"glibc-fix-path-attribute-in-getconf.patch"
"glibc-2.37-versioned-locpath.patch"
;; "glibc-allow-kernel-2.6.32.patch"
"glibc-guix-locpath.patch"
@@ -957,247 +961,259 @@ the store.")
"static")) ;9 MiB of .a files
(arguments
`(#:out-of-source? #t
(list
#:out-of-source? #t
;; The libraries have an empty RUNPATH, but some, such as the versioned
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks.
#:validate-runpath? #f
;; The libraries have an empty RUNPATH, but some, such as the versioned
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks.
#:validate-runpath? #f
#:modules ((ice-9 ftw)
#:modules `((ice-9 ftw)
(ice-9 match)
(srfi srfi-1)
(srfi srfi-26)
(guix build gremlin)
(guix build utils)
(guix build gnu-build-system))
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags '("--strip-debug")
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags #~'("--strip-debug")
#:configure-flags
(list "--sysconfdir=/etc"
#:configure-flags
#~(list "--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want.
;;
;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;;
;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
,(version-major+minor version))
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want.
;;
;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;;
;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
#$(version-major+minor version))
(string-append "--with-headers="
(assoc-ref ,(if (%current-target-system)
'%build-target-inputs
'%build-inputs)
"kernel-headers")
"/include")
;; Here we need to refer to kernel headers and not glibc-mesboot
(string-append
"--with-headers="
(and=>
(find
(match-lambda
((label . input)
(and (directory-exists?
(string-append input "/include/" #$(if (system-hurd?)
"mach"
"linux")))
;; Ensure we're not refering to another libc.
(not (file-exists?
(string-append input "/include/locale.h"))))))
#$(if (%current-target-system)
#~%build-target-inputs
#~%build-inputs))
cdr) "/include")
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0"
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0"
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash")
"/bin/bash")
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(search-input-file %build-inputs "/bin/bash"))
;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them.
,@(if (target-hurd?)
`("--disable-werror")
'()))
;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them.
#$@(if (target-hurd?)
#~("--disable-werror")
#~()))
#:tests? #f ; XXX
#:phases (modify-phases %standard-phases
(add-before
'configure 'pre-configure
(lambda* (#:key inputs native-inputs outputs
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
;; FIXME: Normally we would look it up only in INPUTS
;; but cross-base uses it as a native input.
(bash (or (assoc-ref inputs "static-bash")
(assoc-ref native-inputs "static-bash"))))
;; Install the rpc data base file under `$out/etc/rpc'.
(substitute* "inet/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append out "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " out "/etc/rpc\n")))
#:tests? #f ; XXX
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let* ((bin (string-append #$output "/bin"))
(bash (find
(match-lambda
((label . input)
(let ((sh (string-append input "/bin/sh")))
(and (file-exists? sh)
;; Is it bash-static specifically? The
;; label can't be used because of
;; bash-mesboot during the bootstrap.
(not (file-dynamic-info sh))))))
inputs))
(bash (and=> bash cdr)))
;; Install the rpc data base file under `$out/etc/rpc'.
(substitute* "inet/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append #$output "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " #$output "/etc/rpc\n")))
(substitute* "Makeconfig"
;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC
;; 4.7.1.
((" -lgcc_s") ""))
(substitute* "Makeconfig"
;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC
;; 4.7.1.
((" -lgcc_s") ""))
;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\"")))
;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\"")))
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n"
bash)))
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n" bash)))
;; Same for `popen'.
(substitute* "libio/iopopen.c"
(("/bin/sh")
(string-append bash "/bin/sh")))
;; Same for `popen'.
(substitute* "libio/iopopen.c"
(("/bin/sh")
(string-append bash "/bin/sh")))
;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n")))
;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n")))
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
(("^#!.*")
;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
(("^#!.*")
;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
(add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC.
(add-after 'install 'move-static-libs
(lambda _
;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC.
(define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header.
(let ((file (string-append (assoc-ref outputs "out")
"/lib/" file)))
(and (ar-file? file)
(= (stat:size (stat file)) 8))))
(define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header.
(let ((file (string-append #$output "/lib/" file)))
(and (ar-file? file)
(= (stat:size (stat file)) 8))))
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
(not (string-contains file "_nonshared"))
(not (empty-static-library? file))))
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
(not (string-contains file "_nonshared"))
(not (empty-static-library? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
;; linker script.
(and (not (ar-file? file))
(not (elf-file? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
;; linker script.
(and (not (ar-file? file))
(not (elf-file? file))))
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(files (scandir lib static-library?))
(empty (scandir lib empty-static-library?))
(static (assoc-ref outputs "static"))
(slib (string-append static "/lib")))
(mkdir-p slib)
(for-each (lambda (base)
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
(for-each (lambda (base)
(copy-file (string-append lib "/" base)
(string-append slib "/" base)))
empty)
(let* ((lib (string-append #$output "/lib"))
(files (scandir lib static-library?))
(empty (scandir lib empty-static-library?))
(slib (string-append #$output:static "/lib")))
(mkdir-p slib)
(for-each (lambda (base)
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
(for-each (lambda (base)
(copy-file (string-append lib "/" base)
(string-append slib "/" base)))
empty)
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
;; instead of OUT.
(for-each (lambda (ld-script)
(substitute* ld-script
((out) static)))
(filter linker-script?
(map (cut string-append slib "/" <>)
files))))))
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
;; instead of OUT.
(for-each (lambda (ld-script)
(substitute* ld-script
((#$output)
#$output:static)))
(filter linker-script?
(map (cut string-append slib "/" <>)
files))))))
(add-after 'install 'install-utf8-c-locale
(lambda* (#:key outputs #:allow-other-keys)
;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(locale (string-append out "/lib/locale/"
,(package-version
this-package))))
(mkdir-p locale)
(add-after 'install 'install-utf8-c-locale
(lambda _
;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around.
(let ((bin (string-append #$output "/bin"))
(locale (string-append #$output "/lib/locale/"
#$(package-version
this-package))))
(mkdir-p locale)
;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version.
(invoke ,(if (%current-target-system)
"true"
'(string-append bin "/localedef"))
"--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8")))))
;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version.
(invoke #$(if (%current-target-system)
"true"
#~(string-append bin "/localedef"))
"--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8")))))
,@(if (target-hurd?)
`((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so"))))))
(add-after 'install 'create-machine-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(cpu ,(match (or (%current-target-system)
(%current-system))
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append
out "/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'()))))
#$@(if (target-hurd?)
#~((add-after 'install 'augment-libc.so
(lambda _
(substitute* (string-append #$output "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append #$output "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))))
(add-after 'install 'create-machine-symlink
(lambda _
(let* ((cpu #$(match (or (%current-target-system)
(%current-system))
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append #$output
"/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
#~()))))
(inputs `(("static-bash" ,static-bash)))
(inputs (list static-bash))
;; To build the manual, we need Texinfo and Perl. Gettext is needed to
;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
("bison" ,bison)
("gettext" ,gettext-minimal)
("python" ,python-minimal)
,@(if (target-hurd?)
`(("mig" ,mig)
("perl" ,perl))
'())))
(native-inputs
(append
(list bison
gettext-minimal
perl
python-minimal
texinfo)
(if (target-hurd?)
(list mig)
(list))))
(native-search-paths
;; Search path for packages that provide locale data. This is useful
;; primarily in build environments. Use 'GUIX_LOCPATH' rather than
@@ -1300,8 +1316,8 @@ with the Linux kernel.")
;; The C.UTF-8 fails to build in glibc 2.35:
;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>.
;; It is missing altogether in versions earlier than 2.35.
`(modify-phases ,phases
(delete 'install-utf8-c-locale)))))))
#~(modify-phases #$phases
(delete 'install-utf8-c-locale)))))))
(define-public glibc-2.33
(package
@@ -1342,9 +1358,9 @@ with the Linux kernel.")
"libc_cv_cxx_link_ok=no"
#$flags))
((#:phases phases)
`(modify-phases ,phases
;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale)))))))
#~(modify-phases #$phases
;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale)))))))
(define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC."
+10 -44
View File
@@ -66,7 +66,7 @@
(define (patch-url seqno)
"Return the URL of Bash patch number SEQNO."
(format #f "mirror://gnu/bash/bash-5.2-patches/bash52-~3,'0d" seqno))
(format #f "mirror://gnu/bash/bash-5.3-patches/bash53-~3,'0d" seqno))
(define (bash-patch seqno sha256-bv)
"Return the origin of Bash patch SEQNO, with expected hash SHA256-BV."
@@ -79,47 +79,13 @@
(list (bash-patch seqno (base32 hash))
...))
(define %patch-series-5.2
;; This is the current patches series for 5.2, generated using
(define %patch-series-5.3
;; This is the current patches series for 5.3, generated using
;; 'download-patches' below.
(patch-series
(1 "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl")
(2 "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25")
(3 "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba")
(4 "04i5liw5cg6dqkdxfgazqc2jrw40bmclx3dx45bwy259pcj7g0iq")
(5 "0mykflv9qnbx3jz71l4f7isadiw9knm4qimqkwsv9cv88dafpq7c")
(6 "13265akl8w6zyrg0l7f0x6arjgqjhllcwl6lk46rl53x4mm5dq6i")
(7 "146lrwkn5wgxzs6vx34wl47g69zsxdy032k40qzi626b47ya6015")
(8 "1s5i8hcayrv25lc8fxcr431v634yx5sii53b8fmip789s0pxjjvb")
(9 "1kfk25151ka9wkmk1myf12irgcmvhsd8b0nfifvhrszah9w82npr")
(10 "1kf1jrwm30js0v3d1r2rk4x09s1pyjp70wnd1qqhf9bmkw15ww67")
(11 "1x5nkvbj6hci7gx42q7qa72hg2a9wwxh85dk79gn521ypwjmy6w3")
(12 "0b6lcwzm7v5bzjiwaz2c8n5aj77w8ckhp2vwk4v3zsdq3z70gc9g")
(13 "1rkwpibd6j2ghppfhqsva2jm4kdni6b7jpdsxdps52643gc4yjq9")
(14 "09766vqqw4ffnmysm725v35qkhp1g9j4qgqag941xvq655pj9y9y")
(15 "12im449abnq5gaqjmdxr5i38kmp02fa8l8wffad3jryvd58r0wzg")
(16 "05arb0hzmng03cr357lf6p8af0x2a1pznsd3psll03nibfy56n0m")
(17 "129cvx4gfz8n23iw1lhbknbw86fyw6vh60jqj1wj3d5pr75wwj0w")
(18 "105am94qxjc27gga4a8asvsi01090xwjfim3s16lafwjvm4xsha6")
(19 "10njgv5mrc5rhsp5lvxcbm0pnzn59a8spi2nhdasifyl1a32cp1j")
(20 "07f0wlmqjdfarp44w3gj9gdqbqm5x20rvlhpn34ngklmxcm2bz5n")
(21 "1kahfqqalcwi4m73pg3ssz6lh0kcqsqax09myac7a15d2y0vhd43")
(22 "0w74aym0g1fh48864a3qxh89f26iaq7wsbg7244c6kjr94527dbq")
(23 "1lywjqbc36j5pdzfcvnz1zy30j76aqmsm190p888av0hw815b45g")
(24 "1hq23djqbr7s9y2324jq9mxr5bwdkmgizn3zgpchbsqp054k85cp")
(25 "0x9hc4silzl4d3zw4p43i5dm7w86k50j47f87lracwfgwy3z8f2i")
(26 "1b1fhm1dsi67r8ip17s0xvx2qq31fsxc1g9n3r931dd0k9a1zvln")
(27 "0fdbhvs9dkf4knncifh98a76q4gylhyvfrffq5p9q3ag5q58jap1")
(28 "1hdacd6sssjshmry1sscdnxxfb2r51bvdyghlfjaqgc9l85phhk0")
(29 "11wrlb20w6v89b96krg0gwxipwhvrda6rq1y9f972m32gsrsqp0j")
(30 "13v9fqgim082dmvkslsr0hs793yzhsij2s91mjswsfhj1qip7zy3")
(31 "15d7rddj6spwc1fy997lxx6zvzq0zbxgf2h20mhi4wgp5nzbglf2")
(32 "05ia6yf32hjprmyyxqawhgckxs3684ikfx8xg08zfgx9xkd7g73v")
(33 "1qm2aad9mf2xah6xwchga7s5pk3v308mrv9lgh50d65d236ccgh1")
(34 "0bi38dhkkwpm2qrzp8zpykglq6gibvv2n9f8m59gwj406cxvp7w9")
(35 "1r8k34y82v02yfkgws17j7i53ybb74dqnwl2jjiv0av9z93hl6l2")
(36 "0mwhr9hfbh2czf8klbxg6nbd2g9xl9kygvgk061vird56r4kzj8m")
(37 "156sbi3srzkyxajkmhb7iigq0j4nvwnpsbw88xdsxn95a4xiqb4a")))
(1 "0zr8wgg1gb67vxn7ws971n1znrdinczymc688ndnpy2a6qs88q0z")
(2 "009051z55plsy4jmmjdb3ys7li2jraynz99qg7n6a1qk025591g3")
(3 "1vb0gnrkmz49rcfpxjcxy0v0k5278wrlkljk9gc20nizvk3xjigj")))
(define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of
@@ -157,7 +123,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
" -Wl,-rpath -Wl,"
(assoc-ref %build-inputs "ncurses")
"/lib")))
(version "5.2"))
(version "5.3"))
(package
(name "bash")
(source (origin
@@ -166,11 +132,11 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
"mirror://gnu/bash/bash-" version ".tar.gz"))
(sha256
(base32
"1yrjmf0mqg2q8pqphjlark0mcmgf88b0acq7bqf4gx3zvxkc2fd1"))
"1fii1xaxbng9x0klxmxkm0xhmycngfz72jsgyrna4sgqcmlxhp0d"))
(patch-flags '("-p0"))
(patches (cons (search-patch "bash-linux-pgrp-pipe.patch")
%patch-series-5.2))))
(version (string-append version "." (number->string (length %patch-series-5.2))))
%patch-series-5.3))))
(version (string-append version "." (number->string (length %patch-series-5.3))))
(build-system gnu-build-system)
(outputs '("out"
+18 -12
View File
@@ -6,6 +6,7 @@
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2026 Zheng Junjie <z572@z572.online>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,6 +24,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bdw-gc)
#:use-module (guix deprecation)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
@@ -55,6 +57,8 @@
#~(list
;; Install gc_cpp.h et al.
"--enable-cplusplus"
;; Used by 'guile-static'.
"--enable-static"
;; In GNU/Hurd systems during the 'check' phase,
;; there is a deadlock caused by the 'gctest' test.
@@ -68,7 +72,17 @@
#~())
#$@(if (target-mingw?)
#~("--enable-threads=pthreads")
#~())))
#~()))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'move-static-library
(lambda _
(for-each
(lambda (a)
(install-file a (string-append #$output:static
"/lib"))
(delete-file a))
(find-files (string-append #$output "/lib") "\\.a"))))))
(cond
((target-ppc64le?)
(list #:make-flags
@@ -87,7 +101,7 @@
;; cross-compiling, and demands using libatomic-ops instead.
(list libatomic-ops)
'()))
(outputs '("out" "debug"))
(outputs '("out" "debug" "static"))
(properties
'((release-monitoring-url . "https://www.hboehm.info/gc/gc_source/")
(upstream-name . "gc")))
@@ -112,16 +126,8 @@ C or C++ programs, though that is not its primary goal.")
(license (x11-style (string-append home-page "license.txt")))))
;; TODO: Add a static output in libgc in the next rebuild cycle.
(define-public libgc/static-libs
(package/inherit
libgc
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags #~'())
#~(cons "--enable-static" #$flags))))
(properties '((hidden? . #t)))))
;; XXX: Deprecated on <2026-04-25>.
(define-deprecated/public-alias libgc/static-libs libgc)
(define-public libgc-7
(package
+31 -25
View File
@@ -21,14 +21,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bison)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages flex)
#:use-module (gnu packages m4)
#:use-module (gnu packages perl)
#:use-module (gnu packages 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))
(define-public bison
@@ -45,24 +46,29 @@
"1wjvbbzrr16k1jlby3l436an3kvv492h08arbnf0gwgprha05flv"))))
(build-system gnu-build-system)
(arguments
`(;; Building in parallel on many-core systems may cause an error such as
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
;; directory". See <https://bugs.gnu.org/36238>.
#:parallel-build? #f
;; Similarly, when building tests in parallel, Make may produce this error:
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
;; or directory". Full log in <https://bugs.gnu.org/36238>.
#:parallel-tests? #f
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
;; but does not link to it.
,@(if (target-hurd?)
(list #:configure-flags ''("LIBS=-lpthread"))
'())))
(native-inputs (list perl
;; m4 is not present in PATH when cross-building.
m4))
(inputs (list flex))
(propagated-inputs (list m4))
(list
;; Building in parallel on many-core systems may cause an error such as
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
;; directory". See <https://bugs.gnu.org/36238>.
#:parallel-build? #f
;; Similarly, when building tests in parallel, Make may produce this error:
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
;; or directory". Full log in <https://bugs.gnu.org/36238>.
#:parallel-tests? #f
#:configure-flags
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
;; but does not link to it.
(if (target-hurd?)
#~(list "LIBS=-lpthread")
#~(list))))
(native-inputs
(list perl
;; m4 is not present in PATH when cross-building.
m4))
(inputs
(list flex))
(propagated-inputs
(list m4))
(home-page "https://www.gnu.org/software/bison/")
(synopsis "Yacc-compatible parser generator")
(description
@@ -72,4 +78,4 @@ grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages.
Bison also provides an implementation of @command{yacc}, as specified by POSIX.")
(license gpl3+)))
(license license:gpl3+)))
+272 -306
View File
@@ -37,7 +37,7 @@
#:select (raw-derivation derivation-input derivation->output-path))
#:use-module (guix utils)
#:use-module ((guix build utils) #:select (elf-file?))
#:use-module ((guix gexp) #:select (lower-object local-file))
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix memoization)
#:use-module (guix i18n)
@@ -204,10 +204,7 @@ for system '~a'")
(uri (map (cute string-append <>
(bootstrap-executable-file-name system program))
%bootstrap-executable-base-urls))
;; XXX: In the long term, migrate all boostrap executables to
;; (string-append "bootstrap-" program), and drop the additional
;; file-name argument.
(file-name file-name)
(file-name (string-append "bootstrap-" program))
(hash (content-hash bv sha256))))))))
(define* (bootstrap-executable program system #:optional file-name)
@@ -267,32 +264,33 @@ or false to signal an error."
(version "0")
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(tarball (assoc-ref %build-inputs
#$(string-append name ".tar.xz"))))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
,@(if snippet (list snippet) '())
(or (not ,program-to-test)
(invoke (string-append "bin/" ,program-to-test)
"--version"))))))))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
#$@(if snippet (list snippet) '())
(or (not #$program-to-test)
(invoke (string-append "bin/" #$program-to-test)
"--version"))))))))
(inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("tarball" ,(bootstrap-origin (source (%current-system))))))
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-origin (source (%current-system)))))
(source #f)
(synopsis description)
(description description)
@@ -635,37 +633,29 @@ $out/bin/guile --version~%"
(_
"/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls))
(file-name "bootstrap-binaries.tar.xz")
(sha256
(match system
("x86_64-linux"
(base32
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4"))
("i686-linux"
(base32
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
("armhf-linux"
(base32
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
("aarch64-linux"
(base32
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
("powerpc64le-linux"
(base32
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
("i586-gnu"
(base32
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
("x86_64-gnu"
(base32
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v"))
("powerpc-linux"
(base32
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
("riscv64-linux"
(base32
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
("mips64el-linux"
(base32
(base32
(match system
("x86_64-linux"
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")
("i686-linux"
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")
("armhf-linux"
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")
("aarch64-linux"
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")
("powerpc64le-linux"
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")
("i586-gnu"
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")
("x86_64-gnu"
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v")
("powerpc-linux"
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
("riscv64-linux"
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
("mips64el-linux"
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
"fgrep" ; the program to test
"Bootstrap binaries of Coreutils, Awk, etc."
@@ -693,6 +683,7 @@ $out/bin/guile --version~%"
"/i686-linux/20190815/"
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
%bootstrap-base-urls))
(file-name "linux-libre-headers-bootstrap.tar.xz")
(sha256
(base32
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
@@ -700,63 +691,56 @@ $out/bin/guile --version~%"
"Bootstrap linux-libre-headers"))
(define %bootstrap-binutils
(package-from-tarball "binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
(match system
("armhf-linux"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
("powerpc64le-linux"
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match system
("x86_64-linux"
(base32
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20"))
("i686-linux"
(base32
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
("armhf-linux"
(base32
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
("aarch64-linux"
(base32
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
("powerpc64le-linux"
(base32
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
("riscv64-linux"
(base32
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
("i586-gnu"
(base32
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
("x86_64-gnu"
(base32
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04"))
("powerpc-linux"
(base32
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8"))
("mips64el-linux"
(base32
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(package-from-tarball
"binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
(match system
("armhf-linux"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
("powerpc64le-linux"
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
(file-name "binutils-bootstrap.tar.xz")
(sha256
(base32
(match system
("x86_64-linux"
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")
("i686-linux"
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")
("armhf-linux"
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")
("aarch64-linux"
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")
("powerpc64le-linux"
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")
("riscv64-linux"
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")
("i586-gnu"
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")
("x86_64-gnu"
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04")
("powerpc-linux"
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
("mips64el-linux"
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(define %bootstrap-glibc
;; The initial libc.
@@ -766,99 +750,91 @@ $out/bin/guile --version~%"
(source #f)
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(tarball (assoc-ref %build-inputs "glibc.tar.xz")))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
(mkdir #$output)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
;; Patch linker scripts so they refer to the right file-names.
(substitute* ,(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?))
(or (target-x86?)
(target-arm?)))
''("lib/libc.so" "lib/libpthread.so"))
(else
''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append out "/lib/" prefix)))
,@(if (target-arm32?)
`((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
`())))))))
;; Patch linker scripts so they refer to the right file-names.
(substitute* #$(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?))
(or (target-x86?)
(target-arm?)))
''("lib/libc.so" "lib/libpthread.so"))
(else
''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append #$output "/lib/" prefix)))
#$@(if (target-arm32?)
#~((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
#~())))))))
(inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v"))
("i686-linux"
(base32
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
("armhf-linux"
(base32
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
("aarch64-linux"
(base32
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
("powerpc64le-linux"
(base32
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
("riscv64-linux"
(base32
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
("i586-gnu"
(base32
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2"))
("x86_64-gnu"
(base32
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy"))
("powerpc-linux"
(base32
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb"))
("mips64el-linux"
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
(file-name "glibc.tar.xz")
(sha256
(base32
(match (%current-system)
("x86_64-linux"
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")
("i686-linux"
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")
("armhf-linux"
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")
("aarch64-linux"
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")
("powerpc64le-linux"
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")
("riscv64-linux"
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")
("i586-gnu"
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")
("x86_64-gnu"
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy")
("powerpc-linux"
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
("mips64el-linux"
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library")
(description synopsis)
(home-page #f)
@@ -873,110 +849,102 @@ $out/bin/guile --version~%"
(source #f)
(build-system trivial-build-system)
(arguments
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 popen))
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils)
(ice-9 popen))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(bash (assoc-ref %build-inputs "bash"))
(libc (assoc-ref %build-inputs "libc"))
(tarball (assoc-ref %build-inputs "tarball")))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(bash (assoc-ref %build-inputs "bootstrap-bash"))
(libc (assoc-ref %build-inputs "glibc-bootstrap"))
(tarball (assoc-ref %build-inputs "gcc.tar.xz")))
(mkdir out)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append out "/bin")))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append #$output "/bin")))
(define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped)
(call-with-output-file program
(lambda (p)
(format p "#!~a
(define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped)
(call-with-output-file program
(lambda (p)
(format p "#!~a
exec ~a/bin/~a -B~a/lib \
-Wl,-rpath -Wl,~a/lib \
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
bash
out wrapped
libc libc libc
,(glibc-dynamic-linker)))))
(chmod program #o555))
bash
#$output wrapped
libc libc libc
#$(glibc-dynamic-linker)))))
(chmod program #o555))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion bindir
(chmod "." #o755)
(for-each wrap-program
,(if (target-hurd64?)
''("gcc" "g++")
''("gcc")))))))))
(with-directory-excursion bindir
(chmod "." #o755)
(for-each wrap-program
#$(if (target-hurd64?)
''("gcc" "g++")
''("gcc")))))))))
(inputs
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("bash" ,(bootstrap-executable "bash" (%current-system)))
("libc" ,%bootstrap-glibc)
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
("i686-linux"
(base32
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
("armhf-linux"
(base32
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
("aarch64-linux"
(base32
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
("powerpc64le-linux"
(base32
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
("riscv64-linux"
(base32
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
("i586-gnu"
(base32
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
("x86_64-gnu"
(base32
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz"))
("powerpc-linux"
(base32
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w"))
("mips64el-linux"
(base32
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-executable "bash" (%current-system))
%bootstrap-glibc
(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
(file-name "gcc.tar.xz")
(sha256
(base32
(match (%current-system)
("x86_64-linux"
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")
("i686-linux"
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")
("armhf-linux"
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")
("aarch64-linux"
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")
("powerpc64le-linux"
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")
("riscv64-linux"
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")
("i586-gnu"
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")
("x86_64-gnu"
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz")
("powerpc-linux"
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
("mips64el-linux"
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
(native-search-paths
(list (search-path-specification
(variable "C_INCLUDE_PATH")
@@ -997,14 +965,12 @@ exec ~a/bin/~a -B~a/lib \
;; own packages.
(match (%current-system)
((or "i686-linux" "x86_64-linux")
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)))
(list %bootstrap-linux-libre-headers))
(_
`(("libc" ,%bootstrap-glibc)
("gcc" ,%bootstrap-gcc)
("binutils" ,%bootstrap-binutils)
("coreutils&co" ,%bootstrap-coreutils&co)
;; In gnu-build-system.scm, we rely on the availability of Bash.
("bash" ,%bootstrap-coreutils&co)))))
(list %bootstrap-glibc
%bootstrap-gcc
%bootstrap-binutils
%bootstrap-coreutils&co))))
(define %bootstrap-inputs-for-tests
;; These are bootstrap inputs that are cheap to produce (no compilation
+1216 -1187
View File
File diff suppressed because it is too large Load Diff
+34 -42
View File
@@ -321,7 +321,11 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
"0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"))))
(build-system gnu-build-system)
(arguments
(list #:modules '((guix build gnu-build-system)
(list #:make-flags #~(list (string-append "PREFIX=" #$output))
;; Don't attempt to run the tests when cross-compiling.
#:tests? (not (%current-target-system))
#:modules '((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
(srfi srfi-1))
@@ -329,20 +333,21 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
#~(modify-phases %standard-phases
(add-after 'set-paths 'hide-input-bzip2
(lambda* (#:key inputs #:allow-other-keys)
(let ((bzip2 (assoc-ref inputs "bzip2")))
(if bzip2
(let ((libbz2.so (false-if-exception
(search-input-file inputs "lib/libbz2.so"))))
(if libbz2.so
;; Prevent the build system from retaining a reference to
;; BZIP2 from INPUTS.
;; BZIP2 from INPUTS (used in both implicit and bootstrap).
(begin
(setenv "LIBRARY_PATH"
(string-join (delete (string-append bzip2 "/lib")
(string-split (getenv "LIBRARY_PATH")
#\:))
":"))
(let ((library-path (string-split (getenv "LIBRARY_PATH")
#\:)))
(setenv "LIBRARY_PATH"
(string-join (delete (dirname libbz2.so)
library-path)
":")))
(format #t "environment variable `LIBRARY_PATH' set to `~a'~%"
(getenv "LIBRARY_PATH")))
(format #t "no bzip2 found, nothing done~%"))
#t)))
(format #t "no bzip2 found, nothing done~%")))))
(replace 'configure
(lambda* (#:key target #:allow-other-keys)
(when #$(%current-target-system)
@@ -356,8 +361,7 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(string-append "RANLIB = " target "-ranlib\n"))
(("^all:(.*)test" _ prerequisites)
;; Remove 'all' -> 'test' dependency.
(string-append "all:" prerequisites "\n"))))
#t))
(string-append "all:" prerequisites "\n"))))))
(add-before 'build 'build-shared-lib
(lambda* (#:key inputs #:allow-other-keys)
(patch-makefile-SHELL "Makefile-libbz2_so")
@@ -366,8 +370,7 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(lambda* (#:key outputs #:allow-other-keys)
;; The Makefile above does not have an 'install' target, nor does
;; it create all the (un)versioned symlinks, so we handle it here.
(let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib"))
(let* ((libdir (string-append #$output "/lib"))
(soname "libbz2.so")
;; Locate the built library (e.g. "libbz2.so.1.0.6").
(lib (car (scandir "."
@@ -384,32 +387,19 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(unless (null? numbers)
(let ((so-file (string-append base "." (car numbers))))
(symlink so-file base)
(loop so-file (cdr numbers))))))
#t)))
(loop so-file (cdr numbers)))))))))
(add-after 'install-shared-lib 'move-static-lib
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(with-directory-excursion (string-append out "/lib")
(install-file "libbz2.a" (string-append static "/lib"))
(delete-file "libbz2.a")
#t))))
(lambda _
(with-directory-excursion (string-append #$output "/lib")
(install-file "libbz2.a" (string-append #$output:static "/lib"))
(delete-file "libbz2.a"))))
(add-after 'install-shared-lib 'patch-scripts
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/bin/bzdiff")
(("/bin/rm") "rm")))
#t)))
#:make-flags #~(list (string-append "PREFIX="
(assoc-ref %outputs "out")))
;; Don't attempt to run the tests when cross-compiling.
#:tests? (not (%current-target-system))))
(inputs
`(,@(if (%current-target-system)
`(("bash" ,bash-minimal))
'())))
(lambda _
(substitute* (string-append #$output "/bin/bzdiff")
(("/bin/rm") "rm")))))))
(inputs (if (%current-target-system)
(list bash-minimal)
(list)))
(outputs '("out" "static"))
(synopsis "High-quality data compression program")
(description
@@ -554,7 +544,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(define-public xz
(package
(name "xz")
(version "5.4.5")
(version "5.8.1")
(source (origin
(method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version
@@ -563,7 +553,7 @@ formats, including zstd, xz, gzip, and bgzf.")
version ".tar.gz")))
(sha256
(base32
"1mmpwl4kg1vs6n653gkaldyn43dpbjh8gpk7sk0gps5f6jwr0p0k"))))
"0hsmg58a27jd1vq0lc6yp405978c1nfhqwndl7f10v1mk6sjay2h"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -581,7 +571,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(substitute* (string-append out "/lib/liblzma.la")
(("^old_library='liblzma.a'") "old_library=''"))
#t))))))
(outputs '("out" "static"))
(outputs '("out" "static" "doc"))
(inputs
`(,@(if (%current-target-system)
`(("bash" ,bash-minimal))
@@ -598,6 +588,8 @@ compression algorithm is currently LZMA2, which is used inside the .xz
container format. With typical files, XZ Utils create 30 % smaller output
than gzip and 15 % smaller output than bzip2.")
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both
(properties
`((output-synopsis "doc" "API documentation and example code")))
(home-page "https://tukaani.org/xz/")))
(define-public heatshrink
+72 -75
View File
@@ -567,16 +567,15 @@ the base compiler. Use XBINUTILS as the associated cross-Binutils."
(srfi srfi-26))
,@(package-arguments glibc/hurd-headers))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
#t)))))
#~(modify-phases #$phases
(add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
'#$%gcc-cross-include-paths))))))
((#:configure-flags flags)
`(cons* ,(string-append "--build=" (%current-system))
,(string-append "--host=" target)
@@ -691,80 +690,78 @@ returned."
(name (string-append "glibc-cross-" target))
(arguments
(substitute-keyword-arguments
`(;; Disable stripping (see above.)
#:strip-binaries? #f
`(;; Disable stripping (see above.)
#:strip-binaries? #f
;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include
;; itself.
#:implicit-cross-inputs? #f
;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include
;; itself.
#:implicit-cross-inputs? #f
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
,@(package-arguments libc))
((#:configure-flags flags)
`(cons ,(string-append "--host=" target)
,(if (target-hurd? target)
`(append (list "--disable-werror")
,flags)
,@(package-arguments libc))
((#:configure-flags flags)
#~(cons #$(string-append "--host=" target)
#$(if (target-hurd? target)
#~(append (list "--disable-werror")
#$flags)
flags)))
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ; for Hurd's libihash
#t)))
(add-before 'configure 'add-cross-binutils-to-PATH
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; -print-prog-name=objdump' returns the correct name. See
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
(define cross-objdump
(search-input-file
(or native-inputs inputs)
(string-append ,target "/bin/objdump")))
((#:phases phases)
#~(modify-phases #$phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
'#$%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib"))))) ; for Hurd's libihash
(add-before 'configure 'add-cross-binutils-to-PATH
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; -print-prog-name=objdump' returns the correct name. See
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
(define cross-objdump
(search-input-file
(or native-inputs inputs)
(string-append #$target "/bin/objdump")))
(define cross-binutils
(dirname cross-objdump))
(define cross-binutils
(dirname cross-objdump))
(format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils)
(setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH")))))
(format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils)
(setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH")))))
;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale)
;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale)
,@(if (target-hurd? target)
`((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so"))))))
(add-after 'install 'create-machine-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(cpu ,(match target
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
#$@(if (target-hurd? target)
#~((add-after 'install 'augment-libc.so
(lambda _
(substitute* (string-append #$output "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append #$output "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))))
(add-after 'install 'create-machine-symlink
(lambda _
(let ((cpu #$(match target
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append
out "/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'())))))
#$output
"/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
#~())))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "kernel-headers" input to point to the right thing.
+2 -16
View File
@@ -113,14 +113,7 @@
(for-each (lambda (x)
(install-file x "aclocal"))
(find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments)
(let ((automake-files (search-input-directory
(or native-inputs inputs)
"share/automake-1.16")))
(define (replace file)
(symlink (string-append automake-files "/" file) file))
(for-each replace '("config.sub" "config.guess"
"install-sh"))))))
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
#$@(if (or (target-arm?)
(target-riscv64?))
#~((add-after 'unpack 'bdb-configure-patch
@@ -202,14 +195,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(for-each (lambda (x)
(install-file x "aclocal"))
(find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments)
(let ((automake-files (search-input-directory
(or native-inputs inputs)
"share/automake-1.16")))
(define (replace file)
(symlink (string-append automake-files "/" file) file))
(for-each replace '("config.sub" "config.guess"
"install-sh"))))))
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
(add-before 'configure 'pre-configure
(lambda _
(chdir "dist")
+7 -5
View File
@@ -48,7 +48,7 @@
(define-public nuspell
(package
(name "nuspell")
(version "5.1.4")
(version "5.1.7")
(source
(origin
(method git-fetch)
@@ -58,12 +58,14 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "05j1hmczy6v9dyxp77vxhgyl7y5hff3v45vlp86gyh7m9lgqpmra"))))
(base32 "1xvy8qrpw1282akr873xzja61afnr27f1gab6jc4cgy8pkfqq308"))))
(build-system cmake-build-system)
(arguments
(if (%current-target-system)
(list #:configure-flags #~(list "-DBUILD_TESTING=OFF"))
'()))
(list #:configure-flags
#~(list "-DBUILD_DOCS=OFF" ;do not pull Pandoc
#$@(if (%current-target-system)
'("-DBUILD_TESTING=OFF")
'()))))
(native-inputs (list catch2-3 pkg-config))
(propagated-inputs (list icu4c))
(native-search-paths (list (search-path-specification
+11 -9
View File
@@ -135,6 +135,7 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages javascript)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent)
@@ -2720,16 +2721,17 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(define-public freecad
(package
(name "freecad")
(version "1.0.2")
(version "1.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/FreeCAD/FreeCAD")
(commit version)))
(commit version)
(recursive? #t))) ;needed for the AddonManager
(file-name (git-file-name name version))
(sha256
(base32 "1zyz473fzrz9h073wp4k65qq4bkhqsp245nsv6nv186sl78l99xa"))
(base32 "029ndw1dypx0xhs4fyiinf7gpk8am0vm9b24idvdsx9x7ghrqz4j"))
(snippet
#~(begin
(use-modules (guix build utils))
@@ -2746,7 +2748,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
#:configure-flags
#~(list
"-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
"-DFREECAD_QT_VERSION=6" ;; Build with Qt6
"-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=ON" ;; unbundle ondsel-solver
@@ -2768,12 +2770,13 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(list c++-gsl
doxygen
graphviz
pybind11
qttools
pkg-config
swig-4.0))
swig-4.4))
(inputs
(list bash-minimal
boost-1.83
boost
coin3d
double-conversion
eigen
@@ -2783,6 +2786,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
gl2ps
glew
hdf5-1.10
icu4c
jsoncpp
libarea
libjpeg-turbo
@@ -2805,16 +2809,14 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
python-ply
python-pyside-6
python-pyyaml
python-shiboken-6
python-wrapper
qtsvg
qtwebchannel
qtwebengine
qtwayland
qtx11extras
sqlite
onetbb ;same version as opencascade-occt
vtk-9.5
vtk
xerces-c
yaml-cpp
zlib))
+23 -23
View File
@@ -26,6 +26,7 @@
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages bison)
@@ -43,18 +44,9 @@
"flex-" version ".tar.gz"))
(sha256
(base32
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))))
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))
(patches (search-patches "flex-fix-make-dependencies.patch"))))
(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
(if (%current-target-system)
(list #:configure-flags
@@ -63,21 +55,29 @@
'()))
;; m4 is not present in PATH when cross-building
(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))
(home-page "https://github.com/westes/flex")
(synopsis "Fast lexical analyser generator")
(description
"Flex is a tool for generating scanners. A scanner, sometimes
called a tokenizer, is a program which recognizes lexical patterns in
text. The flex program reads user-specified input files, or its standard
input if no file names are given, for a description of a scanner to
generate. The description is in the form of pairs of regular expressions
and C code, called rules. Flex generates a C source file named,
\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\"
can be compiled and linked to produce an executable. When the executable
is run, it analyzes its input for occurrences of text matching the
regular expressions for each rule. Whenever it finds a match, it
executes the corresponding C code.")
"Flex is a tool for generating scanners. A scanner, sometimes called a
tokenizer, is a program which recognizes lexical patterns in text. The flex
program reads user-specified input files, or its standard input if no file
names are given, for a description of a scanner to generate. The description
is in the form of pairs of regular expressions and C code, called rules. Flex
generates a C source file named @file{lex.yy.c}, which defines the function
@code{yylex()}. The @file{lex.yy.c} can be compiled and linked to produce an
executable. When the executable is run, it analyzes its input for occurrences
of text matching the regular expressions for each rule. Whenever it finds a
match, it executes the corresponding C code.")
(license (non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
+4 -4
View File
@@ -41,13 +41,13 @@
(define-public gawk
(package
(name "gawk")
(version "5.3.0")
(version "5.3.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-" version
".tar.xz"))
(sha256
(base32 "02x97iyl9v84as4rkdrrkfk2j4vy4r3hpp3rkp3gh3qxs79id76a"))))
(base32 "1k699kfajwzw4dyw1m9h9kld1gdv00nfy04b2f952w6y15jlihzq"))))
(build-system gnu-build-system)
(arguments
(list #:phases
@@ -56,7 +56,7 @@
(lambda* (#:key inputs #:allow-other-keys)
;; Refer to the right shell.
(let ((/bin/sh (search-input-file inputs "bin/sh")))
(substitute* "io.c"
(substitute* '("io.c" "builtin.c")
(("/bin/sh") /bin/sh))
;; When cross-compiling, remove dependencies on the
@@ -73,7 +73,7 @@
;; Remove dependency on 'more' (from util-linux), which
;; would needlessly complicate bootstrapping.
(substitute* "test/Makefile"
(("\\| more") ""))
(("\\| \\$\\$\\{PAGER:-more\\}") ""))
;; Adjust the shebang in that file since it is then diff'd
;; against the actual test output.
+263 -265
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)
;; Triplets recognized by glibc as denoting the N64 ABI; see
;; ports/sysdeps/mips/preconfigure.
'("--with-abi=64"))
#~(list "--with-abi=64"))
((string-match "^arm.*-gnueabihf$" target)
'("--with-arch=armv7-a"
"--with-float=hard"
"--with-mode=thumb"
"--with-fpu=neon"))
#~(list "--with-arch=armv7-a"
"--with-float=hard"
"--with-mode=thumb"
"--with-fpu=neon"))
((string-match "x86_64-linux-gnux32" target)
'("--with-abi=mx32"))
#~(list "--with-abi=mx32"))
((and (string-suffix? "-gnu" target)
(not (string-contains target "-linux")))
@@ -97,36 +97,24 @@ where the OS part is overloaded to denote a specific ABI---into GCC
;; with:
;; libcilkrts/runtime/os-unix.c:388:2: error: #error "Unknown architecture"
;; Cilk has been removed from GCC 8 anyway.
'("--disable-libcilkrts"))
#~(list "--disable-libcilkrts"))
;; glibc needs the 128-bit long double type on these architectures.
((or (string-prefix? "powerpc64le-" 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:
;; <https://bugs.gentoo.org/show_bug.cgi?id=843989>.
((target-mingw? target)
'("--disable-gcov"))
#~(list "--disable-gcov"))
(else
;; TODO: Add `arm.*-gnueabi', etc.
'())))
#~(list))))
(define-public gcc-base
(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
(let ((base '(or (assoc-ref outputs "lib")
(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.
(if (%current-target-system)
`(string-append ,base "/" ,(%current-target-system))
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))))))
base)))))
(hidden-package
(package
(name "gcc")
@@ -202,201 +152,239 @@ where the OS part is overloaded to denote a specific ABI---into GCC
texinfo-5))
(arguments
`(#:out-of-source? #t
#:configure-flags ,(configure-flags)
(list
#:out-of-source? #t
#:configure-flags
#~(append
(list "--enable-plugin"
"--enable-languages=c,c++,objc,obj-c++"
"--disable-multilib"
"--with-system-zlib"
#:make-flags
;; None of the flags below are needed when doing a Canadian cross.
;; 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)))
'())
;; No pre-compiled libstdc++ headers, to save space.
"--disable-libstdcxx-pch"
;; Native programs like 'genhooks' also need that right.
,(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")))))
"--with-local-prefix=/no-gcc-local-prefix"
#: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
(modify-phases %standard-phases
(add-before 'configure 'relax-gcc-14s-strictness
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash"))
(wrapper (string-append (getcwd) "/gcc.sh"))
(stage-wrapper (string-append (getcwd) "/stage-gcc.sh")))
(with-output-to-file wrapper
(lambda _
(format #t "#! ~a/bin/bash
(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.
#$(gcc-configure-flags-for-triplet
(or (%current-target-system)
(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 \"$@\" \
-Wno-error=implicit-function-declaration"
bash)))
(chmod wrapper #o555)
(with-output-to-file stage-wrapper
(lambda _
(format #t "#! ~a/bin/bash
bash)))
(chmod wrapper #o555)
(with-output-to-file stage-wrapper
(lambda _
(format #t "#! ~a
exec \"$@\" \
-Wno-error=implicit-function-declaration"
bash)))
(chmod stage-wrapper #o555)
;; Rather than adding CC to #:configure-flags and
;; STAGE_CC_WRAPPER to #:make-flags, we add them to the
;; environment in this easily removable stage.
(cond (,(%current-target-system) ;cross-build?
(setenv "CC_FOR_BUILD" wrapper))
(else
(setenv "CC" wrapper)
(setenv "STAGE_CC_WRAPPER" stage-wrapper))))))
(add-before 'configure 'pre-configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((libdir ,(libdir))
(libc (assoc-ref inputs "libc")))
(when libc
;; The following is not performed for `--without-headers'
;; cross-compiler builds.
bash)))
(chmod stage-wrapper #o555)
;; Rather than adding CC to #:configure-flags and
;; STAGE_CC_WRAPPER to #:make-flags, we add them to the
;; environment in this easily removable stage.
(cond (#$(%current-target-system) ;cross-build?
(setenv "CC_FOR_BUILD" wrapper))
(else
(setenv "CC" wrapper)
(setenv "STAGE_CC_WRAPPER" stage-wrapper))))))
(add-before 'configure 'pre-configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((libdir #$(libdir))
(libc (assoc-ref inputs "libc")))
(when libc
;; The following is not performed for `--without-headers'
;; cross-compiler builds.
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a
;; single line, to allow the next step to work properly.
(for-each
(lambda (x)
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line)
line)))
'(1 2 3))
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a
;; single line, to allow the next step to work properly.
(for-each
(lambda (x)
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line)
line)))
'(1 2 3))
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$"
_ gnu-user suffix)
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
gnu-user suffix
(string-append libc ,(glibc-dynamic-linker)))))
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$"
_ gnu-user suffix)
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
gnu-user suffix
(string-append libc #$(glibc-dynamic-linker)))))
;; Tell where to find libstdc++, libc, and `?crt*.o', except
;; `crt{begin,end}.o', which come with GCC.
(substitute* (find-files "gcc/config"
"^gnu-user.*\\.h$")
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
;; Help libgcc_s.so be found (see also below.) Always use
;; '-lgcc_s' so that libgcc_s.so is always found by those
;; programs that use 'pthread_cancel' (glibc dlopens
;; libgcc_s.so when pthread_cancel support is needed, but
;; having it in the application's RUNPATH isn't enough; see
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
;;
;; NOTE: The '-lgcc_s' added below needs to be removed in a
;; later phase of %gcc-static. If you change the string
;; below, make sure to update the relevant code in
;; %gcc-static package as needed.
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
;; Tell where to find libstdc++, libc, and `?crt*.o', except
;; `crt{begin,end}.o', which come with GCC.
(substitute* (find-files "gcc/config"
"^gnu-user.*\\.h$")
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
;; Help libgcc_s.so be found (see also below.) Always use
;; '-lgcc_s' so that libgcc_s.so is always found by those
;; programs that use 'pthread_cancel' (glibc dlopens
;; libgcc_s.so when pthread_cancel support is needed, but
;; having it in the application's RUNPATH isn't enough; see
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
;;
;; NOTE: The '-lgcc_s' added below needs to be removed in a
;; later phase of %gcc-static. If you change the string
;; below, make sure to update the relevant code in
;; %gcc-static package as needed.
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
libc libc libdir suffix))
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
libc libc libdir suffix))
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
libc line)))
libc line)))
;; The rs6000 (a.k.a. powerpc) config in GCC does not use
;; GNU_USER_* defines. Do the above for this case.
(substitute*
"gcc/config/rs6000/sysv4.h"
(("#define LIB_LINUX_SPEC (.*)$" _ suffix)
(format #f "#define LIB_LINUX_SPEC \
;; The rs6000 (a.k.a. powerpc) config in GCC does not use
;; GNU_USER_* defines. Do the above for this case.
(substitute*
"gcc/config/rs6000/sysv4.h"
(("#define LIB_LINUX_SPEC (.*)$" _ suffix)
(format #f "#define LIB_LINUX_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
libc libc libdir suffix))
(("#define STARTFILE_LINUX_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
libc libc libdir suffix))
(("#define STARTFILE_LINUX_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
libc line))))
libc line))))
(when (file-exists? "gcc/config/rs6000")
;; Force powerpc libdir to be /lib and not /lib64
(substitute* (find-files "gcc/config/rs6000")
(("/lib64") "/lib")))
(when (file-exists? "gcc/config/rs6000")
;; Force powerpc libdir to be /lib and not /lib64
(substitute* (find-files "gcc/config/rs6000")
(("/lib64") "/lib")))
;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;")
"static char const sed_cmd_z[] = \"sed\";"))
;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;")
"static char const sed_cmd_z[] = \"sed\";"))
;; Aarch64 support didn't land in GCC until the 4.8 series.
(when (file-exists? "gcc/config/aarch64")
;; Force Aarch64 libdir to be /lib and not /lib64
(substitute* "gcc/config/aarch64/t-aarch64-linux"
(("lib64") "lib")))
;; Aarch64 support didn't land in GCC until the 4.8 series.
(when (file-exists? "gcc/config/aarch64")
;; Force Aarch64 libdir to be /lib and not /lib64
(substitute* "gcc/config/aarch64/t-aarch64-linux"
(("lib64") "lib")))
;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the
;; gcc:lib output, which causes ld to not find -lgcc_s.
(when (file-exists? "gcc/config/riscv")
(substitute* '("gcc/config/riscv/linux.h"
"gcc/config/riscv/riscv.h") ; GCC < 10
(("define STARTFILE_PREFIX_SPEC")
"define __STARTFILE_PREFIX_SPEC")))
;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the
;; gcc:lib output, which causes ld to not find -lgcc_s.
(when (file-exists? "gcc/config/riscv")
(substitute* '("gcc/config/riscv/linux.h"
"gcc/config/riscv/riscv.h") ; GCC < 10
(("define STARTFILE_PREFIX_SPEC")
"define __STARTFILE_PREFIX_SPEC")))
(when (file-exists? "libbacktrace")
;; GCC 4.8+ comes with libbacktrace. By default it builds
;; with -Werror, which fails with a -Wcast-qual error in glibc
;; 2.21's stdlib-bsearch.h. Remove -Werror.
(substitute* "libbacktrace/configure"
(("WARN_FLAGS=(.*)-Werror" _ flags)
(string-append "WARN_FLAGS=" flags)))
(when (file-exists? "libbacktrace")
;; GCC 4.8+ comes with libbacktrace. By default it builds
;; with -Werror, which fails with a -Wcast-qual error in glibc
;; 2.21's stdlib-bsearch.h. Remove -Werror.
(substitute* "libbacktrace/configure"
(("WARN_FLAGS=(.*)-Werror" _ flags)
(string-append "WARN_FLAGS=" flags)))
(when (file-exists? "libsanitizer/libbacktrace")
;; Same in libsanitizer's bundled copy (!) found in 4.9+.
(substitute* "libsanitizer/libbacktrace/Makefile.in"
(("-Werror")
""))))
(when (file-exists? "libsanitizer/libbacktrace")
;; Same in libsanitizer's bundled copy (!) found in 4.9+.
(substitute* "libsanitizer/libbacktrace/Makefile.in"
(("-Werror")
""))))
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s.
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354>
;; and <http://bugs.gnu.org/20358>.
(substitute* "libstdc++-v3/src/Makefile.in"
(("^OPT_LDFLAGS = ")
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) "))
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s.
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354>
;; and <http://bugs.gnu.org/20358>.
(substitute* "libstdc++-v3/src/Makefile.in"
(("^OPT_LDFLAGS = ")
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) "))
;; Move libstdc++*-gdb.py to the "lib" output to avoid a
;; circularity between "out" and "lib". (Note:
;; --with-python-dir is useless because it imposes $(prefix) as
;; the parent directory.)
(substitute* "libstdc++-v3/python/Makefile.in"
(("pythondir = .*$")
(string-append "pythondir = " libdir "/share"
"/gcc-$(gcc_version)/python\n")))
;; Move libstdc++*-gdb.py to the "lib" output to avoid a
;; circularity between "out" and "lib". (Note:
;; --with-python-dir is useless because it imposes $(prefix) as
;; the parent directory.)
(substitute* "libstdc++-v3/python/Makefile.in"
(("pythondir = .*$")
(string-append "pythondir = " libdir "/share"
"/gcc-$(gcc_version)/python\n")))
;; Avoid another circularity between the outputs: this #define
;; ends up in auto-host.h in the "lib" output, referring to
;; "out". (This variable is used to augment cpp's search path,
;; but there's nothing useful to look for here.)
(substitute* "gcc/config.in"
(("PREFIX_INCLUDE_DIR")
"PREFIX_INCLUDE_DIR_isnt_necessary_here")))))
;; Avoid another circularity between the outputs: this #define
;; ends up in auto-host.h in the "lib" output, referring to
;; "out". (This variable is used to augment cpp's search path,
;; but there's nothing useful to look for here.)
(substitute* "gcc/config.in"
(("PREFIX_INCLUDE_DIR")
"PREFIX_INCLUDE_DIR_isnt_necessary_here")))))
(add-after 'configure 'post-configure
(lambda _
;; Don't store configure flags, to avoid retaining references to
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'.
(substitute* "Makefile"
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))))))
(add-after 'configure 'post-configure
(lambda _
;; Don't store configure flags, to avoid retaining references to
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'.
(substitute* "Makefile"
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))))))
(native-search-paths %gcc-search-paths)
(properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
(synopsis "GNU Compiler Collection")
@@ -440,21 +428,21 @@ Go. It also includes runtime support libraries for these languages.")
`((srfi srfi-1)
,@modules))
((#:phases phases)
`(modify-phases ,phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
#~(modify-phases #$phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
(supported-systems (fold delete %supported-systems
'("aarch64-linux" "riscv64-linux"
"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
;; be adjusted so it does not interfere with GCC's own build processes.
((#:phases phases)
`(modify-phases ,phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
#~(modify-phases #$phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
(supported-systems (fold delete %supported-systems
'("riscv64-linux" "x86_64-gnu")))
(inputs
@@ -981,7 +969,8 @@ It also includes runtime support libraries for these languages.")
(patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.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)))
(snippet gcc-canadian-cross-objdump-snippet)))
(arguments
@@ -1012,7 +1001,8 @@ It also includes runtime support libraries for these languages.")
(base32
"0fna78ly417g69fdm4i5f3ms96g8xzzjza8gwp41lqr5fqlpgp70"))
(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)))
(snippet gcc-canadian-cross-objdump-snippet)))
(arguments (substitute-keyword-arguments arguments
@@ -1045,7 +1035,8 @@ It also includes runtime support libraries for these languages.")
"0knj4ph6y7r7yhnp1v4339af7mki5nkh7ni9b948433bhabdk3s3"))
(patches (search-patches "gcc-12-strmov-store-file-names.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)))
(snippet gcc-canadian-cross-objdump-snippet)))
(arguments
@@ -1196,10 +1187,17 @@ using compilers other than GCC."
#$@(if (version>=? (package-version gcc) "11")
#~((add-after 'unpack 'hide-gcc-headers
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((gcc (assoc-ref (or native-inputs inputs)
#$(if (%current-target-system)
"cross-gcc"
"gcc"))))
;; Depending on the actual gcc input, two locations
;; candidates to check to get gcc from the file tree.
(let* ((gcc-nested (false-if-exception
(search-input-directory
(or native-inputs inputs)
"libexec/gcc")))
(gcc-nested (or gcc-nested
(search-input-file
(or native-inputs inputs)
"bin/gcc")))
(gcc (dirname (dirname gcc-nested))))
;; Fix a regression in GCC 11 where the GCC headers
;; shadows glibc headers when building libstdc++. An
;; upstream fix was added in GCC 11.3.0, but it only
+46 -38
View File
@@ -13,6 +13,7 @@
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2022, 2024, 2025 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer maxim@guixotic.coop>
;;; Copyright © 2026 Robin Templeton <robin@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,24 +58,21 @@
(define-public gettext-minimal
(package
(name "gettext-minimal")
(version "0.23.1")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
"06jgjxnm5xhw0d0zwl9birlwfxfgfqhk9q029j3h9941r5wrpnc5"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;9 MiB of HTML
(inputs
(list libunistring
libxml2
;; TODO: ncurses is only needed for the 'libtextstyle' library.
;; The next version of gettext can use a separate libtextstyle,
;; but for now we include it here in 'gettext-minimal'.
ncurses))
libtextstyle))
(arguments
(list #:configure-flags #~'("--with-included-libunistring=no"
"--with-included-libxml=no")
@@ -93,11 +91,11 @@
(("/bin/pwd") "pwd"))))
(add-before 'check 'patch-tests
(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"
(("^#!.*" all)
(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
;; ISO-8859-1-encoded, so choose it as the default
;; encoding so the byte encoding is preserved.
@@ -106,7 +104,7 @@
(find-files "gettext-tools/tests"
"^(lang-sh|msg(exec|filter)-[0-9])")
(("#![[:blank:]]/bin/sh")
(format #f "#!~a" bash)))
(string-append "#!" bash)))
(substitute* (cons "gettext-tools/src/msginit.c"
(find-files "gettext-tools/gnulib-tests"
@@ -118,12 +116,26 @@
(("/bin/pwd")
"pwd"))
#$@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
#~((substitute* "gettext-tools/gnulib-tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))
#~())
#$@(if (target-hurd?)
#~((substitute*
"gettext-tools/gnulib-tests/Makefile.in"
;; See 'coreutils' for the rationale.
((" 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)
#~((add-after 'install 'patch-cross-shebangs
(lambda _
@@ -151,30 +163,31 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(cpe-name . "gettext")))
(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
(version "0.21")
(version "0.23.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))
(patches (search-patches "gettext-libunicode-update.patch"))))
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
(arguments
(substitute-keyword-arguments arguments
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'touch-test
(lambda _
(with-output-to-file "gettext-tools/gnulib-tests/test-execute.sh"
(lambda _ (display "")))))
(add-before 'check 'patch-test
(lambda _
;; This test fails with ggc-14.
(substitute* "gettext-tools/tests/xgettext-javascript-6"
(("^#!.*" all) (string-append all "exit 77;\n")))))))))))
((#:make-flags flags)
;; these gnulib tests fail with newer libunistring
#~(cons (string-append "XFAIL_TESTS="
"test-uc_tolower "
"test-ctype_alnum "
"test-ctype_alpha "
"test-ctype_graph "
"test-ctype_lower "
"test-ctype_print "
"test-ctype_punct "
"test-ctype_upper") #$flags))))))
;; Use that name to avoid clashes with Guile's 'gettext' procedure.
;;
@@ -203,22 +216,17 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(define-public libtextstyle
(package
(name "libtextstyle")
(version "0.21")
(source (origin
(inherit (package-source gnu-gettext))
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))))
(version (package-version gnu-gettext))
(source (package-source gnu-gettext))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "libtextstyle")
#t)))))
(list
#:configure-flags #~(list "--disable-static")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "libtextstyle"))))))
;; libtextstyle bundles libxml2, glib (a small subset thereof), and
;; libcroco, but it purposefully prevents users from using an external
;; copy, to reduce the startup time of programs using libtextstyle.
+1 -1
View File
@@ -3941,7 +3941,7 @@ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
(list autoconf
automake
texinfo
gettext-minimal
gettext-minimal-0.23 ;for 'AC_LIB_LINKFLAGS_FROM_LIBS'
guile-3.0
pkg-config))
(inputs
+28 -19
View File
@@ -4,7 +4,7 @@
;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.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, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; 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.
#:parallel-build? #f
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 regex))
#:phases
(modify-phases %standard-phases
,@(if (system-hurd?)
@@ -236,22 +240,9 @@ without requiring the source code to be rewritten.")
(add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Tell (ice-9 popen) the file name of Bash.
;; TODO: On the next rebuild cycle, unconditionally use
;; 'search-input-file' instead of 'assoc-ref'.
(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)))
(substitute* "module/ice-9/popen.scm"
(("/bin/sh")
(search-input-file inputs "/bin/bash")))))
(add-after 'install 'add-libxcrypt-reference-pkgconfig
(lambda* (#:key inputs outputs #:allow-other-keys)
(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")
".*\\.pc")
(("-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
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
+14 -13
View File
@@ -1186,8 +1186,7 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/" name "-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
"ghc-testsuite-grep-compat.patch"))
(sha256
(base32
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))
@@ -1241,7 +1240,14 @@ interactive environment for the functional language Haskell.")
(substitute* "libraries/unix/tests/all.T"
(("^test\\('T8108'") "# guix skipped: test('T8108'"))
(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
(variable "GHC_PACKAGE_PATH")
(files (list
@@ -1269,8 +1275,7 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
"ghc-testsuite-grep-compat.patch"))
(sha256
(base32
"0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))
@@ -1329,8 +1334,7 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
"ghc-testsuite-grep-compat.patch"))
(sha256
(base32
"1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))
@@ -1525,8 +1529,7 @@ interactive environment for the functional language Haskell.")
(sha256
(base32
"1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"))
(modules '((guix build utils)))
(snippet
;; collections.Iterable was moved to collections.abc in Python 3.10.
@@ -1612,8 +1615,7 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
(sha256
(base32
"0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"
"ghc-testsuite-recomp015-execstack.patch"))))
(patches (search-patches "ghc-9.2-grep-warnings.patch"))))
,@(filter (match-lambda
(("ghc-bootstrap" . _) #f)
(("ghc-testsuite" . _) #f)
@@ -1722,8 +1724,7 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))
(patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
+22 -17
View File
@@ -246,23 +246,28 @@ Library, Parted and netdde for GNU/Hurd.")
(source #f)
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build union))
#:builder (begin
(use-modules (srfi srfi-1)
(srfi srfi-26)
(ice-9 match)
(guix build union))
(let ((inputs (filter
(compose (cute member <> '("gnumach-headers"
"hurd-headers"
"hurd-minimal"))
car)
%build-inputs)))
(match inputs
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
directories)
#t))))))
'(#:modules ((guix build union)
(guix build utils))
#:builder
(begin
(use-modules (srfi srfi-1)
(ice-9 match)
(guix build union)
(guix build utils))
(union-build (assoc-ref %outputs "out")
(filter-map
(match-lambda
((label . input)
(and (or (directory-exists?
(string-append input "/include/mach"))
(directory-exists?
(string-append input "/include/hurd")))
;; Avoid libc libraries.
(not (file-exists?
(string-append input "/include/locale.h")))
input)))
%build-inputs)))))
(inputs (list gnumach-headers hurd-headers hurd-minimal))
(supported-systems %hurd-systems)
(synopsis "Union of the Hurd headers and libraries")
+2 -2
View File
@@ -27,14 +27,14 @@
(define-public libsigsegv
(package
(name "libsigsegv")
(version "2.14")
(version "2.15")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://gnu/libsigsegv/libsigsegv-"
version ".tar.gz"))
(sha256
(base32 "15d2r831xz94s7540nvb1gbfl062g7mrnj88m60wyr1kh10kkb6d"))))
(base32 "1n992y64ni16bv9lijxsa5h87rscfvk01z4hl4bkijr509k5as03"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/libsigsegv/")
(synopsis "Library for handling page faults")
+10 -2
View File
@@ -36,7 +36,7 @@
(define-public libunistring
(package
(name "libunistring")
(version "1.3")
(version "1.4.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -44,7 +44,7 @@
version ".tar.xz"))
(sha256
(base32
"09wmas38i9fw7l3sv92xkbvy7idcl76ifhzv7l7ia98xhdn7higj"))))
"0qvp61m14xi9kx2gg44rjnq1g8h2g33ni23q0ccqc9r5i4q89n37"))))
(propagated-inputs (libiconv-if-needed))
(outputs '("out" "static"))
(build-system gnu-build-system)
@@ -69,6 +69,14 @@
(("# define WIN32_LEAN_AND_MEAN" all)
(string-append "#define nanosleep nanosleep_native\n"
all))))))
#~())
#$@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
#~((add-before 'check 'modify-test-lock
(lambda _
(substitute* "tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))))
#~()))))
(synopsis "C library for manipulating Unicode strings")
(description
+1 -1
View File
@@ -495,7 +495,7 @@ interface.")
(build-system trivial-build-system)
(native-inputs
`(("config-patch" ,@(search-patches "cl-asdf-config-directories.patch"))
("patch" ,patch/pinned)))
("patch" ,patch)))
(arguments
`(#:modules ((guix build utils)
(guix build lisp-utils))
+2 -24
View File
@@ -37,7 +37,7 @@
(define-public lsof
(package
(name "lsof")
(version "4.99.3")
(version "4.99.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -46,8 +46,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))
(patches (search-patches "lsof-compat-linux-6.9.patch"))))
"08p0c0wci9vam6b29ym7z7sip8gd0j0dz7zy4f0b32dw51rb3z9k"))))
(build-system gnu-build-system)
(native-inputs (list automake
autoconf
@@ -57,27 +56,6 @@
pkg-config
procps ;for ps
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")
(description
"Lsof stands for LiSt Open Files, and it does just that.
+2 -2
View File
@@ -30,14 +30,14 @@
(define-public m4
(package
(name "m4")
(version "1.4.19")
(version "1.4.20")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/m4/m4-"
version ".tar.xz"))
(sha256
(base32
"15mghcksh11saylpm86h1zkz4in0rbi0pk8i6nqxkdikdmfdxbk3"))))
"0axgilr6n88br7msm3ls8m4zlwgk4q3vcjqw1cknqpyg3hxfldp2"))))
(build-system gnu-build-system)
(arguments
`(;; Explicitly disable tests when cross-compiling, otherwise 'make check'
+2 -1
View File
@@ -7,6 +7,7 @@
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2026 Zheng Junjie <z572@z572.online>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -622,7 +623,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(propagated-inputs
(modify-inputs propagated-inputs
(replace "libgc" libgc/static-libs)))
(replace "libgc" `(,libgc "static"))))
(arguments
(substitute-keyword-arguments arguments
+2 -2
View File
@@ -410,7 +410,7 @@ on any distribution, and the nroff source is included."))))
;; input "locales" contain the original (English) text.
(package
(name "help2man")
(version "1.49.2")
(version "1.49.3")
(source
(origin
(method url-fetch)
@@ -418,7 +418,7 @@ on any distribution, and the nroff source is included."))))
version ".tar.xz"))
(sha256
(base32
"0dnxx96lbcb8ab8yrdkqll14cl5n0bch8qpd9qj3c2ky78hhwbly"))))
"0kzxla1w0w4z5la255lg9q51wy3qx8f1b0i6gbhaz9pcybg4yzjd"))))
(build-system gnu-build-system)
(arguments
(list
+105 -62
View File
@@ -166,70 +166,113 @@ bind processes, and much more.")
(define-public hwloc-2
(package
(inherit hwloc-1)
(name "hwloc")
(version "2.13.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.open-mpi.org/release/hwloc/v"
(version-major+minor version)
"/hwloc-" version ".tar.bz2"))
(sha256
(base32
"1aqdznqp7f18yg95vbr5n6ccxxdiywacygvn3wbhzn7bnspkdsaj"))
;; XXX: Remove after updating package from 2.13.0.
(patches (search-patches "hwloc-add-with-opencl.patch"))))
(native-inputs (modify-inputs native-inputs
(append autoconf)
(append automake)
(append libtool)
(append opencl-headers)
(append bash))) ;for completion tests
(inputs (modify-inputs inputs
;; XXX: rocm-smi requires libdrm/drm.h but doesn't propagate a
;; package providing these. For now, libdrm is used to provide
;; this header.
(append libdrm)
(append opencl-icd-loader)
(append rocm-smi-lib)
(delete "numactl"))) ;libnuma is no longer needed.
(propagated-inputs (modify-inputs propagated-inputs
;; hwloc.pc lists libze_loader and libxml2 in
;; 'Requires.private' in 'hwloc.pc'.
(append level-zero libxml2)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/open-mpi/hwloc")
(commit (string-append "hwloc-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1l9skkcizlv0qvw2lzmysndbm528xvszhiqq3569da157qpa5xav"))
;; XXX: Remove after updating package from 2.13.0.
(patches (search-patches "hwloc-add-with-opencl.patch"))))
(build-system gnu-build-system)
(outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc.
"lib" ;small closure
"doc" ;400+ section 3 man pages
"debug"))
(native-inputs
(list autoconf automake libtool opencl-headers bash pkg-config))
(inputs
(append (if (%current-target-system)
'() ;fewer dependencies when cross-compiling
(list libx11 cairo ncurses expat))
(list
;; XXX: rocm-smi requires libdrm/drm.h but doesn't
;; propagate a package providing these. For now, libdrm is
;; used to provide this header.
libdrm
opencl-icd-loader
rocm-smi-lib)))
(propagated-inputs
;; hwloc.pc lists libze_loader and libxml2 in
;; 'Requires.private' in 'hwloc.pc'.
(list level-zero libpciaccess libxml2))
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags '())
#~(cons* (string-append "--with-opencl="
#$(this-package-input "opencl-icd-loader"))
"--enable-rsmi"
(string-append "--with-rocm="
#$(this-package-input "rocm-smi-lib"))
#$flags))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'delete-configure
(lambda _
;; Remove configure file to generate it with patch.
(delete-file "configure")))
(replace 'skip-linux-libnuma-test
(lambda _
;; Arrange to skip 'tests/hwloc/linux-libnuma', which fails on
;; some machines: <https://github.com/open-mpi/hwloc/issues/213>.
(substitute* "tests/hwloc/linux-libnuma.c"
(("numa_available\\(\\)")
"-1"))))
(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)))))))))))
(list
#:configure-flags
#~(list
(string-append
"--with-opencl=" #$(this-package-input "opencl-icd-loader"))
"--enable-rsmi"
(string-append "--with-rocm=" #$(this-package-input "rocm-smi-lib"))
"--localstatedir=/var")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'skip-linux-libnuma-test
(lambda _
;; Arrange to skip 'tests/hwloc/linux-libnuma', which fails on
;; some machines: <https://github.com/open-mpi/hwloc/issues/213>.
(substitute* "tests/hwloc/linux-libnuma.c"
(("numa_available\\(\\)")
"-1"))))
(add-after 'install 'refine-libnuma
;; Give -L arguments for libraries to avoid propagation
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "lib"))
(numa (assoc-ref inputs "numactl")))
(substitute* (map (lambda (f) (string-append out "/" f))
'("lib/pkgconfig/hwloc.pc" "lib/libhwloc.la"))
(("-lnuma" lib)
(string-append "-L" numa "/lib " lib))))))
(add-after 'install 'avoid-circular-references
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (assoc-ref outputs "lib")))
;; Suppress the 'prefix=' and 'exec_prefix=' lines so that the
;; "lib" output doesn't refer to "out".
(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
;; The latest stable series of hwloc.
+2 -29
View File
@@ -42,23 +42,10 @@
#:use-module ((guix memoization) #:select (mlambda))
#: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
(package
(name "ncurses")
(version "6.2.20210619")
(version "6.6.20260103")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ncurses/ncurses-"
@@ -66,7 +53,7 @@
".tar.gz"))
(sha256
(base32
"17bcm2z1rdx5gmzj5fb8cp7f28aw5b4g2z4qvvqg3yg0fq66wc1h"))))
"04gz96vhj83yls2czsajbmc65qsnfrxn2ijcl20h62w8xnxlqnrm"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1 MiB of man pages
@@ -91,18 +78,6 @@
(cons (string-append "--host=" target)
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
#~(lambda _
;; To avoid retaining a reference to the bootstrap Bash via the
@@ -205,8 +180,6 @@
#$@(if (target-mingw?) #~("--enable-term-driver") #~()))
#:tests? #f ; no "check" target
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'apply-rollup-patch
#$apply-rollup-patch-phase)
(replace 'configure #$configure-phase)
(add-after 'install 'post-install
#$post-install-phase)
+23 -16
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; 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.
;;;
@@ -20,35 +20,42 @@
(define-module (gnu packages nickle)
#: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 (guix build-system gnu)
#:use-module (gnu packages ruby-xyz)
#:use-module (guix build-system meson)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public nickle
(package
(name "nickle")
(version "2.97")
(version "2.107")
(source (origin
(method url-fetch)
(uri (string-append "https://nickle.org/release/nickle-"
version ".tar.gz"))
version ".tar.xz"))
(sha256
(base32
"0gqashcs3r0d1yp6rq6q2ayjdwsjxnd8z0ij55ayrbhn296l7mp2"))
(patches (search-patches "nickle-man-release-date.patch"))))
(build-system gnu-build-system)
(inputs (list readline))
"1wli8p5fv2ldy51ycc8pcx8rl3ph2wbyiqs21qpjadlvildaaqj0"))))
(build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-build-date
(lambda _
;; Our patch touches Makefile.am, but rather than rebootstrap,
;; make the substitution directly in Makefile.in.
(substitute* "Makefile.in"
(("BUILD_DATE") "RELEASE_DATE")))))))
(list #:phases #~(modify-phases %standard-phases
(add-before 'configure 'disable-benchmarks
;; Benchmarks would require `gmp` and don't
;; test anything not already covered by other
;; tests, so disable them here.
(lambda _
(substitute* "meson.build"
(("^subdir\\('bench'\\)" &)
(string-append "# " &))))))))
(native-inputs (list bc bison flex pkg-config ruby-asciidoctor-pdf))
(inputs (list readline))
(synopsis "Numeric oriented programming language")
(description
"Nickle is a programming language based prototyping environment with
+2 -2
View File
@@ -82,7 +82,7 @@
(define-public parallel
(package
(name "parallel")
(version "20260222")
(version "20260322")
(outputs '("out" "doc"))
(source
(origin
@@ -90,7 +90,7 @@
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
(base32 "0j0zmq1klbvpz590vr2di8yvsniwixlhsmir7zfjy3rajx42l9y6"))
(base32 "1q7g5f13nlwichgh0dk8w5fqjnfnxvwxk6rjy0fd5l7l6blq0ikn"))
(snippet
'(begin
(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
absolute file name of `sh'.
--- gawk-4.1.3/io.c 2015-05-19 15:37:20.000000000 +0200
+++ gawk-4.1.3/io.c 2015-06-09 18:39:36.918414881 +0200
@@ -2025,7 +2025,7 @@
--- gawk-5.3.2/builtin.c
+++ gawk-5.3.2/builtin.c
@@ -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();
@@ -13,7 +24,7 @@ absolute file name of `sh'.
_exit(errno == ENOENT ? 127 : 126);
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);
@@ -22,21 +33,30 @@ absolute file name of `sh'.
_exit(errno == ENOENT ? 127 : 126);
case -1:
@@ -2422,7 +2422,7 @@
fatal(_("close of pipe failed (%s)"), strerror(errno));
@@ -2475,7 +2475,7 @@ use_pipes:
fatal(_("close of pipe failed: %s"), strerror(errno));
/* stderr does NOT get dup'ed onto child's stdout */
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", str, NULL);
+ execlp("sh", "sh", "-c", str, NULL);
_exit(errno == ENOENT ? 127 : 126);
}
#endif /* NOT __EMX__, NOT __MINGW32__ */
@@ -2659,7 +2659,7 @@
#endif /* NOT __MINGW32__ */
@@ -2706,7 +2706,7 @@ gawk_popen(const char *cmd, struct redirect *rp)
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();
- execl("/bin/sh", "sh", "-c", cmd, NULL);
+ execlp("sh", "sh", "-c", cmd, NULL);
_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
+199 -202
View File
@@ -128,126 +128,125 @@
"perl-reproducible-build-date.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:configure-flags
(let ((out (assoc-ref %outputs "out"))
(libc (assoc-ref %build-inputs "libc")))
(list
(string-append "-Dprefix=" out)
(string-append "-Dman1dir=" out "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
"-Dusethreads"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setup-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right path for `pwd'.
(substitute* "dist/PathTools/Cwd.pm"
(("'/bin/pwd'")
(string-append "'" (search-input-file inputs "bin/pwd") "'")))
(list
#:tests? #f
#:configure-flags
#~(let* ((libc.so (search-input-file %build-inputs "/lib/libc.so"))
(libc (dirname (dirname libc.so))))
(list (string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
"-Dusethreads"))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'setup-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right path for `pwd'.
(substitute* "dist/PathTools/Cwd.pm"
(("'/bin/pwd'")
(string-append "'" (search-input-file inputs "bin/pwd") "'")))
;; Build in GNU89 mode to tolerate C++-style comment in libc's
;; <bits/string3.h>.
(substitute* "cflags.SH"
(("-std=c89")
"-std=gnu89"))))
,@(if (%current-target-system)
`((add-after 'unpack 'unpack-cross
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((cross-checkout
(assoc-ref native-inputs "perl-cross")))
(rename-file "Artistic" "Artistic.perl")
(rename-file "Copying" "Copying.perl")
(copy-recursively cross-checkout "."))
(let ((bash (search-input-file inputs "bin/bash")))
(substitute* '("Makefile.config.SH"
"cnf/config.guess"
"cnf/config.sub"
"cnf/configure"
"cnf/configure_misc.sh"
"miniperl_top")
(("! */bin/sh") (string-append "! " bash))
((" /bin/sh") bash))
(substitute* '("ext/Errno/Errno_pm.PL")
(("\\$cpp < errno.c") "$Config{cc} -E errno.c")))))
(replace 'configure
(lambda* (#:key configure-flags outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(store-directory (%store-directory))
(configure-flags
(cons*
;; `perl-cross' confuses target and host
(string-append "--target=" ,(%current-target-system))
(string-append "--prefix=" out)
(string-append "-Dcc=" ,(%current-target-system) "-gcc")
"-Dbyteorder=1234"
(filter (negate
(lambda (x) (or (string-prefix? "-d" x)
(string-prefix? "-Dcc=" x))))
configure-flags)))
(bash (assoc-ref inputs "bash-minimal")))
(format (current-error-port)
"running ./configure ~a\n"
(string-join configure-flags))
(apply invoke (cons "./configure" configure-flags))
(substitute* "config.sh"
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash))
(substitute* '("config.h")
(("^#define SH_PATH .*")
(string-append "#define SH_PATH \""
bash "/bin/bash\"\n"))))))
(add-after 'build 'touch-non-built-files-for-install
(lambda _
;; `make install' wants to install these although they do
;; not get built...
(with-directory-excursion "cpan"
(mkdir-p "Pod-Usage/blib/script")
(mkdir-p "Pod-Parser/blib/script")
(for-each (lambda (file)
(call-with-output-file file
(lambda (port) (display "" port))))
'("Pod-Usage/blib/script/pod2text"
"Pod-Usage/blib/script/pod2usage"
"Pod-Checker/blib/script/podchecker"
"Pod-Parser/blib/script/podselect"))))))
`((replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format #t "Perl configure flags: ~s~%" configure-flags)
(apply invoke "./Configure" configure-flags)))))
(add-after 'install 'remove-extra-references
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs
,(if (%current-target-system)
"cross-libc" "libc")))
(config1 (car (find-files (string-append out "/lib/perl5")
"^Config_heavy\\.pl$")))
(config2 (find-files (string-append out "/lib/perl5")
"^Config\\.pm$")))
;; Force the library search path to contain only libc because
;; it is recorded in Config.pm and Config_heavy.pl; we don't
;; want to keep a reference to everything that's in
;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file,
;; etc.)
(substitute* config1
(("^incpth=.*$")
(string-append "incpth='" libc "/include'\n"))
(("^(libpth|plibpth|libspath)=.*$" _ variable)
(string-append variable "='" libc "/lib'\n")))
;; Build in GNU89 mode to tolerate C++-style comment in libc's
;; <bits/string3.h>.
(substitute* "cflags.SH"
(("-std=c89")
"-std=gnu89"))))
#$@(if (%current-target-system)
#~((add-after 'unpack 'unpack-cross
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((cross-checkout
(assoc-ref native-inputs "perl-cross")))
(rename-file "Artistic" "Artistic.perl")
(rename-file "Copying" "Copying.perl")
(copy-recursively cross-checkout "."))
(let ((bash (search-input-file inputs "bin/bash")))
(substitute* '("Makefile.config.SH"
"cnf/config.guess"
"cnf/config.sub"
"cnf/configure"
"cnf/configure_misc.sh"
"miniperl_top")
(("! */bin/sh")
(string-append "! " bash))
((" /bin/sh")
bash))
(substitute* '("ext/Errno/Errno_pm.PL")
(("\\$cpp < errno.c")
"$Config{cc} -E errno.c")))))
(replace 'configure
(lambda* (#:key configure-flags inputs #:allow-other-keys)
(let* ((store-directory (%store-directory))
(configure-flags
(cons*
;; `perl-cross' confuses target and host
(string-append "--target=" #$(%current-target-system))
(string-append "--prefix=" #$output)
(string-append "-Dcc=" #$(%current-target-system) "-gcc")
"-Dbyteorder=1234"
(remove (lambda (x) (or (string-prefix? "-d" x)
(string-prefix? "-Dcc=" x)))
configure-flags)))
(bash (assoc-ref inputs "bash-minimal")))
(format (current-error-port)
"running ./configure ~a\n"
(string-join configure-flags))
(apply invoke (cons "./configure" configure-flags))
(substitute* "config.sh"
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash))
(substitute* '("config.h")
(("^#define SH_PATH .*")
(string-append "#define SH_PATH \""
bash "/bin/bash\"\n"))))))
(add-after 'build 'touch-non-built-files-for-install
(lambda _
;; `make install' wants to install these although they do
;; not get built...
(with-directory-excursion "cpan"
(mkdir-p "Pod-Usage/blib/script")
(mkdir-p "Pod-Parser/blib/script")
(for-each (lambda (file)
(call-with-output-file file
(lambda (port) (display "" port))))
'("Pod-Usage/blib/script/pod2text"
"Pod-Usage/blib/script/pod2usage"
"Pod-Checker/blib/script/podchecker"
"Pod-Parser/blib/script/podselect"))))))
#~((replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format #t "Perl configure flags: ~s~%" configure-flags)
(apply invoke "./Configure" configure-flags)))))
(add-after 'install 'remove-extra-references
(lambda* (#:key inputs #:allow-other-keys)
(let* ((lib-perl5 (string-append #$output "/lib/perl5"))
(libc.so (search-input-file
#$(if (%current-target-system)
#~%build-target-inputs
#~%build-inputs)
"/lib/libc.so"))
(libc (dirname (dirname libc.so)))
(config1 (find-files lib-perl5 "^Config_heavy\\.pl$"))
(config2 (find-files lib-perl5 "^Config\\.pm$")))
;; Force the library search path to contain only libc because
;; it is recorded in Config.pm and Config_heavy.pl; we don't
;; want to keep a reference to everything that's in
;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file,
;; etc.)
(substitute* (car config1)
(("^incpth=.*$")
(string-append "incpth='" libc "/include'\n"))
(("^(libpth|plibpth|libspath)=.*$" _ variable)
(string-append variable "='" libc "/lib'\n")))
(for-each (lambda (file)
(substitute* config2
(("libpth => .*$")
(string-append "libpth => '" libc
"/lib',\n"))))
config2)))))))
(substitute* config2
(("libpth => .*$")
(string-append "libpth => '" libc "/lib',\n")))))))))
(inputs
(if (%current-target-system)
(list bash-minimal coreutils-minimal)
@@ -296,46 +295,44 @@ more.")
(properties `((release-date . "2013-03-10")))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "dist/Cwd/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
(list
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "dist/Cwd/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
(invoke "./Configure"
(string-append "-Dprefix=" out)
(string-append "-Dman1dir=" out "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
(invoke "./Configure"
(string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
(add-before 'strip 'make-shared-objects-writable
(lambda* (#:key outputs #:allow-other-keys)
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(for-each (lambda (dso)
(chmod dso #o755))
(find-files lib "\\.so$"))))))))
(add-before 'strip 'make-shared-objects-writable
(lambda _
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(for-each
(lambda (dso) (chmod dso #o755))
(find-files (string-append #$output "/lib") "\\.so$")))))))
(native-inputs
(list gcc-7))
(native-search-paths (list (search-path-specification
@@ -366,55 +363,55 @@ more.")
(hidden? . #t))) ;only for GHC 4.
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "lib/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
(list
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "lib/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
(invoke "./Configure"
(string-append "-Dprefix=" out)
(string-append "-Dman1dir=" out "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3")
"-de" "-Dcc=gcc -std=c90"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
(invoke "./Configure"
(string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc -std=c90"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
(add-after 'configure 'bleh
(lambda _
(substitute* '("makefile"
"x2p/makefile")
((".*\\<command-line>.*") ""))
;; Don't look for /usr/include/errno.h.
(substitute* "ext/Errno/Errno_pm.PL"
(("O eq 'linux'") "O eq 'loonix'"))
(substitute* "ext/IPC/SysV/SysV.xs"
((".*asm/page.h.*") ""))))
(add-before 'strip 'make-shared-objects-writable
(lambda* (#:key outputs #:allow-other-keys)
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(for-each (lambda (dso)
(chmod dso #o755))
(find-files lib "\\.so$"))))))))
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
(add-after 'configure 'bleh
(lambda _
(substitute* '("makefile" "x2p/makefile")
((".*\\<command-line>.*")
""))
;; Don't look for /usr/include/errno.h.
(substitute* "ext/Errno/Errno_pm.PL"
(("O eq 'linux'")
"O eq 'loonix'"))
(substitute* "ext/IPC/SysV/SysV.xs"
((".*asm/page.h.*")
""))))
(add-before 'strip 'make-shared-objects-writable
(lambda _
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(for-each
(lambda (dso) (chmod dso #o755))
(find-files (string-append #$output "/lib") "\\.so$")))))))
(native-inputs '())))
(define-public perl-algorithm-c3
+8 -19
View File
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -50,22 +51,10 @@
(list (readline-patch version seqno (base32 hash))
...))
(define %patch-series-8.2
(define %patch-series-8.3
(patch-series
"8.2"
(1 "1xxgfgr6hn3ads8m8xsrdi1kbx1f3s69k0danpd9x4haqhg7zydv")
(2 "0ly0siy6qy3l7hv12847adpfa34yq1w4qz9qkw6vrxv25j106rg0")
(3 "1c5cwvvkx9mfmpaapymq9cavmzh4fnagkjlchsqx4vml8sx8gx94")
(4 "1b15sndx9v5vj3x1f3h73099nlagknx4rbfpd5ldrbw2xgm2wmvr")
(5 "16ac25jz1a1mgkpfp1sydqf6qpsfh0s0dcmrnjpqbhg5va3s6av2")
(6 "18gmh6y3klh0vv28cyqz4is3rlb32pl7f1kf5r482kfjq3w5zd67")
(7 "1xmnpahs983n4w0gn3j0wr8nh1dpva33yj7fvfmhm46ph2wsa4ar")
(8 "0smjjzhwxi2ibpdisnk53lh1pzgka6rhlqyh3662xy69v34ysxx1")
(9 "05m1fwbs7mbs3pz3pg87gbbayandrrcgaqawzliqb6g1jbk8b61x")
(10 "0k3vyrjs2g6y2cfs03l2gp37fhxgqpiwvxb1c7z4q88cbb32x3km")
(11 "1msdahvz56l9m5m69a87zp2c7qrfv0dxwd09rj1697isgy83s0g0")
(12 "1lybzig73pqpcbw79im0kn6299lkcbnh24yigygn5jm2sj7dz2kc")
(13 "1a48lyrhvn6nbj5qhradfpbbs3md5maz7wb32yvaghvfgnak990y")))
"8.3"
(1 "1pl4midx7kc56bw4ansrdpdjpanv1vmp0p6jghrrgrnv0qqs1w11")))
(define %patch-series-7.0
(patch-series
@@ -79,16 +68,16 @@
(define-public readline
(package
(name "readline")
(version (string-append "8.2."
(number->string (length %patch-series-8.2))))
(version (string-append "8.3."
(number->string (length %patch-series-8.3))))
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/readline/readline-"
(version-major+minor version) ".tar.gz"))
(sha256
(base32
"0dbw02ai0z8x6d9s14pl0hnaa2g1kdxnv8qqra1fx13ay5qp3srz"))
(patches (append %patch-series-8.2
"1k31j1prf9zn86hccay2i49vlzks0cy1v3gfjpa8r0k78hh86lzy"))
(patches (append %patch-series-8.3
(search-patches "readline-link-ncurses.patch")))
(patch-flags '("-p0"))))
(build-system gnu-build-system)
+21 -18
View File
@@ -957,33 +957,36 @@ highlighting tool to ease code review from your terminal.")
(define-public difftastic
(package
(name "difftastic")
(version "0.63.0")
(version "0.68.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "difftastic" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0md332fch4b87akdvljzxp4m2k5yri7cpkz3n54jc762j7j9qmrz"))))
(base32 "012h76wx5jv6czc9j4awfan7vhrc6g5fdgnxrjmzg5q27wn99hn6"))))
(build-system cargo-build-system)
(arguments
`(#:install-source? #f
#:cargo-test-flags
`("--release" "--"
"--skip=display::side_by_side::tests::test_display_hunks"
"--skip=display::style::tests::split_string_cjk"
"--skip=display::style::tests::split_string_cjk2"
"--skip=display::style::tests::split_string_simple"
"--skip=display::style::tests::split_string_unicode"
"--skip=display::style::tests::test_combining_char"
"--skip=display::style::tests::test_split_and_apply"
,(string-append "--skip=display::style::tests::"
"test_split_and_apply_gap_between_styles_on_wrap_boundary")
"--skip=display::style::tests::test_split_and_apply_trailing_text"
"--skip=display::style::tests::test_split_and_apply_trailing_text_newline")))
(list
#:install-source? #f
#:cargo-test-flags
'(list "--"
"--skip=display::side_by_side::tests::test_display_hunks"
"--skip=display::style")
#:phases
#~(modify-phases %standard-phases
;; jemalloc needs unbundling for tikv-jemallocator-sys
(add-before 'build 'override-jemalloc
(lambda* (#:key inputs #:allow-other-keys)
(let ((jemalloc (assoc-ref inputs "jemalloc")))
;; This flag is needed when not using the bundled jemalloc.
;; 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
(cons mimalloc (cargo-inputs 'difftastic)))
(cons jemalloc (cargo-inputs 'difftastic)))
(home-page "https://difftastic.wilfred.me.uk/")
(synopsis "Structural diff command that understands syntax")
(description
+238 -92
View File
@@ -3710,6 +3710,10 @@
(crate-source "cc" "1.2.57"
"08q464b62d03zm7rgiixavkrh5lzfq18lwf884vgycj9735d23bs"))
(define rust-cc-1.2.58
(crate-source "cc" "1.2.58"
"1qb0zyqhn8pqzdp7d3scm19zmvgvbyh3iabmj1q7fc4ynva2isg1"))
(define rust-cc-traits-2.0.0
(crate-source "cc-traits" "2.0.0"
"1db2m7drl9w3yda4ybxvhykz45krqrlapcg16wkm4jpg67ph60q6"))
@@ -17640,6 +17644,10 @@
(crate-source "mio" "1.1.1"
"1z2phpalqbdgihrcjp8y09l3kgq6309jnhnr6h11l9s7mnqcm6x6"))
(define rust-mio-1.2.0
(crate-source "mio" "1.2.0"
"1hanrh4fwsfkdqdaqfidz48zz1wdix23zwn3r2x78am0garfbdsh"))
(define rust-mio-extras-2.0.6
(crate-source "mio-extras" "2.0.6"
"069gfhlv0wlwfx1k2sriwfws490kjp490rv2qivyfb01j3i3yh2j"))
@@ -29467,6 +29475,14 @@
(crate-source "tree-sitter" "0.26.6"
"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
(crate-source "tree-sitter-bash" "0.23.3"
"0bm5chcqq5fvfb505h87d6ab5ny9l60lxy0x5ga3ghrsc944v6ij"))
@@ -29495,6 +29511,14 @@
(crate-source "tree-sitter-clojure" "0.1.0"
"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
(crate-source "tree-sitter-cpp" "0.23.4"
"0hs7p45av437iw8rzsyw46qs06axbam7wadr655apd27kpm9c8fz"))
@@ -29511,6 +29535,18 @@
(crate-source "tree-sitter-dart" "0.0.4"
"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
(crate-source "tree-sitter-elixir" "0.3.4"
"0grdkbx6bqw3s1w3mkk94sibmhgdicdlqirjzpc57zdl8x348pg4"))
@@ -29519,10 +29555,30 @@
(crate-source "tree-sitter-elixir" "0.3.5"
"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
(crate-source "tree-sitter-erlang" "0.15.0"
"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
(crate-source "tree-sitter-go" "0.23.4"
"0cc4w4p12inxpsn2hgpmbvw1nyf5cm0l9pa705hbw3928milfgdi"))
@@ -29535,6 +29591,10 @@
(crate-source "tree-sitter-haskell" "0.23.1"
"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
(crate-source "tree-sitter-highlight" "0.24.7"
"15axx9avb1cb3mjyhkf5h36n2lsxwqy0z2xrj79qgg4y98z824b4"))
@@ -29587,6 +29647,10 @@
(crate-source "tree-sitter-lua" "0.4.1"
"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
(crate-source "tree-sitter-make" "1.1.1"
"0101h5ilrv2aqjffdlnq2d2m9mpj5fcfzvwamsgv3nnbrg3qv6f5"))
@@ -29599,10 +29663,18 @@
(crate-source "tree-sitter-md" "0.5.3"
"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
(crate-source "tree-sitter-nix" "0.0.2"
"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
(crate-source "tree-sitter-objc" "3.0.2"
"1lp1570h6lwhknzq3nn9sf26cfkqbx99vrrm0mpigz13ciavpa4w"))
@@ -29611,6 +29683,14 @@
(crate-source "tree-sitter-ocaml" "0.23.2"
"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
(crate-source "tree-sitter-php" "0.23.11"
"030kiknyk2lw54yj7mzj92kfr5v0qr81qymhvkqy9kvjj97fjrph"))
@@ -29619,6 +29699,10 @@
(crate-source "tree-sitter-php" "0.24.2"
"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
(crate-source "tree-sitter-python" "0.23.6"
"012bgzycya91lpdbrrr8xnw9xjz116nf1w61c2pwxapk4ym5l1ix"))
@@ -29627,6 +29711,18 @@
(crate-source "tree-sitter-python" "0.25.0"
"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
(crate-source "tree-sitter-ruby" "0.23.1"
"15cz4h1sfgf838r2pmf7vg9ahh0kwgkvvnjgbdbrrfzn9vm8815y"))
@@ -29639,6 +29735,10 @@
(crate-source "tree-sitter-rust" "0.24.0"
"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
(crate-source "tree-sitter-scala" "0.23.4"
"0bsxq5ihmi4qp1g3cfrnmgznp8h4y739d8mz2yn9wvkknil5xppg"))
@@ -29647,6 +29747,22 @@
(crate-source "tree-sitter-scala" "0.24.0"
"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
(crate-source "tree-sitter-svelte-ng" "1.0.2"
"0dzsclhsy24d4r4a541kbnr9p8n860v8jr3cr0y3g52yrzwp22pg"))
@@ -29667,6 +29783,10 @@
(crate-source "tree-sitter-typescript" "0.23.2"
"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
(crate-source "tree-sitter-xml" "0.7.0"
"1cxnr3q72fvld0ia8xjc5hl0x4xw9s7wvpcpsma4z68xb4gh8w76"))
@@ -44034,25 +44154,25 @@
rust-windows-x86-64-gnullvm-0.52.6
rust-windows-x86-64-msvc-0.52.6))
(difftastic =>
(list rust-ahash-0.8.11
rust-aho-corasick-1.1.3
(list rust-ahash-0.8.12
rust-aho-corasick-1.1.4
rust-allocator-api2-0.2.21
rust-anstream-0.6.18
rust-anstyle-1.0.10
rust-anstyle-parse-0.2.6
rust-anstyle-query-1.1.2
rust-anstyle-wincon-3.0.7
rust-assert-cmd-2.0.8
rust-autocfg-1.4.0
rust-bitflags-2.9.0
rust-bstr-1.12.0
rust-bumpalo-3.17.0
rust-cc-1.2.19
rust-cfg-if-1.0.0
rust-clap-4.5.35
rust-clap-builder-4.5.35
rust-clap-lex-0.7.4
rust-colorchoice-1.0.3
rust-anstream-1.0.0
rust-anstyle-1.0.14
rust-anstyle-parse-1.0.0
rust-anstyle-query-1.1.5
rust-anstyle-wincon-3.0.11
rust-assert-cmd-2.2.0
rust-autocfg-1.5.0
rust-bitflags-2.11.0
rust-bstr-1.12.1
rust-bumpalo-3.20.2
rust-cc-1.2.58
rust-cfg-if-1.0.4
rust-clap-4.6.0
rust-clap-builder-4.6.0
rust-clap-lex-1.1.0
rust-colorchoice-1.0.5
rust-crossbeam-deque-0.8.6
rust-crossbeam-epoch-0.9.18
rust-crossbeam-utils-0.8.21
@@ -44060,133 +44180,158 @@
rust-crossterm-winapi-0.9.1
rust-diff-0.1.13
rust-difflib-0.4.0
rust-doc-comment-0.3.3
rust-either-1.15.0
rust-encoding-rs-0.8.35
rust-env-logger-0.10.2
rust-equivalent-1.0.2
rust-errno-0.3.11
rust-fixedbitset-0.4.2
rust-float-cmp-0.9.0
rust-fnv-1.0.7
rust-glob-0.3.2
rust-globset-0.4.16
rust-errno-0.3.14
rust-find-msvc-tools-0.1.9
rust-fixedbitset-0.5.7
rust-float-cmp-0.10.0
rust-foldhash-0.1.5
rust-glob-0.3.3
rust-globset-0.4.18
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-hermit-abi-0.5.0
rust-hermit-abi-0.5.2
rust-humansize-2.1.3
rust-humantime-2.2.0
rust-humantime-2.3.0
rust-ignore-0.4.23
rust-indexmap-2.9.0
rust-is-terminal-0.4.16
rust-is-terminal-polyfill-1.70.1
rust-itertools-0.10.5
rust-itertools-0.11.0
rust-itoa-1.0.15
rust-indexmap-2.13.0
rust-is-terminal-0.4.17
rust-is-terminal-polyfill-1.70.2
rust-itoa-1.0.18
rust-lazy-static-1.5.0
rust-libc-0.2.171
rust-libm-0.2.11
rust-libmimalloc-sys-0.1.24
rust-libc-0.2.183
rust-libm-0.2.16
rust-line-numbers-0.3.1
rust-linux-raw-sys-0.4.15
rust-linux-raw-sys-0.9.4
rust-lock-api-0.4.12
rust-log-0.4.27
rust-memchr-2.7.4
rust-mimalloc-0.1.28
rust-minimal-lexical-0.2.1
rust-mio-1.0.3
rust-nom-7.1.3
rust-linux-raw-sys-0.12.1
rust-lock-api-0.4.14
rust-log-0.4.29
rust-memchr-2.8.0
rust-mio-1.2.0
rust-nom-8.0.0
rust-normalize-line-endings-0.3.0
rust-num-traits-0.2.19
rust-once-cell-1.21.3
rust-owo-colors-3.5.0
rust-parking-lot-0.12.3
rust-parking-lot-core-0.9.10
rust-petgraph-0.6.5
rust-predicates-2.1.5
rust-predicates-core-1.0.9
rust-predicates-tree-1.0.12
rust-once-cell-1.21.4
rust-once-cell-polyfill-1.70.2
rust-owo-colors-4.3.0
rust-parking-lot-0.12.5
rust-parking-lot-core-0.9.12
rust-petgraph-0.8.3
rust-predicates-3.1.4
rust-predicates-core-1.0.10
rust-predicates-tree-1.0.13
rust-pretty-assertions-1.4.1
rust-pretty-env-logger-0.5.0
rust-proc-macro2-1.0.94
rust-quote-1.0.40
rust-proc-macro2-1.0.106
rust-quote-1.0.45
rust-radix-heap-0.4.2
rust-rayon-1.10.0
rust-rayon-core-1.12.1
rust-redox-syscall-0.5.11
rust-regex-1.11.1
rust-regex-automata-0.4.9
rust-regex-syntax-0.8.5
rust-rayon-1.11.0
rust-rayon-core-1.13.0
rust-redox-syscall-0.5.18
rust-regex-1.12.3
rust-regex-automata-0.4.14
rust-regex-syntax-0.8.10
rust-rustc-hash-2.1.1
rust-rustix-0.38.44
rust-rustix-1.0.5
rust-rustversion-1.0.20
rust-ryu-1.0.20
rust-rustix-1.1.4
rust-rustversion-1.0.22
rust-same-file-1.0.6
rust-scopeguard-1.2.0
rust-serde-1.0.219
rust-serde-derive-1.0.219
rust-serde-json-1.0.140
rust-serde-1.0.228
rust-serde-core-1.0.228
rust-serde-derive-1.0.228
rust-serde-json-1.0.149
rust-shlex-1.3.0
rust-signal-hook-0.3.17
rust-signal-hook-mio-0.2.4
rust-signal-hook-registry-1.4.2
rust-smallvec-1.15.0
rust-signal-hook-0.3.18
rust-signal-hook-mio-0.2.5
rust-signal-hook-registry-1.4.8
rust-smallvec-1.15.1
rust-streaming-iterator-0.1.9
rust-strsim-0.10.0
rust-strsim-0.11.1
rust-strum-0.26.3
rust-strum-macros-0.26.4
rust-syn-2.0.100
rust-syn-2.0.117
rust-termcolor-1.4.1
rust-terminal-size-0.4.2
rust-terminal-size-0.4.4
rust-termtree-0.5.1
rust-tree-sitter-0.24.7
rust-tree-sitter-bash-0.23.3
rust-tree-sitter-c-0.23.4
rust-tikv-jemalloc-sys-0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
rust-tikv-jemallocator-0.6.1
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-clojure-orchard-0.2.5
rust-tree-sitter-cmake-0.7.1
rust-tree-sitter-cpp-0.23.4
rust-tree-sitter-css-0.23.2
rust-tree-sitter-elixir-0.3.4
rust-tree-sitter-go-0.23.4
rust-tree-sitter-dart-orchard-0.2.1
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-hcl-1.1.0
rust-tree-sitter-html-0.23.2
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-julia-0.23.1
rust-tree-sitter-language-0.1.5
rust-tree-sitter-lua-0.2.0
rust-tree-sitter-language-0.1.7
rust-tree-sitter-lua-0.5.0
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-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-proto-0.2.0
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-rust-0.23.3
rust-tree-sitter-rust-orchard-0.16.3
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-typescript-0.23.2
rust-tree-sitter-verilog-1.0.3
rust-tree-sitter-xml-0.7.0
rust-tree-sitter-yaml-0.7.0
rust-tree-magic-mini-3.1.6
rust-tree-sitter-yaml-0.7.2
rust-tree-sitter-zig-1.1.2
rust-tree-magic-mini-3.2.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-utf8parse-0.2.2
rust-version-check-0.9.5
rust-wait-timeout-0.2.1
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-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-windows-sys-0.52.0
rust-windows-link-0.2.1
rust-windows-sys-0.59.0
rust-windows-sys-0.61.2
rust-windows-targets-0.52.6
rust-windows-aarch64-gnullvm-0.52.6
rust-windows-aarch64-msvc-0.52.6
@@ -44198,8 +44343,9 @@
rust-windows-x86-64-msvc-0.52.6
rust-wu-diff-0.1.2
rust-yansi-1.0.1
rust-zerocopy-0.7.35
rust-zerocopy-derive-0.7.35))
rust-zerocopy-0.8.47
rust-zerocopy-derive-0.8.47
rust-zmij-1.0.21))
(drill =>
(list rust-addr2line-0.24.2
rust-adler2-2.0.0
+2 -2
View File
@@ -50,14 +50,14 @@
(define-public scribus
(package
(name "scribus")
(version "1.6.4")
(version "1.6.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scribus/scribus/"
version "/scribus-" version ".tar.gz"))
(sha256
(base32 "1ddsga862wwq2lb12rlsm6009gfx9nxx3s5323jifs53fs1y3knp"))))
(base32 "1jj86a2xydkyqfdyhfikcxxl3m4j861mbbcswdd7779q11wysckq"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test target
+6 -7
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 Kevin Lemonnier <lemonnierk@ulrar.net>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
@@ -1046,23 +1046,22 @@ JavaScript users who avoid shell.")
(define-public gash
(package
(name "gash")
(version "0.3.1")
(version "0.3.2")
(source
;; Use a copy built from the unofficial 'EBADF-fixes' branch,
;; <https://codeberg.org/civodul/gash/commit/7c9bf2110cfe85424fba0cd14445d5f0926c3fbd>.
;; See <https://issues.guix.gnu.org/75658>.
;; Note: Pre-built tarballs are no longer hosted at
;; <https://savannah.nongnu.org/projects/gash>.
(origin (method url-fetch)
(uri (string-append "mirror://gnu/guix/mirror/gash-"
version ".tar.gz"))
(sha256
(base32
"069wizkfkkifij9n0r6fkwbgcnjyr6xvnjid11ckppx0waixc0s7"))))
"1r74k5qms2rrpx7cywpg9hdywd3y893rl1f4467l86h1gpkih368"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
(inputs
(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")
(description "Gash is a POSIX-compatible shell written in Guile
Scheme. It provides both the shell interface, as well as a Guile
+3 -9
View File
@@ -140,24 +140,18 @@
(define-public ed
(package
(name "ed")
(version "1.21")
(version "1.22.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ed/ed-"
version ".tar.lz"))
(sha256
(base32
"0xddpcdsdhf1cx7izk9l5dmf8vakjx5ncm1cy1f3libxfac4kqk0"))))
"1k2ql71ybnsfwh81f95qwcg9wl2ijyziav1pj1kav7gjqbfhgqan"))))
(build-system gnu-build-system)
(native-inputs (list lzip))
(arguments
`(#: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"))))))))
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))))
(home-page "https://www.gnu.org/software/ed/")
(synopsis "Line-oriented text editor")
(description
+12
View File
@@ -67,6 +67,7 @@
;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2025 Matthew Elwin <elwin@northwestern.edu>
;;; Copyright © 2026 Ingar <ingar@onionmail.info>
;;; Copyright © 2026 Robin Templeton <robin@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -443,6 +444,16 @@ Python 3.3 and later, rather than on Python 2.")
"MINGW"
"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
;; invoking the basename and sed commands... patch them to their
;; absolute location.
@@ -583,6 +594,7 @@ Python 3.3 and later, rather than on Python 2.")
coreutils-minimal
curl ;for HTTP(S) access
expat ;for 'git push' over HTTP(S)
gettext-minimal ;for gettext.sh
openssl
perl
sed
+12 -4
View File
@@ -1,5 +1,5 @@
;;; 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 © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -123,7 +123,6 @@
"Return a bag for NAME."
(define private-keywords
`(#:cmake #:inputs #:native-inputs
#:implicit-inputs? #:implicit-cross-inputs?
,@(if target '() '(#:target))))
(bag
@@ -162,7 +161,10 @@
(define* (cmake-build name inputs
#:key guile source
(outputs '("out")) (configure-flags ''())
(outputs '("out"))
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(configure-flags ''())
(search-paths '())
(make-flags ''())
(out-of-source? #t)
@@ -231,7 +233,11 @@ provides a 'CMakeLists.txt' file as its build system."
#:graft? #f
#:substitutable? substitutable?
#: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)))
@@ -244,6 +250,8 @@ provides a 'CMakeLists.txt' file as its build system."
target
build-inputs target-inputs host-inputs
source guile
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(outputs '("out"))
(configure-flags ''())
(search-paths '())
+24 -2
View File
@@ -37,6 +37,7 @@
gnu-build-system
standard-packages
standard-cross-packages
default-disallowed-references
package-with-explicit-inputs
package-with-extra-configure-variable
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))))
((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
#:key source inputs native-inputs outputs target
(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."
(define private-keywords
`(#:inputs #:native-inputs #:outputs
#:implicit-inputs? #:implicit-cross-inputs?
,@(if target '() '(#:target))))
(bag
@@ -341,6 +355,8 @@ standard packages used as implicit inputs of the GNU build system."
guile source
(outputs '("out"))
(search-paths '())
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(bootstrap-scripts %bootstrap-scripts)
(configure-flags ''())
(make-flags ''())
@@ -433,7 +449,11 @@ are allowed to refer to."
#:graft? #f
#:substitutable? substitutable?
#: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)))
@@ -478,6 +498,8 @@ is one of `host' or `target'."
target
build-inputs target-inputs host-inputs
guile source
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(outputs '("out"))
(search-paths '())
(native-search-paths '())
+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/."
(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)
"Return the file name of the first sub-directory of DIRECTORY or false, when
there are none."
@@ -936,7 +944,8 @@ that traversing all the RUNPATH entries entails."
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
(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
patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
+1 -1
View File
@@ -964,7 +964,7 @@ identifiers. The result is inferred from the file names of patches."
("gzip" ,(ref '(gnu packages compression) 'gzip))
("lzip" ,(ref '(gnu packages compression) 'lzip))
("unzip" ,(ref '(gnu packages compression) 'unzip))
("patch" ,(ref '(gnu packages base) 'patch/pinned)))))
("patch" ,(ref '(gnu packages base) 'patch)))))
(define (default-guile)
"Return the default Guile package used to run the build code of
+16 -19
View File
@@ -437,25 +437,22 @@ default values, and with EXTRA-FIELDS set as specified."
(inherit gnu-make)
(name "make-test-boot0")
(arguments
`(#:guile ,%bootstrap-guile
#:implicit-inputs? #f
#:tests? #f ;cannot run "make check"
,@(substitute-keyword-arguments (package-arguments gnu-make)
((#:configure-flags flags ''())
;; As in 'gnu-make-boot0', work around a 'config.status' defect.
`(cons "--disable-dependency-tracking" ,flags))
((#:phases phases)
`(modify-phases ,phases
(replace 'build
(lambda _
(invoke "./build.sh")
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "make" bin)
#t))))))))
(cons*
#:guile %bootstrap-guile
#:implicit-inputs? #f
#:tests? #f ;cannot run "make check"
(substitute-keyword-arguments (package-arguments gnu-make)
((#:configure-flags flags ''())
;; As in 'gnu-make-boot0', work around a 'config.status' defect.
#~(cons "--disable-dependency-tracking" #$flags))
((#:phases phases)
#~(modify-phases #$phases
(replace 'build
(lambda _
(invoke "./build.sh")))
(replace 'install
(lambda _
(install-file "make" (string-append #$output "/bin")))))))))
(native-inputs '()) ;no need for 'pkg-config'
(inputs %bootstrap-inputs-for-tests))))