2
1

0001-replace-deprecated-distutils-with-setuptools.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. From 21e5a721ab2abe26bb12b9da7accc39d4fff9804 Mon Sep 17 00:00:00 2001
  2. From: Georgia Garcia <georgia.garcia@canonical.com>
  3. Date: Wed, 10 Nov 2021 19:50:35 +0000
  4. Subject: [PATCH] replace deprecated distutils with setuptools
  5. Adds python3 setuptools as a build dependency for libapparmor
  6. Fixes: https://gitlab.com/apparmor/apparmor/-/issues/202
  7. MR: https://gitlab.com/apparmor/apparmor/-/merge_requests/813
  8. Signed-off-by: Georgia Garcia <georgia.garcia@canonical.com>
  9. Acked-by: Christian Boltz <apparmor@cboltz.de>
  10. [Retrieved (and updated to remove changes on .gitlab-ci.yml and
  11. README.md) from:
  12. https://gitlab.com/apparmor/apparmor/-/commit/21e5a721ab2abe26bb12b9da7accc39d4fff9804]
  13. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  14. ---
  15. .gitignore | 3 ++
  16. .gitlab-ci.yml | 2 +-
  17. libraries/libapparmor/m4/ac_python_devel.m4 | 36 +++++++++----------
  18. libraries/libapparmor/swig/python/Makefile.am | 2 +-
  19. libraries/libapparmor/swig/python/setup.py.in | 2 +-
  20. .../libapparmor/swig/python/test/Makefile.am | 2 +-
  21. profiles/Makefile | 2 +-
  22. utils/Makefile | 1 +
  23. utils/python-tools-setup.py | 6 ++--
  24. utils/test/Makefile | 2 +-
  25. utils/test/README.md | 2 +-
  26. 11 files changed, 32 insertions(+), 28 deletions(-)
  27. diff --git a/.gitignore b/.gitignore
  28. index 78a06fdf9..4782a351a 100644
  29. --- a/.gitignore
  30. +++ b/.gitignore
  31. @@ -160,6 +160,7 @@ libraries/libapparmor/swig/perl/libapparmor_wrap.c
  32. libraries/libapparmor/swig/perl/libapparmor_wrap.o
  33. libraries/libapparmor/swig/perl/pm_to_blib
  34. libraries/libapparmor/swig/python/LibAppArmor.py
  35. +libraries/libapparmor/swig/python/LibAppArmor.egg-info/
  36. libraries/libapparmor/swig/python/build/
  37. libraries/libapparmor/swig/python/libapparmor_wrap.c
  38. libraries/libapparmor/swig/python/Makefile
  39. @@ -204,6 +205,8 @@ utils/*.tmp
  40. utils/po/*.mo
  41. utils/apparmor/*.pyc
  42. utils/apparmor/rule/*.pyc
  43. +utils/apparmor.egg-info/
  44. +utils/build/
  45. utils/htmlcov/
  46. utils/test/common_test.pyc
  47. utils/test/.coverage
  48. diff --git a/libraries/libapparmor/m4/ac_python_devel.m4 b/libraries/libapparmor/m4/ac_python_devel.m4
  49. index 1da29d873..f21f70ce7 100644
  50. --- a/libraries/libapparmor/m4/ac_python_devel.m4
  51. +++ b/libraries/libapparmor/m4/ac_python_devel.m4
  52. @@ -66,17 +66,17 @@ variable to configure. See ``configure --help'' for reference.
  53. fi
  54. #
  55. - # Check if you have distutils, else fail
  56. + # Check if you have setuptools, else fail
  57. #
  58. - AC_MSG_CHECKING([for the distutils Python package])
  59. - ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
  60. - if test -z "$ac_distutils_result"; then
  61. + AC_MSG_CHECKING([for the setuptools Python package])
  62. + ac_setuptools_result=`$PYTHON -c "import setuptools" 2>&1`
  63. + if test -z "$ac_setuptools_result"; then
  64. AC_MSG_RESULT([yes])
  65. else
  66. AC_MSG_RESULT([no])
  67. - AC_MSG_ERROR([cannot import Python module "distutils".
  68. + AC_MSG_ERROR([cannot import Python module "setuptools".
  69. Please check your Python installation. The error was:
  70. -$ac_distutils_result])
  71. +$ac_setuptools_result])
  72. PYTHON_VERSION=""
  73. fi
  74. @@ -88,8 +88,8 @@ $ac_distutils_result])
  75. PYTHON_CPPFLAGS=`$PYTHON_CONFIG --includes`
  76. fi
  77. if test -z "$PYTHON_CPPFLAGS"; then
  78. - python_path=`$PYTHON -c "import sys; import distutils.sysconfig;\
  79. -sys.stdout.write('%s\n' % distutils.sysconfig.get_python_inc());"`
  80. + python_path=`$PYTHON -c "import sys; import sysconfig;\
  81. +sys.stdout.write('%s\n' % sysconfig.get_path('include'));"`
  82. if test -n "${python_path}"; then
  83. python_path="-I$python_path"
  84. fi
  85. @@ -108,8 +108,8 @@ sys.stdout.write('%s\n' % distutils.sysconfig.get_python_inc());"`
  86. if test -z "$PYTHON_LDFLAGS"; then
  87. # (makes two attempts to ensure we've got a version number
  88. # from the interpreter)
  89. - py_version=`$PYTHON -c "import sys; from distutils.sysconfig import *; \
  90. -sys.stdout.write('%s\n' % ''.join(get_config_vars('VERSION')))"`
  91. + py_version=`$PYTHON -c "import sys; import sysconfig; \
  92. +sys.stdout.write('%s\n' % ''.join(sysconfig.get_config_vars('VERSION')))"`
  93. if test "$py_version" == "[None]"; then
  94. if test -n "$PYTHON_VERSION"; then
  95. py_version=$PYTHON_VERSION
  96. @@ -119,8 +119,8 @@ sys.stdout.write("%s\n" % sys.version[[:3]])"`
  97. fi
  98. fi
  99. - PYTHON_LDFLAGS=`$PYTHON -c "import sys; from distutils.sysconfig import *; \
  100. -sys.stdout.write('-L' + get_python_lib(0,1) + ' -lpython\n')"`$py_version`$PYTHON -c \
  101. + PYTHON_LDFLAGS=`$PYTHON -c "import sys; import sysconfig; \
  102. +sys.stdout.write('-L' + sysconfig.get_path('stdlib') + ' -lpython\n')"`$py_version`$PYTHON -c \
  103. "import sys; sys.stdout.write('%s' % getattr(sys,'abiflags',''))"`
  104. fi
  105. AC_MSG_RESULT([$PYTHON_LDFLAGS])
  106. @@ -131,8 +131,8 @@ sys.stdout.write('-L' + get_python_lib(0,1) + ' -lpython\n')"`$py_version`$PYTHO
  107. #
  108. AC_MSG_CHECKING([for Python site-packages path])
  109. if test -z "$PYTHON_SITE_PKG"; then
  110. - PYTHON_SITE_PKG=`$PYTHON -c "import sys; import distutils.sysconfig; \
  111. -sys.stdout.write('%s\n' % distutils.sysconfig.get_python_lib(0,0));"`
  112. + PYTHON_SITE_PKG=`$PYTHON -c "import sys; import sysconfig; \
  113. +sys.stdout.write('%s\n' % sysconfig.get_path('purelib'));"`
  114. fi
  115. AC_MSG_RESULT([$PYTHON_SITE_PKG])
  116. AC_SUBST([PYTHON_SITE_PKG])
  117. @@ -146,8 +146,8 @@ sys.stdout.write('%s\n' % distutils.sysconfig.get_python_lib(0,0));"`
  118. PYTHON_EXTRA_LIBS=''
  119. fi
  120. if test -z "$PYTHON_EXTRA_LIBS"; then
  121. - PYTHON_EXTRA_LIBS=`$PYTHON -c "import sys; import distutils.sysconfig; \
  122. -conf = distutils.sysconfig.get_config_var; \
  123. + PYTHON_EXTRA_LIBS=`$PYTHON -c "import sys; import sysconfig; \
  124. +conf = sysconfig.get_config_var; \
  125. sys.stdout.write('%s %s %s\n' % (conf('BLDLIBRARY'), conf('LOCALMODLIBS'), conf('LIBS')))"`
  126. fi
  127. AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
  128. @@ -162,8 +162,8 @@ sys.stdout.write('%s %s %s\n' % (conf('BLDLIBRARY'), conf('LOCALMODLIBS'), conf(
  129. PYTHON_EXTRA_LDFLAGS=''
  130. fi
  131. if test -z "$PYTHON_EXTRA_LDFLAGS"; then
  132. - PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import sys; import distutils.sysconfig; \
  133. -conf = distutils.sysconfig.get_config_var; \
  134. + PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import sys; import sysconfig; \
  135. +conf = sysconfig.get_config_var; \
  136. sys.stdout.write('%s\n' % conf('LINKFORSHARED'))"`
  137. fi
  138. AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
  139. diff --git a/libraries/libapparmor/swig/python/Makefile.am b/libraries/libapparmor/swig/python/Makefile.am
  140. index 04edff003..bf05fe0fc 100644
  141. --- a/libraries/libapparmor/swig/python/Makefile.am
  142. +++ b/libraries/libapparmor/swig/python/Makefile.am
  143. @@ -21,7 +21,7 @@ install-exec-local:
  144. clean-local:
  145. if test -x "$(PYTHON)"; then $(PYTHON) setup.py clean; fi
  146. - rm -rf build
  147. + rm -rf build LibAppArmor.egg-info
  148. if test $(top_srcdir) != $(top_builddir) ; then rm -f libapparmor_wrap.c ; fi
  149. endif
  150. diff --git a/libraries/libapparmor/swig/python/setup.py.in b/libraries/libapparmor/swig/python/setup.py.in
  151. index 32abd46b2..b23e40746 100644
  152. --- a/libraries/libapparmor/swig/python/setup.py.in
  153. +++ b/libraries/libapparmor/swig/python/setup.py.in
  154. @@ -1,4 +1,4 @@
  155. -from distutils.core import setup, Extension
  156. +from setuptools import setup, Extension
  157. import string
  158. setup(name = 'LibAppArmor',
  159. diff --git a/libraries/libapparmor/swig/python/test/Makefile.am b/libraries/libapparmor/swig/python/test/Makefile.am
  160. index 7287819c9..9dccfdef6 100644
  161. --- a/libraries/libapparmor/swig/python/test/Makefile.am
  162. +++ b/libraries/libapparmor/swig/python/test/Makefile.am
  163. @@ -11,7 +11,7 @@ test_python.py: test_python.py.in $(top_builddir)/config.status
  164. CLEANFILES = test_python.py
  165. # bah, how brittle is this?
  166. -PYTHON_DIST_BUILD_PATH = '$(builddir)/../build/$$($(PYTHON) -c "import distutils.util; import platform; print(\"lib.%s-%s\" %(distutils.util.get_platform(), platform.python_version()[:3]))")'
  167. +PYTHON_DIST_BUILD_PATH = '$(builddir)/../build/$$($(PYTHON) -c "import sysconfig; print(\"lib.%s-%s\" %(sysconfig.get_platform(), sysconfig.get_python_version()))")'
  168. TESTS = test_python.py
  169. TESTS_ENVIRONMENT = \
  170. diff --git a/profiles/Makefile b/profiles/Makefile
  171. index c471e58e8..0b7f2655d 100644
  172. --- a/profiles/Makefile
  173. +++ b/profiles/Makefile
  174. @@ -41,7 +41,7 @@ ifdef USE_SYSTEM
  175. LOGPROF?=aa-logprof
  176. else
  177. # PYTHON_DIST_BUILD_PATH based on libapparmor/swig/python/test/Makefile.am
  178. - PYTHON_DIST_BUILD_PATH = ../libraries/libapparmor/swig/python/build/$$($(PYTHON) -c "import distutils.util; import platform; print(\"lib.%s-%s\" %(distutils.util.get_platform(), platform.python_version()[:3]))")
  179. + PYTHON_DIST_BUILD_PATH = ../libraries/libapparmor/swig/python/build/$$($(PYTHON) -c "import sysconfig; print(\"lib.%s-%s\" %(sysconfig.get_platform(), sysconfig.get_python_version()))")
  180. LIBAPPARMOR_PATH=../libraries/libapparmor/src/.libs/
  181. LD_LIBRARY_PATH=$(LIBAPPARMOR_PATH):$(PYTHON_DIST_BUILD_PATH)
  182. PYTHONPATH=../utils/:$(PYTHON_DIST_BUILD_PATH)
  183. diff --git a/utils/Makefile b/utils/Makefile
  184. index 1f08f259a..91a15107b 100644
  185. --- a/utils/Makefile
  186. +++ b/utils/Makefile
  187. @@ -72,6 +72,7 @@ clean: pod_clean
  188. rm -rf staging/ build/
  189. rm -f apparmor/*.pyc apparmor/rule/*.pyc
  190. rm -rf apparmor/__pycache__/ apparmor/rule/__pycache__/
  191. + rm -rf apparmor.egg-info/
  192. # ${CAPABILITIES} is defined in common/Make.rules
  193. .PHONY: check_severity_db
  194. diff --git a/utils/python-tools-setup.py b/utils/python-tools-setup.py
  195. index 30ce0cb05..2cbde8fc1 100644
  196. --- a/utils/python-tools-setup.py
  197. +++ b/utils/python-tools-setup.py
  198. @@ -20,14 +20,14 @@
  199. # Note: --version=... must be the last argument to this script
  200. #
  201. -from distutils.command.install import install as _install
  202. -from distutils.core import setup
  203. +from setuptools.command.install import install as _install
  204. +from setuptools import setup
  205. import os
  206. import shutil
  207. import sys
  208. class Install(_install, object):
  209. - '''Override distutils to install the files where we want them.'''
  210. + '''Override setuptools to install the files where we want them.'''
  211. def run(self):
  212. # Now byte-compile everything
  213. super(Install, self).run()
  214. diff --git a/utils/test/Makefile b/utils/test/Makefile
  215. index 90354aa50..9126bdd71 100644
  216. --- a/utils/test/Makefile
  217. +++ b/utils/test/Makefile
  218. @@ -32,7 +32,7 @@ ifdef USE_SYSTEM
  219. PARSER=
  220. else
  221. # PYTHON_DIST_BUILD_PATH based on libapparmor/swig/python/test/Makefile.am
  222. - PYTHON_DIST_BUILD_PATH = ../../libraries/libapparmor/swig/python/build/$$($(PYTHON) -c "import distutils.util; import platform; print(\"lib.%s-%s\" %(distutils.util.get_platform(), platform.python_version()[:3]))")
  223. + PYTHON_DIST_BUILD_PATH = ../../libraries/libapparmor/swig/python/build/$$($(PYTHON) -c "import sysconfig; print(\"lib.%s-%s\" %(sysconfig.get_platform(), sysconfig.get_python_version()))")
  224. LIBAPPARMOR_PATH=../../libraries/libapparmor/src/.libs/
  225. LD_LIBRARY_PATH=$(LIBAPPARMOR_PATH):$(PYTHON_DIST_BUILD_PATH)
  226. PYTHONPATH=..:$(PYTHON_DIST_BUILD_PATH)
  227. --
  228. GitLab