From 0c9708bf7b387f2100cdf375353982fbca9b364e Mon Sep 17 00:00:00 2001 Message-ID: <0c9708bf7b387f2100cdf375353982fbca9b364e.1734278914.git.lars@6xq.net> In-Reply-To: References: From: Lars-Dominik Braun Date: Sun, 15 Dec 2024 16:56:53 +0100 Subject: [PATCH 3/4] import: pypi: Default to setuptools as build system input. * guix/import/pypi.scm (guess-requirements): Default to setuptools if pyproject.toml does not exist. Change-Id: I600bd0a44342847878e3a2a7041bd7e7c7d30769 --- guix/import/pypi.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 52ec6e4ee6..bba7361307 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -448,15 +448,21 @@ (define (guess-requirements source-url wheel-url archive) (((first-propagated first-native) (second-propagated second-native)) (list (append first-propagated second-propagated) (append first-native second-native))))) + (define default-pyproject.toml-dependencies + ;; If there is no pyproject.toml, we assume it’s an old-style setuptools-based project. + '(() ("setuptools"))) + ;; requires.txt and the metadata of a wheel contain redundant information, ;; so fetch only one of them, preferring requires.txt from the source ;; distribution, which we always fetch, since the source tarball also ;; contains pyproject.toml. (match (guess-requirements-from-source) ((from-pyproject.toml #f) - (merge (or from-pyproject.toml '(() ())) (or (guess-requirements-from-wheel) '(() ())))) + (merge (or from-pyproject.toml default-pyproject.toml-dependencies) + (or (guess-requirements-from-wheel) '(() ())))) ((from-pyproject.toml from-requires.txt) - (merge (or from-pyproject.toml '(() ())) from-requires.txt)))) + (merge (or from-pyproject.toml default-pyproject.toml-dependencies) + from-requires.txt)))) (define (compute-inputs source-url wheel-url archive) "Given the SOURCE-URL and WHEEL-URL of an already downloaded ARCHIVE, return -- 2.45.2