summaryrefslogtreecommitdiff
path: root/guix/import
AgeCommit message (Collapse)Author
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.
2023-06-02import/cran: Also search Makevars file for libraries.Ricardo Wurmus
* guix/import/cran.scm (needed-libraries-in-directory): Look at Makevars in addition to Makevars.in for libraries.
2023-05-31import: gem: Updater provides input list.Ludovic Courtès
* guix/import/gem.scm (import-release): Add 'inputs' field. * tests/gem.scm ("package-latest-release"): New test.
2023-05-31import: gem: Factorize "bundler" special case for name mapping.Ludovic Courtès
* guix/import/gem.scm (ruby-package-name): Add "bundler" special case. (gem->guix-package): Adjust accordingly. * tests/gem.scm ("gem-recursive-import") ("gem-recursive-import with a specific version"): Remove "ruby-bundler" from the expected packages.
2023-05-31import: elpa: Updater provides input list.Ludovic Courtès
* guix/import/elpa.scm (elpa-dependency->upstream-input): New procedure. (latest-release): Add 'inputs' field. * tests/elpa.scm ("package-latest-release"): New test.
2023-05-31import: cpan: Updater provides input list.Ludovic Courtès
* guix/import/cpan.scm (latest-release): Add 'inputs' field. * tests/cpan.scm ("package-latest-release"): New test.
2023-05-31import: cpan: Represent dependencies as <upstream-input> records.Ludovic Courtès
* 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.
2023-05-31import: cpan: Remove unary 'string-append' call.Ludovic Courtès
* guix/import/cpan.scm (package->upstream-name): Remove useless 'string-append'.
2023-05-31upstream: 'update-package-source' edits input fields.Ludovic Courtès
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.
2023-05-31upstream: Replace 'input-changes' field by 'inputs'.Ludovic Courtès
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>.
2023-05-31import: json: Add #:timeout to 'json-fetch'.Ludovic Courtès
* guix/import/json.scm (json-fetch): Add #:timeout and pass it to 'http-fetch'.
2023-05-31import: utils: 'call-with-networking-exception-handler' doesn't unwind.Ludovic Courtès
That way backtraces show where the error actually originates from. * guix/import/utils.scm (call-with-networking-exception-handler): Rewrite using 'with-exception-handler'.
2023-05-31tests: pypi: Rewrite tests using a local HTTP server.Ludovic Courtès
* 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'.
2023-05-04import: elpa: Standardize warning message.Ludovic Courtès
* guix/import/elpa.scm (melpa-recipe->origin): Standardize warning message.
2023-05-04import: Cosmetic tweaks to 'recursive-import'.Ludovic Courtès
* guix/import/utils.scm (recursive-import): Tweak docstring. Simplify 'apply' call.
2023-05-04import: elpa: Use the expected repo in recursive imports.Ludovic Courtès
* guix/import/elpa.scm (elpa-recursive-import): Pass REPO in calls to 'elpa->guix-package'.