fedora-python / pyp2rpm

Tool to convert a package from PyPI to RPM SPECFILE or to generate SRPM.
MIT License
123 stars 39 forks source link

Use a glob that allows arbitrary python version numbers. #185

Closed gordonmessmer closed 4 years ago

gordonmessmer commented 5 years ago

If python 3.10 comes after 3.9, the globs used in the templates may break.

hroncok commented 5 years ago

Actually, I prefer %{python3_version}. However yes, this is better than status quo.

hroncok commented 5 years ago

Could you try to run tests (with tox) and update the expected spec files in tests/test_data?

gordonmessmer commented 5 years ago

No problem. We can try this with %{python3_version}. There are still some tests that don't pass, but those don't seem to be related to this change and we can try to fix them in a later PR.

gordonmessmer commented 5 years ago

I think tests look OK for 3.6, but there are a variety of encoding/locale problems on the other releases.

gordonmessmer commented 5 years ago

The encoding/locale errors can be resolved by installing glibc-langpack-en manually in Dockerfile, though I think its omission from the fedora:rawhide docker image is a bug. I've filed BZ 1727489 for that.

With that package installed, py35 test seem OK as well. py27 and py34 fail in pytest, while py37 fails because python package names aren't as expected, but none of those is relevant to this change (AFAIK).

gordonmessmer commented 4 years ago

I've merged the master branch to run the tests again. I expect them all to complete successfully now except for 3.7 where some package names generated by NameConvertor don't match the expected return value. I think what's happening there is that 3.7 is the only tested release that has the "dnf" module, and that set of tests is trying to find a best-match name in the dnf data. I'm really unclear on that, but if I'm right I'm not sure how to resolve that problem.

hroncok commented 4 years ago

I still see some "locale.Error: unsupported locale setting". Also, the all the python2-...sphinx... tests make no sense and should be replaced with better examples or xfailed.

gordonmessmer commented 4 years ago

Yes, that's an obscure one. I suspect (a little) that this is a result of defining "en_US.utf-8" as an alias of "c.utf8" in locale.py. However, since 3.6 has the same alias, I'm not sure why the problem would only affect 3.7.

gordonmessmer commented 4 years ago

I can recreate the problem now, and it does look like the alias is the cause. This only affects 3.7 because, again, that's the only one with the "dnf" module. That module calls "locale.setlocale(locale.LC_ALL, '')" during setup, which changes the locale from C.utf-8 to en_US.utf-8, which is problematic. I'll have to file a bug against Python for this one...

hroncok commented 4 years ago

BTW:

