help-guix
[Top][All Lists]
Advanced

[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))))
> ```
> 


Attachment: pgpNiprKZSX2o.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]