summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2023-07-18guix: Let texlive importer suggest format creation....* guix/import/texlive.scm (tlpdb): Store "execute" entries. (tlpdb->package): Add #:CREATE-FORMATS argument when there is an AddFormat execute action. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package, with TeX format"): ("texlive->guix-package, execute but no TeX format"): New tests. Nicolas Goaziou
2023-07-18guix: texlive-build-system: Generate TeX formats....* guix/build-system/texlive.scm (texlive-build): Add #:CREATE-FORMATS argument. * doc/guix.texi (Build Systems): Document it. * guix/build/texlive-build-system.scm (texlive-input?): New function. (generate-font-metrics): Use new function above. (create-formats): New function. (%standard-phases): Add function above to phases. Nicolas Goaziou
2023-07-18guix: import: Improve importing texlive meta packages....* guix/import/texlive.scm (tlpdb->package): Generate more appropriate source, home page and license fields when importing meta packages, i.e., TeX Live collections and schemes. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package, meta-package"): New test. Nicolas Goaziou
2023-07-18guix: texlive-build-system: Handle doc-only packages gracefully....* guix/build/texlive-build-system.scm (install): Always create #$output, even if it is empty. Nicolas Goaziou
2023-07-18guix: import: Fix Creative Common licenses in texlive importer....* guix/import/texlive.scm (string->license): Fix symbol used for some CC-BY licenses. Add version 4.0 for CC-BY and CC-BY-SA. Nicolas Goaziou
2023-07-18guix: import: Handle native inputs in texlive importer....* guix/import/texlive.scm (tlpdb->package): Add TEXLIVE-METAFONT as a native input whenever font metrics are to be generated. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package, with METAFONT files"): New test. Nicolas Goaziou
2023-07-18guix: texlive-build-system: Generate font metrics....* guix/build/texlive-build-system.scm (install-as-runfiles): (generate-font-metrics): New function. (build): Use INSTALL-AS-RUNFILES. (%standard-phases): Add new phase. Nicolas Goaziou
2023-07-18guix: import: Fix multiple licenses output in texlive importer....* guix/import/texlive.scm (string->license): Add missing case and try first to split license strings before giving up. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package, multiple licenses"): New test. Nicolas Goaziou
2023-07-18guix: import: texlive use full file names for generic directories....Generic directories, such as "doc/info/" or "doc/man" are shared by multiple packages. With this change, the texlive importer specifies the full file name of package-specific files there, making sure only them are downloaded. * guix/import/texlive.scm (texlive-generic-locations): New variable. (files->locations): Renamed from files->directories. Provide full file names when necessary. (tlpdb->package): Apply renaming. Nicolas Goaziou
2023-07-18guix: import: Improve home-page generation in texlive importer....* guix/import/texlive.scm (tlpdb): Also register `catalogue' key. (tlpdb->package): First try to use catalogue for the home-page, then the name. * tests/texlive.scm (%fake-tlpdb): Add tests data. ("texlive->guix-package, with catalogue entry, no inputs"): New test. Nicolas Goaziou
2023-07-18guix: import: Update texlive importer according to new build system....* guix/import/texlive.scm (tlpdb->package): Generate a package that doesn't need SIMPLE-TEXLIVE-PACKAGE. * guix/import/utils.scm (package->definition): Remove special case for `simple-texlive-package'. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package"): Update test. ("texlive->guix-package, no docfiles"): New test. Nicolas Goaziou
2023-07-18guix: texlive-build-system: Improvements on non-trivial packages....* guix/build/texlive-build-system.scm (build): Ignore temporary build files when moving runfiles around. Remove ".drv" source files prior to compiling files. Remove need for #:TEX-DIRECTORY keyword. Handle ".ins" and ".dtx" files in different directories. (install): Install docfiles in "doc" output when available. * guix/build-system/texlive.scm (texlive-build): Remove #:TEX-DIRECTORY. * doc/guix.texi (Build Systems): Remove reference to #:TEX-DIRECTORY in TEXLIVE-BUILD-SYSTEM documentation. Also mention it now tries to compile ".dtx" files when there is no ".ins" file. Nicolas Goaziou
2023-07-17scripts/refresh: Remove column from spec line before sorting....We want to sort by file and line number, but the column number messes everything up. This is a follow-up to commit b43841c124d15eaecc41b3928f08a26dbd5c653a. * guix/scripts/refresh.scm (guix-refresh): Trim the digits on the right of the location string before comparing them. Ricardo Wurmus
2023-07-09download: Remove stale Yandex GNOME mirror....* guix/download.scm (%mirrors): Remove mirror.yandex.ru from gnome. Tobias Geerinckx-Rice
2023-07-09download: Remove broken X.org mirrors....These are still at <https://www.x.org/wiki/Releases/Download>, but then that page hasn't been updated since 2018. * guix/download.scm (%mirrors): Remove mirror.us.leaseweb.net and x.cs.pu.edu.tw. Tobias Geerinckx-Rice
2023-07-09download: Remove obsolete kernel.org mirrors....* guix/download.scm (%mirrors): Remove kernel.osuosl.org and mirror.linux.org.au. Tobias Geerinckx-Rice
2023-07-09download: Remove obsolete Savannah subdirectory....* guix/download.scm (%mirrors): Remove ‘releases-noredirect’ URL. Tobias Geerinckx-Rice
2023-07-13guix: platform: Use srfi-34's raise instead of raise-exception....* guix/platform.scm (lookup-platform-by-system) (lookup-platform-by-target) (lookup-platform-by-target-or-system): Use srfi-34's raise instead of raise-exception. Josselin Poiret
2023-07-13gnu: Add libc-for-target and glibc/hurd....* gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch * gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch * gnu/packages/patches/glibc-2.37-versioned-locpath.patch: New patches. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables. (glibc/hurd-headers): Use glibc/hurd. * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[outputs, source, arguments] (glibc-final)[source]: Use libc-for-target instead of glibc. * gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use libc-for-target. This part fixes https://issues.guix.gnu.org/63641#25 * gnu/packages/commencement.scm (%final-inputs): Change to memoized lambda taking "system". * gnu/packages/commencement.scm (canonical-package): Likewise, and update user, passing (%current-system). (make-gcc-toolchain): Update user, passing (%current-system). * gnu/packages/base.scm (%final-inputs): Likewise. * guix/scripts/refresh.scm (options->update-specs): Likewise. * guix/build-system/gnu.scm (standard-packages): Add optional "system" parameter. (lower): Update caller. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Co-authored-by: Janneke Nieuwenhuizen <janneke@gnu.org> Josselin Poiret
2023-07-13shell: Really take system into account in the cache key....Fixes <https://issues.guix.gnu.org/63230>. Previously, when running "guix shell -s X ...", OPTS would contain something like '((system . "X") ... (system . "DEFAULT")). Thus, since 'profile-cached-gc-root' would iterate over it in this order, "DEFAULT" would be passed to 'profile-file-cache-key' and 'profile-spec-cache-key' instead of "X". * guix/scripts/shell.scm (profile-cached-gc-root): Reverse OPTS before entering 'loop'. Ludovic Courtès
2023-07-12transformations: Allow tuning go packages....* guix/transformations.scm (build-system-with-tuning-compiler): When checking if a microarchitecture is supported by the compiler, also check if it is a go compiler which supports that psabi. Add a phase after 'setup-go-environment to set the go microarchitecture. Efraim Flashner
2023-07-12guix: cpu: Add gcc-architecture->micro-architecture-level mapping....* guix/cpu.scm (gcc-architecture->micro-architecture-level): New variable. Efraim Flashner
2023-07-12guix: cpu: Refactor cpu->gcc-architecture....* guix/cpu.scm (cpu->gcc-architecture): Refactor to wrap all the x86_64 options inside a common letrec-syntax. Efraim Flashner
2023-07-12guix: cpu: Rewrite fallback for x86_64 cpu->gcc-architecture....* guix/cpu.scm (cpu->gcc-architecture): Adjust the fallback case to use cpu->micro-architecture-level. Efraim Flashner
2023-07-12guix: cpu: Add generalized CPU matching....* guix/cpu.scm (cpu->micro-architecture-level): New variable. Efraim Flashner
2023-07-12import/cran: Add one more package name transformation....* guix/import/cran.scm (transform-sysname): Add entry for "zlib-devel". Ricardo Wurmus
2023-07-12refresh: Sort update specs by package location....Fixes <https://issues.guix.gnu.org/64358>. * guix/scripts/refresh.scm (guix-refresh): Sort update specs by location from bottom to top before updating packages. Ricardo Wurmus
2023-07-11avahi: Fix exception when #:timeout is #f....* guix/avahi.scm (avahi-publish-service-thread): Fixes crash when timeout is #f, which is the default for "guix publish --advertise" Signed-off-by: Ludovic Courtès <ludo@gnu.org> nathan
2023-07-11cache: 'file-expiration-time' uses 'lstat', not 'stat'....Fixes a bug whereby 'cached-channel-instance' would potentially consider cache entries obsolete too early because they refer to items in the store, which is mounted as 'noatime' on Guix System. * guix/cache.scm (file-expiration-time): Use 'lstat' and 'false-if-exception' rather than 'stat'. This matches what (guix scripts shell) does. Ludovic Courtès
2023-07-11locate: Ignore unreadable manifests....Fixes <https://issues.guix.gnu.org/64187>. * guix/scripts/locate.scm (profiles->manifest-entries): Wrap 'profile-manifest' in 'false-if-exception'. Reported-by: Ricardo Wurmus <rekado@elephly.net> Ludovic Courtès
2023-07-07avahi: Poll less....* guix/avahi.scm (avahi-publish-service-thread): Have #:timeout default to #f when 'stop-loop?' is NEVER, or 500ms. (avahi-browse-service-thread): #:timeout defaults to 500ms when 'stop-loop?' is provided. Ludovic Courtès
2023-07-05guix: git: Set initial branch name for git-fetch....This removes the 'hint' about choosing a branch name when creating a new git repository. * guix/build/git.scm (git-fetch): When running 'git init' add an initial branch name. Efraim Flashner
2023-06-22guix: node-build-system: Delete from peerDependencies too....The current version of npm in Guix installs peerDependencies by default, whereas previously it would just warn about missing/wrong packages. Fixes <https://issues.guix.gnu.org/issue/64203>. * guix/build/node-build-system.scm (delete-dependencies): Remove supplied dependencies from peerDependencies field too. Lars-Dominik Braun
2023-06-18Add 'guix locate'....* guix/scripts/locate.scm, tests/guix-locate.sh: New files. * Makefile.am (MODULES): Add 'guix/scripts/locate.scm'. (SH_TESTS): Add 'tests/guix-locate.sh'. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Invoking guix locate): New node. Co-authored-by: Antoine R. Dumont <antoine.romain.dumont@gmail.com> Ludovic Courtès
2023-06-18store: Tolerate non-existent GC root directories....* guix/store/roots.scm (gc-roots): Wrap 'scandir*' call in 'catch'. * tests/store-roots.scm ("gc-roots, initial"): New test. Move 'open-connection' call below. Ludovic Courtès
2023-06-17gnu: Use target-hurd?, system-hurd? instead of hurd-target?, hurd-system?....* gnu/packages/hurd.scm (hurd-target?): Remove. (hurd-system?): Move to... * guix/utils.scm (system-hurd?): ...here. * gnu/packages/*: Update all users, removing (gnu packages hurd) include where now unused. Janneke Nieuwenhuizen
2023-06-16avahi: Resolve hosts for which name resolution fails....This avoids attempts to connect to hosts that went off-line. This is particularly important for 'guix-daemon --discover', which would so far keep attempting to talk to LAN hosts after they vanished just because their mDNS record hasn't expired, leading to significant delays when fetching narinfos and substitutes. * guix/avahi.scm (avahi-browse-service-thread)[service-resolver-callback]: Add handler to RESOLVER-EVENT/FAILURE. Ludovic Courtès
2023-06-16guix home: Add missing SRFI-34 import for 'raise'....Reported at <https://issues.guix.gnu.org/64031>. * guix/scripts/home.scm: Use (srfi srfi-34), expected by 'list-generations'. Reported-by: Steven Roose <steven@roose.io> Ludovic Courtès
2023-06-16pull: Preserve channel ordering when using '--commit', '--url', etc....Previously using '--url', '--commit', or '--branch' would move the 'guix' channel to the front. This is okay in itself but it gratuitously leads to a different cache key in 'cached-channel-instance'--IOW, 'guix time-machine --commit=X' where X is already in cache would gratuitously recompute the channel derivations. * guix/scripts/pull.scm (channel-list): Use 'map' instead of 'find' + 'remove' + 'cons'. Ludovic Courtès
2023-06-14packages: 'package-transitive-supported-systems' detects cycles....With this change, commands such as 'guix build' or 'guix package' report obvious package-level cycles upfront. Derivation-level cycles are not detected. * guix/packages.scm (&package-cyclic-dependency-error): New condition type. (package-transitive-supported-systems): Define 'visited', check it, and parameterize it. * guix/ui.scm (call-with-error-handling): Handle '&package-cyclic-dependency-error'. * tests/packages.scm ("package-transitive-supported-systems detects cycles"): Add test. Ludovic Courtès
2023-06-14import/cran: Add another clause for ASL 2.0....* guix/import/cran.scm (string->license): Add clause for >= 2.0. Ricardo Wurmus
2023-06-11svn-download: Do not expand keywords....Subversion keyword expansion is potentially non-reproducible as some of them expand time strings relative to the local time zone: https://issues.guix.gnu.org/43442#18 In practice this is not a problem in Guix since Subversion checkouts happen in an isolated environment using the "default timezone" (UTC). However, Software Heritage disables keyword expansion for this very reason. By following suit, we make sure content can be retrieved from there. * guix/build/svn.scm (svn-fecth): Pass "--ignore-keywords" to Subversion. * guix/build-system/texlive.scm (%texlive-date): New variable. * gnu/packages/java.scm (java-geronimo-xbean-reflect) (java-geronimo-genesis-2.1): Update the source hash. * gnu/packages/machine-learning.scm (ghmm): Likewise. * gnu/packages/video.scm (libsmpeg, libsmpeg-with-sdl1): Likewise. * gnu/packages/tex.scm (texlive-bin): Update the hash of the "texlive-scripts" input, and a add a new phase that imitates Subversion keyword expansion for scripts that need it. (texlive-latex-base): Update the hash of the "texlive-luatexconfig" native input. (texlive-hyphen-base, texlive-dvipdfmx, texlive-dvips, texlive-cm) (texlive-tex-plain, texlive-kpathsea, texlive-latexconfig) (texlive-tetex, texlive-pdftex, texlive-xetex): Update the source hash. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Timothy Sample
2023-06-09records: Remove "guix" from error message....* guix/records.scm (map-fields): Tweak error message. Ludovic Courtès
2023-06-09tests: Ensure 'elpa' test does not access the network....Previously it would try to access the real elpa.gnu.org. This would succeed when network is available because "taxy-magit-section" is an existing package. * guix/import/elpa.scm (elpa-repository) (package-from-elpa-repository?): Recognize 'gnu/http. * tests/elpa.scm ("package-latest-release"): Use 'http' instead of 'https'. Change "taxy-magit-section" to "fake-taxy-magit-section". Ludovic Courtès
2023-06-09import: stackage: Updater resolves inputs lazily....Fixes the "haskell-stackage" test in 'tests/lint.scm', which started failing with e6223017d95bc615b2648f0798d9a3904d5b5f57 because the extra HTTP GETs induced by the 'haskell-fetch' calls would fail. * guix/import/stackage.scm (latest-lts-release): Call 'hackage-fetch' and its continuation from within 'inputs', which is delayed. Pass it NAME-VERSION instead of HACKAGE-NAME-VERSION. Ludovic Courtès
2023-06-08substitute: Gracefully retry after failed partial downloads....Fixes <https://issues.guix.gnu.org/63443>. Reported by Attila Lendvai <attila@lendvai.name>. * guix/scripts/substitute.scm (catch-system-error): New macro. (download-nar): Add call to 'delete-file-recursively'. * tests/substitute.scm ("substitute, previous partial download around"): New test. Ludovic Courtès
2023-06-08substitute: Delete cached narinfos more than two-month old....This allows 'guix substitute' to shrink the cache a bit more, which saves space and improves performance of cache-cleanup phases since fewer entries need to be traversed. * guix/scripts/substitute.scm (cached-narinfo-expiration-time): Define 'max-ttl' and use it as an upper bound. Ludovic Courtès
2023-06-08import: Gracefully handle EPIPE....Previously, "guix import pypi f3 | head -3" would print a backtrace. * guix/scripts/import.scm (guix-import): Wrap 'pretty-print-with-comments' call in 'leave-on-EPIPE'. Ludovic Courtès
2023-06-06records: Use SRFI-11 instead of SRFI-71, for Guile 2.0 compatibility....This fixes a failure of 'tests/packages.scm' introduced in b88e38d4b51b9aa0e857baeb614c000e491ad309: some of the tests import (guix records) on the build side, which uses '%bootstrap-guile' (Guile 2.0) where SRFI-71 is unavailable. * guix/records.scm (match-record-inner): Use SRFI-11 instead of SRFI-71. Ludovic Courtès
2023-06-05import/cran: Ensure current package is not among inputs....* guix/import/cran.scm (cran-package-inputs): Remove the current package from the result. Ricardo Wurmus