For legacy OS with Python 3.6 + setuptools 59.6.0 (latest release for 3.6), e.g. CentOS 7/8, openSUSE 15.4 and Ubuntu 18.04, will fail with following message (e.g. https://build.opensuse.org/package/live_build_log/home:alvistack/pagure.io-python-daemon-3.0.0/CentOS_8_Stream/x86_64)
[ 84s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --undefine _enable_debug_packages --define 'disturl obs://build.opensuse.org/home:alvistack/CentOS_8_Stream/43a8fbbea38fddfc4b582257e580e293-pagure.io-python-daemon-3.0.0' /home/abuild/rpmbuild/SOURCES/python-daemon_3.0.0-1.spec [ 84s] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.rYE9zM [ 84s] + umask 022 [ 84s] + cd /home/abuild/rpmbuild/BUILD [ 84s] + cd /home/abuild/rpmbuild/BUILD [ 84s] + rm -rf python-daemon_3.0.0-1.1 [ 84s] + /usr/bin/mkdir -p python-daemon_3.0.0-1.1 [ 84s] + cd python-daemon_3.0.0-1.1 [ 84s] + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . [ 84s] + tar -zx -f /home/abuild/rpmbuild/SOURCES/python-daemon_3.0.0.orig.tar.gz --strip-components=1 -C . [ 84s] + exit 0 [ 84s] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.qG90pv [ 84s] + umask 022 [ 84s] + cd /home/abuild/rpmbuild/BUILD [ 84s] + cd python-daemon_3.0.0-1.1 [ 84s] + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' [ 84s] + LDFLAGS='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' [ 84s] + /usr/bin/python3.6 setup.py build '--executable=/usr/bin/python3.6 -s' [ 84s] Traceback (most recent call last): [ 84s] File "setup.py", line 20, in <module> [ 84s] import version # noqa: E402 [ 84s] File "/home/abuild/rpmbuild/BUILD/python-daemon_3.0.0-1.1/version.py", line 35, in <module> [ 84s] import setuptools.command.build [ 84s] ModuleNotFoundError: No module named 'setuptools.command.build' [ 84s] error: Bad exit status from /var/tmp/rpm-tmp.qG90pv (%build)
This is because setuptools.command.build was introduced since 62.4.0 (see https://github.com/pypa/wheel/issues/487#issuecomment-1307574510), which require Python >= 3.7.
setuptools.command.build
From this point of view, we need to update our 3.0.x release with minimum python_requires=">=3.7", too
python_requires=">=3.7"
Thanks @hswong3i,
So, this would be better addressed by directly declaring the Setuptools version dependency, no? And the Python minimum version will be inferred from that.
I have created a merge request that directly declares a Setuptools minimum version dependency. Can you try this and confirm it resolves this issue?
Oh how a good idea, and why not both ?_?
Sometime double fail-safe may looks overkill, but specifying python_requires=">=3.7" could also make it clear we had drop support for legacy EOL Python 3.6, with a new birth 3.0.x major release ;-)
I'll treat the Python dependency as a separate matter.
Meanwhile, would you try the version on that branch, and confirm this minimal change does resolve the issue in your test environment?
The local changes with https://pagure.io/python-daemon/pull-request/77 doesn't means anything when pip working directly pypi.org?
Moreover, I had already proof with https://build.opensuse.org/package/show/home:alvistack/pagure.io-python-daemon-3.0.0, that legacy OS with Python 3.6 fail for sure, where modern OS with Python >= 3.7 + setuptools >= 62.4.0 could package + install deb/rpm correctly.
I could re-test once you have a new version release to pypi.org, and provide feedback ASAP with my local OBS deb/rpm packaging experience.
Please test using the TestPyPI repository; I have uploaded a "release candidate" there (version "3.0.1rc1"). You can direct 'pip' to that repository:
https://packaging.python.org/en/latest/guides/using-testpypi/#using-testpypi-with-pip
Yes. What still needs to be tested, is the specification of a minimum Setuptools version in the package, and how that affects your test environment.
I don't feel good enough? Still 3.0.0 could be selected from test.pypi.org, where my local setuptools == 39.0.1 installed from Ubuntu 18.04 apt:
$ sudo podman run -ti --rm ubuntu:18.04 root@ffa5d504980c:/# apt update && apt -y full-upgrade && apt -y install python3-dev python3-pip root@ffa5d504980c:/# python3 --version Python 3.6.9 root@ffa5d504980c:/# pip3 --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) root@ffa5d504980c:/# pip3 install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ python-daemon Collecting python-daemon Using cached https://test-files.pythonhosted.org/packages/ff/33/014116323e7088e76bc4d667a2090a86ded5b228eccdb803c2fe1110f3d9/python_daemon-3.0.0-py3-none-any.whl Collecting docutils (from python-daemon) Downloading https://test-files.pythonhosted.org/packages/38/7f/70667cd16cf6f444fe19c5cea86414772600ee77af41ad4338a3c02b8f75/docutils-0.18.1-py2.py3-none-any.whl (570kB) 100% |################################| 573kB 2.7MB/s Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from python-daemon) Collecting lockfile>=0.10 (from python-daemon) Downloading https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl Installing collected packages: docutils, lockfile, python-daemon Successfully installed docutils-0.18.1 lockfile-0.12.2 python-daemon-3.0.0 root@ffa5d504980c:/# pip3 list --format=legacy asn1crypto (0.24.0) cryptography (2.1.4) docutils (0.18.1) idna (2.6) keyring (10.6.0) keyrings.alt (3.0) lockfile (0.12.2) pip (9.0.1) pycrypto (2.6.1) pygobject (3.26.1) python-daemon (3.0.0) pyxdg (0.25) SecretStorage (2.3.1) setuptools (39.0.1) six (1.11.0) wheel (0.30.0) root@ffa5d504980c:/# pip3 show setuptools Name: setuptools Version: 39.0.1 Summary: Easily download, build, install, upgrade, and uninstall Python packages Home-page: https://github.com/pypa/setuptools Author: Python Packaging Authority Author-email: distutils-sig@python.org License: UNKNOWN Location: /usr/lib/python3/dist-packages Requires: root@ffa5d504980c:/# pip3 show python-daemon Name: python-daemon Version: 3.0.0 Summary: Library to implement a well-behaved Unix daemon process. Home-page: https://pagure.io/python-daemon/ Author: Ben Finney Author-email: ben+python@benfinney.id.au License: Apache-2 Location: /usr/local/lib/python3.6/dist-packages Requires: setuptools, lockfile, docutils
Another try with directly install 3.0.1rc1 and failed as expected, complain with setuptools>=62.4.0:
setuptools>=62.4.0
root@80c7fff71566:/# pip3 install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ python-daemon==3.0.1rc1 Collecting python-daemon==3.0.1rc1 Downloading https://test-files.pythonhosted.org/packages/e8/4d/aee4ab3c40929852f1691b7ce051c596deb0eef387261e77252b06faf090/python_daemon-3.0.1rc1-py3-none-any.whl Collecting setuptools>=62.4.0 (from python-daemon==3.0.1rc1) Could not find a version that satisfies the requirement setuptools>=62.4.0 (from python-daemon==3.0.1rc1) (from versions: 0.6b1, 0.6b2, 0.6b3, 0.6b4, 0.6rc1, 0.6rc2, 0.6rc3, 0.6rc4, 0.6rc5, 0.6rc6, 0.6rc7, 0.6rc8, 0.6rc9, 0.6rc10, 0.6rc11, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.8, 0.9, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 1.0, 1.1, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.2, 1.3, 1.3.1, 1.3.2, 1.4, 1.4.1, 1.4.2, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, 3.0, 3.0.1, 3.0.2, 3.1, 3.2, 3.3, 3.4, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.5, 3.5.1, 3.5.2, 3.6, 3.7, 3.7.1, 3.8, 3.8.1, 4.0, 4.0.1, 5.0, 5.0.1, 5.0.2, 5.1, 5.2, 5.3, 5.4, 5.4.1, 5.4.2, 5.5, 5.5.1, 5.6, 5.7, 5.8, 6.0.1, 6.0.2, 6.1, 7.0, 8.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.1, 8.2, 8.2.1, 8.3, 9.0, 9.0.1, 9.1, 10.0, 10.0.1, 10.1, 10.2, 10.2.1, 11.0, 11.1, 11.2, 11.3, 11.3.1, 12.0, 12.0.1, 12.0.2, 12.0.3, 12.0.4, 12.0.5, 12.1, 12.2, 12.3, 12.4, 13.0.1, 13.0.2, 14.0, 14.1, 14.1.1, 14.2, 14.3, 14.3.1, 15.0, 15.1, 15.2, 16.0, 17.0, 17.1, 17.1.1, 18.0, 18.0.1, 18.1, 18.2, 18.3, 18.3.1, 18.3.2, 18.4, 18.5, 18.6, 18.6.1, 18.7, 18.7.1, 18.8, 18.8.1, 19.0, 19.1, 19.1.1, 19.2, 19.3, 19.4, 19.4.1, 19.5, 19.6, 19.6.1, 19.6.2, 19.7, 20.0, 20.1, 20.1.1, 20.2.2, 20.3, 20.3.1, 20.4, 20.6.6, 20.6.7, 20.6.8, 20.7.0, 20.8.0, 20.8.1, 20.9.0, 20.10.1, 21.0.0, 21.1.0, 21.2.0, 21.2.1, 21.2.2, 22.0.0, 22.0.1, 22.0.2, 22.0.4, 22.0.5, 23.0.0, 23.1.0, 23.2.0, 23.2.1, 24.0.0, 24.0.1, 24.0.2, 24.0.3, 24.1.0, 24.1.1, 24.2.0, 24.2.1, 24.3.0, 24.3.1, 25.0.0, 25.0.1, 25.0.2, 25.1.0, 25.1.1, 25.1.2, 25.1.3, 25.1.4, 25.1.5, 25.1.6, 25.2.0, 25.3.0, 25.4.0, 26.0.0, 26.1.0, 26.1.1, 27.0.0, 27.1.0, 27.1.2, 27.2.0, 27.3.0, 27.3.1, 28.0.0, 28.1.0, 28.2.0, 28.3.0, 28.4.0, 28.5.0, 28.6.0, 28.6.1, 28.7.0, 28.7.1, 28.8.0, 28.8.1, 29.0.0, 29.0.1, 30.0.0, 30.1.0, 30.2.0, 30.2.1, 30.3.0, 30.4.0, 31.0.0, 31.0.1, 32.0.0, 32.1.0, 32.1.1, 32.1.2, 32.1.3, 32.2.0, 32.3.0, 32.3.1, 33.1.0, 33.1.1, 34.0.0, 34.0.1, 34.0.2, 34.0.3, 34.1.0, 34.1.1, 34.2.0, 34.3.0, 34.3.1, 34.3.2, 34.3.3, 34.4.0, 34.4.1, 35.0.0, 35.0.1, 35.0.2, 36.0.1, 36.1.0, 36.1.1, 36.2.0, 36.2.1, 36.2.2, 36.2.3, 36.2.4, 36.2.5, 36.2.6, 36.2.7, 36.3.0, 36.4.0, 36.5.0, 36.6.0, 36.6.1, 36.7.0, 36.7.1, 36.7.2, 36.8.0, 37.0.0, 38.0.0, 38.1.0, 38.2.0, 38.2.1, 38.2.3, 38.2.4, 38.2.5, 38.3.0, 38.4.0, 38.4.1, 38.5.0, 38.5.1, 38.5.2, 38.6.0, 38.6.1, 38.7.0, 39.0.0, 39.0.1, 39.1.0, 39.2.0, 40.0.0, 40.1.0, 40.1.1, 40.2.0, 40.3.0, 40.4.0, 40.4.1, 40.4.2, 40.4.3, 40.5.0, 40.6.0, 40.6.1, 40.6.2, 40.6.3, 40.7.0, 40.7.1, 40.7.2, 40.7.3, 40.8.0, 40.9.0, 41.0.0, 41.0.1, 41.1.0, 41.2.0, 41.3.0, 41.4.0, 41.5.0, 41.5.1, 41.6.0, 42.0.0, 42.0.1, 42.0.2, 43.0.0, 44.0.0, 44.1.0, 44.1.1, 45.0.0, 45.1.0, 45.2.0, 45.3.0, 46.0.0, 46.1.0, 46.1.1, 46.1.2, 46.1.3, 46.2.0, 46.3.0, 46.3.1, 46.4.0, 47.0.0, 47.1.0, 47.1.1, 47.2.0, 47.3.0, 47.3.1, 47.3.2, 48.0.0, 49.0.0, 49.0.1, 49.1.0, 49.1.1, 49.1.2, 49.1.3, 49.2.0, 49.2.1, 49.3.0, 49.3.1, 49.3.2, 49.4.0, 49.5.0, 49.6.0, 50.0.0, 50.0.1, 50.0.2, 50.0.3, 50.1.0, 50.2.0, 50.3.0, 50.3.1, 50.3.2, 51.0.0, 51.1.0, 51.1.0.post20201221, 51.1.1, 51.1.2, 51.2.0, 51.3.0, 51.3.1, 51.3.2, 51.3.3, 52.0.0, 53.0.0, 53.1.0, 54.0.0, 54.1.0, 54.1.1, 54.1.2, 54.1.3, 54.2.0, 56.0.0, 56.1.0, 56.2.0, 57.0.0, 57.1.0, 57.2.0, 57.3.0, 57.4.0, 57.5.0, 58.0.0, 58.0.1, 58.0.2, 58.0.3, 58.0.4, 58.1.0, 58.2.0, 58.3.0, 58.4.0, 58.5.0, 58.5.1, 58.5.2, 58.5.3, 59.0.1, 59.1.0, 59.1.1, 59.2.0, 59.3.0, 59.4.0, 59.5.0, 59.6.0) No matching distribution found for setuptools>=62.4.0 (from python-daemon==3.0.1rc1)
Another try with directly install 3.0.1rc1 and failed as expected, complain with setuptools>=62.4.0
Thank you, that suffices to prevent a broken installation. And the error message correctly identifies exactly which package needs to be upgraded.
I have released 'python-daemon' version 3.0.1 with this dependency as described.
Metadata Update from @bignose: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Now at least with default ubuntu:18.04 + pip3 == 9.0.1 could failed correctly:
$ sudo podman run -ti --rm ubuntu:18.04 bash root@c99b8432fe69:/# apt update && apt -y full-upgrade && apt -y install python3-dev python3-pip root@c99b8432fe69:/# pip3 --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) root@c99b8432fe69:/# pip3 install python-daemon Collecting python-daemon Using cached https://files.pythonhosted.org/packages/83/7f/feffd97af851e2a837b5ca9bfbe570002c45397734724e4abfd4c62fdd0d/python_daemon-3.0.1-py3-none-any.whl Collecting lockfile>=0.10 (from python-daemon) Downloading https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl Collecting docutils (from python-daemon) Downloading https://files.pythonhosted.org/packages/8d/14/69b4bad34e3f250afe29a854da03acb6747711f3df06c359fa053fae4e76/docutils-0.18.1-py2.py3-none-any.whl (570kB) 100% |################################| 573kB 2.9MB/s Collecting setuptools>=62.4.0 (from python-daemon) Could not find a version that satisfies the requirement setuptools>=62.4.0 (from python-daemon) (from versions: 0.6b1, 0.6b2, 0.6b3, 0.6b4, 0.6rc1, 0.6rc2, 0.6rc3, 0.6rc4, 0.6rc5, 0.6rc6, 0.6rc7, 0.6rc8, 0.6rc9, 0.6rc10, 0.6rc11, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.8, 0.9, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 1.0, 1.1, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.2, 1.3, 1.3.1, 1.3.2, 1.4, 1.4.1, 1.4.2, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, 3.0, 3.0.1, 3.0.2, 3.1, 3.2, 3.3, 3.4, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.5, 3.5.1, 3.5.2, 3.6, 3.7, 3.7.1, 3.8, 3.8.1, 4.0, 4.0.1, 5.0, 5.0.1, 5.0.2, 5.1, 5.2, 5.3, 5.4, 5.4.1, 5.4.2, 5.5, 5.5.1, 5.6, 5.7, 5.8, 6.0.1, 6.0.2, 6.1, 7.0, 8.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.1, 8.2, 8.2.1, 8.3, 9.0, 9.0.1, 9.1, 10.0, 10.0.1, 10.1, 10.2, 10.2.1, 11.0, 11.1, 11.2, 11.3, 11.3.1, 12.0, 12.0.1, 12.0.2, 12.0.3, 12.0.4, 12.0.5, 12.1, 12.2, 12.3, 12.4, 13.0.1, 13.0.2, 14.0, 14.1, 14.1.1, 14.2, 14.3, 14.3.1, 15.0, 15.1, 15.2, 16.0, 17.0, 17.1, 17.1.1, 18.0, 18.0.1, 18.1, 18.2, 18.3, 18.3.1, 18.3.2, 18.4, 18.5, 18.6, 18.6.1, 18.7, 18.7.1, 18.8, 18.8.1, 19.0, 19.1, 19.1.1, 19.2, 19.3, 19.4, 19.4.1, 19.5, 19.6, 19.6.1, 19.6.2, 19.7, 20.0, 20.1, 20.1.1, 20.2.2, 20.3, 20.3.1, 20.4, 20.6.6, 20.6.7, 20.6.8, 20.7.0, 20.8.0, 20.8.1, 20.9.0, 20.10.1, 21.0.0, 21.1.0, 21.2.0, 21.2.1, 21.2.2, 22.0.0, 22.0.1, 22.0.2, 22.0.4, 22.0.5, 23.0.0, 23.1.0, 23.2.0, 23.2.1, 24.0.0, 24.0.1, 24.0.2, 24.0.3, 24.1.0, 24.1.1, 24.2.0, 24.2.1, 24.3.0, 24.3.1, 25.0.0, 25.0.1, 25.0.2, 25.1.0, 25.1.1, 25.1.2, 25.1.3, 25.1.4, 25.1.5, 25.1.6, 25.2.0, 25.3.0, 25.4.0, 26.0.0, 26.1.0, 26.1.1, 27.0.0, 27.1.0, 27.1.2, 27.2.0, 27.3.0, 27.3.1, 28.0.0, 28.1.0, 28.2.0, 28.3.0, 28.4.0, 28.5.0, 28.6.0, 28.6.1, 28.7.0, 28.7.1, 28.8.0, 28.8.1, 29.0.0, 29.0.1, 30.0.0, 30.1.0, 30.2.0, 30.2.1, 30.3.0, 30.4.0, 31.0.0, 31.0.1, 32.0.0, 32.1.0, 32.1.1, 32.1.2, 32.1.3, 32.2.0, 32.3.0, 32.3.1, 33.1.0, 33.1.1, 34.0.0, 34.0.1, 34.0.2, 34.0.3, 34.1.0, 34.1.1, 34.2.0, 34.3.0, 34.3.1, 34.3.2, 34.3.3, 34.4.0, 34.4.1, 35.0.0, 35.0.1, 35.0.2, 36.0.1, 36.1.0, 36.1.1, 36.2.0, 36.2.1, 36.2.2, 36.2.3, 36.2.4, 36.2.5, 36.2.6, 36.2.7, 36.3.0, 36.4.0, 36.5.0, 36.6.0, 36.6.1, 36.7.0, 36.7.1, 36.7.2, 36.8.0, 37.0.0, 38.0.0, 38.1.0, 38.2.0, 38.2.1, 38.2.3, 38.2.4, 38.2.5, 38.3.0, 38.4.0, 38.4.1, 38.5.0, 38.5.1, 38.5.2, 38.6.0, 38.6.1, 38.7.0, 39.0.0, 39.0.1, 39.1.0, 39.2.0, 40.0.0, 40.1.0, 40.1.1, 40.2.0, 40.3.0, 40.4.0, 40.4.1, 40.4.2, 40.4.3, 40.5.0, 40.6.0, 40.6.1, 40.6.2, 40.6.3, 40.7.0, 40.7.1, 40.7.2, 40.7.3, 40.8.0, 40.9.0, 41.0.0, 41.0.1, 41.1.0, 41.2.0, 41.3.0, 41.4.0, 41.5.0, 41.5.1, 41.6.0, 42.0.0, 42.0.1, 42.0.2, 43.0.0, 44.0.0, 44.1.0, 44.1.1, 45.0.0, 45.1.0, 45.2.0, 45.3.0, 46.0.0, 46.1.0, 46.1.1, 46.1.2, 46.1.3, 46.2.0, 46.3.0, 46.3.1, 46.4.0, 47.0.0, 47.1.0, 47.1.1, 47.2.0, 47.3.0, 47.3.1, 47.3.2, 48.0.0, 49.0.0, 49.0.1, 49.1.0, 49.1.1, 49.1.2, 49.1.3, 49.2.0, 49.2.1, 49.3.0, 49.3.1, 49.3.2, 49.4.0, 49.5.0, 49.6.0, 50.0.0, 50.0.1, 50.0.2, 50.0.3, 50.1.0, 50.2.0, 50.3.0, 50.3.1, 50.3.2, 51.0.0, 51.1.0, 51.1.0.post20201221, 51.1.1, 51.1.2, 51.2.0, 51.3.0, 51.3.1, 51.3.2, 51.3.3, 52.0.0, 53.0.0, 53.1.0, 54.0.0, 54.1.0, 54.1.1, 54.1.2, 54.1.3, 54.2.0, 56.0.0, 56.1.0, 56.2.0, 57.0.0, 57.1.0, 57.2.0, 57.3.0, 57.4.0, 57.5.0, 58.0.0, 58.0.1, 58.0.2, 58.0.3, 58.0.4, 58.1.0, 58.2.0, 58.3.0, 58.4.0, 58.5.0, 58.5.1, 58.5.2, 58.5.3, 59.0.1, 59.1.0, 59.1.1, 59.2.0, 59.3.0, 59.4.0, 59.5.0, 59.6.0) No matching distribution found for setuptools>=62.4.0 (from python-daemon)
With my image with pip3 == 21.3.1 from OBS (see https://build.opensuse.org/package/show/home:alvistack/pypa-pip-21.3.1), it could successfully select the legacy 2.3.2 version:
$ sudo podman run -ti --rm alvistack/ubuntu-18.04 bash root@42a128782bbf:~# apt update && apt -y full-upgrade && apt -y install python3-dev python3-pip root@42a128782bbf:~# pip3 --version pip 21.3.1 from /usr/lib/python3/dist-packages/pip (python 3.6) root@42a128782bbf:~# pip3 install python-daemon Collecting python-daemon Downloading python_daemon-3.0.1-py3-none-any.whl (31 kB) Collecting docutils Downloading docutils-0.18.1-py2.py3-none-any.whl (570 kB) |████████████████████████████████| 570 kB 22.0 MB/s Collecting python-daemon Downloading python_daemon-2.3.2-py3-none-any.whl (34 kB) Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from python-daemon) (59.6.0) Collecting lockfile>=0.10 Downloading lockfile-0.12.2-py2.py3-none-any.whl (13 kB) Installing collected packages: lockfile, docutils, python-daemon Successfully installed docutils-0.18.1 lockfile-0.12.2 python-daemon-2.3.2 root@42a128782bbf:~# pip3 show python-daemon Name: python-daemon Version: 2.3.2 Summary: Library to implement a well-behaved Unix daemon process. Home-page: https://pagure.io/python-daemon/ Author: Ben Finney Author-email: ben+python@benfinney.id.au License: Apache-2 Location: /usr/local/lib/python3.6/dist-packages Requires: docutils, lockfile, setuptools Required-by:
Therefore problem goes to if end-user have a new enough pip for understanding the yanked package from pypi.org, but at least here we had already do our best to provide correct information ;-)
In case for ubuntu:20.04:
$ sudo podman run -ti --rm ubuntu:20.04 root@9a6a83d1c3cf:/# apt update && apt -y full-upgrade && apt -y install python3-dev python3-pip root@9a6a83d1c3cf:/# pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8) root@9a6a83d1c3cf:/# pip3 install python-daemon Collecting python-daemon Downloading python_daemon-3.0.1-py3-none-any.whl (31 kB) Collecting setuptools>=62.4.0 Downloading setuptools-67.5.1-py3-none-any.whl (1.1 MB) |████████████████████████████████| 1.1 MB 20.9 MB/s Collecting docutils Downloading docutils-0.19-py3-none-any.whl (570 kB) |████████████████████████████████| 570 kB 83.9 MB/s Collecting lockfile>=0.10 Downloading lockfile-0.12.2-py2.py3-none-any.whl (13 kB) Installing collected packages: setuptools, docutils, lockfile, python-daemon Attempting uninstall: setuptools Found existing installation: setuptools 45.2.0 Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr Can't uninstall 'setuptools'. No files were found to uninstall. Successfully installed docutils-0.19 lockfile-0.12.2 python-daemon-3.0.1 setuptools-67.5.1 root@9a6a83d1c3cf:/# pip3 show python-daemon Name: python-daemon Version: 3.0.1 Summary: Library to implement a well-behaved Unix daemon process. Home-page: https://pagure.io/python-daemon/ Author: Ben Finney Author-email: ben+python@benfinney.id.au License: Apache-2 Location: /usr/local/lib/python3.8/dist-packages Requires: docutils, lockfile, setuptools Required-by:
P.S. My OBS packaging for python-daemon 3.0.1 working perfectly, see https://build.opensuse.org/package/show/home:alvistack/pagure.io-python-daemon-3.0.1