summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2023-07-18guix: texlive-build-system: Add #:link-scripts argument....* doc/guix.texi (Build Systems): Document argument. * guix/build-system/texlive.scm (texlive-build): Add #:LINK-SCRIPTS argument. * guix/build/texlive-build-system.scm (link-scripts): (patch-shell-scripts): New function. (%standard-phases): Add new functions as phases. Nicolas Goaziou
2023-07-18guix: texlive importer: Set #:texlive-latex-bin? when appropriate....* guix/import/texlive.scm (latex-bin-dependency-tree): New function. (tlpdb->package): Set #:TEXLIVE-LATEX-BIN? when appropriate. * tests/texlive.scm ("texlive->guix-package, lonely `hyphen-base' dependency and ARCH"): Update test. Nicolas Goaziou
2023-07-18gnu: Replace texlive-latex-base with texlive-latex-bin....Although `latex-base' is clearly defined on CTAN, it isn't a proper TeX Live package. Since we're trying to follow as closely as possible this TeX distribution, we replace the package with the closest one, which is `texlive-latex-bin'. As a consequence, the #:TEXLIVE-LATEX-BASE argument becomes #:TEXLIVE-LATEX-BIN?, emphasizing the fact that the meaningful values for it are booleans. * gnu/packages/graphviz.scm (dot2tex)[propagated-inputs]: Remove TEXLIVE-GRAPHICS, TEXLIVE-LATEX-BASE. Add TEXLIVE-LATEX-BIN. * gnu/packages/plotutils.scm (asymptote)[native-inputs]: Remove TEXLIVE-LATEX-BASE, TEXLIVE-GRAPHICS, TEXLIVE-L3BACKEND. Use TEXLIVE-UPDMAP.CFG. * gnu/packages/sphinx.scm (python-sphinx)[propagated-inputs]: Remove TEXLIVE-GRAPHICS, TEXLIVE-LATEX-BASE. Add TEXLIVE-LATEX-BIN. * gnu/packages/tex.scm (texlive-latex-base): Deprecate variable. (texlive-hyphen-complete): (texlive-tex): (texlive-latex): (texlive-docstrip): (texlive-unicode-data): (texlive-hyphen-base): (texlive-tex-ini-files): (texlive-metafont): (texlive-modes): (texlive-knuth-lib): (texlive-latex-fonts): (texlive-etex): (texlive-plain): (texlive-kpathsea): (texlive-latexconfig): (texlive-latex-bin): (texlive-l3kernel): (texlive-l3backend): (texlive-l3packages): (texlive-luatex): (texlive-luahbtex): (texlive-babel): (texlive-cyrillic): (texlive-pdftex): (texlive-cm)[arguments]: Replace #:TEXLIVE-LATEX-BASE with #:TEXLIVE-LATEX-BIN?. (texlive-lm): (texlive-lua-alt-getopt): (texlive-luaotfload): (texlive-graphics-def): (texlive-graphics-cfg): Set #:TEXLIVE-LATEX-BIN? to #F. (texlive-graphics): (texlive-lualibs): (texlive-firstaid): (texlive-atveryend)[arguments]: Set #:TEXLIVE-LATEX-BIN? to #F. [native-inputs]: Add TEXLIVE-DOCSTRIP, TEXLIVE-PDFTEX. (texlive-updmap.cfg): Remove TEXLIVE-CM, TEXLIVE-GRAPHICS, TEXLIVE-LATEX-BASE. Add TEXLIVE-LATEX-BIN. (texlive-atbegshi)[arguments]: Set #:TEXLIVE-LATEX-BIN? to #F. [native-inputs]: Add TEXLIVE-DOCSTRIP, TEXLIVE-PDFTEX. [propagated-inputs]: Remove TEXLIVE-IFTEX, TEXLIVE-INFWARERR and TEXLIVE-LTXCMDS. (texlive-everyshi)[arguments]: Build package with a temporary "latex.fmt" file. (texlive-cyrillic): Set #:TEXLIVE-LATEX-BIN? to #T. * guix/build-system/texlive.scm (default-texlive-latex-base): Rename to TEXLIVE-LATEX-BIN. (lower): Set default value for TEXLIVE-LATEX-BIN? to #TRUE. * gnu/packages/statistics.scm (r-with-tests): Remove TEXLIVE-LATEX-BASE and TEXLIVE-GRAPHICS. * doc/guix.texi (Build Systems): Document #:TEXLIVE-LATEX-BIN? argument. Remove reference to #:TEXLIVE-LATEX-BASE. Nicolas Goaziou
2023-07-18gnu: Simplify texlive-default-updmap.cfg....* gnu/packages/tex.scm (texlive-default-updmap.cfg): Use TEXLIVE-ORIGIN. (texlive-updmap.cfg): * guix/profiles.scm (texlive-font-maps): Update accordingly. Nicolas Goaziou
2023-07-18gnu: Deprecate texlive-base in favor of texlive-scheme-basic....* gnu/packages/tex.scm (texlive-base): Deprecate variable. (texlive-updmap.cfg): Use default packages from now deprecated TEXLIVE-BASE. Also remove already implemented TODO. * doc/build.scm (pdf-manual): * gnu/packages/statistics.scm: Replace TEXLIVE-BASE with call to TEXLIVE-UPDMAP.CFG. * guix/profiles.scm (texlive-font-maps): Trigger TeX Live hook whenever a texlive package is included in the manifest. Nicolas Goaziou
2023-07-18guix: texlive importer: Fix build system and arguments for meta-packages....* guix/import/texlive.scm (tlpdb->package): Meta packages should use trivial build system and an appropriate builder. * tests/texlive.scm ("texlive->guix-package, meta-package"): ("texlive->guix-package, translate dependencies"): Update tests. Nicolas Goaziou
2023-07-18guix: texlive importer ignores dependencies unnecessary in Guix....* guix/import/texlive.scm (translate-depends): New function. (tlpdb->package): Use new function. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package, translate dependencies"): ("texlive->guix-package, lonely `hyphen-base' dependency and ARCH"): New tests. Nicolas Goaziou
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