summaryrefslogtreecommitdiff
path: root/guix/import
AgeCommit message (Expand)Author
2023-05-31import: cpan: Updater provides input list....* guix/import/cpan.scm (latest-release): Add 'inputs' field. * tests/cpan.scm ("package-latest-release"): New test. Ludovic Courtès
2023-05-31import: cpan: Represent dependencies as <upstream-input> records....* guix/import/cpan.scm (cpan-name->downstream-name) (cran-dependency->upstream-input, cran-module-inputs): New procedures. (cpan-module->sexp)[guix-name, convert-inputs]: Remove. [maybe-inputs]: Adjust to deal with <upstream-input>. Use 'cpan-name->downstream-name' instead of 'guix-name'. Add call to 'cpan-module-inputs' and adjust calls to 'maybe-inputs'. No longer emit input labels. * tests/cpan.scm ("cpan->guix-package"): Adjust test accordingly. Ludovic Courtès
2023-05-31import: cpan: Remove unary 'string-append' call....* guix/import/cpan.scm (package->upstream-name): Remove useless 'string-append'. Ludovic Courtès
2023-05-31upstream: 'update-package-source' edits input fields....Previously, 'guix refresh r-ggplot2 -u' and similar commands would print of list of input changes that would have to be made manually. With this change, 'guix refresh -u' takes care of updating input fields automatically. * guix/upstream.scm (update-package-inputs): New procedure. (update-package-source): Call it when 'upstream-source-inputs' returns true. * guix/scripts/refresh.scm (update-package): Remove iteration over the result of 'changed-inputs'. * guix/import/test.scm (available-updates): Add support for input lists. * tests/guix-refresh.sh (GUIX_TEST_UPDATER_TARGETS): Add input list for "the-test-package". Make sure 'guix refresh -u' updates 'inputs' accordingly. * doc/guix.texi (Invoking guix refresh): Mention it. Ludovic Courtès
2023-05-31upstream: Replace 'input-changes' field by 'inputs'....Returning the expected list of inputs rather than changes relative to the current package definition is less ambiguous and offers more possibilities for further processing. * guix/upstream.scm (<upstream-source>)[input-changes]: Remove. [inputs]: New field. (<upstream-input>): New record type. * guix/upstream.scm (upstream-input-type-predicate) (input-type-filter, upstream-source-regular-inputs) (upstream-source-native-inputs, upstream-source-propagated-inputs): New procedures. (changed-inputs): Expect an <upstream-source> as its second argument. Adjust accordingly. * guix/import/pypi.scm (distribution-sha256): New procedure. (maybe-inputs): Expect a list of <upstream-input>. (compute-inputs): Rewrite to return a list of <upstream-input>. (pypi-package-inputs, pypi-package->upstream-source): New procedures. (make-pypi-sexp): Use it. * guix/import/stackage.scm (latest-lts-release): Define 'cabal'. Replace 'input-changes' field by 'inputs'. * guix/scripts/refresh.scm (update-package): Use 'changed-inputs' instead of 'upstream-source-input-changes'. * tests/cran.scm ("description->package"): Adjust order of inputs. * tests/pypi.scm (default-sha256, default-sha256/base32): New variables. (foo-json): Add 'digests' entry. ("pypi->guix-package, no wheel"): Check HASH against DEFAULT-SHA256/BASE32. ("pypi->guix-package, wheels"): Likewise. ("pypi->guix-package, no usable requirement file."): Likewise. ("pypi->guix-package, package name contains \"-\" followed by digits"): Likewise. ("package-latest-release"): New test. * tests/upstream.scm (test-package-sexp): Remove. ("changed-inputs returns no changes"): Rewrite to use <upstream-source>. (test-new-package-sexp): Remove. ("changed-inputs returns changes to plain input list"): Rewrite. ("changed-inputs returns changes to all plain input lists"): Likewise. ("changed-inputs returns changes to labelled input list") ("changed-inputs returns changes to all labelled input lists"): Remove. * guix/import/cran.scm (maybe-inputs): Expect PACKAGE-INPUTS to be a list of <upstream-input>. (source-dir->dependencies): Return a list of <upstream-input>. (vignette-builders): Likewise. (uri-helper, cran-package-source-url) (cran-package-propagated-inputs, cran-package-inputs): New procedures. (description->package): Use them instead of local definitions. (latest-cran-release): Replace 'input-changes' field by 'inputs'. (latest-bioconductor-release): Likewise. (format-inputs): Remove. * guix/import/hackage.scm (cabal-package-inputs): New procedure. (hackage-module->sexp): Use it. [maybe-inputs]: Expect a list of <upstream-input>. Ludovic Courtès
2023-05-31import: json: Add #:timeout to 'json-fetch'....* guix/import/json.scm (json-fetch): Add #:timeout and pass it to 'http-fetch'. Ludovic Courtès
2023-05-31import: utils: 'call-with-networking-exception-handler' doesn't unwind....That way backtraces show where the error actually originates from. * guix/import/utils.scm (call-with-networking-exception-handler): Rewrite using 'with-exception-handler'. Ludovic Courtès
2023-05-31tests: pypi: Rewrite tests using a local HTTP server....* guix/import/pypi.scm (%pypi-base-url): New variable. (pypi-fetch): Use it. * tests/pypi.scm (foo-json): Compute URLs relative to '%local-url'. (test-json-1, test-json-2, test-source-hash): Remove. (file-dump): New procedure. (with-pypi): New macro. ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels") ("pypi->guix-package, no usable requirement file.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Rewrite using 'with-pypi'. Ludovic Courtès
2023-05-04import: elpa: Standardize warning message....* guix/import/elpa.scm (melpa-recipe->origin): Standardize warning message. Ludovic Courtès
2023-05-04import: Cosmetic tweaks to 'recursive-import'....* guix/import/utils.scm (recursive-import): Tweak docstring. Simplify 'apply' call. Ludovic Courtès
2023-05-04import: elpa: Use the expected repo in recursive imports....* guix/import/elpa.scm (elpa-recursive-import): Pass REPO in calls to 'elpa->guix-package'. Ludovic Courtès
2023-05-04import: elpa: 'elpa->guix-package' accepts other keyword arguments....This is a followup to 3c24da4260f28b4ed57efda0296688a50ac94628. * guix/import/elpa.scm (elpa->guix-package): Add #:allow-other-keys. Ludovic Courtès
2023-04-30guix: import: crate: Fix incorrect returned values....* guix/import/crate.scm (crate->guix-package): Return compatible values with 'recursive-import'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Simon Tournier
2023-04-29import/cran: Translate from xml2 to libxml2....* guix/import/cran.scm (transform-sysname): Add translation from xml2 to libxml2. Ricardo Wurmus
2023-04-29import/cran: Add "unix" to list of invalid packages....* guix/import/cran.scm (invalid-packages): Add "unix". Ricardo Wurmus
2023-04-29guix: Upgrade to Bioconductor 3.16....* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.17. * guix/import/cran.scm (%bioconductor-version): Same. Ricardo Wurmus
2023-04-29import/pypi: Generate packages using pyproject-build-system....* guix/import/pypi.scm (make-pypi-sexp): Generate PACKAGE expression where the value for the BUILD-SYSTEM field is PYPROJECT-BUILD-SYSTEM instead of PYTHON-BUILD-SYSTEM. Ricardo Wurmus
2023-04-08import: opam: opam->guix-package: Fix default repo argument....* guix/import/opam.scm (opam->guix-package): Make default repo a list of strings. Update docstring. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Csepp
2023-04-08import: Properly report "no specific version" errors....* guix/import/cpan.scm (latest-release): Use 'raise' instead of 'error'. * guix/import/elpa.scm (latest-release): Likewise. * guix/import/hackage.scm (latest-release): Likewise. * guix/import/minetest.scm (latest-minetest-release): Likewise. * guix/import/opam.scm (latest-release): Likewise. * guix/import/stackage.scm (latest-lts-release): Likewise. Ludovic Courtès
2023-03-30guix: Shorten home page URL in texlive importer....* guix/import/texlive.scm (tlpdb->package): Use short URL for home page. Nicolas Goaziou
2023-03-29import/texlive: tlpdb->package: Ignore files outside of texmf-dist....* guix/import/texlive.scm (tlpdb->package): Ignore files outside of texmf-dist because the code assumes that this is the prefix for all files. Ricardo Wurmus
2023-03-29import/texlive: Process license field only when it exists....* guix/import/texlive.scm (tlpdb->package): Check "catalogue-license" field before using string->license. Ricardo Wurmus
2023-03-29import/texlive: Only process description if it exists....* guix/import/texlive.scm (tlpdb->package): Run beautify-description only when the "longdesc" field exists. Ricardo Wurmus
2023-03-29import/texlive: Ignore architecture-dependent packages....* guix/import/texlive.scm (tlpdb->package): Filter "depend" field to exclude package names ending on ".ARCH". Ricardo Wurmus
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-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-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-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-18import/cran: Remove directory-needs-zlib? in favor of needed-libraries-in-dir......* guix/import/cran.scm (directory-needs-zlib?): Remove procedure. (source-dir->dependencies): Use needed-libraries-in-directory instead of directory-needs-zlib?. Ricardo Wurmus
2023-02-18import/cran: Add generic way to detect needed libraries....* guix/import/cran.scm (needed-libraries-in-directory): New procedure. (libraries-pattern, packages-for-matches): New variables. Ricardo Wurmus
2023-02-18import/cran: Process all vignette builders....* guix/import/cran.scm (needs-knitr?): Remove procedure. (vignette-builders): New procedure. (description->package): Use vignette-builders instead of needs-knitr?. Ricardo Wurmus
2023-02-18import/cran: Add name mapping for libjpeg....* guix/import/cran.scm (transform-sysname): Add mapping from libjpeg to libjpeg-turbo. Ricardo Wurmus
2023-02-18import/cran: Add directory-needs-esbuild?....* guix/import/cran.scm (directory-needs-esbuild?): New procedure. (source-dir->dependencies): Use it. Ricardo Wurmus
2023-01-23import: opam: Do not crash when description is missing....Previous 'guix import opam coccinelle' would crash due to the lack of a description. * guix/import/opam.scm (opam->guix-package): Call 'beautify-description' only when "description" metadata is available. Ludovic Courtès
2023-01-09import/cran: Fix Bioconductor updater....* guix/import/cran.scm (latest-bioconductor-release): Use LATEST-VERSION instead of VERSION, which is always #F. Ricardo Wurmus
2023-01-08refresh: Add CLI tests....* guix/import/test.scm, tests/guix-refresh.sh: New files. * Makefile.am (MODULES, SH_TESTS): Add them. Ludovic Courtès
2023-01-08import: stackage: Catch networking errors in predicate....* guix/import/stackage.scm (stackage-lts-package?): Wrap body in 'false-if-networking-error'. Ludovic Courtès
2023-01-08gnu-maintenance: Factorize 'false-if-networking-failure'....* guix/import/utils.scm (call-with-networking-exception-handler): New procedure. (false-if-networking-error): New macro. * guix/gnu-maintenance.scm (import-html-updatable-release): Use it instead of inline code. Ludovic Courtès
2022-12-31import/cran: Depend on gfortran if .f files are detected too....There was an inconsistency between tarball-needs-fortran? and directory-needs-fortran?. * guix/import/cran.scm (directory-needs-fortran?): Match .f files too. Lars-Dominik Braun
2022-12-31import/cran: Use multiple values instead of a list of lists....* guix/import/cran.scm (source-dir->dependencies): Return multiple values. (description->package): Bind two values. Ricardo Wurmus
2022-12-31import/utils: recursive-import: Pass on lookup-node's version argument....* guix/import/utils.scm (recursive-import)<lookup-node>: Replace the #:VERSION keyword from RECURSIVE-IMPORT's arguments with the value of VERSION passed to LOOKUP-NODE. Ricardo Wurmus
2022-12-31import/cran: Always operate on source directory....Extracting the source tarball multiple times is very slow and a speedup of >2x (without network I/O) can be achieved by coalescing all NEEDS-X? functions into a single one, which extracts a tarball only once. * guix/import/cran.scm (tarball-needs-fortran?): Remove unused function. (needs-fortran?): Ditto. (tarball-files-match-pattern?): Ditto. (tarball-needs-zlib?): Ditto. (needs-zlib?): Ditto. (tarball-needs-pkg-config?): Ditto. (needs-pkg-config?): Ditto. (source-dir->dependencies): New function. (source->dependencies): New function. (description->package): Use it. Lars-Dominik Braun
2022-12-31import/cran: Translate more package dependencies....Assumes we use package variable names, not package specification names. * guix/import/cran.scm (invalid-packages): Add more invalid names. (transform-sysname): Transform more package names. Lars-Dominik Braun
2022-12-31import/cran: Allow overriding tarball download....* guix/import/cran.scm (description->package): Accept new keyword argument DOWNLOAD-SOURCE. (cran->guix-package): Ditto. Lars-Dominik Braun
2022-12-31import/cran: Allow overriding description fetch function....* guix/import/cran.scm (cran->guix-package): New keyword argument FETCH-DESCRIPTION. Lars-Dominik Braun
2022-12-31import/cran: Allow custom license prefix....* guix/import/cran.scm (string-licenses): Add license-prefix argument. (string->license): Ditto. (description->package): Ditto. (cran->guix-package): Ditto. (cran-recursive-import): Ditto. * guix/scripts/import/cran.scm (%options): Add new option -p/--license-prefix. (show-help): Document it. (parse-options): Pass it to importer. * doc/guix.texi (Invoking guix import): Document it. Lars-Dominik Braun