summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2023-03-20Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge
2023-03-17ui: format 'display-hint' output when no arguments are passed....When display-hint is given format specifiers such as "~%" but no arguments, it does not format the output, causing the specifiers to be visible in the displayed text. * guix/ui.scm (display-hint): Format output when no arguments are passed. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Antero Mejr
2023-03-17pack: "fakechroot" engine passes the recursive RUNPATH to ld.so....This is a followup to 58abd5873985e0cd9a2926867bf697c5e7bc01f9, which did not fully address <https://issues.guix.gnu.org/43491>. * guix/scripts/pack.scm (wrapped-package)[build](runpath): Rewrite in terms of 'file-needed/recursive'. Ludovic Courtès
2023-03-16read-print: 'read-with-comments' reads comments within gexps....Fixes <https://issues.guix.gnu.org/62059>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * guix/read-print.scm (read-with-comments): Special-case #~, #$, and #+. * tests/read-print.scm: Add two tests. Ludovic Courtès
2023-03-16guix: Improve download-nar....Previously download-nar worked with gzipped nars and queried berlin.guix.gnu.org (also known as ci.guix.gnu.org). ci.guix.gnu.org no longer serves gzipped nars so this is of limited use. This commit changes download-nar to query both the default substitute servers, and queries for lzipped rather than gzipped nars, since those are available from both. * guix/build/download-nar.scm (urls-for-item): Return urls for lzip rather than gzip compression, and from both default substitute servers. The comment about CDN's is no longer relevant. (restore-gzipped-nar): Rename to restore-lzipped-nar and reimplement accordingly. (download-nar): Add progress reporting and switch to use lzip rather than gzip. * guix/cvs-download.scm (cvs-fetch): Replace guile-zlib with guile-lzlib. * guix/git-download.scm (git-fetch): Replace guile-zlib with guile-lzlib. * guix/hg-download.scm (hg-fetch): Replace guile-zlib with guile-lzlib. * guix/android-repo-download.scm (android-repo-fetch): Add guile-lzlib for download-nar. Signed-off-by: Christopher Baines <mail@cbaines.net> Christopher Baines
2023-03-13guix: Leave some of guix/build/* unchanged....This partially reverts ae587c2ef041413bc709a555261db752068ea360 to reduce the number of rebuilds. Ludovic Courtès
2023-03-13environment: Clear 'TERM' when checking environment....* guix/scripts/environment.scm (child-shell-environment): Set 'TERM' to the empty string. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Winter
2023-03-13guix: Strip #:use-module lists....This was obtained by setting up this environment: guix shell -D guix --with-input=guile@3.0.9=guile-next \ --with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2 -- make -j5 then adding 'unused-module' to (@@ (guix build compiler) %warnings), building, and checking all the "unused module" warnings and removing those that were definitely unused. Ludovic Courtès
2023-03-13packages: 'package-input-rewriting/spec' ignores hidden packages....The primary motivation is to support things like: guix build guix --with-input=guile=guile-next without triggering a rebuild of (@@ (gnu packages commencement) guile-final) and similar things. It is also consistent with package name resolution on the command line: a package that cannot be named cannot be replaced. * guix/packages.scm (package-input-rewriting/spec)[rewrite]: When P is hidden, return it as-is. * tests/packages.scm ("package-input-rewriting/spec, hidden package"): New test. * doc/guix.texi (Defining Package Variants): Update. (Package Transformation Options): Update '--with-input' example. Ludovic Courtès
2023-03-13packages: Use SRFI-71 instead of SRFI-11....* guix/packages.scm (package-input-rewriting/spec): Use SRFI-71 'let'. Ludovic Courtès
2023-03-13packages: Consider 'patches' by 'package-direct-sources'....* guix/packages.scm (package-direct-sources): Return 'origin' from 'patches'. * tests/packages.scm: Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Simon Tournier
2023-03-12lint: Check that python-pre-commit is not an input....pre-commit should never be a native-input of python packages, it's a package manager for commit linting that is irrelevant to builds. * guix/lint.scm (check-inputs-should-not-be-an-input-at-all): Add entry for python-pre-commit. Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Antero Mejr
2023-03-10import: Add EUPL 1.1 to the SPDX license name converter....* guix/import/utils.scm (spdx-string->license): Add EUPL-1.1 identifier. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Antero Mejr
2023-03-10licenses: Add LPL 1.02 (Lucent Public Licence)....* guix/licenses.scm (lpl1.02): New variable. * guix/import/utils.scm (spdx-string->license): Add LPL-1.02 identifier. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Antero Mejr
2023-03-10build-system/gnu: Remove 'install-license-files' from '%dist-phases'....* guix/build/gnu-dist.scm (%dist-phases): Delete 'install-license-files'. Ludovic Courtès
2023-03-07read-print: Correctly handle comments that follow a list head....Fixes <https://issues.guix.gnu.org/61013>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * guix/read-print.scm (pretty-print-with-comments)[starts-with-line-comment?]: New procedure. Use it when printing a list. * tests/read-print.scm: Add two tests. Ludovic Courtès
2023-03-07read-print: Special-case channel-related forms....* guix/read-print.scm (%special-forms, %newline-forms): Add channel-related forms. Ludovic Courtès
2023-03-06gnu: perl-extutils-pkgconfig: Support cross-compilation....* guix/search-paths.scm ($PKG_CONFIG_PATH): New variable. * gnu/packages/pkg-config.scm (%pkg-config): Use it. * gnu/packages/perl.scm (perl-extutils-pkgconfig-for-target): New procedure. (perl-extutils-pkgconfig): Turn into a syntax that conditionally expands to... (cross-perl-extutils-pkgconfig): ... this when %current-target-system is set, or... (%perl-extutils-pkgconfig): ... this in a native compilation context. [arguments]: New field. [propagated-inputs]: Turn into... [native-inputs]: ... this. [native-search-paths]: New field. Maxim Cournoyer
2023-03-06scripts: environment: Fix ordering issue with CWD and --expose....Fixes <https://issues.guix.gnu.org/46782>. * guix/scripts/environment.scm (launch-environment/container): Move the CWD mapping to the front of the file system mappings. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Josselin Poiret
2023-03-06build-system/guile: Expose #:scheme-file-regexp when cross-compiling...* guix/build-system/guile.scm (guile-cross-build): Accept #:scheme-file-regexp and pass it on to builder. Jelle Licht
2023-03-02Merge remote-tracking branch 'savannah/master' into core-updates...Conflicts: gnu/local.mk gnu/packages/autotools.scm gnu/packages/cmake.scm gnu/packages/gnuzilla.scm gnu/packages/haskell.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/samba.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/wxwidgets.scm Christopher Baines
2023-02-28build-system/gnu: 'static-package' uses gexps....* guix/build-system/gnu.scm (static-package): Use gexps. Ludovic Courtès
2023-02-27ui: 'display-hint' quotes extra arguments for Texinfo....Fixes <https://issues.guix.gnu.org/61201>. Previously, common practice was to splice arbitrary strings (user names, file names, etc.) into Texinfo snippets passed to 'display-hint'. This is unsafe in the general case because at signs and braces need to be escaped to produced valid Texinfo. This commit addresses that. * guix/ui.scm (texinfo-quote): New procedure. (display-hint): When ARGUMENTS is non-empty, pass it to 'texinfo-quote' and call 'format'. (report-unbound-variable-error, check-module-matches-file) (display-collision-resolution-hint, run-guix-command): Remove explicit 'format' call; pass 'format' arguments as extra arguments to 'display-hint'. * gnu/services/monitoring.scm (zabbix-front-end-config): Likewise. * guix/scripts.scm (warn-about-disk-space): Likewise. * guix/scripts/build.scm (%standard-cross-build-options) (%standard-native-build-options): Likewise. * guix/scripts/describe.scm (display-checkout-info): Likewise. * guix/scripts/environment.scm (suggest-command-name): Likewise. * guix/scripts/home.scm (process-command): Likewise. * guix/scripts/home/edit.scm (service-type-not-found): Likewise. * guix/scripts/import.scm (guix-import): Likewise. * guix/scripts/package.scm (display-search-path-hint): Likewise. * guix/scripts/pull.scm (build-and-install): Likewise. * guix/scripts/shell.scm (auto-detect-manifest): Likewise. * guix/scripts/system.scm (check-file-system-availability): Likewise. (guix-system): Likewise. * guix/scripts/system/edit.scm (service-type-not-found): Likewise. * guix/status.scm (print-build-event): Likewise. Ludovic Courtès
2023-02-27scripts: repl: Extend REPL %load-path with all channels....Fixes <https://bugs.gnu.org/61343>. Reported by 宋文武 <iyzsong@envs.net>. * guix/scripts/repl.scm (define-command): Before starting the REPL, call 'current-profile' to populate (%package-module-path). Signed-off-by: Ludovic Courtès <ludo@gnu.org> Simon Tournier
2023-02-27gexp: computed-file: Do not honor %guile-for-build....This reverts commit 68775338a510f84e63657ab09242d79e726fa457. Fixes <https://issues.guix.gnu.org/61841>. (%guile-for-build) is a derivation for a specific system, whereas (default-guile) is a system-independent package. It's crucial to preserve this distinction. See discussion at <https://issues.guix.gnu.org/61255#29>. * guix/gexp.scm (computed-file-compiler): Honor (default-guile), not (%guile-for-build). Ludovic Courtès
2023-02-27pack: Make sure tests can run without a world rebuild....Commit 68380db4c40a2ee1156349a87254fd7b1f1a52d5 moved from 'gexp->derivation', which as a side effect, would lead tests to require a "world rebuild"--specifically, they'd have to build (default-guile). This was mitigated by 68775338a510f84e63657ab09242d79e726fa457, but that change introduced another regression. * guix/scripts/pack.scm (populate-profile-root): Define 'bootstrap?'. Pass #:guile to 'computed-file', with a value depending on 'bootstrap?'. * tests/pack.scm ("self-contained-tarball + localstatedir") ("docker-image + localstatedir", "squashfs-image + localstatedir") ("deb archive with symlinks and control files") ("rpm archive can be installed/uninstalled"): Use a <profile> record instead of a derivation. Ludovic Courtès
2023-03-03git-download: Apply Git attributes on checkouts coming from SWH....Fixes a bug whereby CR/LF conversion, for instance, would not be applied on Git repositories retrieved from SWH: https://sympa.inria.fr/sympa/arc/swh-devel/2023-03/msg00000.html Reported by Simon Tournier <simon.tournier@inserm.fr>. Suggested by Valentin Lorentz <valentin.lorentz@inria.fr>. Co-authored by Simon Tournier <simon.tournier@inserm.fr>. * guix/git-download.scm (git-fetch)[build]: Add Git operations conditioned by '.gitattributes' on the result from SWH. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ludovic Courtès
2023-02-26build: haskell-build-system: Build static executables by default....This is the only way to get reasonably small binaries that don’t pull in a ton of ghc-* packages. * guix/build/haskell-build-system.scm (configure): Explicitly add --enable-static and --disable-executable-dynamic, as well as -split-sections to configure flags. Lars-Dominik Braun
2023-02-26build-system: haskell: Drop default "static" output....* guix/build-system/haskell.scm (lower): Pass outputs to lowered bag. * guix/build/haskell-build-system.scm (install): Remove static library moving code. * gnu/packages/haskell-check.scm (ghc-hunit): Remove "static" output. * gnu/packages/haskell-crypto.scm (ghc-crypto-api-tests): Likewise. * gnu/packages/haskell-xyz.scm (ghc-case-insensitive): Likewise. (ghc-cmdargs): Likewise. (ghc-conduit): Likewise. (ghc-fgl): Likewise. (ghc-haskell-src-exts): Likewise. (ghc-lib-parser): Likewise. (ghc-mono-traversable): Likewise. (ghc-parallel): Likewise. (ghc-paths): Likewise. (ghc-profunctors): Likewise. (ghc-tf-random): Likewise. (ghc-vector): Likewise. Lars-Dominik Braun
2023-02-26build: haskell-build-system: Remove unused linker flags....They were inserted as-is, without expandind variables into binaries. * guix/build/haskell-build-system.scm (configure): Remove --ghc-option. Lars-Dominik Braun
2023-02-26build: haskell-build-system: Process all transitive dependencies....A bug caused install-transitive-deps to stop looping if a dependency file already existed in the target directory. For Haskell packages with multiple libraries (like attoparsec) this resulted in missing dependencies and error messages like this: The following packages are broken because other packages they depend on are missing. These broken packages must be rebuilt before they can be used. installed package attoparsec-0.14.4 is broken due to missing package scientific-0.3.7.0-9XG3zUjXOw970JFcruv0cZ See <https://issues.guix.gnu.org/54729#11>. * guix/build/haskell-build-system.scm (register): Unconditionally loop over all tails. Lars-Dominik Braun
2023-02-26import: haskell: Add new internal library for GHC 9.2....* guix/import/hackage.scm (ghc-standard-libraries): Add ghc-bignum. Lars-Dominik Braun
2023-02-26import: hackage: Use upstream-name property....* guix/import/hackage.scm (guix-package->hackage-name): Removed. (latest-release): Use package-upstream-name* instead. * guix/import/stackage.scm (latest-lts-release): Ditto. (stackage-lts-package?): Ditto. Lars-Dominik Braun
2023-02-26import: hackage: Add upstream-name property....* guix/import/hackage.scm (hackage-module->sexp): Add property upstream-name to imported package. * tests/hackage.scm (match-ghc-foo): Add upstream-name property. (match-ghc-foo-6): Ditto. (match-ghc-elif): Ditto. (match-ghc-foo-revision): Ditto. (match-ghc-foo-import): Ditto. Lars-Dominik Braun
2023-02-26import: stackage: Update to release 20.5....* guix/import/stackage.scm (%default-lts-version): Update to 20.5. Lars-Dominik Braun
2023-02-26build: haskell-build-system: Support multiple libraries....Fixes <https://bugs.gnu.org/53655>. The patch handles correctly the multiple registration of some package using their own internal sub-libraries. It allows to call 'install-transitive-deps' multiple times and deals with packages requiring a multiple registration. * guix/build/haskell-build-system.scm (register)[install-transitive-deps]: Guard also the destination direction. [install-config-file]: New procedure. Co-Authored-by: zimoun <zimon.toutoune@gmail.com>. Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Philip Munksgaard
2023-02-26build: haskell-build-system: Remove trailing #t....* guix/build/haskell-build-system.scm (configure, install, setup-compiler, make-ghc-package-database, install-transitive-deps, check, haddock, patch-cabal-file, generate-setuphs): Delete trailing #t. Signed-off-by: Lars-Dominik Braun <lars@6xq.net> zimoun
2023-02-26import: hackage: Allow version at the beginning of cabal file....Fix a corner case, uncovered by the hedgehog package, which has the version field at the beginning of its cabal file. This causes a pattern match failure. * guix/import/hackage.scm (latest-release): Match version at beginning of expression too. Lars-Dominik Braun
2023-02-25cpio: Properly handle Unicode characters in file names....Fixes <https://issues.guix.gnu.org/61722>. * guix/cpio.scm (file->cpio-header): Compute the file name length in bytes rather than in characters. (file->cpio-header*, special-file->cpio-header*): Likewise. (write-cpio-archive): Likewise, and write the file name as UTF-8 bytes, not textually, to avoid encoding it as ISO-8859-1. Maxim Cournoyer
2023-02-24offload: Increase initial SSH connection timeout....Fixes <https://issues.guix.gnu.org/61646>. * guix/scripts/offload.scm (open-ssh-session): Increase connection timeout from 10 s to 30 s. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer
2023-02-24scripts: home: Move ensure-profile-directory to a better place....The profile directory is usually created by daemon, when user opens a connection. Ideally, we would like to remove ensure-profile-directory call at all, but daemon doesn't handle case with custom $GUIX_STATE_DIRECTORY yet. More information in: <https://issues.guix.gnu.org/61717> * guix/scripts/home.scm (process-action): Move ensure-profile-directory call to the place, where connection to the daemon is already open. Reported-by: wolf <wolf@wolfsden.cz> Andrew Tropin
2023-02-19git: Make better use of the better progress bar....Commit 189525412e3d803f3f77e15ec4a62aaa57f65a2d introduced ‘high-resolution’ Unicode progress bars, but these require more granular calls to reach their full potential. * guix/git.scm (show-progress): Derive the number of PROGRESS-BAR updates from its maximum resolution, rather than hard-coding 100. Tobias Geerinckx-Rice
2023-02-19git: Factor out INDEXER-PROGRESS-TOTAL-OBJECTS access....* guix/git.scm (show-progress): Reuse the result of the first call. Tobias Geerinckx-Rice
2023-02-19ssh: Factor out progress % calculation....* guix/ssh.scm (notify-transfer-progress): Trust its % argument. Tobias Geerinckx-Rice
2023-02-23pack: Add UTF-8 locales to RPM pack builder....It's necessary as 'generate-header' call ends up calling 'find-files', which could fail to read file names containing non-ascii characters, as spotted in the wild: building /gnu/store/...-jami-rpm-pack.rpm.drv... find-files: ./gnu/store/...-nss-certs-3.81/etc/ssl/certs/NetLock_Arany_=Class_Gold=_F??tan??s??tv??ny.pem: No such file or directory * guix/scripts/pack.scm (rpm-archive): Expand set-utf8-locale helper in the builder gexp. Maxim Cournoyer
2023-02-22pack: Register extra /usr/share sub-directories as FHS....* guix/rpm.scm (%fhs-directories): Add extra FHS directories. They were found to conflict while testing a 'guix pack' built Jami RPM. Maxim Cournoyer
2023-02-19pack: Add RPM format....* guix/rpm.scm: New file. * guix/scripts/pack.scm (rpm-archive): New procedure. (%formats): Register it. (show-formats): Add it. (guix-pack): Register supported extra-options for the rpm format. * tests/pack.scm (rpm-for-tests): New variable. ("rpm archive can be installed/uninstalled"): New test. * tests/rpm.scm: New test. * doc/guix.texi (Invoking guix pack): Document it. Maxim Cournoyer
2023-02-19pack: Extract populate-profile-root from self-contained-tarball/builder....This allows more code to be reused between the various archive writers. * guix/scripts/pack.scm (set-utf8-locale): New top-level procedure, extracted from... (populate-profile-root): New procedure, extracted from... (self-contained-tarball/builder): ... here. Add #:target argument. Call populate-profile-root. [LOCALSTATEDIR?]: Set db.sqlite file permissions. (self-contained-tarball): Call self-contained-tarball/builder with the TARGET argument, and set #:local-build? to #f for the gexp-derivation call. Remove now extraneous #:target and #:references-graphs arguments from the gexp->derivation call. (debian-archive): Call self-contained-tarball/builder with the #:target argument. Fix indentation. Remove now extraneous #:target and #:references-graphs arguments from the gexp->derivation call. Maxim Cournoyer
2023-02-19gexp: computed-file: Honor %guile-for-build....* guix/gexp.scm (computed-file-compiler): Honor %guile-for-build. Maxim Cournoyer
2023-02-19pack: Use let-keywords instead of keyword-ref....* guix/scripts/pack.scm: (debian-archive): Bind extra-options keyword arguments via let-keywords. Maxim Cournoyer