diff mbox series

[3/5] python: Remove dependency on the Python module distutils

Message ID 20221028203852.526472-4-jwcart2@gmail.com (mailing list archive)
State Superseded
Headers show
Series Remove dependency on the Python module distutils | expand

Commit Message

James Carter Oct. 28, 2022, 8:38 p.m. UTC
The distutils package is deprecated and scheduled to be removed in
Python 3.12. Use the setuptools and sysconfig modules instead.

Signed-off-by: James Carter <jwcart2@gmail.com>
---
 python/semanage/Makefile              | 2 +-
 python/sepolgen/src/sepolgen/Makefile | 2 +-
 python/sepolicy/sepolicy/gui.py       | 2 +-
 python/sepolicy/setup.py              | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

Comments

Petr Lautrbach Nov. 1, 2022, 8:59 a.m. UTC | #1
James Carter <jwcart2@gmail.com> writes:

> The distutils package is deprecated and scheduled to be removed in
> Python 3.12. Use the setuptools and sysconfig modules instead.
>
> Signed-off-by: James Carter <jwcart2@gmail.com>
> ---
>  python/semanage/Makefile              | 2 +-
>  python/sepolgen/src/sepolgen/Makefile | 2 +-
>  python/sepolicy/sepolicy/gui.py       | 2 +-
>  python/sepolicy/setup.py              | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/python/semanage/Makefile b/python/semanage/Makefile
> index 024e9640..b1f1bd3a 100644
> --- a/python/semanage/Makefile
> +++ b/python/semanage/Makefile
> @@ -5,7 +5,7 @@ LINGUAS ?= ru
>  PREFIX ?= /usr
>  SBINDIR ?= $(PREFIX)/sbin
>  MANDIR = $(PREFIX)/share/man
> -PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(prefix='$(PREFIX)'))")
> +PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")

$ python3 -c "from distutils.sysconfig import *; print(get_python_lib(prefix='/usr'))"     
/usr/lib/python3.10/site-packages

vs

$ python3 -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '/usr', 'base': '/usr'}))"
/usr/lib64/python3.10/site-packages

Given that python/ is not platform specific this should use 'purelib' -
https://docs.python.org/3/library/sysconfig.html#installation-paths

$ python3 -c "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '/usr', 'base': '/usr'}))"
/usr/lib/python3.10/site-packages




>  PACKAGEDIR ?= $(PYTHONLIBDIR)
>  BASHCOMPLETIONDIR ?= $(PREFIX)/share/bash-completion/completions
>  
> diff --git a/python/sepolgen/src/sepolgen/Makefile b/python/sepolgen/src/sepolgen/Makefile
> index cac8def7..9578af23 100644
> --- a/python/sepolgen/src/sepolgen/Makefile
> +++ b/python/sepolgen/src/sepolgen/Makefile
> @@ -1,6 +1,6 @@
>  PREFIX ?= /usr
>  PYTHON ?= python3
> -PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(prefix='$(PREFIX)'))")
> +PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
>  PACKAGEDIR ?= /$(PYTHONLIBDIR)/sepolgen
>  
>  all:
> diff --git a/python/sepolicy/sepolicy/gui.py b/python/sepolicy/sepolicy/gui.py
> index 5bdbfeba..63f2371f 100644
> --- a/python/sepolicy/sepolicy/gui.py
> +++ b/python/sepolicy/sepolicy/gui.py
> @@ -77,7 +77,7 @@ def cmp(a, b):
>          return 1
>      return (a > b) - (a < b)
>  
> -import distutils.sysconfig
> +import sysconfig
>  ADVANCED_LABEL = (_("Advanced >>"), _("Advanced <<"))
>  ADVANCED_SEARCH_LABEL = (_("Advanced Search >>"), _("Advanced Search <<"))
>  OUTBOUND_PAGE = 0
> diff --git a/python/sepolicy/setup.py b/python/sepolicy/setup.py
> index b0f9650d..c8220664 100644
> --- a/python/sepolicy/setup.py
> +++ b/python/sepolicy/setup.py
> @@ -2,7 +2,7 @@
>  
>  # Author: Thomas Liu <tliu@redhat.com>
>  # Author: Dan Walsh <dwalsh@redhat.com>
> -from distutils.core import setup
> +from setuptools import setup
>  
>  setup(
>      name="sepolicy",
> -- 
> 2.37.3
James Carter Nov. 1, 2022, 12:08 p.m. UTC | #2
On Tue, Nov 1, 2022 at 5:00 AM Petr Lautrbach <plautrba@redhat.com> wrote:
>
> James Carter <jwcart2@gmail.com> writes:
>
> > The distutils package is deprecated and scheduled to be removed in
> > Python 3.12. Use the setuptools and sysconfig modules instead.
> >
> > Signed-off-by: James Carter <jwcart2@gmail.com>
> > ---
> >  python/semanage/Makefile              | 2 +-
> >  python/sepolgen/src/sepolgen/Makefile | 2 +-
> >  python/sepolicy/sepolicy/gui.py       | 2 +-
> >  python/sepolicy/setup.py              | 2 +-
> >  4 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/python/semanage/Makefile b/python/semanage/Makefile
> > index 024e9640..b1f1bd3a 100644
> > --- a/python/semanage/Makefile
> > +++ b/python/semanage/Makefile
> > @@ -5,7 +5,7 @@ LINGUAS ?= ru
> >  PREFIX ?= /usr
> >  SBINDIR ?= $(PREFIX)/sbin
> >  MANDIR = $(PREFIX)/share/man
> > -PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(prefix='$(PREFIX)'))")
> > +PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
>
> $ python3 -c "from distutils.sysconfig import *; print(get_python_lib(prefix='/usr'))"
> /usr/lib/python3.10/site-packages
>
> vs
>
> $ python3 -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '/usr', 'base': '/usr'}))"
> /usr/lib64/python3.10/site-packages
>
> Given that python/ is not platform specific this should use 'purelib' -
> https://docs.python.org/3/library/sysconfig.html#installation-paths
>
> $ python3 -c "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '/usr', 'base': '/usr'}))"
> /usr/lib/python3.10/site-packages
>
>

