summaryrefslogtreecommitdiff
path: root/guix/import
AgeCommit message (Collapse)Author
2023-12-19import/cran: Export a few more variables and procedures.Ricardo Wurmus
This allows users of this module to provide e.g. caching alternatives to the download and fetch procedures. * guix/import/cran.scm (%bioconductor-version, download, fetch-description): Make these variables public. Change-Id: I9ce14db9be9b8b3314b06fa9eb50a4e24c5dd718
2023-12-18guix: import: Add composer importer.Nicolas Graves
* guix/import/composer.scm: New file. * guix/scripts/import/composer.scm: New file. * guix/tests/composer.scm: New file. * Makefile.am: Add them. * guix/scripts/import.scm: Add composer importer. * doc/guix.texi (Invoking guix import): Mention it. Change-Id: I44a89b8cc80ef5b4a3cd15e8fbba4a18c1cea0b1 Co-authored-by: Julien Lepiller <julien@lepiller.eu> Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-12-16guix: import: Report go version for go importer.Efraim Flashner
* guix/import/go.scm (go-package, go.mod-go-version): New procedures. (go-module->guix-package): Add the #:go keyword in the generated package definition if the required go is newer than the default go. * tests/go.scm (mock-http-get): Use gexps for package arguments. Change-Id: I8d005740a442330ac307a40a53764c803ceffc4f
2023-12-16guix: import: Don't include indirect dependencies in go.Efraim Flashner
* guix/import/go.scm (parse-go.mod)[define-peg-patern require]: Adjust the peg pattern to reject lines with the 'indirect' comment in them. Change-Id: I9618bbaa1cb8c6549ced875e3c8d32afc72c3b9b
2023-12-03guix: import: Fix parsing Cabal files that import many stanzasSaku Laesvuori
* guix/import/cabal.scm (eval-cabal)[eval]: Split imports to a normalized list before mapping over it. * tests/hackage.scm: Test it. Change-Id: I39ece019251b6a23a937c8562d2d4a545a6bc7df Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03guix: import: Parse cabal layout blocks correctlySaku Laesvuori
Cabal consideres lines to be part of a layout block if they are indented at least one space more than the field line the block belongs to. Previously Guix considered lines to be a part of the block if they were indented at least as much as the first line in it. This also makes a workaround that enabled if statements to have multiple elses redundant and removes it. Fixes: https://issues.guix.gnu.org/35743 * guix/import/cabal.scm (current-indentation*): Renamed from current-indentation. (previous-indentation, current-indentation): New variables. (make-cabal-parser): Remove outdated comment. [open]: Use previous-indentation + 1 instead of current-indentation. [elif-else]: Split to elif and else to allow only one ELSE in an if statement. (read-cabal)[parameterize]: Use current-indentation* and previous-indentation. * tests/hackage.scm (hackage->guix-package test mixed layout): Expect to pass. Change-Id: I3a1495b1588a022fabbfe8dad9f3231e578af4f3 Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03guix: import: stackage: Fix crash on recursive importSaku Laesvuori
* guix/import/stackage.scm (lts-package-version): Call stackage-package-version only when the package is found. Change-Id: Ic8d7c1b7a42a9c1a6cbba567e148706507a53ee3 Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-12-03guix: import: hackage: Fix crash on recursive importSaku Laesvuori
Fixes: https://issues.guix.gnu.org/64734 * guix/import/hackage.scm (hackage-module->sexp): Return package names instead of <upstream-input> records. Change-Id: Id428a8b903b4b59d44205ca366324a0a69a4e05b Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2023-11-03guix: Upgrade to Bioconductor 3.18.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.18. * guix/import/cran.scm (%bioconductor-version): Same. Change-Id: Ic3fc2e6ab6b5f6f6e55662f81baee67391158c5b
2023-10-22guix: import: Don't import yanked rust crates.Efraim Flashner
* guix/import/crate.scm (<crate-version>): Add yanked? field. (crate->guix-package)[find-crate-version]: Remove versions which have been yanked. * tests/crate.scm: Adjust tests for new yanked? field.
2023-10-17guix: import: opam: Handle list of licenses.Josselin Poiret
Fixes <https://issues.guix.gnu.org/issue/66461>. Reported by Simon Tournier <zimon.toutoune@gmail.com>. * guix/import/opam.scm (opam->guix-package): Handle lists of licenses. Signed-off-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-08-28import-utils: Do not include punctuation when wrapping in @code{}.Ricardo Wurmus
* guix/import/utils.scm (beautify-description): Exclude punctuation. * tests/import-utils.scm: Add new test.
2023-08-16guix: import: texlive importer handles Ruby linked scripts.Nicolas Goaziou
* guix/import/texlive.scm (linked-scripts): Also check for scripts with ".rb" extension. (tlpdb->package): Add proper RUBY input for Ruby linked scripts.
2023-08-14guix: import: Do not prefix `fsf-free' with "license:" in texlive.Nicolas Goaziou
* guix/import/texlive.scm (tlpdb->package): For consistency with other imported licenses, `fsf-free' need not be prefixed with "license:".
2023-08-14guix: import: Handle X11 license in texlive importer.Nicolas Goaziou
* guix/import/texlive.scm (string->license): Recognize X11 license.
2023-08-01licenses: Add Arphic-1999 (Aprhic Public License).walky_talky
* guix/licenses.scm (arphic-1999): New variable. * guix/import/utils.scm (%spdx-license-identifiers): Add Arphic-1999. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-07-19import/utils: beautify-description: Wrap class names in @code{...}.Ricardo Wurmus
* guix/import/utils.scm (beautify-description): Add procedure to wrap words in @code{...} markup. * tests/import-utils.scm: Add two tests.
2023-07-19import/utils: Add more initial words to beautify-description.Ricardo Wurmus
* guix/import/utils.scm (beautify-description): Add "Classes" and "Tools" to initial words to be prefixed with "This package provides".
2023-07-18guix: Fix license translation in texlive importer.Nicolas Goaziou
* guix/import/texlive.scm (string->license): Properly translate "artistic2" into `artistic2.0'.
2023-07-18guix: texlive importer handles scripts with ".texlua" extension.Nicolas Goaziou
* guix/import/texlive.scm (linked-scripts): Also offer to link scripts with a ".texlua" extension.
2023-07-18guix: texlive import ignores TeXworks.Nicolas Goaziou
* guix/import/texlive.scm (translate-depends): Ignore TeXworks files from TeX Live, since they are Windows-only.
2023-07-18guix: texlive importer ignores Asymptote package.Nicolas Goaziou
Asymptote is provided in `asymptote' Guix package. OTOH, asy executable is not built from TeX Live tree. Therefore, Asymptote package from TeX Live can be ignored. * guix/import/texlive.scm (translate-depends): Ignore Asymptote package.
2023-07-18guix: import: texlive importer handles more licenses.Nicolas Goaziou
* guix/import/texlive.scm (string->license): Handle CC0 and ISC licenses.
2023-07-18guix: import: Handle texlua and TCL scripts.Nicolas Goaziou
* guix/import/texlive.scm (linked-scripts): Also generate scripts from files with ".tlu" and ".tcl" extensions. (tlpdb->package): Add appropriate inputs when providing a TCL script.
2023-07-18guix: texlive importer: Do not pull all "scripts/context/" files.Nicolas Goaziou
* guix/import/texlive.scm (texlive-generic-locations): Add "scripts/context/" since this location is split across multiple packages. * guix/import/texlive.scm (files->locations): Only single out files from generic locations, not their sub-directories. E.g., generic location "scripts/context/lua/" should not fetch "scripts/context/lua/third/" files.
2023-07-18guix: Fix sub-directories in texlive importer locations.Nicolas Goaziou
* guix/import/texlive.scm (files->locations): When removing a sub-directory, make sure to actually remove the sub-directory and not the parent.
2023-07-18guix: texlive importer ignores "-dev" packages in propagated inputs.Nicolas Goaziou
* guix/import/texlive.scm (translate-depends): Skip "-dev" packages.
2023-07-18guix: texlive importer allows meta-packages to build TeX formats.Nicolas Goaziou
* guix/import/texlive.scm (tlpdb->package): A package with no locations can still build TeX format files, and therefore may use TEXLIVE-BUILD-SYSTEM.
2023-07-18guix: Handle asl2.0 license in texlive importer.Nicolas Goaziou
* guix/import/texlive.scm (string->license): Convert "apache2" to ASL2.0.
2023-07-18guix: Make "gfsl" an alias for gfl1.0 license in texlive importer.Nicolas Goaziou
* guix/import/texlive.scm (string->license): Make "gfsl" and alias for GFL1.0.
2023-07-18gnu: texlive-bin: Do not install all linked scripts.Nicolas Goaziou
* gnu/packages/tex.scm (texlive-scripts): Include only core scripts along with their man pages and their dependencies. Also patch them for use in Guix. (texlive-bin): Simplify package. [inputs]: Remove "texlive-extra-src" and "texlive-scripts" inputs. Remove labels from other inputs. [propagated-inputs]: Add TEXLIVE-SCRIPTS. [arguments]: Use G-expressions. <#:configure-flags>: Add "--disable-linked-scripts". <#:phases>: Remove phases relative to scripts. * guix/profiles.scm (texlive-font-maps): Fetch executables from both TEXLIVE-SCRIPTS and TEXLIVE-BIN. * guix/import/texlive.scm (tlpdb-file): Grab file from TEXLIVE-SCRIPTS instead of TEXLIVE-BIN.
2023-07-18guix: Let texlive importer handle linked scripts.Nicolas Goaziou
* guix/import/texlive.scm (tlpdb): Also retrieve so-called binfiles. (formats): (linked-scripts): New functions. (tlpdb->package): Use new functions to set #:LINK-SCRIPTS argument and possibly INPUTS. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package, single script, no extension"): ("texlive->guix-package, multiple scripts, with extensions"): ("texlive->guix-package, script with associated input"): New tests.
2023-07-18guix: texlive importer: Set #:texlive-latex-bin? when appropriate.Nicolas Goaziou
* 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.
2023-07-18guix: texlive importer: Fix build system and arguments for meta-packages.Nicolas Goaziou
* 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.
2023-07-18guix: texlive importer ignores dependencies unnecessary in Guix.Nicolas Goaziou
* 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.
2023-07-18guix: Let texlive importer suggest format creation.Nicolas Goaziou
* 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.
2023-07-18guix: import: Improve importing texlive meta packages.Nicolas Goaziou
* 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.
2023-07-18guix: import: Fix Creative Common licenses in texlive importer.Nicolas Goaziou
* 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.
2023-07-18guix: import: Handle native inputs in texlive importer.Nicolas Goaziou
* 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.
2023-07-18guix: import: Fix multiple licenses output in texlive importer.Nicolas Goaziou
* 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.
2023-07-18guix: import: texlive use full file names for generic directories.Nicolas Goaziou
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.
2023-07-18guix: import: Improve home-page generation in texlive importer.Nicolas Goaziou
* 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.
2023-07-18guix: import: Update texlive importer according to new build system.Nicolas Goaziou
* 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.
2023-07-12import/cran: Add one more package name transformation.Ricardo Wurmus
* guix/import/cran.scm (transform-sysname): Add entry for "zlib-devel".
2023-06-14import/cran: Add another clause for ASL 2.0.Ricardo Wurmus
* guix/import/cran.scm (string->license): Add clause for >= 2.0.
2023-06-09tests: Ensure 'elpa' test does not access the network.Ludovic Courtès
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".
2023-06-09import: stackage: Updater resolves inputs lazily.Ludovic Courtès
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.
2023-06-05import/cran: Ensure current package is not among inputs.Ricardo Wurmus
* guix/import/cran.scm (cran-package-inputs): Remove the current package from the result.
2023-06-02import/cran: string->license: Add another case for GPLv3+.Ricardo Wurmus
* guix/import/cran.scm (string->license): Translate "GPL (>=3)" to gpl3+.
2023-06-02import/cran: Libraries should not use CRAN-GUIX-NAME.Ricardo Wurmus
* guix/import/cran.scm (source-dir->dependencies): Do not use CRAN-GUIX-NAME when processing result of NEEDED-LIBRARIES-IN-DIRECTORY.