All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Remove dependency on the Python module distutils
@ 2022-10-28 20:38 James Carter
  2022-10-28 20:38 ` [PATCH 1/5] libselinux: " James Carter
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: James Carter @ 2022-10-28 20:38 UTC (permalink / raw)
  To: selinux; +Cc: James Carter

The distutils package is deprecated and scheduled to be removed in
Python 3.12.

When building the SELinux userspace we currently get warnings like the following:
<string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
<string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives

I am not a Python expert, but everything seems to work with these patches.
I would appreciate other people testing this and any Python experts to let
me know if this is the right way of replacing distutils.

James Carter (5):
  libselinux: Remove dependency on the Python module distutils
  libsemanage: Remove dependency on the Python module distutils
  python: Remove dependency on the Python module distutils
  scripts: Remove dependency on the Python module distutils
  README.md: Remove mention of python3-distutils dependency

 README.md                             | 1 -
 libselinux/src/Makefile               | 2 +-
 libselinux/src/setup.py               | 2 +-
 libsemanage/src/Makefile              | 2 +-
 python/semanage/Makefile              | 2 +-
 python/sepolgen/src/sepolgen/Makefile | 2 +-
 python/sepolicy/sepolicy/gui.py       | 2 +-
 python/sepolicy/setup.py              | 2 +-
 scripts/env_use_destdir               | 2 +-
 scripts/run-scan-build                | 2 +-
 10 files changed, 9 insertions(+), 10 deletions(-)

-- 
2.37.3


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/5] libselinux: Remove dependency on the Python module distutils
  2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
@ 2022-10-28 20:38 ` James Carter
  2022-10-28 20:38 ` [PATCH 2/5] libsemanage: " James Carter
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: James Carter @ 2022-10-28 20:38 UTC (permalink / raw)
  To: selinux; +Cc: James Carter

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>
---
 libselinux/src/Makefile | 2 +-
 libselinux/src/setup.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
index 49b7d60a..dc284832 100644
--- a/libselinux/src/Makefile
+++ b/libselinux/src/Makefile
@@ -14,7 +14,7 @@ SHLIBDIR ?= /lib
 INCLUDEDIR ?= $(PREFIX)/include
 PYINC ?= $(shell $(PKG_CONFIG) --cflags $(PYPREFIX))
 PYLIBS ?= $(shell $(PKG_CONFIG) --libs $(PYPREFIX))
-PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(plat_specific=1, prefix='$(PREFIX)'))")
+PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
 PYCEXT ?= $(shell $(PYTHON) -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])')
 RUBYINC ?= $(shell $(RUBY) -e 'puts "-I" + RbConfig::CONFIG["rubyarchhdrdir"] + " -I" + RbConfig::CONFIG["rubyhdrdir"]')
 RUBYLIBS ?= $(shell $(RUBY) -e 'puts "-L" + RbConfig::CONFIG["libdir"] + " -L" + RbConfig::CONFIG["archlibdir"] + " " + RbConfig::CONFIG["LIBRUBYARG_SHARED"]')
diff --git a/libselinux/src/setup.py b/libselinux/src/setup.py
index 71e69a10..6cbe3a0e 100644
--- a/libselinux/src/setup.py
+++ b/libselinux/src/setup.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python3
 
-from distutils.core import Extension, setup
+from setuptools import Extension, setup
 
 setup(
     name="selinux",
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/5] libsemanage: Remove dependency on the Python module distutils
  2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
  2022-10-28 20:38 ` [PATCH 1/5] libselinux: " James Carter
@ 2022-10-28 20:38 ` James Carter
  2022-10-28 20:38 ` [PATCH 3/5] python: " James Carter
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: James Carter @ 2022-10-28 20:38 UTC (permalink / raw)
  To: selinux; +Cc: James Carter

The distutils package is deprecated and scheduled to be removed in
Python 3.12. Use the sysconfig module instead.

Signed-off-by: James Carter <jwcart2@gmail.com>
---
 libsemanage/src/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libsemanage/src/Makefile b/libsemanage/src/Makefile
index 01df0181..589e4a70 100644
--- a/libsemanage/src/Makefile
+++ b/libsemanage/src/Makefile
@@ -14,7 +14,7 @@ INCLUDEDIR ?= $(PREFIX)/include
 SYSCONFDIR ?= /etc
 PYINC ?= $(shell $(PKG_CONFIG) --cflags $(PYPREFIX))
 PYLIBS ?= $(shell $(PKG_CONFIG) --libs $(PYPREFIX))
-PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(plat_specific=1, prefix='$(PREFIX)'))")
+PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))")
 PYCEXT ?= $(shell $(PYTHON) -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])')
 RUBYINC ?= $(shell $(RUBY) -e 'puts "-I" + RbConfig::CONFIG["rubyarchhdrdir"] + " -I" + RbConfig::CONFIG["rubyhdrdir"]')
 RUBYLIBS ?= $(shell $(RUBY) -e 'puts "-L" + RbConfig::CONFIG["libdir"] + " -L" + RbConfig::CONFIG["archlibdir"] + " " + RbConfig::CONFIG["LIBRUBYARG_SHARED"]')
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/5] python: Remove dependency on the Python module distutils
  2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
  2022-10-28 20:38 ` [PATCH 1/5] libselinux: " James Carter
  2022-10-28 20:38 ` [PATCH 2/5] libsemanage: " James Carter
@ 2022-10-28 20:38 ` James Carter
  2022-11-01  8:59   ` Petr Lautrbach
  2022-10-28 20:38 ` [PATCH 4/5] scripts: " James Carter
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: James Carter @ 2022-10-28 20:38 UTC (permalink / raw)
  To: selinux; +Cc: James Carter

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)'}))")
 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


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/5] scripts: Remove dependency on the Python module distutils
  2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
                   ` (2 preceding siblings ...)
  2022-10-28 20:38 ` [PATCH 3/5] python: " James Carter
@ 2022-10-28 20:38 ` James Carter
  2022-10-28 20:38 ` [PATCH 5/5] README.md: Remove mention of python3-distutils dependency James Carter
  2022-10-31 12:49 ` [PATCH 0/5] Remove dependency on the Python module distutils Petr Lautrbach
  5 siblings, 0 replies; 9+ messages in thread
From: James Carter @ 2022-10-28 20:38 UTC (permalink / raw)
  To: selinux; +Cc: James Carter

The distutils package is deprecated and scheduled to be removed in
Python 3.12. Use the sysconfig module instead.

Signed-off-by: James Carter <jwcart2@gmail.com>
---
 scripts/env_use_destdir | 2 +-
 scripts/run-scan-build  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/env_use_destdir b/scripts/env_use_destdir
index 8274013e..89d989a2 100755
--- a/scripts/env_use_destdir
+++ b/scripts/env_use_destdir
@@ -43,7 +43,7 @@ if [ -n "${SBINDIR:-}" ] ; then
     PATH="$DESTDIR$SBINDIR:$PATH"
 fi
 
-NEW_PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "from distutils.sysconfig import *;print(get_python_lib(plat_specific=1, prefix='/usr'))"):$DESTDIR$(${PYTHON:-python3} -c "from distutils.sysconfig import *;print(get_python_lib(prefix='/usr'))")"
+NEW_PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '/usr', 'base': '/usr'}))"):$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '/usr', 'base': '/usr'}))")"
 if [ -n "${PYTHONPATH:-}" ] ; then
     # Prefix the PYTHONPATH with the new directories
     export PYTHONPATH="$NEW_PYTHONPATH:$PYTHONPATH"
diff --git a/scripts/run-scan-build b/scripts/run-scan-build
index 77e02ca9..931ffd2a 100755
--- a/scripts/run-scan-build
+++ b/scripts/run-scan-build
@@ -21,7 +21,7 @@ fi
 # Make sure to use the newly-installed libraries when running tests
 export LD_LIBRARY_PATH="$DESTDIR/usr/lib:$DESTDIR/lib"
 export PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH"
-export PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "from distutils.sysconfig import *;print(get_python_lib(prefix='/usr'))")"
+export PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '/usr', 'base': '/usr'}))")"
 export RUBYLIB="$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorlibdir"]'):$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorarchdir"]')"
 
 if [ -f /etc/debian_version ] && [ -z "${IS_CIRCLE_CI:-}" ] ; then
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 5/5] README.md: Remove mention of python3-distutils dependency
  2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
                   ` (3 preceding siblings ...)
  2022-10-28 20:38 ` [PATCH 4/5] scripts: " James Carter
@ 2022-10-28 20:38 ` James Carter
  2022-10-31 12:49 ` [PATCH 0/5] Remove dependency on the Python module distutils Petr Lautrbach
  5 siblings, 0 replies; 9+ messages in thread
From: James Carter @ 2022-10-28 20:38 UTC (permalink / raw)
  To: selinux; +Cc: James Carter

With the removal of any dependence on the python disutils module,
Debian no longer depends on the python3-disutils package.

Signed-off-by: James Carter <jwcart2@gmail.com>
---
 README.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/README.md b/README.md
index 74b0a0c3..f91cb7d9 100644
--- a/README.md
+++ b/README.md
@@ -81,7 +81,6 @@ apt-get install --no-install-recommends --no-install-suggests \
     libpcre2-dev \
     pkgconf \
     python3 \
-    python3-distutils \
     systemd \
     xmlto
 
-- 
2.37.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] Remove dependency on the Python module distutils
  2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
                   ` (4 preceding siblings ...)
  2022-10-28 20:38 ` [PATCH 5/5] README.md: Remove mention of python3-distutils dependency James Carter
@ 2022-10-31 12:49 ` Petr Lautrbach
  5 siblings, 0 replies; 9+ messages in thread
From: Petr Lautrbach @ 2022-10-31 12:49 UTC (permalink / raw)
  To: James Carter, selinux

James Carter <jwcart2@gmail.com> writes:

> The distutils package is deprecated and scheduled to be removed in
> Python 3.12.
>
> When building the SELinux userspace we currently get warnings like the following:
> <string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
> <string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
>
> I am not a Python expert, but everything seems to work with these patches.
> I would appreciate other people testing this and any Python experts to let
> me know if this is the right way of replacing distutils.
>
> James Carter (5):
>   libselinux: Remove dependency on the Python module distutils
>   libsemanage: Remove dependency on the Python module distutils
>   python: Remove dependency on the Python module distutils
>   scripts: Remove dependency on the Python module distutils
>   README.md: Remove mention of python3-distutils dependency


Acked-by: Petr Lautrbach <lautrbach@redhat.com>

Thanks!



>  README.md                             | 1 -
>  libselinux/src/Makefile               | 2 +-
>  libselinux/src/setup.py               | 2 +-
>  libsemanage/src/Makefile              | 2 +-
>  python/semanage/Makefile              | 2 +-
>  python/sepolgen/src/sepolgen/Makefile | 2 +-
>  python/sepolicy/sepolicy/gui.py       | 2 +-
>  python/sepolicy/setup.py              | 2 +-
>  scripts/env_use_destdir               | 2 +-
>  scripts/run-scan-build                | 2 +-
>  10 files changed, 9 insertions(+), 10 deletions(-)
>
> -- 
> 2.37.3


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/5] python: Remove dependency on the Python module distutils
  2022-10-28 20:38 ` [PATCH 3/5] python: " James Carter
@ 2022-11-01  8:59   ` Petr Lautrbach
  2022-11-01 12:08     ` James Carter
  0 siblings, 1 reply; 9+ messages in thread
From: Petr Lautrbach @ 2022-11-01  8:59 UTC (permalink / raw)
  To: James Carter, selinux; +Cc: James Carter

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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/5] python: Remove dependency on the Python module distutils
  2022-11-01  8:59   ` Petr Lautrbach
@ 2022-11-01 12:08     ` James Carter
  0 siblings, 0 replies; 9+ messages in thread
From: James Carter @ 2022-11-01 12:08 UTC (permalink / raw)
  To: Petr Lautrbach; +Cc: selinux

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
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-11-01 12:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-28 20:38 [PATCH 0/5] Remove dependency on the Python module distutils James Carter
2022-10-28 20:38 ` [PATCH 1/5] libselinux: " James Carter
2022-10-28 20:38 ` [PATCH 2/5] libsemanage: " James Carter
2022-10-28 20:38 ` [PATCH 3/5] python: " James Carter
2022-11-01  8:59   ` Petr Lautrbach
2022-11-01 12:08     ` James Carter
2022-10-28 20:38 ` [PATCH 4/5] scripts: " James Carter
2022-10-28 20:38 ` [PATCH 5/5] README.md: Remove mention of python3-distutils dependency James Carter
2022-10-31 12:49 ` [PATCH 0/5] Remove dependency on the Python module distutils Petr Lautrbach

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.