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. 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 >> >