Petr Lautrbach <lautrbach@xxxxxxxxxx> writes: > James Carter <jwcart2@xxxxxxxxx> writes: > >> On Wed, Nov 23, 2022 at 11:04 AM James Carter <jwcart2@xxxxxxxxx> wrote: >>> >>> On Tue, Nov 22, 2022 at 11:15 AM Petr Lautrbach <lautrbach@xxxxxxxxxx> wrote: >>> > >>> > Fixes: >>> > /usr/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. >>> > >>> > Signed-off-by: Petr Lautrbach <lautrbach@xxxxxxxxxx> >>> >>> Acked-by: James Carter <jwcart2@xxxxxxxxx> >>> >>> > --- >>> > README.md | 4 +++- >>> > libselinux/src/Makefile | 2 +- >>> > python/sepolicy/Makefile | 2 +- >>> > 3 files changed, 5 insertions(+), 3 deletions(-) >>> > >>> > diff --git a/README.md b/README.md >>> > index 529b7e46c871..e11b0028f4ba 100644 >>> > --- a/README.md >>> > +++ b/README.md >>> > @@ -62,6 +62,7 @@ dnf install \ >>> > # For Python and Ruby bindings >>> > dnf install \ >>> > python3-devel \ >>> > + python3-pip \ >> >> So I noticed that I get the following message when building: >> Processing /home/jim/work/selinux/python/sepolicy >> Preparing metadata (setup.py): started >> Preparing metadata (setup.py): finished with status 'done' >> Using legacy 'setup.py install' for sepolicy, since package 'wheel' >> is not installed. >> >> Installing python3-wheel gives the following instead: >> Building wheels for collected packages: sepolicy >> Building wheel for sepolicy (setup.py): started >> Building wheel for sepolicy (setup.py): finished with status 'done' >> >> It is not a strict dependency, but maybe we should add python3-wheel. >> Unless, of course, there is some reason we don't want to be creating >> these python wheels. >> > > > I don't see any reason why we wouldn't use it. Below is the diff. From > what I know, .dist-info is the new and better format for metadata. Also, > the Fedora packaging guidelines suggest using .dist-info. > > I'll send another patch with python3-wheel and python3-setuptools which > is necessary. > without python3-wheel vs with python3-wheel @@ -152,12 +152,14 @@ ./usr/lib64/python3.11 ./usr/lib64/python3.11/site-packages ./usr/lib64/python3.11/site-packages/selinux -./usr/lib64/python3.11/site-packages/selinux-3.4-py3.11.egg-info -./usr/lib64/python3.11/site-packages/selinux-3.4-py3.11.egg-info/dependency_links.txt -./usr/lib64/python3.11/site-packages/selinux-3.4-py3.11.egg-info/installed-files.txt -./usr/lib64/python3.11/site-packages/selinux-3.4-py3.11.egg-info/PKG-INFO -./usr/lib64/python3.11/site-packages/selinux-3.4-py3.11.egg-info/SOURCES.txt -./usr/lib64/python3.11/site-packages/selinux-3.4-py3.11.egg-info/top_level.txt +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/direct_url.json +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/INSTALLER +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/METADATA +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/RECORD +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/REQUESTED +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/top_level.txt +./usr/lib64/python3.11/site-packages/selinux-3.4.dist-info/WHEEL ./usr/lib64/python3.11/site-packages/selinux/audit2why.cpython-311-x86_64-linux-gnu.so ./usr/lib64/python3.11/site-packages/_selinux.cpython-311-x86_64-linux-gnu.so ./usr/lib64/python3.11/site-packages/selinux/__init__.py @@ -202,12 +204,14 @@ ./usr/lib/python3.11/site-packages/sepolgen/util.py ./usr/lib/python3.11/site-packages/sepolgen/yacc.py ./usr/lib/python3.11/site-packages/sepolicy -./usr/lib/python3.11/site-packages/sepolicy-3.4-py3.11.egg-info -./usr/lib/python3.11/site-packages/sepolicy-3.4-py3.11.egg-info/dependency_links.txt -./usr/lib/python3.11/site-packages/sepolicy-3.4-py3.11.egg-info/installed-files.txt -./usr/lib/python3.11/site-packages/sepolicy-3.4-py3.11.egg-info/PKG-INFO -./usr/lib/python3.11/site-packages/sepolicy-3.4-py3.11.egg-info/SOURCES.txt -./usr/lib/python3.11/site-packages/sepolicy-3.4-py3.11.egg-info/top_level.txt +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/direct_url.json +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/INSTALLER +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/METADATA +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/RECORD +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/REQUESTED +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/top_level.txt +./usr/lib/python3.11/site-packages/sepolicy-3.4.dist-info/WHEEL ./usr/lib/python3.11/site-packages/sepolicy/booleans.py ./usr/lib/python3.11/site-packages/sepolicy/communicate.py ./usr/lib/python3.11/site-packages/sepolicy/generate.py > > Thanks, > > Petr > > >> >>> > ruby-devel \ >>> > swig >>> > ``` >>> > @@ -92,6 +93,7 @@ apt-get install --no-install-recommends --no-install-suggests \ >>> > # For Python and Ruby bindings >>> > apt-get install --no-install-recommends --no-install-suggests \ >>> > python3-dev \ >>> > + python3-pip \ >>> > ruby-dev \ >>> > swig >>> > ``` >>> > @@ -102,7 +104,7 @@ To build and install everything under a private directory, run: >>> > >>> > make DESTDIR=~/obj install install-rubywrap install-pywrap >>> > >>> > -On Debian `PYTHON_SETUP_ARGS=--install-layout=deb` needs to be set when installing the python wrappers in order to create the correct python directory structure. >>> > +On Debian `PYTHON_SETUP_ARGS='--install-option "--install-layout=deb"'` needs to be set when installing the python wrappers in order to create the correct python directory structure. >>> > >>> > To run tests with the built libraries and programs, several paths (relative to `$DESTDIR`) need to be added to variables `$LD_LIBRARY_PATH`, `$PATH` and `$PYTHONPATH`. >>> > This can be done using [./scripts/env_use_destdir](./scripts/env_use_destdir): >>> > diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile >>> > index dc2848322e4d..0f6396ababa4 100644 >>> > --- a/libselinux/src/Makefile >>> > +++ b/libselinux/src/Makefile >>> > @@ -187,7 +187,7 @@ install: all >>> > ln -sf --relative $(DESTDIR)$(SHLIBDIR)/$(LIBSO) $(DESTDIR)$(LIBDIR)/$(TARGET) >>> > >>> > install-pywrap: pywrap >>> > - $(PYTHON) setup.py install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` $(PYTHON_SETUP_ARGS) >>> > + $(PYTHON) -m pip install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` $(PYTHON_SETUP_ARGS) . >>> > install -m 644 $(SWIGPYOUT) $(DESTDIR)$(PYTHONLIBDIR)/selinux/__init__.py >>> > ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux$(PYCEXT) $(DESTDIR)$(PYTHONLIBDIR)/_selinux$(PYCEXT) >>> > >>> > diff --git a/python/sepolicy/Makefile b/python/sepolicy/Makefile >>> > index d983e409e5e6..57a2e55edbbf 100644 >>> > --- a/python/sepolicy/Makefile >>> > +++ b/python/sepolicy/Makefile >>> > @@ -27,7 +27,7 @@ test: >>> > @$(PYTHON) test_sepolicy.py -v >>> > >>> > install: >>> > - $(PYTHON) setup.py install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` $(PYTHON_SETUP_ARGS) >>> > + $(PYTHON) -m pip install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` $(PYTHON_SETUP_ARGS) . >>> > [ -d $(DESTDIR)$(BINDIR) ] || mkdir -p $(DESTDIR)$(BINDIR) >>> > install -m 755 sepolicy.py $(DESTDIR)$(BINDIR)/sepolicy >>> > (cd $(DESTDIR)$(BINDIR); ln -sf sepolicy sepolgen) >>> > -- >>> > 2.38.1 >>> >