Thanks. That was one of the things I was not sure about. I will change that.
Jim

>
>
> >  PACKAGEDIR ?= $(PYTHONLIBDIR)
> >  BASHCOMPLETIONDIR ?= $(PREFIX)/share/bash-completion/completions
> >
> > diff --git a/python/sepolgen/src/sepolgen/Makefile b/python/sepolgen/src/sepolgen/Makefile
> > index cac8def7..9578af23 100644
> > --- a/python/sepolgen/src/sepolgen/Makefile
> > +++ b/python/sepolgen/src/sepolgen/Makefile
> > @@ -1,6 +1,6 @@
> >  PREFIX ?= /usr
> >  PYTHON ?= python3
> > -PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(prefix='$(PREFIX)'))")
> > +PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
> >  PACKAGEDIR ?= /$(PYTHONLIBDIR)/sepolgen
> >
> >  all:
> > diff --git a/python/sepolicy/sepolicy/gui.py b/python/sepolicy/sepolicy/gui.py
> > index 5bdbfeba..63f2371f 100644
> > --- a/python/sepolicy/sepolicy/gui.py
> > +++ b/python/sepolicy/sepolicy/gui.py
> > @@ -77,7 +77,7 @@ def cmp(a, b):
> >          return 1
> >      return (a > b) - (a < b)
> >
> > -import distutils.sysconfig
> > +import sysconfig
> >  ADVANCED_LABEL = (_("Advanced >>"), _("Advanced <<"))
> >  ADVANCED_SEARCH_LABEL = (_("Advanced Search >>"), _("Advanced Search <<"))
> >  OUTBOUND_PAGE = 0
> > diff --git a/python/sepolicy/setup.py b/python/sepolicy/setup.py
> > index b0f9650d..c8220664 100644
> > --- a/python/sepolicy/setup.py
> > +++ b/python/sepolicy/setup.py
> > @@ -2,7 +2,7 @@
> >
> >  # Author: Thomas Liu <tliu@redhat.com>
> >  # Author: Dan Walsh <dwalsh@redhat.com>
> > -from distutils.core import setup
> > +from setuptools import setup
> >
> >  setup(
> >      name="sepolicy",
> > --
> > 2.37.3
>
diff mbox series

Patch

diff --git a/python/semanage/Makefile b/python/semanage/Makefile
index 024e9640..b1f1bd3a 100644
--- a/python/semanage/Makefile
+++ b/python/semanage/Makefile
@@ -5,7 +5,7 @@  LINGUAS ?= ru
 PREFIX ?= /usr
 SBINDIR ?= $(PREFIX)/sbin
 MANDIR = $(PREFIX)/share/man
-PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(prefix='$(PREFIX)'))")
+PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
 PACKAGEDIR ?= $(PYTHONLIBDIR)
 BASHCOMPLETIONDIR ?= $(PREFIX)/share/bash-completion/completions
 
diff --git a/python/sepolgen/src/sepolgen/Makefile b/python/sepolgen/src/sepolgen/Makefile
index cac8def7..9578af23 100644
--- a/python/sepolgen/src/sepolgen/Makefile
+++ b/python/sepolgen/src/sepolgen/Makefile
@@ -1,6 +1,6 @@ 
 PREFIX ?= /usr
 PYTHON ?= python3
-PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(prefix='$(PREFIX)'))")
+PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
 PACKAGEDIR ?= /$(PYTHONLIBDIR)/sepolgen
 
 all:
diff --git a/python/sepolicy/sepolicy/gui.py b/python/sepolicy/sepolicy/gui.py
index 5bdbfeba..63f2371f 100644
--- a/python/sepolicy/sepolicy/gui.py
+++ b/python/sepolicy/sepolicy/gui.py
@@ -77,7 +77,7 @@  def cmp(a, b):
         return 1
     return (a > b) - (a < b)
 
-import distutils.sysconfig
+import sysconfig
 ADVANCED_LABEL = (_("Advanced >>"), _("Advanced <<"))
 ADVANCED_SEARCH_LABEL = (_("Advanced Search >>"), _("Advanced Search <<"))
 OUTBOUND_PAGE = 0
diff --git a/python/sepolicy/setup.py b/python/sepolicy/setup.py
index b0f9650d..c8220664 100644
--- a/python/sepolicy/setup.py
+++ b/python/sepolicy/setup.py
@@ -2,7 +2,7 @@ 
 
 # Author: Thomas Liu <tliu@redhat.com>
 # Author: Dan Walsh <dwalsh@redhat.com>
-from distutils.core import setup
+from setuptools import setup
 
 setup(
     name="sepolicy",