Closed kingspride closed 6 months ago
The python3 version that comes with RHEL-7 is 3.6.8. If the minimum python version is somewhat arbitrary I would suggest allowing that one, since there are EPICS sites still using RHEL-7. They're unlikely to need the latest version of procServ, but for someone just trying it out it's annoying to have to go back and get an older version.
I will have to test with RHEL 7 or at least with an old debian with python 3.6 then but only because it still has maintenance support until mid 2024....
Thanks for trying that!
Controls are often pretty conservative and forced to use versions between stable and ancient. (We're not using procServ, but RHEL 7 currently is running the major part of our systems and will be around for a while.)
Ok, as it turns out, RHEL 7.9 with python 3.6.8 has a maximum version of setuptools 59.6.0. but, for it to be able to read the pyproject.toml, at least setuptools 61.0.0 is required: https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
I think I can circumvent that with a setup.cfg file along the toml, and provide metadata there. I hope this works...
... now also works under RHEL 7.9, taken you have python36 installed. setuptools lower than 61 will now use the setup.cfg while all above will use the pyproject.toml.
I've also increased the version number from 2.9.0 to 2.9.1, to make clear there is a significant change (no python 2.7 anymore) even though it only affects the Utils.
Hi Ralph, will this change get pulled in eventually? I start to setup debian 12 machines which come with python 3.11 and are affected by this aswell ... I'd like to not switch to my forked repo and miss out on potential other improvements on procServ ;)
You mean I should do a round of integrate and merge? Sounds reasonable. Number of people have ... expressed interest in a new procServ release.
would be cool :)
Hm... On my Debian 11.9 box (Python 3.9.2, setuptools 52.0.0), when I run
./configure --disable-doc --with-systemd-utils
make
I get
[...]
g++ -Wall -g -o procServ procServ.o connectionItem.o acceptFactory.o clientFactory.o processFactory.o libtelnet.o -lutil
(cd .; /usr/bin/python3 setup.py build \
--build-base /home/ralph/work/procServ/procServ/build)
/usr/bin/python3: can't open file '/home/ralph/work/procServ/procServ/setup.py': [Errno 2] No such file or directory
make: *** [Makefile:906: all-local] Error 2
Is that expected? What is the way out?
My bad.
autoreconf -fi
was missing.
Thank you!
I'm reverting the version update to 2.9.1, though.
There was never a release 2.9.0 (which is a minor level, i.e., adequate). No need to add steps while developing. (Unless we're going to 3.x)
this makes the python procServUtils compatible with newer Versions of python (>= 3.10) and pip, where calling setup.py directly to build the package, is deprecated. instead, one should use the python build module and a pyproject.toml configuration file. Here, one could choose a build backend, where I stayed with the "ol' reliable" setuptools.
This is required for OS'es like Ubuntu 22.04 which have python 3.10 installed out of the box. (see issue #57 )
I have corrected this and transferred the old setup.py into a pyproject.toml. Unfortunately, this comes with a caveat: It wont be compatible anymore with python < 3.3, since the build module also requires the venv module (introduced in 3.3)
I've set minimum python version to 3.7, since that version got its last update ever this june. Not too old, not too new...
so, in summary, procServUtils now requires: