summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2024-07-15build-system: go: Properly handle when a target is unsupported.Christopher Baines
* guix/build-system/go.scm (go-target): Properly handle when a target is unsupported. Change-Id: Ibc0becb8eb0a712d21116112c44e2bbbb707ddf4
2024-07-15build-system: meson: Use a more specific exception.Christopher Baines
This is handled by (guix ui). * guix/build-system/meson.scm (make-machine-alist): Use a more specific exception. Change-Id: I842ba63739fdefe04460e938c7bc8aa54ea57b96
2024-07-15guix: packages: Add &unsupported-cross-compilation-target-error.Christopher Baines
* guix/packages.scm (&unsupported-cross-compilation-target-error): New variable. * guix/ui.scm (call-with-error-handling): Handle this new condition type. Change-Id: I9e7782ee4799b5fecb3c890a75008c35c003f55d
2024-07-15guix: packages: Add new &package-unsupported-target-error.Christopher Baines
Some packages don't support cross building to specific targets, so add a error type to signal this. * guix/packages.scm (&package-unsupported-target-error): New condition type. [package-unsupported-target-error? package-unsupported-target-error-target): New procedures. * guix/ui.scm (call-with-error-handling): Handle this new condition type. Change-Id: Ib47813399e04b20d616a95f545b6aabe25736e92
2024-07-12build-system/composer: Do not try to delete-duplicates.Nicolas Graves
* guix/build-system/composer.scm (create-autoload): Do not use the delete-duplicates function, stale code that should have been removed in an earlier cleanup. Change-Id: I778c1cfba7ef8de16a1ba297b583595b391b7e00 Signed-off-by: jgart <jgart@dismail.de>
2024-07-10pack: Create /tmp in Apptainer images.Lars Bilke
Related to <https://bugs.gnu.org/37161> and <https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7979a287f8eb84cbbfa44629951572408939a756>. * guix/scripts/pack.scm (squashfs-image)[build]: Add /tmp to the set of directories created. * tests/pack.scm ("squashfs-image + localstatedir"): Check for /tmp. Change-Id: I576aaa6ba8cb8478acf4c3144d492ae5caf411ca Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-07-06import: github: Honor upstream-name property.Dariqq
* guix/import/github.scm (import-release): Use package-upstream-name instead of package-name. Change-Id: I9a4999a01156ce02584270837ceab70996b49106 Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2024-07-02self: Remove reference to source.Christopher Baines
A regression was introduced in 368e58afcb3b363098e52907c1ea9a385566f7d4 which led to the guix-translated-texinfo derivation including a source file for the entire checkout. I'm not sure what the --srcdir option does, but the derivation still seems to build when it's removed. * guix/self.scm (translate-texi-manuals): Remove #$source reference. Change-Id: Icfe1eaf7600f5708c9b3408d59d760b1edb3237b
2024-07-02build-sysem/mix: Preserve code paths.Igor Goryachev
* guix/build/mix-build-system.scm (build): Preserve code paths. Change-Id: Ia43e79385a536de98ae026893e1bda2a8416562c Signed-off-by: Andrew Tropin <andrew@trop.in>
2024-07-01import: go: Fix indentation in help message.Richard Sent
* guix/scripts/import/go.scm (show-help) <recursive>: Indent second line. Change-Id: Iad096231e26ed4e0e1c584f92e43f2695a2d8682 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-06-29build/go: Use trimpath go flag.Ekaitz Zarraga
Go 1.13 introduced[1] a new "trimpath" flag in charge of removing the references to the go toolchain in the produced ELFs. We used to remove these references using the "remove-go-reference" function. This function was executed after go install. By using this new trimpath flag, we don't have to remove any store path from the ELFs produced by go install. We're not using any go older than 1.13 anymore, it's safe to remove these functions. [1] https://go.dev/doc/go1.13 -trimpath remove all file system paths from the resulting executable. Instead of absolute file system paths, the recorded file names will begin either a module path@version (when using modules), or a plain import path (when using the standard library, or GOPATH). * guix/build/go-build-system.scm (build): Add -trimpath (%standard-phases): Remove remove-go-references. (remove-go-references): Remove. Change-Id: Idcae366d226da5ce095693f81fd33133fd1d70d6 Co-authored-by: Picnoir <picnoir@alternativebit.fr> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-06-29build/go: Don't use set!Efraim Flashner
This causes build failures on powerpc-linux. * guix/build/go-build-system.scm (unpack): When the unpack-path is unset use the import-path but don't redefine the unpack-path. Change-Id: I2b5a36eb738abb14307941d388038139dbaf2bdf Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2024-06-29gnu: Upgrade to Stackage 20.26.Lars-Dominik Braun
* guix/import/stackage.scm (%default-lts-version): Upgrade to Stackage 20.26. * gnu/packages/patches/ghc-aeson-encodeDouble.patch: New file. * gnu/packages/patches/ghc-clock-realfrag.patch: New file. * gnu/local.mk: Register them. * gnu/packages/haskell-check.scm (ghc-tasty-hedgehog): Update. (ghc-tasty-hspec): Update. (ghc-tasty-expected-failure): Update. (ghc-quickcheck-instances): Update. (ghc-quickcheck-io): Update. (ghc-hspec-contrib): Update. * gnu/packages/haskell-crypto.scm (ghc-curve25519): Update. (ghc-tls): Update. * gnu/packages/haskell-web.scm (ghc-tagsoup): Update. (ghc-http2): Update. (ghc-wai-websockets): Update. (ghc-aeson): Update. (ghc-clientsession): Update. (ghc-yesod-core): Update. (ghc-yesod-persistent): Update. (ghc-wai-cors): Update. * gnu/packages/haskell-xyz.scm (ghc-abstract-par): Update. (ghc-adjunctions): Update. (ghc-aeson-diff): Update. (ghc-base16-bytestring): Update. (ghc-base-compat): Update. (ghc-base-compat-batteries): Update. (ghc-basement): Update. (ghc-bencode): Update. (ghc-bytestring-handle): Update. (ghc-c2hs): Update. (ghc-cassava-megaparsec): Update. (ghc-cborg): Update. (ghc-charset): Update. (ghc-chasingbottoms): Update. (ghc-clock): Update. (ghc-cmark-gfm): Update. (ghc-concurrent-extra): Update. (ghc-concurrent-output): Update. (ghc-conduit-extra): Update. (ghc-constraints): Update. (ghc-convertible): Update. (ghc-csv): Update. (ghc-data-accessor): Update. (ghc-data-ordlist): Update. (ghc-dense-linear-algebra): Update. (ghc-diagrams-core): Update. (ghc-diff): Update. (ghc-dual-tree): Update. (ghc-either): Update. (ghc-errors): Update. (ghc-esqueleto): Update. (ghc-exactprint): Update. (ghc-extensible-exceptions): Update. (ghc-fail): Update. (ghc-filepath-bytestring): Update. (ghc-fingertree): Update. (ghc-fmlist): Update. (ghc-foldl): Update. (ghc-free): Update. (ghc-fsnotify): Update. (ghc-generic-random): Update. (ghc-genvalidity-property): Update. (ghc-groups): Update. (ghc-hackage-security): Update. (ghc-half): Update. (ghc-hashtables): Update. (ghc-haskell-src): Update. (ghc-haskell-src-exts-util): Update. (ghc-hourglass): Update. (ghc-hpack): Update. (ghc-hslua): Update. (ghc-hslua-module-system): Update. (ghc-http-api-data): Update. (ghc-ini): Update. (ghc-inline-c): Update. (ghc-inline-c-cpp): Update. (ghc-interpolate): Update. (ghc-intervals): Update. (ghc-invariant): Update. (ghc-io-streams): Update. (ghc-ipynb): Update. (ghc-kan-extensions): Update. (ghc-lens): Update. (ghc-libmpd): Update. (ghc-libyaml): Update. (ghc-lifted-async): Update. (ghc-linear): Update. (ghc-listlike): Update. (ghc-logict): Update. (ghc-lucid): Update. (ghc-lzma-conduit): Update. (ghc-magic): Update. (ghc-microlens-ghc): Update. (ghc-microlens-mtl): Update. (ghc-microlens-platform): Update. (ghc-missingh): Update. (ghc-mmorph): Update. (ghc-monad-control): Update. (ghc-monad-logger): Update. (ghc-monoid-extras): Update. (ghc-murmur-hash): Update. (ghc-ncurses): Update. (ghc-network-info): Update. (ghc-newtype-generics): Update. (ghc-openglraw): Update. (ghc-text-conversions): Update. (ghc-text-icu): Update. (ghc-text-short): Update. (ghc-text-zipper): Update. (ghc-parsers): Update. (ghc-path): Update. (ghc-peano): Update. (ghc-persistent): Update. (ghc-persistent-sqlite): Update. (ghc-process-extras): Update. (ghc-indexed-profunctors): Update. (ghc-project-template): Update. (ghc-psqueues): Update. (ghc-random): Update. (ghc-reducers): Update. (ghc-refact): Update. (ghc-regex-posix): Update. (ghc-resourcet): Update. (ghc-sdl): Update. (ghc-sdl2-image): Update. (ghc-sdl2-mixer): Update. (ghc-sdl2-ttf): Update. (ghc-sdl2-gfx): Update. (ghc-semigroupoids): Update. (ghc-semigroups): Update. (ghc-shakespeare): Update. (ghc-shelly): Update. (ghc-simple-reflect): Update. (ghc-size-based): Update. (ghc-skylighting-format-latex): Update. (ghc-skylighting-format-ansi): Update. (ghc-skylighting): Update. (ghc-sop-core): Update. (ghc-split): Update. (ghc-splitmix): Update. (ghc-statevar): Update. (ghc-statistics): Update. (ghc-stm-conduit): Update. (ghc-storable-complex): Update. (ghc-storablevector): Update. (ghc-svg-builder): Update. (ghc-temporary-rc): Update. (ghc-terminal-size): Update. (ghc-text-manipulate): Update. (ghc-th-abstraction): Update. (ghc-th-expand-syns): Update. (ghc-th-lift-instances): Update. (ghc-th-orphans): Update. (ghc-timezone-series): Update. (ghc-timezone-olson): Update. (ghc-tldr): Update. (ghc-transformers-compat): Update. (ghc-exception-transformers): Update. (ghc-trifecta): Update. (ghc-turtle): Update. (ghc-unagi-chan): Update. (ghc-unexceptionalio): Update. (ghc-unicode-transforms): Update. (ghc-unix-compat): Update. (ghc-unix-time): Update. (ghc-unliftio): Update. (ghc-commutative-semigroups): Update. (ghc-utf8-string): Update. (ghc-void): Update. (ghc-wl-pprint-text): Update. (ghc-x11-xft): Update. (ghc-xml): Update. (ghc-xml-hamlet): Update. (ghc-yaml): Update. (ghc-zip-archive): Update. (ghc-zlib): Update. (ghc-zstd): Update. (ghc-keys): Update. (ghc-pointed): Update. (ghc-lift-type): Update. (ghc-unicode-collation): Update. (ghc-citeproc): Update. (ghc-commonmark): Update. (ghc-commonmark-extensions): Update. (ghc-genvalidity-hspec): Update. (ghc-netlink): Update. (ghc-doctest-driver-gen): Update. (ghc-mysql): Update. (ghc-persistent-qq): Update. (ghc-persistent-mysql): Update. (ghc-string-conversions): Update. (ghc-postgresql-simple): Update. (ghc-persistent-postgresql): Update. (ghc-filtrable): Update. (ghc-hsyaml-aeson): Update. (ghc-singleton-bool): Update. (ghc-git-lfs): Update. (ghc-nothunks): Update. (ghc-onetuple): Update. (ghc-doctest-parallel): Update. (ghc-ordered-containers): Update. (ghc-hslua-marshalling): Update. (ghc-gridtables): Update. (ghc-should-not-typecheck): Update. (ghc-servant-server): Update. (ghc-recv): Update. (ghc-glib): Update. (ghc-pango): Update. (ghc-monoidal-containers): Update. (ghc-newtype): Update. (ghc-random-shuffle): Update. (ghc-ref-tf): Update. * gnu/packages/irc.scm (glirc): Update. * gnu/packages/purescript.scm (purescript): Update. * gnu/packages/wm.scm (icewm): Update. (ghc-xmobar): Update. Change-Id: I26ef7c2ef06e3075eba3da21947f16708c437f98
2024-06-26swh: Specify 'extid_version' when looking up by external ID.Simon Tournier
Reported in <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>. * guix/swh.scm (swh-url): Don't add trailing slash when URL contains parameters. (lookup-external-id): Specify 'extid_version' to avoid SWH bug from previous erroneous nar hash computations with the initial SWH deployment of this feature. Change-Id: Iea2a5256e0612dae95567907bb11edb92a50df73 Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2024-06-26store: Refactor connect-to-daemon.Christopher Baines
Remove the inner connect procedure, as now that #:non-blocking? needs passing on, this just makes things more difficult. This commit also fixes not passing #:non-blocking? on in the case where open-unix-domain-socket is called as connect. * guix/store.scm (connect-to-daemon): Refactor and fix non-blocking connections to sockets with a filename. Change-Id: I61cd99920df91baba95567d670bec6fa94043875
2024-06-26Revert "guix: Run check-synopsis-style with other local checks."Christopher Baines
The synopsis lint checker is network dependent. This reverts commit 4f63b4b86de47b094ccf42ed68f9f3aa960285bd. Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-06-24gnu: patch: Update to latest commit [security fixes].Maxim Cournoyer
* gnu/packages/base.scm (patch): Rename to... (patch/pinned): ... this. Hide package. (patch): New variable. * gnu/packages/commencement.scm (patch-mesboot): Inherit from patch/pinned. (patch-boot0): Likewise. (%final-inputs): Replace patch with patch/pinned. * gnu/packages/lisp.scm (cl-asdf): Likewise. * guix/packages.scm (%standard-patch-inputs): Replace patch with patch/pinned. Fixes: https://issues.guix.gnu.org/47144 Reported-by: Mark H Weaver <mhw@netris.org> Change-Id: I54ae41b735f5ba0ebad30ebdfaabe0ccdc3f9873
2024-06-24build-system: qt: Fix default parallel-tests? value to #t.Maxim Cournoyer
There is no reason to have this diverge from the underlying cmake build system. * guix/build-system/qt.scm (qt-build) <#:parallel-tests?>: Default to #t. Change-Id: I65db3d6c6727bd24549af4a44940e7362064aed6
2024-06-13substitute: Don’t keep cache entries more than a few days.Ludovic Courtès
Experience has shown that keeping too many entries increases disk usage and, more importantly, leads to long delays when cleaning up the cache, measured in minutes on slow or busy HDDs with hundreds of thousands of cache entries, as is common on build machines. In those cases, the cost of the cache outweighs its benefit. * guix/scripts/substitute.scm (%narinfo-expired-cache-entry-removal-delay): Reduce to 5 days. (cached-narinfo-expiration-time)[max-ttl]: Reduce to 2 days. Change-Id: Iab212f572ee9041be61716423a3c014f93fe81ed
2024-06-12hg-download: Pass strings to ‘hg-fetch’.Ludovic Courtès
Fixes a regression introduced in 275f27989175f31e9feb364ed7deac2435b08f68. * guix/hg-download.scm (hg-fetch-builder): Remove calls to ‘string->symbol’. Change-Id: I2e049d1ecb8860b6f946ca51358aaba22bdc9e2e
2024-06-11git-download: Reduce builder duplication.Christopher Baines
Rather than creating a different builder in the store for every different download (by hash), remove the hash from the builder and pass it in via an environment variable. This means that when git-fetch is used by two different package sources, the derivations will still differ but the builder will be shared. It used to be this way, but changed with 264fdbcaff9c078642355bace0c61c094b3581fc. I noticed this through looking at the same problem with svn-multi-fetch. To try and make the effects of introducing variance in to the builder script more obvious, separate it out in to it's own procedure, so that it's clearer when there's new data going in that could cause variance. * guix/git-download.scm (git-fetch/in-band*): Extract out builder script, include hash in the derivation as an environment variable and update the comment to be more directive. (git-fetch-builder): New procedure. Change-Id: I59c9fc445667c0e7dc44bcb706818300c394a1e5
2024-06-11hg-download: Reduce builder duplication.Christopher Baines
Rather than creating a different builder in the store for every different download (by hash), remove the hash from the builder and pass it in via an environment variable. This means that when hg-fetch is used by two different package sources, the derivations will still differ but the builder will be shared. Looking at the code, becuase the ref is also in the builder, the builders have been duplicated for a while. The overhead is probably limited though since hg-reference isn't used much compared to say svn-multi-reference. To try and make the effects of introducing variance in to the builder script more obvious, separate it out in to it's own procedure, so that it's clearer when there's new data going in that could cause variance. * guix/hg-download.scm (hg-fetch): Extract out builder script and include hash, hg ref url, and hg ref changeset in the derivation as an environment variables. (hg-fetch-builder): New procedure. Change-Id: I3c3a0b4963ea1b208bf1d5137ef98666458ae2d7
2024-06-11svn-download: Reduce svn-fetch builder duplication.Christopher Baines
Rather than creating a different builder in the store for every different download (by hash), remove the hash from the builder and pass it in via an environment variable. This means that when svn-fetch is used by two different package sources, the derivations will still differ but the builder will be shared. It used to be this way, but changed with 0e73f933b291c7e154c7e019b6de1e2f3a97e4c1. I noticed the hash in the builder script when wondering why the build coordinator on bayfront was substituting svn-multi-download files over and over again. To try and make the effects of introducing variance in to the builder script more obvious, separate it out in to it's own procedure, so that it's clearer when there's new data going in that could cause variance. * guix/svn-download.scm (svn-fetch): Extract out builder script, include hash in the derivation as an environment variable and update the comment to be more directive. (svn-fetch-builder): New procedure. Change-Id: I256b94666296ad747f494f0b497ca209b77fbfb4
2024-06-11svn-download: Reduce svn-multi-fetch builder duplication.Christopher Baines
Rather than creating a different builder in the store for every different download (by hash), remove the hash from the builder and pass it in via an environment variable. This means that when svn-multi-fetch is used by two different package sources, the derivations will still differ but the builder will be shared. It used to be this way, but changed with 0e73f933b291c7e154c7e019b6de1e2f3a97e4c1. I noticed the hash in the builder script when wondering why the build coordinator on bayfront was substituting svn-multi-download files over and over again. To try and make the effects of introducing variance in to the builder script more obvious, separate it out in to it's own procedure, so that it's clearer when there's new data going in that could cause variance. * guix/svn-download.scm (svn-multi-fetch): Extract out builder script, include hash in the derivation as an environment variable and update comment to be more directive. (svn-multi-fetch-builder): New procedure. Change-Id: I83c60140ae09e189ee5e5428038a9428ecb8e281
2024-06-11transformations: Fix powerpc64le support.Efraim Flashner
* guix/transformations.scm (tuning-compiler): Adjust the wrapper script when building for powerpc* architectures to pass the correct flags. Change-Id: I9d809ac9b707eb8d6afa7b843c95bce29862a752
2024-06-04file-systems: Add support for mounting CIFS file systemsRichard Sent
* gnu/build/file-systems (canonicalize-device-name): Do not attempt to resolve CIFS formatted device specifications. (mount-file-systems): Add mount-cifs nested function. * gnu/machine/ssh.scm (machine-check-file-system-availability): Skip checking for CIFS availability, similar to NFS. * guix/scripts/system.scm (check-file-system-availability): Likewise. Change-Id: I182e290eba64bbe5d1332815eb93bb68c01e0c3c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-03import: utils: End package descriptions with period.Herman Rimm
* guix/import/utils.scm (beautify-description): Append period to last words which do not end with one. * tests/crate.scm: Append period to descriptions. * tests/elm.scm: Append period to descriptions. * tests/gem.scm: Append period to descriptions. * tests/hexpm.scm: Append period to descriptions. * tests/minetest.scm: Append period to descriptions. * tests/pypi.scm: Append period to descriptions. * tests/import-utils.scm ("beautify-description: transform fragment into sentence"): Likewise. Change-Id: I0b12c4d94cb26cf62fab5b7cbf7885e66ff6c10f Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-03import: crate: Include a main verb in crate importer descriptions.Herman Rimm
* guix/import/crate.scm (make-crate-sexp): Start description with 'This package provides '. * tests/crate.scm: Set descriptions to "This package provides summary". Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: If0f47a68f986b9e878fd5caa3e365c5ad863089a
2024-06-03import: crate: Beautify crate importer synopses.Herman Rimm
* guix/import/crate.scm (make-crate-sexp): Use beautify-synopsis. Change-Id: I4e30e043d34da7a3c355e098f155c0c75b619063 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-03style: Fix conversion of ‘unquote-splicing’ by ‘-S arguments’.Ludovic Courtès
* guix/scripts/style.scm (unquote->ungexp): Add missing comma for ‘ungexp-splicing’. * tests/style.scm ("gexpify arguments, substitute-keyword-arguments + unquote-splicing"): New test. Change-Id: I17dcdd9b4812d54ddba1137e369360706b137bb4
2024-06-03self: Use po4a instead of po4a-translate.gemmaro
* guix/self.scm (translate-tmp-texi): Use po4a instead of po4a-translate. This eliminates the po4a-translate warning; "po4a-translate is deprecated. The unified po4a(1) program is more convenient and less error prone." Change-Id: Id85c7478b1b237f31010994fcd2d38765993c1ad Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2024-05-29gnu: linux-libre: Enable Zstd compression of kernel modules.Maxim Cournoyer
This brings the on disk size of the kernel from 164 MiB to 144 MiB, or about 12%. * gnu/packages/linux.scm (default-extra-linux-options) [version>=5.13]: Enable CONFIG_MODULE_COMPRESS_ZSTD, else CONFIG_MODULE_COMPRESS_GZIP. (make-linux-libre*) [phases] {set-environment}: Set ZSTD_CLEVEL environment variable to 19. [native-inputs]: Add zstd. * gnu/build/linux-modules.scm (module-regex): Add .zst to regexp. Update doc. (modinfo-section-contents): Extend support to Zstd compressed module. (dot-ko): Register the 'zstd compression type. (ensure-dot-ko, file-name->module-name, load-linux-module*) (module-name->file-name/guess, write-module-name-database) (write-module-alias-database, write-module-device-database): Update doc. (module-name-lookup): Also consider zstd-compressed modules. * gnu/installer.scm (installer-program): Add guile-zstd extension to gexp. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Likewise. Decompress zstd-compressed modules for use in initrd. * guix/profiles.scm (linux-module-database): Add guile-zstd extension to gexp. Change-Id: Ide899dc5c58ea5033583b1a91a92c025fc8d901a
2024-05-25deduplication: Detect holes and create sparse files.Ludovic Courtès
This reduces disk usage of sparse files that are substituted such as Guile object files (ELF files). As of Guile 3.0.9, .go files are sparse due to ELF sections being aligned on 64 KiB boundaries. This reduces disk usage reported by “du -sh” by 9% for the ‘guix’ package, by 23% for ‘guile’, and by 35% for ‘guile-git’. * guix/store/deduplication.scm (hole-size, find-holes): New procedures. (tee)[seekable?]: New variable. [read!]: Add case when SEEKABLE? is true. * tests/store-deduplication.scm (cartesian-product): New procedure. ("copy-file/deduplicate, sparse files (holes: ~a/~a/~a)"): New test set. Change-Id: Iad2ab7830dcb1220e2026f4a127a6c718afa8964
2024-05-25environment: Fix type error with ‘-C’ when ‘getpwuid’ fails.Ludovic Courtès
Fixes a bug with ‘guix shell -C …’ in cases where ‘getpwuid’ returns #f (for example because nscd isn’t running) and ‘user’ is #f. * guix/scripts/environment.scm (launch-environment/container): Use ‘name’ when building the ‘directory’ value, not ‘user’ since it can be #f. Change-Id: I5da807d982a1edbb4122ac29b5a1e5fc4b0ce1b7
2024-05-22import/elpa: Add proper file-name to origin.Nicolas Graves via Guix-patches via
This avoids the lint "the source file name should contain the package name" with generated packages. Change-Id: I61c81203d9f3cdd035e2b64a4c7a8d86d1f3dd50 Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn>
2024-05-19import: Add binary npm importer.Jelle Licht
* guix/scripts/import.scm: (importers): Add "npm-binary". * doc/guix.texi (Invoking guix import): Document npm-binary importer. * guix/import/npm-binary.scm: New file. * guix/scripts/import/npm-binary.scm: New file. * tests/npm-binary.scm: New file. * Makefile.am: Add them. Co-authored-by: Timothy Sample <samplet@ngyro.com> Co-authored-by: Lars-Dominik Braun <lars@6xq.net> Change-Id: I98a45068cf5b9c42790664cc743feaa7ac76f807
2024-05-13store: Add with-store/non-blocking.Christopher Baines
For some applications, it's important to establish a non-blocking connection rather than just making the socket non-blocking after the connection is established. This is because there is I/O on the socket that will block during the handshake. I've noticed this blocking during the handshake causing issues in the build coordinator for example. This commit adds a new with-store variant to avoid changing the behaviour of with-store/open-connection to ensure that this change can't break anything that depends on the blocking nature of the socket. * guix/store.scm (open-unix-domain-socket, open-inet-socket): Take #:non-blocking? and use SOCK_NONBLOCK when calling socket if appropriate. (connect-to-daemon, open-connection, call-with-store): Take #:non-blocking? and pass it on. (with-store/non-blocking): New syntax rule. * .dir-locals.el (scheme-mode): Add entry for with-store/non-blocking. Change-Id: I8225762b78448bc1f7b698c8de5d736e13f577bf
2024-05-13Use po4a-minimal for guix.Christopher Baines
As this avoids the indirect dependency on nss, which has a testsuite that takes a long time to run. * gnu/packages/package-management.scm (guix)[native-inputs]: Use po4a-minimal. * guix/self.scm (%packages, translate-texi-manuals): Use po4a-minimal. Change-Id: Iac7555cc850c1618d3d54f1b290faa4f9cfb4f8a
2024-05-13guix: channels: Handle single case with authenticating message.Rostislav Svoboda
* guix/channels.scm (authenticate-channel): Handle single case with authenticating message. Change-Id: I7759607f37405e6d3bd4b7f5958fd11d908db204 Reviewed-by: Dale Mellor <guix-devel-0brg6a@rdmp.org> Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-05-09import/cran: Use CRAN mirrors.Ricardo Wurmus
* guix/import/cran.scm (%cran-url): Use mirror URL instead of primary project domain name. Change-Id: I23a51147d785d6cb645f953ca5ce0ff72f8bd367
2024-05-08guix: Update Bioconductor version to 3.19.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Use 3.19 URL. * guix/import/cran.scm (%bioconductor-version): Set to 3.19. Change-Id: I7a2c4dfcdb2c4cdfef581f823d87e73acc163549
2024-05-05packages: ‘sanitize-inputs’ does not add labels when unnecessary.Ludovic Courtès
Fixes a bug introduced in 402d0a9b9d290a2e3c549932c8d7262622c58ce1 whereby labels would be added in cases like: (inputs (list `("label" ,whatever))) This idiom is found for example in the ‘nmon’ package. * guix/packages.scm (add-input-labels): Call ‘maybe-add-input-labels’ instead of (map add-input-label …). Change-Id: I3e86d4607f19482a4e461ef8e7a20cde2a41ead7
2024-05-04packages: Reduce code bloat due to list allocation in input fields.Ludovic Courtès
* guix/packages.scm (add-input-labels): New procedure. (sanitize-inputs): Add case for (list …). Change-Id: Ice8241508ded51efd38867b97ca19c262b8c4363
2024-05-04packages: ‘define-public’ replacement calls ‘module-export!’ directly.Ludovic Courtès
This reduces code bloat and loading overhead for package modules, which use ‘define-public’ extensively. * guix/packages.scm (define-public*): Use ‘define’ followed by ‘module-export!’ directly instead of ‘define-public’. Change-Id: I7f56d46b391c1e3eeeb0b9a08a9d34b5de341245
2024-05-04records: Do not inline the constructor.Ludovic Courtès
Struct initialization uses one instruction per field, which contributes to code bloat in the case of package modules. With this change, the ‘.rtl-text’ section of ‘gnu/packages/tex.go’ goes from 7,334,508 B to 6,356,592 B (-13%; -7% on the whole file size), which alone is still larger than the source file (4,2 MB). * guix/records.scm (make-syntactic-constructor)[record-inheritance]: Use CTOR instead of ‘make-struct/no-tail’. Pass ABI-COOKIE as the first argument to CTOR. (define-record-type*): Define CTOR-PROCEDURE and pass it to ‘make-syntactic-constructor’. Change-Id: Ifd7b4e884e9fbf21c43fb4c3ad963126ef5cb476
2024-05-04packages: Reduce bloat induced by ‘sanitize-inputs’.Ludovic Courtès
At -O1, peval does the bulk of the optimization work and it cannot reduce things like (null? (list 1 2)), unlike what happens in CPS at -O2. Thus, reduce the part of ‘sanitize-inputs’ that’s inlined. * guix/packages.scm (maybe-add-input-labels): New procedure. (sanitize-inputs): Turn into a macro; use ‘maybe-add-input-labels’. Change-Id: Id2283bb5a2f5d714722200bdcfe0b0bfa606923f
2024-05-04records: Do not inline throws for ABI mismatches.Ludovic Courtès
* guix/records.scm (record-abi-mismatch-error): New procedure. (abi-check): Use it. Change-Id: I49936599716e117b8fbf26fb9d8f462bbbb8e88b
2024-05-01git authenticate: Install pre-push and post-checkout hooks.Ludovic Courtès
* guix/scripts/git/authenticate.scm (install-hooks): New procedure. (guix-git-authenticate): Use it. * doc/guix.texi (Invoking guix git authenticate): Document it. Change-Id: I4464a33193186e85b476a12740e54412bd58429c
2024-05-01git authenticate: Print something upon success.Ludovic Courtès
Until now the command would be silent and exit with 0. * guix/scripts/git/authenticate.scm (guix-git-authenticate): Print something upon success. Change-Id: I08d086c35df6ac74ee847df0479660293c68987d
2024-05-01git authenticate: Discover the repository.Ludovic Courtès
This allows one to run ‘guix git authenticate’ from a sub-directory of the checkout. * guix/scripts/git/authenticate.scm (%default-options): Remove ‘directory’ key. (guix-git-authenticate): Use ‘repository-discover’ when ‘directory’ option is missing. Change-Id: Ifada00d559254971ed7eeb8c0a8d4ae74ff3defc