rpm-specs/python-rangehttpserver.spec:%{python3_sitelib}/rangehttpserver-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-mdi.spec:%{python2_sitelib}/XStatic_mdi-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-mdi.spec:%{python3_sitelib}/XStatic_mdi-%{version}-py?.?.egg-info
rpm-specs/python-testing.postgresql.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-libpysal.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/mkdocs.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/git-pull-request.spec:%{python3_sitelib}/%{pkg_name}-%{version}-py?.?.egg-info
rpm-specs/python-urlgrabber.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-urlgrabber.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-Angular-FileUpload.spec:%{python2_sitelib}/XStatic_Angular_FileUpload-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-Angular-FileUpload.spec:%{python3_sitelib}/XStatic_Angular_FileUpload-%{version}-py?.?.egg-info
rpm-specs/python-pipdeptree.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-jaraco-functools.spec:%{python3_sitelib}/jaraco_functools-%{version}-py?.?.egg-info
rpm-specs/python-h2.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-h2.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ldappool.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-ldappool.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-animatplot.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-testrepository.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-testrepository.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jupyter-core.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-simpleeval.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-pytest-expect.spec:%{python3_sitelib}/pytest_expect-%{version}-py?.?.egg-info
rpm-specs/python-qtconsole.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-path.spec:%{python2_sitelib}/path.py-%{version}-py?.?.egg-info/
rpm-specs/python-path.spec:%{python3_sitelib}/path.py-%{version}-py?.?.egg-info/
rpm-specs/python-cligj.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/spec2scl.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jsonschema.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-pykmip.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pykmip.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-auth-credential.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-yapf.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-minimock.spec:%{python3_sitelib}/MiniMock-%{version}-py?.?.egg-info
rpm-specs/python-dirq.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-treq.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pipreqs.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-pdfminer.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/classification-banner.spec:%{python3_sitelib}/classification_banner-%{version}-py?.?.egg-info
rpm-specs/python-numcodecs.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-case.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/slack-cleaner.spec:%{python3_sitelib}/%{modname}-%{version}-py?.?.egg-info/
rpm-specs/python-ROPGadget.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-ROPGadget.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-xunitmerge.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-xunitmerge.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-nose-xcover.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pathlib2.spec:%{python2_sitelib}/%{modname}-%{version}-py?.?.egg-info
rpm-specs/python-pathlib2.spec:%{python3_sitelib}/%{modname}-%{version}-py?.?.egg-info
rpm-specs/python-tinycss2.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-testscenarios.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ghp-import2.spec:%{python3_sitelib}/ghp_import2-%{version}-py?.?.egg-info
rpm-specs/python-defusedxml.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-bucky.spec:%{python3_sitelib}/bucky-%{version}-py?.?.egg-info
rpm-specs/python-scrypt.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-fixtures.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-fixtures.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-shellingham.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-django-formtools.spec:%{python3_sitelib}/django_formtools-%{version}-py?.?.egg-info
rpm-specs/rdiff-backup.spec:%{python2_sitearch}/rdiff_backup-%{version}-py?.?.egg-info
rpm-specs/python-mtg.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-setuptools-lint.spec:%{python3_sitelib}/setuptools_lint-%{version}-py?.?.egg-info
rpm-specs/python-django-babel.spec:%{python3_sitelib}/django_babel-%{version}-py?.?.egg-info
rpm-specs/python-elephant.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jupyter-console.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-cheroot.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-priority.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-priority.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-tomlkit.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/oggconvert.spec:%{python2_sitelib}/oggconvert-%{version}-py?.?.egg-info
rpm-specs/python-incremental.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-incremental.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jinja2.spec:%{python2_sitelib}/Jinja2-%{version}-py?.?.egg-info
rpm-specs/python-jinja2.spec:%{python3_sitelib}/Jinja2-%{version}-py?.?.egg-info
rpm-specs/python-pykdtree.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-rfc2136.spec:%{python2_sitelib}/certbot_dns_rfc2136-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-rfc2136.spec:%{python3_sitelib}/certbot_dns_rfc2136-%{version}-py?.?.egg-info
rpm-specs/ydiff.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-json-logger.spec:%{python3_sitelib}/python_json_logger-%{version}-py?.?.egg-info
rpm-specs/python-requests_ntlm.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-xtermcolor.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-Naked.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-heapdict.spec:%{python3_sitelib}/%{pkgname}-%{version}-py?.?.egg-info
rpm-specs/python-elpy.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-backcall.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-bash8.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-zeroconf.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-rjsmin.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/salt-cloud.spec:%{python2_sitelib}/%{eggspace}-%{version}-py?.?.egg-info
rpm-specs/python-cradox.spec:%{python2_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-cradox.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-rsa.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-rsa.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-paperwork-backend.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-cli-helpers.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-cli-helpers.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pymod2pkg.spec:%{python2_sitelib}/pymod2pkg-%{version}-py?.?.egg-info
rpm-specs/python-pymod2pkg.spec:%{python3_sitelib}/pymod2pkg-%{version}-py?.?.egg-info
rpm-specs/python-messaging.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/pgzero.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-genty.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-josepy.spec:%{python2_sitelib}/josepy-%{version}-py?.?.egg-info
rpm-specs/python-josepy.spec:%{python3_sitelib}/josepy-%{version}-py?.?.egg-info
rpm-specs/python-pikepdf.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-rosinstall.spec:%{python3_sitelib}/%{realname}-%{version}-py?.?.egg-info
rpm-specs/esptool.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-pyvirtualize.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-pyvirtualize.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-pyvirtualize.spec:%{python3_other_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-guizero.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-portend.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-wrapt.spec:%{python2_sitearch}/%{sname}-%{version}-py?.?.egg-info
rpm-specs/python-wrapt.spec:%{python3_sitearch}/%{sname}-%{version}-py?.?.egg-info
rpm-specs/python-click-plugins.spec:%{python3_sitelib}/%{srcname_no_dash}-%{version}-py?.?.egg-info
rpm-specs/python-jupyter-c-kernel.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-dropbox.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-dropbox.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-seesaw.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-simplevisor.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-simplevisor.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-SecretStorage.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-parver.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-django-helpdesk.spec:%{python3_sitelib}/django_helpdesk-%{version}-py?.?.egg-info
rpm-specs/pipenv.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-rfc3986.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-neurosynth.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pika-pool.spec:%{python2_sitelib}/pika_pool-%{version}-py?.?.egg-info
rpm-specs/python-pika-pool.spec:%{python3_sitelib}/pika_pool-%{version}-py?.?.egg-info
rpm-specs/python-sockjs-tornado.spec:%{python3_sitelib}/sockjs_tornado-%{version}-py?.?.egg-info
rpm-specs/ubertooth.spec:%{python3_sitelib}/specan-%{version}-py?.?.egg-info
rpm-specs/python-click-log.spec:%{python3_sitelib}/%{pyname}-%{version}-py?.?.egg-info
rpm-specs/python-collectd_systemd.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pathlib.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-nudatus.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-zarr.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-xmp-toolkit.spec:%{python3_sitelib}/python_xmp_toolkit-%{version}-py?.?.egg-info
rpm-specs/quisk.spec:%{python2_sitearch}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-collectd_puppet.spec:%{python3_sitelib}/%{module_name}-%{version}-py?.?.egg-info
rpm-specs/python-nose-exclude.spec:%{python3_sitelib}/nose_exclude-%{version}-py?.?.egg-info/
rpm-specs/pipsi.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-hl7.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-daiquiri.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-mplcursors.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/pew.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-rfc3987.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-gpxpy.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-pytest-mpl.spec:%{python3_sitelib}/pytest_mpl-%{version}-py?.?.egg-info
rpm-specs/python-subunit2sql.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-wcwidth.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/playitagainsam.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-jeepney.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-magic-wormhole-mailbox-server.spec:%{python3_sitelib}/magic_wormhole_mailbox_server-%{version}-py?.?.egg-info
rpm-specs/python-pykalman.spec:%{python3_sitelib}/%{module_name}-%{version}-py?.?.egg-info
rpm-specs/mingw-python-enum34.spec:%{mingw32_python2_sitearch}/%{pkgname}-%{version}-py?.?.egg-info
rpm-specs/mingw-python-enum34.spec:%{mingw64_python2_sitearch}/%{pkgname}-%{version}-py?.?.egg-info
rpm-specs/python-pymemcache.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pymemcache.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-nixio.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-grako.spec:%{python3_sitelib}/%{modname}-%{version}-py?.?.egg-info
rpm-specs/python-CacheControl.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-descartes.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-luadns.spec:%{python2_sitelib}/certbot_dns_luadns-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-luadns.spec:%{python3_sitelib}/certbot_dns_luadns-%{version}-py?.?.egg-info
rpm-specs/python-sphinxcontrib-actdiag.spec:%{python3_sitelib}/sphinxcontrib_actdiag-%{version}-py?.?.egg-info
rpm-specs/python-bitstring.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-admesh.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pytest-tornado.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-enchant.spec:%{python2_sitelib}/py%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-enchant.spec:%{python3_sitelib}/py%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-fastavro.spec:%{python2_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-fastavro.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-textfsm.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-textfsm.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-docker-pycreds.spec:%{python2_sitelib}/docker_pycreds-%{version}-py?.?.egg-info
rpm-specs/python-docker-pycreds.spec:%{python3_sitelib}/docker_pycreds-%{version}-py?.?.egg-info
rpm-specs/python-octave-kernel.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-injector.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-plaintable.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-phpserialize.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-gnupg.spec:%{python2_sitelib}/python_gnupg-%{version}-py?.?.egg-info
rpm-specs/python-gnupg.spec:%{python3_sitelib}/python_gnupg-%{version}-py?.?.egg-info
rpm-specs/wammu.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-click-man.spec:%{python3_sitelib}/click_man-%{version}-py?.?.egg-info
rpm-specs/python-tilestache.spec:%{python2_sitelib}/%{module_name}-%{version}-py?.?.egg-info
rpm-specs/python-tld.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-py3nvml.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ndjson-testrunner.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-pyModbusTCP.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-branca.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-django-pyscss.spec:%{python3_sitelib}/django_pyscss-%{version}-py?.?.egg-info
rpm-specs/python-zabbix-api-erigones.spec:%{python3_sitelib}/zabbix_api_erigones-%{version}-py?.?.egg-info
rpm-specs/python-email_reply_parser.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-micawber.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-mplcairo.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-pathspec.spec:%{python3_sitelib}/pathspec-%{version}-py?.?.egg-info
rpm-specs/python-zipp.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-numpydoc.spec:%{python3_sitelib}/numpydoc-%{version}-py?.?.egg-info
rpm-specs/python-feedgen.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-rasterio.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-praw.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-stestr.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-stestr.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-simplejson.spec:%{python2_sitearch}/simplejson-%{version}-py?.?.egg-info/
rpm-specs/python-simplejson.spec:%{python3_sitearch}/simplejson-%{version}-py?.?.egg-info/
rpm-specs/python-hpack.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-hpack.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-dnsimple.spec:%{python2_sitelib}/certbot_dns_dnsimple-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-dnsimple.spec:%{python3_sitelib}/certbot_dns_dnsimple-%{version}-py?.?.egg-info
rpm-specs/visidata.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/libpreludedb.spec:%{python3_sitearch}/preludedb-%{version}-py?.?.egg-info
rpm-specs/python-tempora.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-cartopy.spec:%{python3_sitearch}/%{Srcname}-%{version}-py?.?.egg-info
rpm-specs/python-progress.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-progress.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-flask-httpauth.spec:%{python2_sitelib}/Flask_HTTPAuth-%{version}-py?.?.egg-info
rpm-specs/python-flask-httpauth.spec:%{python3_sitelib}/Flask_HTTPAuth-%{version}-py?.?.egg-info
rpm-specs/python-first.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-scp.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-scp.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-cloudpickle.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/quasselgrep.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-txredisapi.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-u-msgpack-python.spec:%{python3_sitelib}/u_msgpack_python-%{version}-py?.?.egg-info
rpm-specs/python-sortedcontainers.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-txtorcon.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-QtAwesome.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-magic-wormhole-transit-relay.spec:%{python3_sitelib}/magic_wormhole_transit_relay-%{version}-py?.?.egg-info
rpm-specs/python-kazoo.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pecan.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-singledispatch.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/salt-api.spec:%{python2_sitelib}/%{eggspace}-%{version}-py?.?.egg-info
rpm-specs/python-affine.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-sqlalchemy-collectd.spec:%{python2_sitelib}/sqlalchemy_collectd-%{version}-py?.?.egg-info
rpm-specs/python-sqlalchemy-collectd.spec:%{python3_sitelib}/sqlalchemy_collectd-%{version}-py?.?.egg-info
rpm-specs/python-renderspec.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-renderspec.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-adduserpath.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-glad.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-filetype.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ansible-runner.spec:%{python2_sitelib}/ansible_runner-%{version}-py?.?.egg-info
rpm-specs/python-ansible-runner.spec:%{python3_sitelib}/ansible_runner-%{version}-py?.?.egg-info
rpm-specs/tldr.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-pyinsane2.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-biscuits.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-netssh2.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-numpy-stl.spec:%{python3_sitearch}/numpy_stl-%{version}-py?.?.egg-info
rpm-specs/python2-jsonschema.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/ccsm.spec:%{python3_sitelib}/ccsm-%{version}-py?.?.egg-info
rpm-specs/python-rauth.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/pungi.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/pungi.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/mozilla-iot-gateway-addon-python.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-quantities.spec:%{python3_sitelib}/%{module_name}-%{version}-py?.?.egg-info
rpm-specs/python-arpeggio.spec:%{python3_sitelib}/Arpeggio-%{version}-py?.?.egg-info
rpm-specs/python-sphinxcontrib-phpdomain.spec:%{python3_sitelib}/sphinxcontrib_phpdomain-%{version}-py?.?.egg-info
rpm-specs/python-ntlm-auth.spec:%{python3_sitelib}/%{library_name}-%{version}-py?.?.egg-info
rpm-specs/python-pytest-xprocess.spec:%{python3_sitelib}/pytest_xprocess-%{version}-py?.?.egg-info
rpm-specs/python-monotonic.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-monotonic.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ndg_httpsclient.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/fedmod.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-websockify.spec:%{python2_sitelib}/websockify-%{version}-py?.?.egg-info
rpm-specs/python-websockify.spec:%{python3_sitelib}/websockify-%{version}-py?.?.egg-info
rpm-specs/python-plumbum.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-plumbum.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-num2words.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-rcssmin.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pytest-helpers-namespace.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-black.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-deprecation.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-deprecation.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pydispatcher.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pydispatcher.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pysol-cards.spec:%{python3_sitelib}/pysol_cards-%{version}-py?.?.egg-info
rpm-specs/ocrmypdf.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/writetype.spec:%{python2_sitelib}/WriteType-%{version}-py?.?.egg-info
rpm-specs/python-pynlpl.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/synce-sync-engine.spec:%{python2_sitelib}/synce_sync_engine-%{version}-py?.?.egg-info/
rpm-specs/python-sure.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-sure.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-testinfra.spec:%{python3_sitelib}/%{pkgname}-%{version}-py?.?.egg-info
rpm-specs/python-magic-wormhole.spec:%{python3_sitelib}/magic_wormhole-%{version}-py?.?.egg-info
rpm-specs/python-validators.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-dask.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-couchbase.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pytest-flake8.spec:%{python3_sitelib}/pytest_flake8-%{version}-py?.?.egg-info
rpm-specs/python-sphinxcontrib-autoprogram.spec:%{python3_sitelib}/sphinxcontrib_autoprogram-%{version}-py?.?.egg-info
rpm-specs/python-sphinx-autobuild.spec:%{python3_sitelib}/%{name_with_underscore}-%{version}-py?.?.egg-info
rpm-specs/python-django-tagging.spec:%{python3_sitelib}/django_tagging-%{version}-py?.?.egg-info/
rpm-specs/python-tldextract.spec:%{python2_sitelib}/tldextract-%{version}-py?.?.egg-info
rpm-specs/python-tldextract.spec:%{python3_sitelib}/tldextract-%{version}-py?.?.egg-info
rpm-specs/python-py9p.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-hyperframe.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-hyperframe.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-livereload.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/vex.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-QtPy.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-testresources.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ethtool.spec:%{python2_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ethtool.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-notify2.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-trololio.spec:%{python2_sitelib}/%{mod_name}-%{version}-py?.?.egg-info
rpm-specs/python-trololio.spec:%{python3_sitelib}/%{mod_name}-%{version}-py?.?.egg-info
rpm-specs/miniupnpc.spec:%{python2_sitearch}/miniupnpc-%{version}-py?.?.egg-info
rpm-specs/miniupnpc.spec:%{python3_sitearch}/miniupnpc-%{version}-py?.?.egg-info
rpm-specs/python-productmd.spec:%{python2_sitelib}/productmd-%{version}-py?.?.egg-info
rpm-specs/python-productmd.spec:%{python3_sitelib}/productmd-%{version}-py?.?.egg-info
rpm-specs/python-sphinxcontrib-apidoc.spec:%{python3_sitelib}/sphinxcontrib_apidoc-%{version}-py?.?.egg-info
rpm-specs/python-django-markdownx.spec:%{python3_sitelib}/django_markdownx-%{version}-py?.?.egg-info
rpm-specs/python-httpsig-cffi.spec:%{python3_sitelib}/httpsig_cffi-%{version}-py?.?.egg-info
rpm-specs/kobo.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/kobo.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-power.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-stdnum.spec:%{python3_sitelib}/python_%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/salt.spec:#%%{python2_sitelib}/%%{name}-%%{version}-py?.?.egg-info
rpm-specs/python-Rtree.spec:%{python3_sitelib}/Rtree-%{version}-py?.?.egg-info
rpm-specs/python-nodeenv.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-coverage_pth.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-importlib-metadata.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-construct.spec:%{python2_sitelib}/construct-%{version}-py?.?.egg-info
rpm-specs/python-construct.spec:%{python3_sitelib}/construct-%{version}-py?.?.egg-info
rpm-specs/python-partd.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-spake2.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pyvmomi.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-pyvmomi.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-pyvmomi.spec:%{python3_other_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-jenkinsapi.spec:%{python2_sitelib}/%{pkgname}-%{version}-py?.?.egg-info/
rpm-specs/python-jenkinsapi.spec:%{python3_sitelib}/%{pkgname}-%{version}-py?.?.egg-info/
rpm-specs/transtats-cli.spec:%{python3_sitelib}/%{name_with_underscore}-%{version}-py?.?.egg-info
rpm-specs/python-funcsigs.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-funcsigs.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-uri-templates.spec:%{python3_sitelib}/uritemplate-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-nsone.spec:%{python2_sitelib}/certbot_dns_nsone-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-nsone.spec:%{python3_sitelib}/certbot_dns_nsone-%{version}-py?.?.egg-info
rpm-specs/python-network-runner.spec:%{python3_sitelib}/network_runner-%{version}-py?.?.egg-info
rpm-specs/python-slugify.spec:%{python3_sitelib}/python_slugify-%{version}-py?.?.egg-info
rpm-specs/python-pystemd.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pyshtools.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/libprelude.spec:%{python3_sitearch}/prelude-%{version}-py?.?.egg-info
rpm-specs/pyttsx.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-confluent-kafka.spec:%{python2_sitearch}/confluent_kafka-%{version}-py?.?.egg-info
rpm-specs/python-confluent-kafka.spec:%{python3_sitearch}/confluent_kafka-%{version}-py?.?.egg-info
rpm-specs/pyp2rpm.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-utils.spec:%{python3_sitelib}/python_utils-%{version}-py?.?.egg-info
rpm-specs/codespell.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-retrying.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-geopandas.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/nordugrid-arc-gangliarc.spec:%{python2_sitelib}/nordugrid_arc_gangliarc-%{version}-py?.?.egg-info
rpm-specs/python-terminaltables.spec:%{python2_sitelib}/terminaltables-%{version}-py?.?.egg-info/
rpm-specs/python-terminaltables.spec:%{python3_sitelib}/terminaltables-%{version}-py?.?.egg-info/
rpm-specs/python-ruffus.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-nbconvert.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/nemo-extensions.spec:%{python3_sitelib}/nemo_pastebin-%{version}-py?.?.egg-info
rpm-specs/nemo-extensions.spec:%{python3_sitelib}/nemo_terminal-%{version}-py?.?.egg-info
rpm-specs/nemo-extensions.spec:%{python3_sitelib}/nemo_emblems-%{version}-py?.?.egg-info
rpm-specs/nemo-extensions.spec:%{python3_sitelib}/nemo_compare-%{version}-py?.?.egg-info
rpm-specs/python-openstackdocstheme.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-openstackdocstheme.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ryu.spec:%{python_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-constantly.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-constantly.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-json-minify.spec:%{python3_sitelib}/%{Srcname_}-%{version}-py?.?.egg-info
rpm-specs/python-nbsphinx.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pwntools.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-jaraco-packaging.spec:%{python3_sitelib}/jaraco_packaging-%{version}-py?.?.egg-info
rpm-specs/python-flaky.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/patool.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-rst-linker.spec:%{python3_sitelib}/rst_linker-%{version}-py?.?.egg-info
rpm-specs/python-httmock.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/pybind11.spec:%{python2_sitearch}/%{name}-%{version}-py?.?.egg-info
rpm-specs/pybind11.spec:%{python3_sitearch}/%{name}-%{version}-py?.?.egg-info
rpm-specs/gresistor.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-tblib.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/grpc.spec:%{python3_sitearch}/grpcio-%{version}-py?.?.egg-info
rpm-specs/python-jupyterlab-launcher.spec:%{python3_sitelib}/jupyterlab_launcher-%{version}-py?.?.egg-info
rpm-specs/ampy.spec:%{python3_sitelib}/adafruit_ampy-%{version}-py?.?.egg-info
rpm-specs/python-blindspin.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-jaraco-classes.spec:%{python3_sitelib}/jaraco_classes-%{version}-py?.?.egg-info
rpm-specs/python-warlock.spec:%{python3_sitelib}/warlock-%{version}-py?.?.egg-info
rpm-specs/python-pyzolib.spec:%{python3_sitelib}/pyzolib-%{version}-py?.?.egg-info
rpm-specs/python-pint.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-nnpy.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-pykwalify.spec:%{python2_sitelib}/%{pname}-%{version}-py?.?.egg-info
rpm-specs/python-pykwalify.spec:%{python3_sitelib}/%{pname}-%{version}-py?.?.egg-info
rpm-specs/python-cliff-tablib.spec:%{python3_sitelib}/cliff_tablib-%{version}-py?.?.egg-info
rpm-specs/python-pyocr.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-kiwisolver.spec:%{python2_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-kiwisolver.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-zict.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-cloudflare.spec:%{python2_sitelib}/certbot_dns_cloudflare-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-cloudflare.spec:%{python3_sitelib}/certbot_dns_cloudflare-%{version}-py?.?.egg-info
rpm-specs/python-smartypants.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-microfs.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-junitxml.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-click-threading.spec:%{python3_sitelib}/%{pyname}-%{version}-py?.?.egg-info
rpm-specs/python-pep8-naming.spec:%{python3_sitelib}/%{srcname_}-%{version}-py?.?.egg-info
rpm-specs/persepolis.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/qutebrowser.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-hyperlink.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-hyperlink.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pycotap.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-tosca-parser.spec:%{python2_sitelib}/tosca_parser-%{version}-py?.?.egg-info
rpm-specs/python-tosca-parser.spec:%{python3_sitelib}/tosca_parser-%{version}-py?.?.egg-info
rpm-specs/python-send2trash.spec:%{python3_sitelib}/%{pypiname}-%{version}-py?.?.egg-info
rpm-specs/python-django-redis.spec:%{python3_sitelib}/django_redis-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-cloudxns.spec:%{python2_sitelib}/certbot_dns_cloudxns-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-cloudxns.spec:%{python3_sitelib}/certbot_dns_cloudxns-%{version}-py?.?.egg-info
rpm-specs/python-yaql.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-yaql.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/pychess.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-asn1crypto.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-asn1crypto.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-wxnatpy.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/deluge.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info/
rpm-specs/python-distroinfo.spec:%{python3_sitelib}/distroinfo-%{version}-py?.?.egg-info
rpm-specs/dlrn.spec:%{python2_sitelib}/DLRN-%{version}-py?.?.egg-info
rpm-specs/dlrn.spec:%{python3_sitelib}/DLRN-%{version}-py?.?.egg-info
rpm-specs/hddfancontrol.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-cotyledon.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-cotyledon.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-spyder-kernels.spec:%{python3_sitelib}/spyder_kernels-%{version}-py?.?.egg-info
rpm-specs/python-requests-unixsocket.spec:%{python3_sitelib}/requests_unixsocket-%{version}-py?.?.egg-info
rpm-specs/python-bashate.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/proselint.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-requests-credssp.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/google-api-python-client.spec:%{python2_sitelib}/google_api_python_client-%{version}-py?.?.egg-info
rpm-specs/google-api-python-client.spec:%{python3_sitelib}/google_api_python_client-%{version}-py?.?.egg-info
rpm-specs/python-snuggs.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-dnsmadeeasy.spec:%{python2_sitelib}/certbot_dns_dnsmadeeasy-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-dnsmadeeasy.spec:%{python3_sitelib}/certbot_dns_dnsmadeeasy-%{version}-py?.?.egg-info
rpm-specs/python3-iep.spec:%{python3_sitelib}/iep-%{version}-py?.?.egg-info
rpm-specs/pystache.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/pystache.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-pyperclip.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-xlsxwriter.spec:%{python3_sitelib}/%{src_name}-%{version}-py?.?.egg-info
rpm-specs/xonsh.spec:%{python3_sitelib}/xonsh-%{version}-py?.?.egg-info/
rpm-specs/python-ladon.spec:%{python3_sitelib}/ladon-%{version}-py?.?.egg-info
rpm-specs/python-sphinx-issues.spec:%{python3_sitelib}/sphinx_issues-%{version}-py?.?.egg-info
rpm-specs/python-django-authority.spec:%{python3_sitelib}/django_authority-%{version}-py?.?.egg-info
rpm-specs/python-mglob.spec:%{python2_sitelib}/mglob-%{version}-py?.?.egg-info
rpm-specs/python-mglob.spec:%{python3_sitelib}/mglob-%{version}-py?.?.egg-info
rpm-specs/python-gabbi.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pyfastnoisesimd.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/modtools.spec:%{python3_sitelib}/modtools-%{version}-py?.?.egg-info
rpm-specs/pycscope.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/pycscope.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-graphviz.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-graphviz.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-django-debreach.spec:%{python2_sitelib}/django_debreach-%{version}-py?.?.egg-info
rpm-specs/python-django-debreach.spec:%{python3_sitelib}/django_debreach-%{version}-py?.?.egg-info
rpm-specs/python-abclient.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-gehirn.spec:%{python2_sitelib}/certbot_dns_gehirn-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-gehirn.spec:%{python3_sitelib}/certbot_dns_gehirn-%{version}-py?.?.egg-info
rpm-specs/python-simplebayes.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-ogr.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-slacker.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-slacker.spec:%{python3_other_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
rpm-specs/python-nose_warnings_filters.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-twisted.spec:%{python2_sitearch}/Twisted-%{version}-py?.?.egg-info
rpm-specs/python-twisted.spec:%{python3_sitearch}/Twisted-%{version}-py?.?.egg-info
rpm-specs/hatch.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-pdfkit.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-restsh.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-zake.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-vulture.spec:%{python2_sitelib}/%{module_name}-%{version}-py?.?.egg-info
rpm-specs/python-vulture.spec:%{python3_sitelib}/%{module_name}-%{version}-py?.?.egg-info
rpm-specs/python-pypandoc.spec:%{python2_sitelib}/pypandoc-%{version}-py?.?.egg-info
rpm-specs/python-pypandoc.spec:%{python3_sitelib}/pypandoc-%{version}-py?.?.egg-info
rpm-specs/python-jsonpointer.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jsonpointer.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-simplegeneric.spec:%{python3_sitelib}/simplegeneric-%{version}-py?.?.egg-info/
rpm-specs/python-editor.spec:%{python2_sitelib}/python_editor-%{version}-py?.?.egg-info
rpm-specs/python-gitlab.spec:%{python3_sitelib}/python_gitlab-%{version}-py?.?.egg-info
rpm-specs/python-mne-bids.spec:%{python2_sitelib}/mne_bids-%{version}-py?.?.egg-info
rpm-specs/python-mne-bids.spec:%{python3_sitelib}/mne_bids-%{version}-py?.?.egg-info
rpm-specs/python-pycountry.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-missingno.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-django-post_office.spec:%{python3_sitelib}/django_post_office-%{version}-py?.?.egg-info
rpm-specs/python-towncrier.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/awscli.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/awscli.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-yarg.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/paperwork.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-pytimeparse.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pytimeparse.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-linode.spec:%{python2_sitelib}/certbot_dns_linode-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-linode.spec:%{python3_sitelib}/certbot_dns_linode-%{version}-py?.?.egg-info
rpm-specs/python-django-threadedcomments.spec:%{python3_sitelib}/django_threadedcomments-%{version}-py?.?.egg-info
rpm-specs/python-django-filter.spec:%{python3_sitelib}/django_filter-%{version}-py?.?.egg-info
rpm-specs/python-jsonpatch.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jsonpatch.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-honcho.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-klusta.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-mistune.spec:%{python2_sitearch}/%{upname}-%{version}-py?.?.egg-info
rpm-specs/python-mistune.spec:%{python3_sitearch}/%{upname}-%{version}-py?.?.egg-info
rpm-specs/python-dotenv.spec:%{python3_sitelib}/python_dotenv-%{version}-py?.?.egg-info
rpm-specs/python-gpiozero.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-ovh.spec:%{python2_sitelib}/certbot_dns_ovh-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-ovh.spec:%{python3_sitelib}/certbot_dns_ovh-%{version}-py?.?.egg-info
rpm-specs/mycli.spec:%{python3_sitelib}/mycli-%{version}-py?.?.egg-info
rpm-specs/python-resumable-urlretrieve.spec:%{python3_sitelib}/resumable_urlretrieve-%{version}-py?.?.egg-info
rpm-specs/python-colour-runner.spec:%{python3_sitelib}/colour_runner-%{version}-py?.?.egg-info
rpm-specs/python-uinput.spec:%{python3_sitearch}/python_uinput-%{version}-py?.?.egg-info
rpm-specs/python-beniget.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-croniter.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-croniter.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-virtualenv-api.spec:%{python3_sitelib}/%{underscore_name}-%{version}-py?.?.egg-info
rpm-specs/python-hdfs.spec:%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-hdfs.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-roboto-fontface.spec:%{python3_sitelib}/XStatic_roboto_fontface-%{version}-py?.?.egg-info
rpm-specs/python-xarray.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-jmespath.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-jmespath.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ntlm3.spec:%{python3_sitelib}/python_%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-cachy.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-tinydb.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-pickleshare.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-bintrees.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ptyprocess.spec:%{python2_sitelib}/ptyprocess-%{version}-py?.?.egg-info
rpm-specs/python-ptyprocess.spec:%{python3_sitelib}/ptyprocess-%{version}-py?.?.egg-info
rpm-specs/python-zdaemon.spec:%{python3_sitelib}/zdaemon-%{version}-py?.?.egg-info
rpm-specs/python-django-reversion.spec:%{python3_sitelib}/django_reversion-%{version}-py?.?.egg-info
rpm-specs/python-hkdf.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-peewee.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/ipython.spec:%{python3_sitelib}/ipython-%{version}-py?.?.egg-info
rpm-specs/python-distlib.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-configobj.spec:%{python2_sitelib}/configobj-%{version}-py?.?.egg-info
rpm-specs/python-configobj.spec:%{python3_sitelib}/configobj-%{version}-py?.?.egg-info
rpm-specs/python-docx.spec:%{python3_sitelib}/python_%{pname}-%{version}-py?.?.egg-info
rpm-specs/python-hug.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-collectd_cvmfs.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-grapefruit.spec:%{python2_sitelib}/grapefruit-%{version}-py?.?.egg-info
rpm-specs/python-grapefruit.spec:%{python3_sitelib}/grapefruit-%{version}-py?.?.egg-info
rpm-specs/python-dns-lexicon.spec:%{python2_sitelib}/dns_lexicon-%{version}-py?.?.egg-info
rpm-specs/python-dns-lexicon.spec:%{python3_sitelib}/dns_lexicon-%{version}-py?.?.egg-info
rpm-specs/python-profilehooks.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python3-pyPEG2.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-flask-paranoid.spec:%{python3_sitelib}/Flask_Paranoid-%{version}-py?.?.egg-info
rpm-specs/python-sphinx-click.spec:%{python3_sitelib}/sphinx_click-%{version}-py?.?.egg-info/
rpm-specs/python-typogrify.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-sakuracloud.spec:%{python2_sitelib}/certbot_dns_sakuracloud-%{version}-py?.?.egg-info
rpm-specs/python-certbot-dns-sakuracloud.spec:%{python3_sitelib}/certbot_dns_sakuracloud-%{version}-py?.?.egg-info
rpm-specs/GeographicLib.spec:%{python3_sitelib}/geographiclib-%{version}-py?.?.egg-info
rpm-specs/unicorn.spec:%{python2_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/unicorn.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/python-pyrsistent.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info/
rpm-specs/python-django-ajax-selects.spec:%{python3_sitelib}/django_ajax_selects-%{version}-py?.?.egg-info
rpm-specs/python-flask-rstpages.spec:%{python3_sitelib}/Flask_RSTPages-%{version}-py?.?.egg-info
rpm-specs/python-pytest-testmon.spec:%{python3_sitelib}/pytest_testmon-%{version}-py?.?.egg-info
rpm-specs/python-geoplot.spec:%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-jupyter-client.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-unittest2.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-unittest2.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-ruamel-yaml.spec:%{python3_sitearch}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/csvdiff.spec:%{python3_sitelib}/%{name}-%{version}-py?.?.egg-info
rpm-specs/asv.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-nose-cover3.spec:%{python2_sitelib}/nose_cover3-%{version}-py?.?.egg-info
rpm-specs/python-vine.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-epi.spec:%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-epi.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-bootswatch.spec:%{python2_sitelib}/XStatic_bootswatch-%{version}-py?.?.egg-info
rpm-specs/python-XStatic-bootswatch.spec:%{python3_sitelib}/XStatic_bootswatch-%{version}-py?.?.egg-info
rpm-specs/python-pypillowfight.spec:%{python3_sitearch}/%{srcname}-%{version}-py?.?.egg-info
rpm-specs/python-trimesh.spec:%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info/
gordonmessmer commented 4 years ago

Nice. How'd you generate that list, BTW? I expected I'd have to clone all of the repositories for everything that creates a python- or python3- package and search them.

hroncok commented 4 years ago

https://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz

Be careful, not only python- or python3- packages are affected.

$ repoquery --repo=rawhide -f '*-py3.7.egg-info' --qf "%{NAME}"

gives 2550 results, 392 don't match ^python:

$ repoquery --repo=rawhide -f '*-py3.7.egg-info' --qf "%{NAME}" | sort | uniq | grep -v '^python'
alot
ampy
ansible
ansible-bender
antlr4-python3-runtime
apx
artifacts
asciinema
asv
aubio-python3
autoarchive
autokey-common
awscli
bandit
battray
beets
binwalk
black
blivet-gui-runtime
bodhi-server
borgbackup
borgmatic
brd
btest
btrfs-sxbackup
buildbot-master
buildbot-worker
buildbot-www
buildstream
bumpversion
cairo-dock-python3
cantoolz
catfish
ccsm
cekit
ceph-base
cephfs-shell
cinch
classification-banner
cloud-init
codespell
commissaire-client
congruity
copr-cli
copr-keygen
copr-rpmbuild
coreboot-utils
cranc
csvdiff
cxxtest
datagrepper
datanommer
datanommer-commands
ddupdate
deluge-common
devscripts
dib-utils
diceware
diffoscope
diskimage-builder
distgen
docker-compose
doge
dot2tex
dxf2gcode
elastic-curator
electron-cash
electrum
enki
esptool
etckeeper-dnf
execdb
exfalso
fail2ban-server
fedmod
fedora-review
fedpkg
fedscm-admin
flatcam
freeipa-healthcheck
frescobaldi
fros
fusion-icon
gajim
gaupol
gcovr
git-archive-all
git-fame
git-pull-request
git-review
glances
glue
gnofract4d
gnome-gmail
gns3-gui
gns3-net-converter
gns3-server
gpodder
gramps
graphite-api
graphite-web
greenwave
gtimelog
gumbo-parser-python
hashid
hatch
hddfancontrol
heat-cfntools
hgsvn
holland
holland-common
holland-commvault
holland-lvm
holland-mariabackup
holland-mongodump
holland-mysql
holland-mysqldump
holland-mysqllvm
holland-pgdump
holland-xtrabackup
hovercraft
httpie
cheat
chrome-gnome-shell
imagefactory
imagefactory-plugins
inception
initial-setup
ioc-writer
iotop
irclog2html
isrcsubmit
jrnl
kaadbg
kf5-kapidox
khal
khard
kismon
koji-containerbuild
koschei-common
lazygal
lecm
legofy
lightdm-gtk-greeter-settings
limnoria
lorax
lorem-ipsum-generator
lutris
maildirproc
mailman3
mailman3-fedmsg-plugin
manuale
mate-menu
matrix-synapse
meld
menulibre
meson
mgarepo
mingw32-python3-Cython
mingw32-python3-gdal
mingw32-python3-numpy
mingw32-python3-setuptools
mingw64-python3-Cython
mingw64-python3-gdal
mingw64-python3-numpy
mingw64-python3-setuptools
mirrormanager2
mkdocs
mkdocs-alabaster
mkdocs-basic-theme
mkdocs-bootstrap
mkdocs-bootswatch
mkdocs-cinder
mkdocs-material
mlpack-python3
mnemosyne
modtools
module-build-service
mozilla-iot-gateway-addon-python
mu
mycli
mysql-connector-python3
nemo-compare
nemo-emblems
nemo-pastebin
nemo-terminal
netstat-monitor
nfoview
nfs-ganesha-utils
nfsometer
nik4
nml
nodepool
nova-agent
nvmetcli
nyx
ocrmypdf
ogr2osm
onboard
onionshare
OpenLP
openscap-daemon
oraculum
osc
oz
pag
pagure
pagure-dist-git
parsero
pcp2pdf
pcs
pcs-snmp
pdfposter
percol
persepolis
pew
pgzero
photocollage
picard
pintail
pipenv
pipsi
playitagainsam
poezio
polymake-jupyter
porcupine
powerline
printrun-common
proselint
prunerepo
pss
pssh
ptpython3
pybugz
pyflowtools
pyhoca-cli
pyhoca-gui
pychess
PyMca
pymol
pypolicyd-spf
pyppd
pypykatz
pyp2rpm
PySolFC
pysubnettree
pysysbot
PyX
pyzor
py3libacl
py3status
qpid-dispatch-router
qtile
quasselgrep
qutebrowser
ranger
rapid-photo-downloader
rb_libtorrent-python3
RBTools
rebase-helper
recoll
rednotebook
relval
resalloc-openstack
resultsdb
resultsdb_frontend
reuse
rhythmbox-ampache
rmlint
roca-detect
rpkg
rpl
rpmspectool
rst2txt
sagemath-notebook
sagemath-notebook-export
sagemath-sagetex
sasutils
scudcloud
sendKindle
sepolicy_analysis
setconf
setroubleshoot-server
shyaml
simple-ccsm
sos
sos-collector
spec2scl
speedtest-cli
sse2fedmsg
sshuttle
stgit
supervisor
swid-tools
system-config-kdump
system-config-printer-libs
system-storage-manager
systemtap-runtime-python3
s3cmd
targetcli
taskotron-trigger
thefuck
thonny
tito
tldr
todocli
torbrowser-launcher
transifex-client
translate-toolkit
trash-cli
trytond
trytond-account
trytond-account-be
trytond-account-de-skr03
trytond-account-invoice
trytond-account-invoice-history
trytond-account-invoice-line-standalone
trytond-account-product
trytond-account-statement
trytond-account-stock-anglo-saxon
trytond-account-stock-continental
trytond-analytic-account
trytond-analytic-invoice
trytond-analytic-purchase
trytond-analytic-sale
trytond-company
trytond-company-work-time
trytond-country
trytond-currency
trytond-dashboard
trytond-google-maps
trytond-ldap-authentication
trytond-party
trytond-party-siret
trytond-product
trytond-product-cost-fifo
trytond-product-cost-history
trytond-product-price-list
trytond-project
trytond-project-plan
trytond-project-revenue
trytond-purchase
trytond-purchase-invoice-line-standalone
trytond-sale
trytond-sale-opportunity
trytond-sale-price-list
trytond-stock
trytond-stock-forecast
trytond-stock-inventory-location
trytond-stock-location-sequence
trytond-stock-product-location
trytond-stock-supply
trytond-stock-supply-day
trytond-timesheet
tuna
twine
ubertooth-specan-ui
udica
uflash
ufw
urh
urlscan
urlwatch
ursa-major
variety
vault
veusz
vex
vimiv
vint
virt-bootstrap
virtme
virt-who
vitables
waiverdb-common
WALinuxAgent
webtech
wordxtr
wxGlade
xcat
xen
xen-runtime
xonsh
xortool
xpra
yamllint
yawn
yokadi
youtube-dl
Zim
2ping
5minute
gordonmessmer commented 4 years ago

I've rebased on the shiny new master.

gordonmessmer commented 4 years ago

Tests look good here, too. Are there any changes you'd like to see on this PR, before I start suggesting changes to maintainers who have this pattern in their spec files?

hroncok commented 4 years ago

All looks good. I'll recheck tmrw (feel free to bump me if I don't).

Two followup questions:

  1. Would you like to co-maintain pyp2rpm an do a new release?

  2. How do you plan to proceed with Fedora packages? I can help mass pushing the change if you provide a clever sed (or similar).

gordonmessmer commented 4 years ago

Would you like to co-maintain pyp2rpm an do a new release?

¯_(ツ)_/¯

Why not? Sounds awesome.

How do you plan to proceed with Fedora packages? I can help mass pushing the change if you provide a clever sed (or similar).

Oh good. I was afraid I'd have to file hundreds of BZ tickets and possibly trigger a rate limiter.

I think this gets 99% of the specs, but it's late and I'll want to go over the diff again tomorrow:

sed -i 's:\(%{python2_site\(lib\|arch\)}/.*-py\)?.?:\1%{python2_version}:; s:\(%{python3_site\(lib\|arch\)}/.*-py\)?.?:\1%{python3_version}:; s:\(%{python3_other_site\(lib\|arch\)}/.*-py\)?.?:\1%{python3_other_version}:' *.spec
gordonmessmer commented 4 years ago

I think the diff of the rpm-spec tree looks good after sed (though, again, there are a handful that probably need manual correction), but it's also 6622 lines long...

I spot-checked the changes by selecting several packages haphazardly, including packages with python2, python3, and python3_other sitelib and archlib, and rebuilding them with their modified spec files:


while read pkg
do
    fedpkg clone "$pkg"
    pushd "$pkg"
    cp ../rpm-specs-new/"$pkg".spec .
    fedpkg srpm
    mock --rebuild -r epel-7-x86_64 "$pkg"*.src.rpm || exit
    popd
done

A few failed during compile and I didn't troubleshoot those further since that didn't seem related to the change I made with sed, but all of the others that I selected built successfully.

I built the packages that reference python3_other in epel-7-x86_64, but most of them were built in fedora-30-x86_64.

gordonmessmer commented 4 years ago

I've modified the remaining spec files and built several of the modified packages in mock for fedora-30-x86_64.

pyver-specs.txt