diff mbox series

[RFC] Use `pip install` instead of `setup.py install`

Message ID 20221122161106.55037-1-lautrbach@redhat.com (mailing list archive)
State Superseded
Headers show
Series [RFC] Use `pip install` instead of `setup.py install` | expand

Commit Message

Petr Lautrbach Nov. 22, 2022, 4:11 p.m. UTC
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@redhat.com>
---
 README.md                | 4 +++-
 libselinux/src/Makefile  | 2 +-
 python/sepolicy/Makefile | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

Comments

James Carter Nov. 23, 2022, 4:04 p.m. UTC | #1
On Tue, Nov 22, 2022 at 11:15 AM Petr Lautrbach <lautrbach@redhat.com> 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@redhat.com>

Acked-by: James Carter <jwcart2@gmail.com>

> ---
>  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 \
>      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
>
James Carter Nov. 28, 2022, 3:07 p.m. UTC | #2
On Wed, Nov 23, 2022 at 11:04 AM James Carter <jwcart2@gmail.com> wrote:
>
> On Tue, Nov 22, 2022 at 11:15 AM Petr Lautrbach <lautrbach@redhat.com> 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@redhat.com>
>
> Acked-by: James Carter <jwcart2@gmail.com>
>
> > ---
> >  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.

Thanks,
Jim

> >      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
> >
Petr Lautrbach Nov. 29, 2022, 4:11 p.m. UTC | #3
James Carter <jwcart2@gmail.com> writes:

> On Wed, Nov 23, 2022 at 11:04 AM James Carter <jwcart2@gmail.com> wrote:
>>
>> On Tue, Nov 22, 2022 at 11:15 AM Petr Lautrbach <lautrbach@redhat.com> 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@redhat.com>
>>
>> Acked-by: James Carter <jwcart2@gmail.com>
>>
>> > ---
>> >  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
>> >
Petr Lautrbach Nov. 29, 2022, 4:14 p.m. UTC | #4
Petr Lautrbach <lautrbach@redhat.com> writes:

> James Carter <jwcart2@gmail.com> writes:
>
>> On Wed, Nov 23, 2022 at 11:04 AM James Carter <jwcart2@gmail.com> wrote:
>>>
>>> On Tue, Nov 22, 2022 at 11:15 AM Petr Lautrbach <lautrbach@redhat.com> 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@redhat.com>
>>>
>>> Acked-by: James Carter <jwcart2@gmail.com>
>>>
>>> > ---
>>> >  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
>>> >
diff mbox series

Patch

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 \
     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)