On 17 August 2017 at 23:02, Richard Shaw <hobbes1069(a)gmail.com> wrote:
I'm not a python developer but I do maintain several packages
that use python and I've been unable to find clear documentation / guidelines for
Fedora on how to package software that requires pip...
The closest I've found is:
https://fedoraproject.org/wiki/PythonWheels
Traditionally building a package should not require internet access as everything needed
to build the package is supposed to be in the source RPM. It looks like with the increase
in use of things like GO, nodejs, and now pip, that's no longer appears to be really
practical.
This is mixing up a few different points:
1. Python level requirements can be translated to RPM level "Requires:
pythonXYdist(PyPI-package-name)" requirements if the dependency is
packaged in Fedora (where "XY" = the target Python version)
2. pyp2rpm (see
https://pypi.python.org/pypi/pyp2rpm) will attempt to
generate appropriate dependency entries for you
3. Application software that is designed to be deployed as a
standalone Python virtual environment can still be packaged as a
(non-Fedora) SRPM that doesn't require internet access during the
build phase by doing the following:
- use pip download to get all the relevant source packages
- add the project *and its dependencies* to the SRPM as SourceN
entries (alternatively, bundle the deps into a single archive for ease
of extraction)
- create the virtual environment in %build, install the project and
its dependencies, and package *that* as the RPM
We're actually having some occasional discussions about how we might
be able to incorporate that last approach into the official Fedora
guidelines for cases where a Python level dependency *isn't* shared,
and is instead specific to that application.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan(a)gmail.com | Brisbane, Australia