summaryrefslogtreecommitdiff
path: root/guix/import
Commit message (Collapse)AuthorAge
* gnu-maintenance: Factorize 'false-if-networking-failure'.Ludovic Courtès2023-01-08
| | | | | | | | * 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.
* import/cran: Depend on gfortran if .f files are detected too.Lars-Dominik Braun2022-12-31
| | | | | | | There was an inconsistency between tarball-needs-fortran? and directory-needs-fortran?. * guix/import/cran.scm (directory-needs-fortran?): Match .f files too.
* import/cran: Use multiple values instead of a list of lists.Ricardo Wurmus2022-12-31
| | | | | * guix/import/cran.scm (source-dir->dependencies): Return multiple values. (description->package): Bind two values.
* import/utils: recursive-import: Pass on lookup-node's version argument.Ricardo Wurmus2022-12-31
| | | | | | * 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.
* import/cran: Always operate on source directory.Lars-Dominik Braun2022-12-31
| | | | | | | | | | | | | | | | | 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.
* import/cran: Translate more package dependencies.Lars-Dominik Braun2022-12-31
| | | | | | | 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.
* import/cran: Allow overriding tarball download.Lars-Dominik Braun2022-12-31
| | | | | | * guix/import/cran.scm (description->package): Accept new keyword argument DOWNLOAD-SOURCE. (cran->guix-package): Ditto.
* import/cran: Allow overriding description fetch function.Lars-Dominik Braun2022-12-31
| | | | | * guix/import/cran.scm (cran->guix-package): New keyword argument FETCH-DESCRIPTION.
* import/cran: Allow custom license prefix.Lars-Dominik Braun2022-12-31
| | | | | | | | | | | | * 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.
* import/utils: Pass all arguments through to package builder.Lars-Dominik Braun2022-12-31
| | | | | | | | | | | | | | | | | | | | | | | | | Individual importer may have additional arguments. * guix/import/utils.scm (recursive-import): Patch all keyword arguments through to repo->guix-package. * guix/import/cran.scm (cran->guix-package): Add #:allow-other-keys. * guix/import/crate.scm (crate->guix-package): Ditto. * guix/import/egg.scm (egg->guix-package): Ditto. * guix/import/elm.scm (elm->guix-package): Ditto. * guix/import/gem.scm (gem->guix-package): Ditto. * guix/import/gnu.scm (gnu->guix-package): Ditto. * guix/import/go.scm (go-module->guix-package): Ditto. (go-module-recursive-import): Ditto. * guix/import/hackage.scm (hackage->guix-package): Ditto. (hackage-recursive-import): Ditto. * guix/import/hexpm.scm (hexpm->guix-package): Ditto. * guix/import/minetest.scm (minetest->guix-package): Ditto. (minetest-recursive-import): Ditto. * guix/import/opam.scm (opam->guix-package): Ditto. * guix/import/pypi.scm (pypi->guix-package): Ditto. * guix/import/stackage.scm (stackage->guix-package): Ditto. (stackage-recursive-import): Ditto. * guix/import/texlive.scm (texlive->guix-package): Ditto.
* import: pypi: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | * guix/import/pypi.scm (latest-release): Rename to 'import-release', add #:version argument and pass it on to called functions.
* import: launchpad: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | * guix/import/launchpad.scm (latest-release): Rename to 'import-release', add #:version argument. If version is given, return an upstream-source for this version.
* import: kde: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | | * guix/import/kde.scm (latest-kde-release): Rename to 'import-kde-release', add #:version argument. Rework the code to not sort the relevant files, but just find the requested or latest version. [find-latest-archive-version]: New function.
* import: hexpm: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | * guix/import/hexpm.scm (latest-release): Rename to 'import-release', add #:version argument. If version is given, return an upstream-source for this version.
* import: gnome: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | | | * guix/import/gnome.scm (latest-gnome-release): Rename to 'import-gnome-release', add #:version argument. If version is given, try to find the respective version [find-latest-release]: New function, based on former code. [find-version-release]: New function.
* import: github: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | | * guix/import/github.scm (latest-released-version): Add #:version argument. If version is given, try to find the respective release. (latest-releease) Rename to 'import-release', add #:version argument and pass it on to 'latest-released-version'.
* import: git: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | | | | | * guix/import/git.scm (latest-tag): Add #:version argument. If version is given, try to find the respective version tag. (latest-git-tag-version): Add #:version argument and pass it on to called functions. (latest-releease) Rename to 'import-release', add #:version argument and pass it on to called functions.
* import: gem: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | * guix/import/gem.scm (latest-release): Rename to 'import-release', add #:version argument. If version is given, return an upstream-source for this version.
* import: egg: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | * guix/import/egg.scm (latest-release): Rename to 'import-release', add #:version argument. If version is given, return an upstream-source for this version.
* import: crate: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | * guix/import/crate.scm (latest-release): Rename to 'import-release', add #:version argument. If version is given, return an upstream-source for this version.
* gnu-maintenance: Allow updating to a specific version.Hartmut Goebel2022-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/gnu-maintenance.scm (latest-ftp-release): Rename to … (import-ftp-release) … this, add #:version argument. If version is given, try to find the respective version. (latest-html-release): Rename to … (import-html-release) … this, add #:version argument. If version is given, try to find the respective version. (latest-gnu-release): Rename to … (import-gnu-release) … this, add #:version argument. Refactor to first select archives for respective package, the find the requested or latest version, then create the upstream-source. (latest-release): Rename to … (import-release) … this, add #:version argument, pass on to … (import-ftp-release) … this. (import-release*): Rename to … (import-release*) … this, add #:version argument, pass on to … (latest-release) … this. (latest-savannah-release): Rename to … (import-savannah-release) … this, add keword-argument version, pass on to … (import-html-release) … this. (latest-xorg-release): Rename to … (import-xorg-release) … this, add keword-argument version, pass on to … (import-ftp-release) … this. (latest-kernel.org-release): Rename to … (import-kernel.org-release) … this, add #:version argument, pass on to … (import-html-release) … this. (latest-html-updatable-release): Rename to … (import-html-updatable-release) … this, add #:version argument, pass on to … (import-html-release) … this. * guix/import/gnu.scm(gnu->guix-package): Adjust function call.
* import: Issue error-message if version is given.Hartmut Goebel2022-12-26
| | | | | | | | | | | | | | | | These importer don't support importing a specific version, thus the updater does neither. Issue an error message in case version is given. * guix/import/cpan.scm (latest-release), guix/import/elpa.scm (latest-release), guix/import/hackage.scm (latest-release), guix/import/minetest.scm (latest-minetest-release), guix/import/opam.scm (latest-release): Add #:version argument, issue error if version is given. * guix/import/cran.scm (latest-cran-release): Same. (latest-bioconductor-release) Same. <version>: rename to <latest-version>. * guix/import/stackage.scm (latest-lts-release): For each generated updater, add #:version argument and issue error if version is given.
* import: cpan: Remove unused exports.Hartmut Goebel2022-12-26
| | | | * guix/import/cpan.scm (#:export): Remove unused exports.
* upstream-updater: Rename record field.Hartmut Goebel2022-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The next commits will make the functions, which are currently importing the latest version of a package, change into importing the latest or a given version of the package (for those updaters supporting specifying a version). Thus the name ‘latest‘ is no longer appropriate. * guix/upstream.scm (upstream-updater) Rename field [latest] to [import]. (lookup-updater, package-latest-release) Adjust fieldname accordingly. * guix/gnu-maintenance.scm (%gnu-updater, %gnu-ftp-updater, %savannah-updater, %sourceforge-updater, %xorg-updater, %kernel.org-updater, %generic-html-updater), guix/import/cpan.scm (%cpan-updater), guix/import/cran.scm (%cran-updater, %bioconductor-updater), guix/import/crate.scm (%crate-updater), guix/import/egg.scm (%egg-updater), guix/import/elpa.scm (%elpa-updater), guix/import/gem.scm (%gem-updater), guix/import/git.scm (%generic-git-updater), guix/import/github.scm (%github-updater), guix/import/gnome.scm (%gnome-updater), guix/import/hackage.scm (%hackage-updater), guix/import/hexpm.scm (%hexpm-updater), guix/import/kde.scm (%kde-updater), guix/import/launchpad.scm (%launchpad-updater), guix/import/minetest.scm (%minetest-updater), guix/import/opam.scm (%opam-updater), guix/import/pypi.scm (%pypi-updater), guix/import/stackage.scm (%stackage-updater), tests/import-github.scm (found-sexp) tests/transformations.scm ("options->transformation, with-latest"): Adjust fieldname accordingly.
* import/cran: Add more mappings from sysnames to Guix package names.Ricardo Wurmus2022-12-19
| | | | * guix/import/cran.scm (transform-sysname): Add more mappings.
* import/cran: Add package name mapping.Ricardo Wurmus2022-11-29
| | | | * guix/import/cran.scm (transform-sysname): Add mapping from sqlite3 to sqlite.
* guix: Upgrade to Bioconductor 3.16.zimoun2022-11-24
| | | | | | * guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.16. * guix/import/cran.scm (%bioconductor-version): Same.
* import: egg: Fix typo in docstring.jgart2022-11-20
| | | | | | * gnu/import/egg.scm (Commentary): Fix typo in Commentary docstring. Signed-off-by: Christopher Baines <mail@cbaines.net>
* import/utils: spdx-string->license: Support '+' operator.Philip McGrath2022-11-18
| | | | | | | | | | | | | | Previously, '+' was supported only via special cases for deprecated GNU identifiers like 'GPL-N+'. This commit adds support for other uses of '+', such as 'AFL-2.0+' and 'LPPL-1.0+'. Strictly speaking, '+' is an operator, not part of the SPDX license identifier, but it is useful to handle it here. * guix/import/utils.scm (spdx-string->license): Support '+' operator. * tests/import-utils.scm ("spdx-string->license"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import/utils: spdx-string->license: Match case-insensitively.Philip McGrath2022-11-18
| | | | | | | | | | | | SPDX specifies that license identifiers (unlike the 'AND', 'OR', and 'WITH' operators) are matched case-insensitively. * guix/import/utils.scm (%spdx-license-identifiers): New variable. (spdx-string->license): Search in '%spdx-license-identifiers' using 'string-ci=?'. * tests/import-utils.scm ("spdx-string->license"): New test. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* import/utils: spdx-string->license: Fix incorrect docstring.Philip McGrath2022-11-18
| | | | | | | | | The result of 'spdx-string->license' is a symbol, not a license object. * guix/import/utils.scm (spdx-string->license): Fix docstring. (license->symbol): Mention 'license:' prefix in docstring. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import/cran: Add package mapping for freetype.Ricardo Wurmus2022-11-16
| | | | * guix/import/cran.scm (transform-sysname): Map "freetype2" to "freetype".
* import/cran: Add package name mapping for "booktabs".Ricardo Wurmus2022-11-11
| | | | * guix/import/cran.scm (transform-sysname): Add mapping for "booktabs".
* import/cran: Add more strings to the list of invalid packages.Ricardo Wurmus2022-11-11
| | | | | * guix/import/cran.scm (invalid-packages): Add "c++", "c++17", and "posix.1-2001" to list of invalid packages.
* import/utils: beautify-description: Update to pass tests.Ricardo Wurmus2022-10-05
| | | | | | * guix/import/utils.scm (beautify-description): Remove single quote wrapping; escape @; exclude common abbreviations and titles from double-spacing; detect more sentence fragments.
* import: print: Quasiquote propertiesitd2022-09-29
| | | | | | | | | * guix/import/print.scm (package->code): Quasiquote properties. * tests/print.scm (pkg-with-properties, pkg-with-properties-source): New variables. ("package with properties"): New test Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import/utils: alist->package: Include properties.itd2022-09-29
| | | | | | | | * guix/import/utils.scm (alist->package): Process properties field in input data and include it in the generated package. * tests/import-utils.scm ("alist->package with properties"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import/cran: Process more complex license strings.Ricardo Wurmus2022-09-28
| | | | | | | * guix/import/cran.scm (string->license): Add more match clauses. (string->licenses): Split license conjunctions at "|" and apply string->license on each license. (description->package): Use string->licenses.
* import/cran: Use beautify-synopsis.Ricardo Wurmus2022-09-28
| | | | * guix/import/cran.scm (description->package): Use beautify-synopsis.
* import/utils: Add beautify-synopsis.Ricardo Wurmus2022-09-28
| | | | * guix/import/utils.scm (beautify-synopsis): New procedure.
* import/cran: Transform external package names to Guix names.Ricardo Wurmus2022-09-28
| | | | | * guix/import/cran.scm (transform-sysname): New procedure. (description->package): Use it on inputs that are derived from "sysdepends".
* import/cran: Add more strings to invalid-packages.Ricardo Wurmus2022-09-28
| | | | * guix/import/cran.scm (invalid-packages): Add none, windows, and xcode.
* import/cran: description->package: Use COND and computed booleans.Ricardo Wurmus2022-09-20
| | | | | * guix/import/cran.scm (description->package): Use COND with previously computed booleans instead of using CASE on REPOSITORY.
* import/cran: download: Accept optional REF argument.Ricardo Wurmus2022-09-20
| | | | * guix/import/cran.scm (download): Accept REF argument for git downloads.
* import: gem: Support importing a specific version of a gem.Taiju HIGASHI2022-09-17
| | | | | | | | | | | | * guix/import/gem.scm: (rubygems-fetch, gem->guix-package) (gem-recursive-import): Fix to fetch the specified version of the gem. * guix/scripts/import/gem.scm (show-help): Update the help message. (guix-import-gem): Modify so the version number to be passed to subsequent procedures. * tests/gem.scm: Add tests. * doc/guix.texi (Invoking guix import): Document. Signed-off-by: Christopher Baines <mail@cbaines.net>
* import: gnome: Improve version handling logic.Maxim Cournoyer2022-09-13
| | | | | | | | | | | | | | | | | | Before this change, we'd get: $ guix refresh gedit updating from version 40.1 to version 43.alpha... This is because the new GNOME version scheme introduced in 2021 with GNOME 40 was not treated correctly. Also, no longer ignore odd numbered minor versions, as this appears to be a declining practice in GNOME. * guix/import/gnome.scm (latest-gnome-release) <pre-release-text?>: New predicate. <even-minor-version?>: Rename to... <release-version?>: ...this. Return #f in case the version corresponds to a development release. * guix/import/gnome.scm (latest-gnome-release): Adjust accordingly.
* import: gnome: Reject version strings such as "43.alpha".Ludovic Courtès2022-09-08
| | | | | | | | Reported by Maxim Cournoyer. This is a followup to 61b63e7fa73be8828af2b36d196c3676c974e119. * guix/import/gnome.scm (latest-gnome-release)[even-minor-version?]: Reject VERSION is the minor or micro part is not an integer.
* import: gnome: Do not require even minor for two-number version strings.Ludovic Courtès2022-09-06
| | | | | | | | | | That way, "guix refresh gnome-keyring" will properly return "42.1" instead of "42.0". Reported by Maxim Cournoyer. * guix/import/gnome.scm (latest-gnome-release)[even-minor-version?]: Tweak for GNOME applications.
* import/utils: beautify-description: Add case for "Implements".Ricardo Wurmus2022-08-25
| | | | | * guix/import/utils.scm (beautify-description): Add case to transform sentences beginning with "Implements".
* import: Enable recursive import for texlive packages.Ricardo Wurmus2022-07-19
| | | | | | | | | | | | | * guix/import/texlive.scm (tlpdb->package): Add VERSION argument; include explicit version field in output. (texlive->guix-package): Set default value for VERSION argument; adjust call of tlpdb->package. (texlive-recursive-import): Accept REPO and VERSION keyword arguments. * guix/import/utils.scm (package->definition): Add a clause to deal with output from tlpdb->package. * guix/scripts/import/texlive.scm (%options): Add "recursive" option. (guix-import-texlive): Honor "recursive" option. * doc/guix.texi (Using TeX and LaTeX): Mention "recursive" option.