On Thu, Jun 30, 2016 at 5:20 AM, Jaroslav Reznik <jreznik@xxxxxxxxxx> wrote: > = Proposed System Wide Change: Automatic Provides for Python RPM Packages = > https://fedoraproject.org/wiki/Changes/ > Automatic_Provides_for_Python_RPM_Packages > > Change owner(s): > * Tomas Orsava <https://fedoraproject.org/wiki/User:Torsava> > * Miro Hroncok <https://fedoraproject.org/wiki/User:Churchyard> > * Email: python-maint@xxxxxxxxxx > > Upon building Python packages containing packaging metadata, RPM will > automatically detect the standardized name of the software (i.e. dist name, > name on PyPI) in the canonical format [1] and create a virtual Provides tag > with the value pythonX.Ydist(CANONICAL_NAME), where X.Y is the used Python > version. RPM may also detect dependencies of the software from the metadata > and automatically require them using the same syntax. > > == Detailed Description == > If during the building of a Python package RPM encounters .egg-info, .egg-link > or .dist-info files (provided in Python Wheels and Eggs), it will read the > standardized name of the software (i.e. dist name, name on PyPI) in the > canonical format and create a virtual Provides tag with the value > pythonX.Ydist(CANONICAL_NAME), where X.Y is the used Python version. Note that > the canonical format can differ slightly from the name displayed, for example, > on PyPI.[1] > > RPM will also detect dependencies of the software from the aforementioned > metadata files and automatically require them using the format > pythonX.Ydist(). However, because these files don't always contain the full > list of requirements (which are either in setup.py or requirements.txt), the > dependency generator will not be conclusive. > > All Python packages will need to be rebuilt so that the virtual Provides tags > are generated and can be used by users, scripts and the requires generator. > > == Scope == > * Proposal owners: Prepare a draft for the Fedora Packaging Guidelines for > Python > > * Maintainers of the RPM package: Backport the functionality from upsteram to > Fedora. — Already done thanks to Florian Festi [2] > > * Release engineering: Targeted rebuild of Python packages. Ticket [3]. > > * List of deliverables: All Fedora deliverables will be affected, but only in > a very minor way that in no way jeopardizes their delivery. > > * Policies and guidelines: Fedora Packaging Guidelines for Python need to be > updated after the implementation so users know how to take advantage of the > change. > > * Trademark approval: Not needed for this Change > > [1] https://fedoraproject.org/wiki/Changes/ > Automatic_Provides_for_Python_RPM_Packages#cite_note-canonical-0 It's awesome that this is finally going to make it into Fedora. However, I strongly advise you have the --majorver-provides enabled along with the default one, because that way, spec files can be written in such a way that they can have BuildRequires that aren't specific to a minor version of Python. The dependency generator *always* uses the pythonX.Ydist(CANONICAL_NAME) format for generated dependencies. The addition of pythonXdist(CANONICAL_NAME) Provides just makes it easier to have BuildRequires for them so that mass changes for spec files aren't required on every Y version bump. -- 真実はいつも一つ!/ Always, there's only one truth! -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx