[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using an alternative python to build python modules
From: |
Wojtek Kosior |
Subject: |
Re: Using an alternative python to build python modules |
Date: |
Sat, 18 Feb 2023 10:57:34 +0100 |
Hi Kyle,
Have you looked at the (package-input-rewriting) procedure described
towards the bottom of "Defining Package Variants"[1]?
You might also like to look at the not-exported
(package-with-explicit-python) proc defined in
guix/build-system/python.scm[2]. It is used to produce python2 variants
of packages but I suppose it would also work for swapping the minor
versions of python3.
Good luck with your task :)
Wojtek
[1] https://guix.gnu.org/manual/en/html_node/Defining-Package-Variants.html
[2]
https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build-system/python.scm?id=b544f460989a6189af111bb3ff6752cabdf23abc#n82
-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A
♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)
On Fri, 17 Feb 2023 21:27:39 +0000
Kyle Andrews <kyle@posteo.net> wrote:
> Dear Guix,
>
> I want to use the python-apted package in my manifest. That package is
> not in Guix, but can readily be fetched from:
>
> ```
> guix import pypi APTED > python-apted.scm
> ```
>
> I just had to prefix the following modules to turn that into a package
> definition as well as a manifest.
>
> ```
> (use-modules (guix packages)
> (guix download)
> (guix licenses)
> (guix profiles)
> (gnu packages)
> (guix build-system python))
> ```
>
> During my original testing of my scientific workflow I discovered that
> there was a bug introduced to the APTED package which was caused by a
> change in how python worked under the hood. As a result, the APTED
> package only advertises compatibility with python versions less than
> 3.7. So, I would like to use python 3.6 to be on the safe side.
>
> I also want to include 60+ other packages in my manifest which are
> "current" with the Guix repository and included within it. For
> situations like this it would be really convenient if it were possible
> to pass a version of python to python-build-system. Then, I hope all I
> would have to do is pass another another defined variant of the python
> package (e.g. called python-3.6) into that build-system argument.
>
> For example:
>
> ```
> (build-system python-build-system #:python python-3.6)
> ```
>
> That would be quite convenient and in line with the level of complexity
> I was faced with when I took the conda approach before trying to use
> Guix. Unfortunately, this functionality doesn't seem to be provided out
> of box and I am seeking help in the hopes that there is an easy way to
> do it.
>
> Am I thinking about this right?
>
> Thanks,
> Kyle
>
> P.S.
>
> APTED claims to also be able to run on top of python-2.7 so maybe that
> fact could be used to simplify this specific issue. I just wanted to
> discuss the general problem first because I really want Guix to gain
> broad traction within the scientific community.
>
> P.P.S.
>
> Here is a pretend manifest where I would love guidance on how to make
> python-apted get built in the context of python-2.7 or ideally
> python-3.6 even though the latest version of python is python-3.9 (where
> APTED doesn't always work).
>
> ```
> (use-modules (guix packages)
> (guix download)
> (guix licenses)
> (guix profiles)
> (gnu packages)
> (guix build-system python))
>
> (define-public python-apted
> (package
> (name "python-apted")
> (version "1.0.3")
> (source (origin
> (method url-fetch)
> (uri (pypi-uri "apted" version))
> (sha256
> (base32
> "1sawf6s5c64fgnliwy5w5yxliq2fc215m6alisl7yiflwa0m3ymy"))))
> (build-system python-build-system)
> (arguments '(#:tests? #f))
> (home-page "https://github.com/JoaoFelipe/apted")
> (synopsis "APTED algorithm for the Tree Edit Distance")
> (description "APTED algorithm for the Tree Edit Distance")
> (license expat)))
>
> (concatenate-manifests
> (list (specifications->manifest (list "r" "r-dplyr" "r-reticulate"))
> (packages->manifest (list python-apted))))
> ```
>
pgpNiprKZSX2o.pgp
Description: OpenPGP digital signature