On Nov 14, 2020, at 9:31 AM, Lumír Balhar <lbalhar@redhat.com> wrote:

Hello, Michael.

On 11/14/20 1:50 AM, mabinm wrote:
Hi Peter.

You can build the kind of dependency-aware rpm you're looking for in two ways.

Do a pip download of the python package with or without dependencies and have the %post scriptlet in the RPM spec file do a pip install of the wheel, tar.gz or egg into the target python installation, which will pull other dependent packages required by the python package file.

This is considered a very bad idea given the fact that it can completely destroy your system. This is similar to doing `sudo pip install <package>` which might rewrite files installed from RPMs to the global system site-packages — files that not only dnf but also other system libraries might depend on.

If something is packaged as RPM, package maintainers make sure that the package is compatible with the rest of the system. Installing something from the PyPI to the global site-packages is a bad idea.

Have a nice day.

Lumír

Yes. I get this would not be desirable for the system python.
But for an alternative python location it would be fine.

Michael Mabin


Maybe no file at all needs to be included in the rpm itself, just the rpm post scriptlet doing the pip install.

The fpm utility can be used to convert a pip package to an rpm package. You still may need to provide a postinstall script argument that does the pip install of dependencies. 

Michael Mabin


Sent from my Verizon, Samsung Galaxy smartphone


-------- Original message --------
Date: 11/13/20 4:50 PM (GMT-06:00)
Subject: Automated Python packaging?

Thereʼs a Python module Iʼd like to package for Fedora.  I made a start on Copr, but I rapidly got lost in a maze of missing dependencies and broken builds.

OTOH, running `pip install` takes seconds and everything just works.

I feel like someone must have come up with an easy way of building a chain of PyPI dependencies into a collection of RPMs.  Am I missing a trick?

--
Peter Oliver
_______________________________________________
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org

_______________________________________________
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org