forked from tribes/guix
Compare commits
142 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2b0c3632a0 | |||
| e88bb11646 | |||
| d0ff93c699 | |||
| ef93d7ea28 | |||
| a53bddbee1 | |||
| 8ff2eff817 | |||
| 6728a2d1d6 | |||
| d7fa6d0e9f | |||
| f075ff26d1 | |||
| 682c9c4462 | |||
| 5e8af7fd4b | |||
| f9767a93d9 | |||
| 116078f366 | |||
| 51abc3b55e | |||
| 4d787faff2 | |||
| 93251e230a | |||
| f0a2db05b2 | |||
| 27562c019a | |||
| 51a5bbb2ef | |||
| 7321e7a8e2 | |||
| 1e6bb1bc90 | |||
| 854b972a45 | |||
| 670d338fbd | |||
| c0d0623d4f | |||
| a2c5f06434 | |||
| 2e76f50640 | |||
| 2f1badab08 | |||
| 41b969692d | |||
| aeb969a803 | |||
| 30961bc306 | |||
| 438bb5cf9e | |||
| 83ffe3741b | |||
| 343165e912 | |||
| a48e520b4c | |||
| c51ecda4eb | |||
| 62da5ac40c | |||
| 762a244077 | |||
| 0598da6766 | |||
| 7ecda67dfa | |||
| 5b086540ac | |||
| 852357a9cd | |||
| e24af7c41b | |||
| 9ce1a7c861 | |||
| e46f164339 | |||
| ff1ac2d8c1 | |||
| 13852f8ef2 | |||
| b23bdf0e95 | |||
| 0c50d99e08 | |||
| 616abd90a3 | |||
| ca1bea7e6e | |||
| 6a35591167 | |||
| de1f3a6a13 | |||
| cedf6b9d33 | |||
| 094fbe8128 | |||
| 2b2b8ed19a | |||
| a4c690a0bd | |||
| ce0de9af97 | |||
| e575cca11a | |||
| b9c6079ace | |||
| ad681ea6fe | |||
| bbc3f12905 | |||
| a230916e9f | |||
| 915a5a56fe | |||
| 2951273b2a | |||
| 1ff314262f | |||
| 11f2371a39 | |||
| 9e5d5f4f6e | |||
| 650bb0b290 | |||
| 87b22cd67b | |||
| 85cbe9ff8b | |||
| da57655d99 | |||
| 76635c116a | |||
| fe52920ff2 | |||
| 73518d088b | |||
| 1601b63d74 | |||
| ee796c94da | |||
| ecc9d6e393 | |||
| 1b2e301ad9 | |||
| 0749348e9a | |||
| eb504359c7 | |||
| 96a3900127 | |||
| 26b8e85a12 | |||
| 1a7796a334 | |||
| 655b989c44 | |||
| 5fb085a35a | |||
| 8ab681e719 | |||
| e01cd762c6 | |||
| 6a73e41b81 | |||
| 18062a4710 | |||
| 1afe21e4ae | |||
| e639999ba7 | |||
| ddfa1235b2 | |||
| 431298f758 | |||
| 77d13c3a16 | |||
| a17330a50b | |||
| 26ac487220 | |||
| ff2eb538f3 | |||
| 01db7c7a12 | |||
| bea5299175 | |||
| e8d0787042 | |||
| 4eefbf3079 | |||
| cfb55cf36b | |||
| 8aa698ee7a | |||
| f61274db0c | |||
| 74445bfa5e | |||
| 3ccf2a67ec | |||
| 569ee1b1c1 | |||
| 94565a7df0 | |||
| 16c461c334 | |||
| 88d75f99c3 | |||
| e8de387e89 | |||
| 8fcb1ba3ca | |||
| 1ba81294a0 | |||
| 63ec3ea6ba | |||
| 1360ae9d1f | |||
| 3de79be30e | |||
| ac87e13e8e | |||
| 36127046cd | |||
| 68a87db1b2 | |||
| d4f07f70c3 | |||
| bb1bdba4d1 | |||
| a206579e3b | |||
| 9318fe39a1 | |||
| a716d79072 | |||
| f505ea1801 | |||
| a20b005d15 | |||
| 8fef6ff08b | |||
| 9cc22e2c08 | |||
| f03011ae47 | |||
| c1baeeeda4 | |||
| 4c4c4a820f | |||
| e25523df83 | |||
| 0b19501611 | |||
| 1545e057bc | |||
| 8713bb89ec | |||
| c7efc967eb | |||
| cd22c1ad8f | |||
| 17f801ee5e | |||
| 3eeff7cc21 | |||
| ea44e60c30 | |||
| ebf496e893 | |||
| 41fd9df171 |
@@ -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
@@ -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 \
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
+316
-318
@@ -24,6 +24,7 @@
|
||||
;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop>
|
||||
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
|
||||
;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online>
|
||||
;;; Copyright © 2025 Nikita Mitasov <me@ch4og.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -119,14 +120,14 @@ command-line arguments, multiple languages, and so on.")
|
||||
(define-public grep
|
||||
(package
|
||||
(name "grep")
|
||||
(version "3.11")
|
||||
(version "3.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/grep/grep-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1avf4x8skxbqrjp5j2qr9sp5vlf8jkw2i5bdn51fl3cxx3fsxchx"))
|
||||
"1f87i907dzw31xy1xr8xjj6z9979qq3bwmypvkm35rlh1ryb4j96"))
|
||||
(patches (search-patches "grep-timing-sensitive-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list perl)) ;some of the tests require it
|
||||
@@ -247,47 +248,49 @@ implementation offers several extensions over the standard utility.")
|
||||
(build-system gnu-build-system)
|
||||
;; Note: test suite requires ~1GiB of disk space.
|
||||
(arguments
|
||||
`(,@(cond
|
||||
((target-hurd?)
|
||||
'(#:make-flags
|
||||
(list (string-append
|
||||
"TESTSUITEFLAGS= -k '"
|
||||
"!sparse"
|
||||
",!renamed dirs in incrementals"
|
||||
",!--exclude-tag option in incremental pass"
|
||||
",!incremental dumps with -C"
|
||||
",!incremental dumps of nested directories"
|
||||
",!incremental restores with -C"
|
||||
",!concatenated incremental archives (renames)"
|
||||
",!renamed directory containing subdirectories"
|
||||
",!renamed subdirectories"
|
||||
",!chained renames"
|
||||
",!Directory"
|
||||
"'"))))
|
||||
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
|
||||
;; due to the small HDD and RAM present on these devices.
|
||||
((target-ppc32?)
|
||||
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
|
||||
"'!tricky time stamps"
|
||||
",!storing sparse files > 8G'"))))
|
||||
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
|
||||
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
|
||||
;; skipping the test for this release on 32-bit systems.
|
||||
((target-32bit?)
|
||||
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
|
||||
(else '()))
|
||||
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
|
||||
,@(if (target-hurd32?)
|
||||
(list #:configure-flags ''("--disable-year2038"))
|
||||
'())
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'set-shell-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Do not use "/bin/sh" to run programs.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "src/system.c"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/sh")))))))))
|
||||
(append
|
||||
(cond
|
||||
((target-hurd?)
|
||||
'(#:make-flags
|
||||
(list (string-append
|
||||
"TESTSUITEFLAGS= -k '"
|
||||
"!sparse"
|
||||
",!renamed dirs in incrementals"
|
||||
",!--exclude-tag option in incremental pass"
|
||||
",!incremental dumps with -C"
|
||||
",!incremental dumps of nested directories"
|
||||
",!incremental restores with -C"
|
||||
",!concatenated incremental archives (renames)"
|
||||
",!renamed directory containing subdirectories"
|
||||
",!renamed subdirectories"
|
||||
",!chained renames"
|
||||
",!Directory"
|
||||
"'"))))
|
||||
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
|
||||
;; due to the small HDD and RAM present on these devices.
|
||||
((target-ppc32?)
|
||||
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
|
||||
"'!tricky time stamps"
|
||||
",!storing sparse files > 8G'"))))
|
||||
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
|
||||
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
|
||||
;; skipping the test for this release on 32-bit systems.
|
||||
((not (target-64bit?))
|
||||
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
|
||||
(else '()))
|
||||
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
|
||||
(if (target-hurd32?)
|
||||
(list #:configure-flags #~(list "--disable-year2038"))
|
||||
'())
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'set-shell-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Do not use "/bin/sh" to run programs.
|
||||
(substitute* "src/system.c"
|
||||
(("/bin/sh")
|
||||
(search-input-file inputs "bin/sh")))))))))
|
||||
|
||||
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
|
||||
;; to refer to the target Bash.
|
||||
@@ -306,41 +309,8 @@ standard utility.")
|
||||
(license gpl3+)
|
||||
(home-page "https://www.gnu.org/software/tar/")))
|
||||
|
||||
;;; TODO: Replace/merge with 'patch' on core-updates.
|
||||
(define-public patch/pinned
|
||||
(hidden-package
|
||||
(package
|
||||
(name "patch")
|
||||
(version "2.7.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/patch/patch-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"))
|
||||
(patches (search-patches "patch-hurd-path-max.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; Work around a cross-compilation bug whereby libpatch.a would provide
|
||||
;; '__mktime_internal', which conflicts with the one in libc.a.
|
||||
(if (%current-target-system)
|
||||
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
|
||||
'()))
|
||||
(native-inputs (list ed))
|
||||
(synopsis "Apply differences to originals, with optional backups")
|
||||
(description
|
||||
"Patch is a program that applies changes to files based on differences
|
||||
laid out as by the program \"diff\". The changes may be applied to one or more
|
||||
files depending on the contents of the diff file. It accepts several
|
||||
different diff formats. It may also be used to revert previously applied
|
||||
differences.")
|
||||
(license gpl3+)
|
||||
(home-page "https://savannah.gnu.org/projects/patch/"))))
|
||||
|
||||
(define-public patch
|
||||
(package
|
||||
(inherit patch/pinned)
|
||||
(name "patch")
|
||||
(version "2.8")
|
||||
(source (origin
|
||||
@@ -350,13 +320,27 @@ differences.")
|
||||
(sha256
|
||||
(base32
|
||||
"1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments patch/pinned)
|
||||
((#:configure-flags flags #~'())
|
||||
(if (target-hurd32?)
|
||||
#~(cons* "--disable-year2038"
|
||||
#$flags)
|
||||
flags))))
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(append
|
||||
(if #$(%current-target-system)
|
||||
(list "gl_cv_func_working_mktime=yes")
|
||||
'())
|
||||
(if #$(target-hurd32?)
|
||||
(list "--disable-year2038")
|
||||
'()))))
|
||||
(native-inputs (list ed))
|
||||
(synopsis "Apply differences to originals, with optional backups")
|
||||
(description
|
||||
"Patch is a program that applies changes to files based on differences
|
||||
laid out as by the program \"diff\". The changes may be applied to one or more
|
||||
files depending on the contents of the diff file. It accepts several
|
||||
different diff formats. It may also be used to revert previously applied
|
||||
differences.")
|
||||
(license gpl3+)
|
||||
(home-page "https://savannah.gnu.org/projects/patch/")
|
||||
(properties '())))
|
||||
|
||||
(define-public diffutils
|
||||
@@ -632,20 +616,21 @@ standard.")
|
||||
(inputs (list guile-3.0))
|
||||
(outputs '("out" "debug"))
|
||||
(arguments
|
||||
`(,@(if (target-hurd?)
|
||||
'(#:configure-flags '("CFLAGS=-D__alloca=alloca"
|
||||
"ac_cv_func_posix_spawn=no"))
|
||||
'())
|
||||
(append
|
||||
(if (target-hurd?)
|
||||
(list #:configure-flags '("CFLAGS=-D__alloca=alloca"
|
||||
"ac_cv_func_posix_spawn=no"))
|
||||
(list))
|
||||
(list
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(substitute* "src/job.c"
|
||||
(("default_shell =.*$")
|
||||
(format #f "default_shell = \"~a/bin/sh\";\n"
|
||||
bash)))))))))
|
||||
(format #f "default_shell = \"~a\";\n"
|
||||
(search-input-file inputs "/bin/sh"))))))))))
|
||||
(synopsis "Remake files automatically")
|
||||
(description
|
||||
"Make is a program that is used to control the production of
|
||||
@@ -669,17 +654,17 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
||||
(base32
|
||||
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
|
||||
(arguments
|
||||
`(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "job.c"
|
||||
(("default_shell =.*$")
|
||||
(format #f "default_shell = \"~a/bin/sh\";\n"
|
||||
bash)))))))))))
|
||||
(list
|
||||
#:configure-flags #~(list "CFLAGS=-D__alloca=alloca -D__stat=stat")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(substitute* "job.c"
|
||||
(("default_shell =.*$")
|
||||
(format #f "default_shell = \"~a\";\n"
|
||||
(search-input-file inputs "/bin/sh")))))))))))
|
||||
|
||||
(define-public binutils
|
||||
(package
|
||||
@@ -693,6 +678,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
||||
(sha256
|
||||
(base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn"))
|
||||
(patches (search-patches
|
||||
"binutils-reproducible-tar.patch"
|
||||
"binutils-2.41-fix-cross.patch"
|
||||
"binutils-loongson-workaround.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
@@ -728,7 +714,8 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
||||
;; For some reason, the build machinery insists on rebuilding .info
|
||||
;; files, even though they're already provided by the tarball.
|
||||
#:make-flags #~'("MAKEINFO=true")))
|
||||
(native-inputs (list bison)) ;needed to build 'gprofng'
|
||||
(native-inputs (list bison ;needed to build 'gprofng'
|
||||
perl)) ;needed to build the man pages (pod2man)
|
||||
(synopsis "Binary utilities: bfd gas gprof ld")
|
||||
(description
|
||||
"GNU Binutils is a collection of tools for working with binary files.
|
||||
@@ -908,6 +895,7 @@ the store.")
|
||||
(list "glibc-ldd-powerpc.patch"
|
||||
"glibc-2.41-ldd-x86_64.patch"
|
||||
"glibc-2.40-dl-cache.patch"
|
||||
"glibc-fix-path-attribute-in-getconf.patch"
|
||||
"glibc-2.37-versioned-locpath.patch"
|
||||
;; "glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-guix-locpath.patch"
|
||||
@@ -957,247 +945,257 @@ the store.")
|
||||
"static")) ;9 MiB of .a files
|
||||
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
(list
|
||||
#:out-of-source? #t
|
||||
|
||||
;; The libraries have an empty RUNPATH, but some, such as the versioned
|
||||
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
|
||||
;; these libraries are always going to be found anyway, just skip
|
||||
;; RUNPATH checks.
|
||||
#:validate-runpath? #f
|
||||
;; The libraries have an empty RUNPATH, but some, such as the versioned
|
||||
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
|
||||
;; these libraries are always going to be found anyway, just skip
|
||||
;; RUNPATH checks.
|
||||
#:validate-runpath? #f
|
||||
|
||||
#:modules ((ice-9 ftw)
|
||||
#:modules `((ice-9 ftw)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(guix build gremlin)
|
||||
(guix build utils)
|
||||
(guix build gnu-build-system))
|
||||
|
||||
;; Strip binaries but preserve the symbol table needed by Valgrind:
|
||||
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
|
||||
#:strip-flags '("--strip-debug")
|
||||
;; Strip binaries but preserve the symbol table needed by Valgrind:
|
||||
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
|
||||
#:strip-flags #~'("--strip-debug")
|
||||
|
||||
#:configure-flags
|
||||
(list "--sysconfdir=/etc"
|
||||
#:configure-flags
|
||||
#~(list "--sysconfdir=/etc"
|
||||
|
||||
;; Installing a locale archive with all the locales is to
|
||||
;; expensive (~100 MiB), so we rely on users to install the
|
||||
;; locales they really want.
|
||||
;;
|
||||
;; Set the default locale path. In practice, $LOCPATH may be
|
||||
;; defined to point whatever locales users want. However, setuid
|
||||
;; binaries don't honor $LOCPATH, so they'll instead look into
|
||||
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
|
||||
;; with the idea that it is going to be populated by the sysadmin.
|
||||
;; The "X.Y" sub-directory is because locale data formats are
|
||||
;; incompatible across libc versions; see
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
|
||||
;;
|
||||
;; `--localedir' is not honored, so work around it.
|
||||
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
|
||||
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
|
||||
,(version-major+minor version))
|
||||
;; Installing a locale archive with all the locales is to
|
||||
;; expensive (~100 MiB), so we rely on users to install the
|
||||
;; locales they really want.
|
||||
;;
|
||||
;; Set the default locale path. In practice, $LOCPATH may be
|
||||
;; defined to point whatever locales users want. However, setuid
|
||||
;; binaries don't honor $LOCPATH, so they'll instead look into
|
||||
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
|
||||
;; with the idea that it is going to be populated by the sysadmin.
|
||||
;; The "X.Y" sub-directory is because locale data formats are
|
||||
;; incompatible across libc versions; see
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
|
||||
;;
|
||||
;; `--localedir' is not honored, so work around it.
|
||||
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
|
||||
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
|
||||
#$(version-major+minor version))
|
||||
|
||||
(string-append "--with-headers="
|
||||
(assoc-ref ,(if (%current-target-system)
|
||||
'%build-target-inputs
|
||||
'%build-inputs)
|
||||
"kernel-headers")
|
||||
"/include")
|
||||
;; Here we need to refer to kernel headers and not glibc-mesboot
|
||||
(string-append
|
||||
"--with-headers="
|
||||
(and=>
|
||||
(find
|
||||
(match-lambda
|
||||
((label . input)
|
||||
(and (file-exists?
|
||||
(string-append input "/include/asm/ioctl.h"))
|
||||
;; Ensure we're not refering to another libc.
|
||||
(not (file-exists?
|
||||
(string-append input "/include/locale.h"))))))
|
||||
#$(if (%current-target-system)
|
||||
#~%build-target-inputs
|
||||
#~%build-inputs))
|
||||
cdr) "/include")
|
||||
|
||||
;; This is the default for most architectures as of GNU libc 2.26,
|
||||
;; but we specify it explicitly for clarity and consistency. See
|
||||
;; "kernel-features.h" in the GNU libc for details.
|
||||
"--enable-kernel=3.2.0"
|
||||
;; This is the default for most architectures as of GNU libc 2.26,
|
||||
;; but we specify it explicitly for clarity and consistency. See
|
||||
;; "kernel-features.h" in the GNU libc for details.
|
||||
"--enable-kernel=3.2.0"
|
||||
|
||||
;; Use our Bash instead of /bin/sh.
|
||||
(string-append "BASH_SHELL="
|
||||
(assoc-ref %build-inputs "bash")
|
||||
"/bin/bash")
|
||||
;; Use our Bash instead of /bin/sh.
|
||||
(string-append "BASH_SHELL="
|
||||
(search-input-file %build-inputs "/bin/bash"))
|
||||
|
||||
;; On GNU/Hurd we get discarded-qualifiers warnings for
|
||||
;; 'device_write_inband' among other things. Ignore them.
|
||||
,@(if (target-hurd?)
|
||||
`("--disable-werror")
|
||||
'()))
|
||||
;; On GNU/Hurd we get discarded-qualifiers warnings for
|
||||
;; 'device_write_inband' among other things. Ignore them.
|
||||
#$@(if (target-hurd?)
|
||||
#~("--disable-werror")
|
||||
#~()))
|
||||
|
||||
#:tests? #f ; XXX
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before
|
||||
'configure 'pre-configure
|
||||
(lambda* (#:key inputs native-inputs outputs
|
||||
#:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
;; FIXME: Normally we would look it up only in INPUTS
|
||||
;; but cross-base uses it as a native input.
|
||||
(bash (or (assoc-ref inputs "static-bash")
|
||||
(assoc-ref native-inputs "static-bash"))))
|
||||
;; Install the rpc data base file under `$out/etc/rpc'.
|
||||
(substitute* "inet/Makefile"
|
||||
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
|
||||
(string-append out "/etc/rpc" suffix "\n"))
|
||||
(("^install-others =.*$")
|
||||
(string-append "install-others = " out "/etc/rpc\n")))
|
||||
#:tests? #f ; XXX
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'pre-configure
|
||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
(let* ((bin (string-append #$output "/bin"))
|
||||
(bash (find
|
||||
(match-lambda
|
||||
((label . input)
|
||||
(let ((sh (string-append input "/bin/sh")))
|
||||
(and (file-exists? sh)
|
||||
;; Is it bash-static specifically? The
|
||||
;; label can't be used because of
|
||||
;; bash-mesboot during the bootstrap.
|
||||
(not (file-dynamic-info sh))))))
|
||||
inputs))
|
||||
(bash (and=> bash cdr)))
|
||||
;; Install the rpc data base file under `$out/etc/rpc'.
|
||||
(substitute* "inet/Makefile"
|
||||
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
|
||||
(string-append #$output "/etc/rpc" suffix "\n"))
|
||||
(("^install-others =.*$")
|
||||
(string-append "install-others = " #$output "/etc/rpc\n")))
|
||||
|
||||
(substitute* "Makeconfig"
|
||||
;; According to
|
||||
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
|
||||
;; linking against libgcc_s is not needed with GCC
|
||||
;; 4.7.1.
|
||||
((" -lgcc_s") ""))
|
||||
(substitute* "Makeconfig"
|
||||
;; According to
|
||||
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
|
||||
;; linking against libgcc_s is not needed with GCC
|
||||
;; 4.7.1.
|
||||
((" -lgcc_s") ""))
|
||||
|
||||
;; Tell the ld.so cache code where the store is.
|
||||
(substitute* "elf/dl-cache.c"
|
||||
(("@STORE_DIRECTORY@")
|
||||
(string-append "\"" (%store-directory) "\"")))
|
||||
;; Tell the ld.so cache code where the store is.
|
||||
(substitute* "elf/dl-cache.c"
|
||||
(("@STORE_DIRECTORY@")
|
||||
(string-append "\"" (%store-directory) "\"")))
|
||||
|
||||
;; Have `system' use that Bash.
|
||||
(substitute* "sysdeps/posix/system.c"
|
||||
(("#define[[:blank:]]+SHELL_PATH.*$")
|
||||
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n"
|
||||
bash)))
|
||||
;; Have `system' use that Bash.
|
||||
(substitute* "sysdeps/posix/system.c"
|
||||
(("#define[[:blank:]]+SHELL_PATH.*$")
|
||||
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n" bash)))
|
||||
|
||||
;; Same for `popen'.
|
||||
(substitute* "libio/iopopen.c"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/sh")))
|
||||
;; Same for `popen'.
|
||||
(substitute* "libio/iopopen.c"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/sh")))
|
||||
|
||||
;; Same for the shell used by the 'exec' functions for
|
||||
;; scripts that lack a shebang.
|
||||
(substitute* (find-files "." "^paths\\.h$")
|
||||
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
|
||||
(string-append "#define _PATH_BSHELL \""
|
||||
bash "/bin/sh\"\n")))
|
||||
;; Same for the shell used by the 'exec' functions for
|
||||
;; scripts that lack a shebang.
|
||||
(substitute* (find-files "." "^paths\\.h$")
|
||||
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
|
||||
(string-append "#define _PATH_BSHELL \""
|
||||
bash "/bin/sh\"\n")))
|
||||
|
||||
;; Make sure we don't retain a reference to the
|
||||
;; bootstrap Perl.
|
||||
(substitute* "malloc/mtrace.pl"
|
||||
(("^#!.*")
|
||||
;; The shebang can be omitted, because there's the
|
||||
;; "bilingual" eval/exec magic at the top of the file.
|
||||
"")
|
||||
(("exec @PERL@")
|
||||
"exec perl")))))
|
||||
;; Make sure we don't retain a reference to the
|
||||
;; bootstrap Perl.
|
||||
(substitute* "malloc/mtrace.pl"
|
||||
(("^#!.*")
|
||||
;; The shebang can be omitted, because there's the
|
||||
;; "bilingual" eval/exec magic at the top of the file.
|
||||
"")
|
||||
(("exec @PERL@")
|
||||
"exec perl")))))
|
||||
|
||||
(add-after 'install 'move-static-libs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Move static libraries to the "static" output.
|
||||
;; Note: As of GNU libc 2.34, the contents of some ".a"
|
||||
;; files have been moved into "libc.so", and *both* empty
|
||||
;; ".so" and ".a" files have been introduced to avoid
|
||||
;; breaking existing executables and existing builds
|
||||
;; respectively. The intent of the seemingly redundant
|
||||
;; empty ".a" files is to avoid newly-compiled executables
|
||||
;; from having dependencies on the empty shared libraries,
|
||||
;; and as such, it is useful to have these ".a" files in
|
||||
;; OUT in addition to STATIC.
|
||||
(add-after 'install 'move-static-libs
|
||||
(lambda _
|
||||
;; Move static libraries to the "static" output.
|
||||
;; Note: As of GNU libc 2.34, the contents of some ".a"
|
||||
;; files have been moved into "libc.so", and *both* empty
|
||||
;; ".so" and ".a" files have been introduced to avoid
|
||||
;; breaking existing executables and existing builds
|
||||
;; respectively. The intent of the seemingly redundant
|
||||
;; empty ".a" files is to avoid newly-compiled executables
|
||||
;; from having dependencies on the empty shared libraries,
|
||||
;; and as such, it is useful to have these ".a" files in
|
||||
;; OUT in addition to STATIC.
|
||||
|
||||
(define (empty-static-library? file)
|
||||
;; Return true if FILE is an 'ar' archive with nothing
|
||||
;; beyond the header.
|
||||
(let ((file (string-append (assoc-ref outputs "out")
|
||||
"/lib/" file)))
|
||||
(and (ar-file? file)
|
||||
(= (stat:size (stat file)) 8))))
|
||||
(define (empty-static-library? file)
|
||||
;; Return true if FILE is an 'ar' archive with nothing
|
||||
;; beyond the header.
|
||||
(let ((file (string-append #$output "/lib/" file)))
|
||||
(and (ar-file? file)
|
||||
(= (stat:size (stat file)) 8))))
|
||||
|
||||
(define (static-library? file)
|
||||
;; Return true if FILE is a static library. The
|
||||
;; "_nonshared.a" files are referred to by libc.so,
|
||||
;; libpthread.so, etc., which are in fact linker
|
||||
;; scripts.
|
||||
(and (string-suffix? ".a" file)
|
||||
(not (string-contains file "_nonshared"))
|
||||
(not (empty-static-library? file))))
|
||||
(define (static-library? file)
|
||||
;; Return true if FILE is a static library. The
|
||||
;; "_nonshared.a" files are referred to by libc.so,
|
||||
;; libpthread.so, etc., which are in fact linker
|
||||
;; scripts.
|
||||
(and (string-suffix? ".a" file)
|
||||
(not (string-contains file "_nonshared"))
|
||||
(not (empty-static-library? file))))
|
||||
|
||||
(define (linker-script? file)
|
||||
;; Guess whether FILE, a ".a" file, is actually a
|
||||
;; linker script.
|
||||
(and (not (ar-file? file))
|
||||
(not (elf-file? file))))
|
||||
(define (linker-script? file)
|
||||
;; Guess whether FILE, a ".a" file, is actually a
|
||||
;; linker script.
|
||||
(and (not (ar-file? file))
|
||||
(not (elf-file? file))))
|
||||
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lib (string-append out "/lib"))
|
||||
(files (scandir lib static-library?))
|
||||
(empty (scandir lib empty-static-library?))
|
||||
(static (assoc-ref outputs "static"))
|
||||
(slib (string-append static "/lib")))
|
||||
(mkdir-p slib)
|
||||
(for-each (lambda (base)
|
||||
(rename-file (string-append lib "/" base)
|
||||
(string-append slib "/" base)))
|
||||
files)
|
||||
(for-each (lambda (base)
|
||||
(copy-file (string-append lib "/" base)
|
||||
(string-append slib "/" base)))
|
||||
empty)
|
||||
(let* ((lib (string-append #$output "/lib"))
|
||||
(files (scandir lib static-library?))
|
||||
(empty (scandir lib empty-static-library?))
|
||||
(slib (string-append #$output:static "/lib")))
|
||||
(mkdir-p slib)
|
||||
(for-each (lambda (base)
|
||||
(rename-file (string-append lib "/" base)
|
||||
(string-append slib "/" base)))
|
||||
files)
|
||||
(for-each (lambda (base)
|
||||
(copy-file (string-append lib "/" base)
|
||||
(string-append slib "/" base)))
|
||||
empty)
|
||||
|
||||
;; Usually libm.a is a linker script so we need to
|
||||
;; change the file names in there to refer to STATIC
|
||||
;; instead of OUT.
|
||||
(for-each (lambda (ld-script)
|
||||
(substitute* ld-script
|
||||
((out) static)))
|
||||
(filter linker-script?
|
||||
(map (cut string-append slib "/" <>)
|
||||
files))))))
|
||||
;; Usually libm.a is a linker script so we need to
|
||||
;; change the file names in there to refer to STATIC
|
||||
;; instead of OUT.
|
||||
(for-each (lambda (ld-script)
|
||||
(substitute* ld-script
|
||||
((#$output)
|
||||
#$output:static)))
|
||||
(filter linker-script?
|
||||
(map (cut string-append slib "/" <>)
|
||||
files))))))
|
||||
|
||||
(add-after 'install 'install-utf8-c-locale
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Install the C.UTF-8 locale so there's always a UTF-8
|
||||
;; locale around.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(locale (string-append out "/lib/locale/"
|
||||
,(package-version
|
||||
this-package))))
|
||||
(mkdir-p locale)
|
||||
(add-after 'install 'install-utf8-c-locale
|
||||
(lambda _
|
||||
;; Install the C.UTF-8 locale so there's always a UTF-8
|
||||
;; locale around.
|
||||
(let ((bin (string-append #$output "/bin"))
|
||||
(locale (string-append #$output "/lib/locale/"
|
||||
#$(package-version
|
||||
this-package))))
|
||||
(mkdir-p locale)
|
||||
|
||||
;; FIXME: When cross-compiling, attempt to use
|
||||
;; 'localedef' from the same libc version.
|
||||
(invoke ,(if (%current-target-system)
|
||||
"true"
|
||||
'(string-append bin "/localedef"))
|
||||
"--no-archive" "--prefix" locale
|
||||
"-i" "C" "-f" "UTF-8"
|
||||
(string-append locale "/C.UTF-8")))))
|
||||
;; FIXME: When cross-compiling, attempt to use
|
||||
;; 'localedef' from the same libc version.
|
||||
(invoke #$(if (%current-target-system)
|
||||
"true"
|
||||
#~(string-append bin "/localedef"))
|
||||
"--no-archive" "--prefix" locale
|
||||
"-i" "C" "-f" "UTF-8"
|
||||
(string-append locale "/C.UTF-8")))))
|
||||
|
||||
,@(if (target-hurd?)
|
||||
`((add-after 'install 'augment-libc.so
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* (string-append out "/lib/libc.so")
|
||||
(("/[^ ]+/lib/libc.so.0.3")
|
||||
(string-append out "/lib/libc.so.0.3"
|
||||
" libmachuser.so libhurduser.so"))))))
|
||||
(add-after 'install 'create-machine-symlink
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(cpu ,(match (or (%current-target-system)
|
||||
(%current-system))
|
||||
((? target-x86-32?)
|
||||
"i386")
|
||||
((? target-x86-64?)
|
||||
"x86_64")))
|
||||
(machine (string-append
|
||||
out "/include/mach/machine")))
|
||||
(unless (file-exists? machine)
|
||||
(symlink cpu machine))))))
|
||||
'()))))
|
||||
#$@(if (target-hurd?)
|
||||
`((add-after 'install 'augment-libc.so
|
||||
(lambda _
|
||||
(substitute* (string-append #$output "/lib/libc.so")
|
||||
(("/[^ ]+/lib/libc.so.0.3")
|
||||
(string-append #$output "/lib/libc.so.0.3"
|
||||
" libmachuser.so libhurduser.so")))))
|
||||
(add-after 'install 'create-machine-symlink
|
||||
(lambda _
|
||||
(let* ((cpu #$(match (or (%current-target-system)
|
||||
(%current-system))
|
||||
((? target-x86-32?)
|
||||
"i386")
|
||||
((? target-x86-64?)
|
||||
"x86_64")))
|
||||
(machine (string-append #$output
|
||||
"/include/mach/machine")))
|
||||
(unless (file-exists? machine)
|
||||
(symlink cpu machine))))))
|
||||
'()))))
|
||||
|
||||
(inputs `(("static-bash" ,static-bash)))
|
||||
(inputs (list static-bash))
|
||||
|
||||
;; To build the manual, we need Texinfo and Perl. Gettext is needed to
|
||||
;; install the message catalogs, with 'msgfmt'.
|
||||
(native-inputs `(("texinfo" ,texinfo)
|
||||
("perl" ,perl)
|
||||
("bison" ,bison)
|
||||
("gettext" ,gettext-minimal)
|
||||
("python" ,python-minimal)
|
||||
|
||||
,@(if (target-hurd?)
|
||||
`(("mig" ,mig)
|
||||
("perl" ,perl))
|
||||
'())))
|
||||
|
||||
(native-inputs
|
||||
(append
|
||||
(list bison
|
||||
gettext-minimal
|
||||
perl
|
||||
python-minimal
|
||||
texinfo)
|
||||
(if (target-hurd?)
|
||||
(list mig)
|
||||
(list))))
|
||||
(native-search-paths
|
||||
;; Search path for packages that provide locale data. This is useful
|
||||
;; primarily in build environments. Use 'GUIX_LOCPATH' rather than
|
||||
@@ -1300,8 +1298,8 @@ with the Linux kernel.")
|
||||
;; The C.UTF-8 fails to build in glibc 2.35:
|
||||
;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>.
|
||||
;; It is missing altogether in versions earlier than 2.35.
|
||||
`(modify-phases ,phases
|
||||
(delete 'install-utf8-c-locale)))))))
|
||||
#~(modify-phases #$phases
|
||||
(delete 'install-utf8-c-locale)))))))
|
||||
|
||||
(define-public glibc-2.33
|
||||
(package
|
||||
@@ -1342,9 +1340,9 @@ with the Linux kernel.")
|
||||
"libc_cv_cxx_link_ok=no"
|
||||
#$flags))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
;; This phase fails trying to create /etc/ld.so.cache
|
||||
(delete 'install-utf8-c-locale)))))))
|
||||
#~(modify-phases #$phases
|
||||
;; This phase fails trying to create /etc/ld.so.cache
|
||||
(delete 'install-utf8-c-locale)))))))
|
||||
|
||||
(define-public (make-gcc-libc base-gcc libc)
|
||||
"Return a GCC that targets LIBC."
|
||||
|
||||
+10
-44
@@ -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"
|
||||
|
||||
+31
-25
@@ -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
@@ -37,7 +37,7 @@
|
||||
#:select (raw-derivation derivation-input derivation->output-path))
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix build utils) #:select (elf-file?))
|
||||
#:use-module ((guix gexp) #:select (lower-object local-file))
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix i18n)
|
||||
@@ -204,10 +204,7 @@ for system '~a'")
|
||||
(uri (map (cute string-append <>
|
||||
(bootstrap-executable-file-name system program))
|
||||
%bootstrap-executable-base-urls))
|
||||
;; XXX: In the long term, migrate all boostrap executables to
|
||||
;; (string-append "bootstrap-" program), and drop the additional
|
||||
;; file-name argument.
|
||||
(file-name file-name)
|
||||
(file-name (string-append "bootstrap-" program))
|
||||
(hash (content-hash bv sha256))))))))
|
||||
|
||||
(define* (bootstrap-executable program system #:optional file-name)
|
||||
@@ -267,32 +264,33 @@ or false to signal an error."
|
||||
(version "0")
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(list
|
||||
#:guile %bootstrap-guile
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
|
||||
(xz (assoc-ref %build-inputs "bootstrap-xz"))
|
||||
(tarball (assoc-ref %build-inputs
|
||||
#$(string-append name ".tar.xz"))))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar"))
|
||||
,@(if snippet (list snippet) '())
|
||||
(or (not ,program-to-test)
|
||||
(invoke (string-append "bin/" ,program-to-test)
|
||||
"--version"))))))))
|
||||
(mkdir #$output)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion #$output
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar"))
|
||||
#$@(if snippet (list snippet) '())
|
||||
(or (not #$program-to-test)
|
||||
(invoke (string-append "bin/" #$program-to-test)
|
||||
"--version"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin (source (%current-system))))))
|
||||
(list (bootstrap-executable "tar" (%current-system))
|
||||
(bootstrap-executable "xz" (%current-system))
|
||||
(bootstrap-origin (source (%current-system)))))
|
||||
(source #f)
|
||||
(synopsis description)
|
||||
(description description)
|
||||
@@ -635,37 +633,29 @@ $out/bin/guile --version~%"
|
||||
(_
|
||||
"/20131110/static-binaries.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(file-name "bootstrap-binaries.tar.xz")
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
|
||||
("armhf-linux"
|
||||
(base32
|
||||
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
|
||||
("powerpc64le-linux"
|
||||
(base32
|
||||
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
|
||||
("x86_64-gnu"
|
||||
(base32
|
||||
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v"))
|
||||
("powerpc-linux"
|
||||
(base32
|
||||
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
|
||||
("riscv64-linux"
|
||||
(base32
|
||||
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
(base32
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")
|
||||
("i686-linux"
|
||||
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")
|
||||
("armhf-linux"
|
||||
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")
|
||||
("aarch64-linux"
|
||||
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")
|
||||
("powerpc64le-linux"
|
||||
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")
|
||||
("i586-gnu"
|
||||
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")
|
||||
("x86_64-gnu"
|
||||
"04zksa2457h1vcl5ry2hyzhhsg8fckvfdgadp0viba3anwms2463")
|
||||
("powerpc-linux"
|
||||
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
|
||||
("riscv64-linux"
|
||||
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
|
||||
("mips64el-linux"
|
||||
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
|
||||
"fgrep" ; the program to test
|
||||
"Bootstrap binaries of Coreutils, Awk, etc."
|
||||
@@ -693,6 +683,7 @@ $out/bin/guile --version~%"
|
||||
"/i686-linux/20190815/"
|
||||
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(file-name "linux-libre-headers-bootstrap.tar.xz")
|
||||
(sha256
|
||||
(base32
|
||||
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
|
||||
@@ -700,63 +691,56 @@ $out/bin/guile --version~%"
|
||||
"Bootstrap linux-libre-headers"))
|
||||
|
||||
(define %bootstrap-binutils
|
||||
(package-from-tarball "binutils-bootstrap"
|
||||
(lambda (system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
(match system
|
||||
("armhf-linux"
|
||||
"/20150101/binutils-2.25.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/binutils-2.27.tar.xz")
|
||||
("powerpc64le-linux"
|
||||
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
|
||||
("x86_64-gnu"
|
||||
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
|
||||
("powerpc-linux"
|
||||
"/20200923/binutils-2.35.1.tar.xz")
|
||||
("riscv64-linux"
|
||||
"/20210725/binutils-2.34.tar.xz")
|
||||
(_
|
||||
"/20131110/binutils-2.23.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
|
||||
("armhf-linux"
|
||||
(base32
|
||||
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
|
||||
("powerpc64le-linux"
|
||||
(base32
|
||||
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
|
||||
("riscv64-linux"
|
||||
(base32
|
||||
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
|
||||
("x86_64-gnu"
|
||||
(base32
|
||||
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04"))
|
||||
("powerpc-linux"
|
||||
(base32
|
||||
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
|
||||
"ld" ; the program to test
|
||||
"Bootstrap binaries of the GNU Binutils"))
|
||||
(package-from-tarball
|
||||
"binutils-bootstrap"
|
||||
(lambda (system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
(match system
|
||||
("armhf-linux"
|
||||
"/20150101/binutils-2.25.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/binutils-2.27.tar.xz")
|
||||
("powerpc64le-linux"
|
||||
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
|
||||
("x86_64-gnu"
|
||||
"/20241122/binutils-static-stripped-2.41-x86_64-pc-gnu.tar.xz")
|
||||
("powerpc-linux"
|
||||
"/20200923/binutils-2.35.1.tar.xz")
|
||||
("riscv64-linux"
|
||||
"/20210725/binutils-2.34.tar.xz")
|
||||
(_
|
||||
"/20131110/binutils-2.23.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(file-name "binutils-bootstrap.tar.xz")
|
||||
(sha256
|
||||
(base32
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")
|
||||
("i686-linux"
|
||||
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")
|
||||
("armhf-linux"
|
||||
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")
|
||||
("aarch64-linux"
|
||||
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")
|
||||
("powerpc64le-linux"
|
||||
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")
|
||||
("riscv64-linux"
|
||||
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")
|
||||
("i586-gnu"
|
||||
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")
|
||||
("x86_64-gnu"
|
||||
"1fasv76rppnqlshjqc7dbzngic9cqswi5ydzg6w9rc075daqk8kb")
|
||||
("powerpc-linux"
|
||||
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
|
||||
("mips64el-linux"
|
||||
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
|
||||
"ld" ; the program to test
|
||||
"Bootstrap binaries of the GNU Binutils"))
|
||||
|
||||
(define %bootstrap-glibc
|
||||
;; The initial libc.
|
||||
@@ -766,99 +750,91 @@ $out/bin/guile --version~%"
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(list
|
||||
#:guile %bootstrap-guile
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
|
||||
(xz (assoc-ref %build-inputs "bootstrap-xz"))
|
||||
(tarball (assoc-ref %build-inputs "glibc.tar.xz")))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir
|
||||
"/binaries.tar"))
|
||||
(chmod "lib" #o755)
|
||||
(mkdir #$output)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion #$output
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir
|
||||
"/binaries.tar"))
|
||||
(chmod "lib" #o755)
|
||||
|
||||
;; Patch linker scripts so they refer to the right file-names.
|
||||
(substitute* ,(cond ((target-hurd64?)
|
||||
''("lib/libc.so" "lib/libm.so"))
|
||||
((and (not (target-hurd?))
|
||||
(or (target-x86?)
|
||||
(target-arm?)))
|
||||
''("lib/libc.so" "lib/libpthread.so"))
|
||||
(else
|
||||
''("lib/libc.so")))
|
||||
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
|
||||
(string-append out "/lib/" prefix)))
|
||||
,@(if (target-arm32?)
|
||||
`((substitute* "lib/libpthread.so"
|
||||
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
|
||||
`())))))))
|
||||
;; Patch linker scripts so they refer to the right file-names.
|
||||
(substitute* #$(cond ((target-hurd64?)
|
||||
''("lib/libc.so" "lib/libm.so"))
|
||||
((and (not (target-hurd?))
|
||||
(or (target-x86?)
|
||||
(target-arm?)))
|
||||
''("lib/libc.so" "lib/libpthread.so"))
|
||||
(else
|
||||
''("lib/libc.so")))
|
||||
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
|
||||
(string-append #$output "/lib/" prefix)))
|
||||
#$@(if (target-arm32?)
|
||||
#~((substitute* "lib/libpthread.so"
|
||||
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
|
||||
#~())))))))
|
||||
(inputs
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
(match (%current-system)
|
||||
("armhf-linux"
|
||||
"/20150101/glibc-2.20.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/glibc-2.25.tar.xz")
|
||||
("powerpc64le-linux"
|
||||
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
|
||||
("x86_64-gnu"
|
||||
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
|
||||
("powerpc-linux"
|
||||
"/20200923/glibc-2.32.tar.xz")
|
||||
("riscv64-linux"
|
||||
"/20210725/glibc-2.31.tar.xz")
|
||||
(_
|
||||
"/20131110/glibc-2.18.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
|
||||
("armhf-linux"
|
||||
(base32
|
||||
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
|
||||
("powerpc64le-linux"
|
||||
(base32
|
||||
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
|
||||
("riscv64-linux"
|
||||
(base32
|
||||
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2"))
|
||||
("x86_64-gnu"
|
||||
(base32
|
||||
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy"))
|
||||
("powerpc-linux"
|
||||
(base32
|
||||
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
|
||||
(list (bootstrap-executable "tar" (%current-system))
|
||||
(bootstrap-executable "xz" (%current-system))
|
||||
(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
(match (%current-system)
|
||||
("armhf-linux"
|
||||
"/20150101/glibc-2.20.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/glibc-2.25.tar.xz")
|
||||
("powerpc64le-linux"
|
||||
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
|
||||
("x86_64-gnu"
|
||||
"/20241122/glibc-stripped-2.39-x86_64-pc-gnu.tar.xz")
|
||||
("powerpc-linux"
|
||||
"/20200923/glibc-2.32.tar.xz")
|
||||
("riscv64-linux"
|
||||
"/20210725/glibc-2.31.tar.xz")
|
||||
(_
|
||||
"/20131110/glibc-2.18.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(file-name "glibc.tar.xz")
|
||||
(sha256
|
||||
(base32
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")
|
||||
("i686-linux"
|
||||
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")
|
||||
("armhf-linux"
|
||||
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")
|
||||
("aarch64-linux"
|
||||
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")
|
||||
("powerpc64le-linux"
|
||||
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")
|
||||
("riscv64-linux"
|
||||
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")
|
||||
("i586-gnu"
|
||||
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")
|
||||
("x86_64-gnu"
|
||||
"1w4h91kxl64a62l646966i73zp2cj6w4dmyc64fh0c1hhdykxass")
|
||||
("powerpc-linux"
|
||||
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
|
||||
("mips64el-linux"
|
||||
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
|
||||
(synopsis "Bootstrap binaries and headers of the GNU C Library")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
@@ -873,110 +849,102 @@ $out/bin/guile --version~%"
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
(list
|
||||
#:guile %bootstrap-guile
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
|
||||
(xz (assoc-ref %build-inputs "bootstrap-xz"))
|
||||
(bash (assoc-ref %build-inputs "bootstrap-bash"))
|
||||
(libc (assoc-ref %build-inputs "glibc-bootstrap"))
|
||||
(tarball (assoc-ref %build-inputs "gcc.tar.xz")))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(mkdir #$output)
|
||||
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
|
||||
(invoke xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append #$output "/bin")))
|
||||
|
||||
(define (wrap-program program)
|
||||
(let ((wrapped (format #f ".~a-wrapped" program)))
|
||||
(rename-file program wrapped)
|
||||
(call-with-output-file program
|
||||
(lambda (p)
|
||||
(format p "#!~a
|
||||
(define (wrap-program program)
|
||||
(let ((wrapped (format #f ".~a-wrapped" program)))
|
||||
(rename-file program wrapped)
|
||||
(call-with-output-file program
|
||||
(lambda (p)
|
||||
(format p "#!~a
|
||||
exec ~a/bin/~a -B~a/lib \
|
||||
-Wl,-rpath -Wl,~a/lib \
|
||||
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
bash
|
||||
out wrapped
|
||||
libc libc libc
|
||||
,(glibc-dynamic-linker)))))
|
||||
(chmod program #o555))
|
||||
bash
|
||||
#$output wrapped
|
||||
libc libc libc
|
||||
#$(glibc-dynamic-linker)))))
|
||||
(chmod program #o555))
|
||||
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
(with-directory-excursion #$output
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
|
||||
(with-directory-excursion bindir
|
||||
(chmod "." #o755)
|
||||
(for-each wrap-program
|
||||
,(if (target-hurd64?)
|
||||
''("gcc" "g++")
|
||||
''("gcc")))))))))
|
||||
(with-directory-excursion bindir
|
||||
(chmod "." #o755)
|
||||
(for-each wrap-program
|
||||
#$(if (target-hurd64?)
|
||||
''("gcc" "g++")
|
||||
''("gcc")))))))))
|
||||
(inputs
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("bash" ,(bootstrap-executable "bash" (%current-system)))
|
||||
("libc" ,%bootstrap-glibc)
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
(match (%current-system)
|
||||
("armhf-linux"
|
||||
"/20150101/gcc-4.8.4.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/gcc-5.4.0.tar.xz")
|
||||
("powerpc64le-linux"
|
||||
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
|
||||
("x86_64-gnu"
|
||||
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
|
||||
("powerpc-linux"
|
||||
"/20200923/gcc-5.5.0.tar.xz")
|
||||
("riscv64-linux"
|
||||
"/20210725/gcc-7.5.0.tar.xz")
|
||||
(_
|
||||
"/20131110/gcc-4.8.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
|
||||
("armhf-linux"
|
||||
(base32
|
||||
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
|
||||
("aarch64-linux"
|
||||
(base32
|
||||
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
|
||||
("powerpc64le-linux"
|
||||
(base32
|
||||
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
|
||||
("riscv64-linux"
|
||||
(base32
|
||||
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
|
||||
("i586-gnu"
|
||||
(base32
|
||||
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
|
||||
("x86_64-gnu"
|
||||
(base32
|
||||
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz"))
|
||||
("powerpc-linux"
|
||||
(base32
|
||||
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w"))
|
||||
("mips64el-linux"
|
||||
(base32
|
||||
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
|
||||
(list (bootstrap-executable "tar" (%current-system))
|
||||
(bootstrap-executable "xz" (%current-system))
|
||||
(bootstrap-executable "bash" (%current-system))
|
||||
%bootstrap-glibc
|
||||
(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
(match (%current-system)
|
||||
("armhf-linux"
|
||||
"/20150101/gcc-4.8.4.tar.xz")
|
||||
("aarch64-linux"
|
||||
"/20170217/gcc-5.4.0.tar.xz")
|
||||
("powerpc64le-linux"
|
||||
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
|
||||
("i586-gnu"
|
||||
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
|
||||
("x86_64-gnu"
|
||||
"/20241122/gcc-stripped-14.2.0-x86_64-pc-gnu.tar.xz")
|
||||
("powerpc-linux"
|
||||
"/20200923/gcc-5.5.0.tar.xz")
|
||||
("riscv64-linux"
|
||||
"/20210725/gcc-7.5.0.tar.xz")
|
||||
(_
|
||||
"/20131110/gcc-4.8.2.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(file-name "gcc.tar.xz")
|
||||
(sha256
|
||||
(base32
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")
|
||||
("i686-linux"
|
||||
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")
|
||||
("armhf-linux"
|
||||
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")
|
||||
("aarch64-linux"
|
||||
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")
|
||||
("powerpc64le-linux"
|
||||
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")
|
||||
("riscv64-linux"
|
||||
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")
|
||||
("i586-gnu"
|
||||
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")
|
||||
("x86_64-gnu"
|
||||
"1cgbhc76hlccx6v2z7kk7z173lryyq3la5mmbwivl6hbl1zcqg3m")
|
||||
("powerpc-linux"
|
||||
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
|
||||
("mips64el-linux"
|
||||
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "C_INCLUDE_PATH")
|
||||
@@ -997,14 +965,12 @@ exec ~a/bin/~a -B~a/lib \
|
||||
;; own packages.
|
||||
(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)))
|
||||
(list %bootstrap-linux-libre-headers))
|
||||
(_
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils)
|
||||
("coreutils&co" ,%bootstrap-coreutils&co)
|
||||
;; In gnu-build-system.scm, we rely on the availability of Bash.
|
||||
("bash" ,%bootstrap-coreutils&co)))))
|
||||
(list %bootstrap-glibc
|
||||
%bootstrap-gcc
|
||||
%bootstrap-binutils
|
||||
%bootstrap-coreutils&co))))
|
||||
|
||||
(define %bootstrap-inputs-for-tests
|
||||
;; These are bootstrap inputs that are cheap to produce (no compilation
|
||||
|
||||
+1195
-1183
File diff suppressed because it is too large
Load Diff
@@ -406,10 +406,9 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
|
||||
|
||||
;; Don't attempt to run the tests when cross-compiling.
|
||||
#:tests? (not (%current-target-system))))
|
||||
(inputs
|
||||
`(,@(if (%current-target-system)
|
||||
`(("bash" ,bash-minimal))
|
||||
'())))
|
||||
(inputs (if (%current-target-system)
|
||||
(list bash-minimal)
|
||||
(list)))
|
||||
(outputs '("out" "static"))
|
||||
(synopsis "High-quality data compression program")
|
||||
(description
|
||||
@@ -554,7 +553,7 @@ formats, including zstd, xz, gzip, and bgzf.")
|
||||
(define-public xz
|
||||
(package
|
||||
(name "xz")
|
||||
(version "5.4.5")
|
||||
(version "5.8.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "http://tukaani.org/xz/xz-" version
|
||||
@@ -563,7 +562,7 @@ formats, including zstd, xz, gzip, and bgzf.")
|
||||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1mmpwl4kg1vs6n653gkaldyn43dpbjh8gpk7sk0gps5f6jwr0p0k"))))
|
||||
"0hsmg58a27jd1vq0lc6yp405978c1nfhqwndl7f10v1mk6sjay2h"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@@ -581,7 +580,7 @@ formats, including zstd, xz, gzip, and bgzf.")
|
||||
(substitute* (string-append out "/lib/liblzma.la")
|
||||
(("^old_library='liblzma.a'") "old_library=''"))
|
||||
#t))))))
|
||||
(outputs '("out" "static"))
|
||||
(outputs '("out" "static" "doc"))
|
||||
(inputs
|
||||
`(,@(if (%current-target-system)
|
||||
`(("bash" ,bash-minimal))
|
||||
@@ -598,6 +597,8 @@ compression algorithm is currently LZMA2, which is used inside the .xz
|
||||
container format. With typical files, XZ Utils create 30 % smaller output
|
||||
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
@@ -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
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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."))))
|
||||
|
||||
@@ -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.
|
||||
|
||||
+252
-261
@@ -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
|
||||
|
||||
+40
-38
@@ -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"
|
||||
@@ -124,6 +122,14 @@
|
||||
;; 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 +157,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 +210,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.
|
||||
|
||||
@@ -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
@@ -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")
|
||||
|
||||
+13
-11
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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'
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 '())
|
||||
|
||||
@@ -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 '())
|
||||
|
||||
@@ -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
@@ -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
@@ -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))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user