Simon Tournier <zimon.touto...@gmail.com> writes:

> Hi,
>
> On Tue, 18 Feb 2025 at 17:51, Gary Johnson <lambdatro...@disroot.org> wrote:
>
>> Okay, so it looks like all of the libraries I wanted were still built
>> against the `python` package because it is included by the
>> `python-build-system`, which is used in all of their package
>> definitions.
>
> Yes.  All the Python packages are only built with the defautl Python
> interpreter.
>
>
>> Unfortunately, this crashes when attempting to build
>> `python-pytz`. Here's the relevant build error:
>
> Indeed, there is no guarantee that the recipe of one Python package
> builds equally for two different versions of the Python interpreter.

Unfortunately, this doesn't appear to be an issue with breaking
changes between Python versions but rather with the absence of
`python-setuptools` in the updated build pipeline.

>> Unfortunately, adding `python-setuptools` to the `guix shell`
>> invocation doesn't seem to work.
>
> Using Andreas explanations and patch, is it enough for your use case?

I understand why adding `python-setuptools` directly to the `guix
shell` invocation won't help because it's not updating the inputs
further down the dependency graph. Andreas' patch did not help me
unfortunately. By adding `python-setuptools` directly to the inputs of
`python-pytz`, this just leads to other packages failing to build for
the same reason.

I've tried using package transformation functions to add
`python-setuptools` to all of the packages in my tree, but I'm only
able to update the top-level ones. This currently leads to `meson`
(further down the tree) throwing the missing setuptools error that was
previously plaguing `python-pytz`.

Here's my current manifest script:

```
(use-modules
 ((gnu packages base)         #:select (coreutils))
 ((gnu packages bash)         #:select (bash))
 ((gnu packages build-tools)  #:select (meson))
 ((gnu packages protobuf)     #:select (python-protobuf))
 ((gnu packages python)       #:select (python-toolchain python python-next))
 ((gnu packages python-build) #:select (python-setuptools))
 ((gnu packages rpc)          #:select (python-grpcio))
 ((gnu packages time)         #:select (python-dateutil python-pytz))
 ((gnu packages wget)         #:select (wget))
 ((guix build-system python)  #:select (pypi-uri python-build-system))
 ((guix download)             #:select (url-fetch))
 ((guix licenses)             #:select (expat))
 ((guix packages)             #:select (package origin base32 package-inputs 
modify-inputs package-input-rewriting))
 ((guix profiles)             #:select (packages->manifest)))

(define (include-setuptools p)
  (package
   (inherit p)
   (inputs (modify-inputs (package-inputs p)
                          (append python-setuptools)))))

(define use-python-next
  (package-input-rewriting `((,python . ,python-next))))

(packages->manifest
 (append
  (list coreutils
        bash
        wget)
  (map (compose use-python-next include-setuptools)
       (list python-toolchain
             python-grpcio
             python-protobuf
             python-dateutil
             python-pytz))))
```

Thanks again for your help.

Cheers,
  Gary

-- 
GPG Key ID: C4FBEDBD
Use `gpg --search-keys gary.john...@disroot.org' to find me
Protect yourself from surveillance: https://emailselfdefense.fsf.org
=======================================================================
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

Why is HTML email a security nightmare? See https://useplaintext.email/

Please avoid sending me MS-Office attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html

Reply via email to