python: Remove usage of PYTHON_VERSIONS
authorAlon Bar-Lev <alon.barlev@gmail.com>
Sat, 8 Apr 2017 13:34:30 +0000 (16:34 +0300)
committerJustus Winter <justus@g10code.com>
Mon, 10 Apr 2017 12:44:16 +0000 (14:44 +0200)
* configure.ac: Remove PYTHON_VERSIONS subst.
* lang/python/Makefile.am: Use basename of python as builddir prefix.
* lang/python/tests/run-tests.py: Likewise.

--

Two variables needs be at sync PYTHONS and PYTHON_VERSIONS, these may go
out of sync in some cases, for example in Gentoo where default python is
3.4 we get:

PYTHON='/usr/bin/python2'
PYTHONS='/usr/bin/python /usr/bin/python2'
PYTHON_VERSIONS='2.7 3.4'

We can use the basename of the python interpreter to achieve similar
effect without having to sync indexes between these two variables.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
configure.ac
lang/python/Makefile.am
lang/python/tests/run-tests.py

index 9974abb..becd156 100644 (file)
@@ -474,7 +474,6 @@ if test "$found_py" = "1" -o "$found_py2" = "1" -o "$found_py3" = "1"; then
        fi
 
        AC_SUBST(PYTHONS, $PYTHONS)
-       AC_SUBST(PYTHON_VERSIONS, $PYTHON_VERSIONS)
     fi
 fi
 
index 4ebd214..90075f7 100644 (file)
@@ -38,12 +38,11 @@ copystamp:
        touch $@
 
 all-local: copystamp
-       set -e ; set $(PYTHONS); for VERSION in $(PYTHON_VERSIONS); do \
-         PYTHON="$$1" ; shift ; \
+       set -e ; for PYTHON in $(PYTHONS); do \
          CFLAGS="$(CFLAGS)" \
          srcdir="$(srcdir)" \
          top_builddir="$(top_builddir)" \
-           $$PYTHON setup.py build --verbose --build-base=python$${VERSION}-gpg ; \
+           $$PYTHON setup.py build --verbose --build-base="$$(basename "$${PYTHON}")-gpg" ; \
        done
 
 python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp
@@ -76,26 +75,26 @@ CLEANFILES = copystamp \
 # permissions.
 clean-local:
        rm -rf -- build
-       for VERSION in $(PYTHON_VERSIONS); do \
-         find python$${VERSION}-gpg* -type d ! -perm -200 -exec chmod u+w {} ';' ; \
-         rm -rf -- python$${VERSION}-gpg* ; \
+       for PYTHON in $(PYTHONS); do \
+         find "$$(basename "$${PYTHON}")-gpg" -type d ! -perm -200 -exec chmod u+w {} ';' ; \
+         rm -rf -- "$$(basename "$${PYTHON}")-gpg" ; \
        done
 
 install-exec-local:
-       set -e ; set $(PYTHONS); for VERSION in $(PYTHON_VERSIONS); do \
-         PYTHON="$$1" ; shift ; \
+       set -e ; for PYTHON in $(PYTHONS); do \
          srcdir="$(srcdir)" \
          top_builddir="$(top_builddir)" \
          $$PYTHON setup.py \
          build \
-         --build-base=python$${VERSION}-gpg \
+         --build-base="$$(basename "$${PYTHON}")-gpg" \
          install \
          --prefix "$(DESTDIR)$(prefix)" \
          --verbose ; \
        done
 
 uninstall-local:
-       GV=$$(echo $(VERSION) | tr - _); for PV in $(PYTHON_VERSIONS); do \
-         rm -rf -- "$(DESTDIR)$(prefix)"/lib*/python$$PV/site-packages/gpg \
-"$(DESTDIR)$(prefix)"/lib*/python$$PV/site-packages/gpg-$$GV-py$$PV.egg-info ; \
+       GV=$$(echo $(VERSION) | tr - _); for PYTHON in $(PYTHONS); do \
+         PLATLIB="$(prefix)/$$("$${PYTHON}" -c 'import sysconfig, os; print(os.path.relpath(sysconfig.get_path("platlib"), sysconfig.get_config_var("prefix")))')" ; \
+         rm -rf -- "$(DESTDIR)$${PLATLIB}/gpg" \
+               "$(DESTDIR)$${PLATLIB}"/gpg-$$GV-py*.egg-info ; \
        done
index 9e2fb78..f236712 100644 (file)
@@ -70,8 +70,8 @@ for interpreter in args.interpreters:
         [interpreter, "-c", "import sys; print('{0}.{1}'.format(sys.version_info[0], sys.version_info[1]))"]).strip().decode()
 
     pattern = os.path.join(args.builddir, "..",
-                           "python{0}-gpg".format(version),
-                           "lib*"+version)
+                           "{0}-gpg".format(os.path.basename(interpreter)),
+                           "lib*")
     builddirs = glob.glob(pattern)
     if len(builddirs) == 0:
         sys.exit("Build directory matching {0!r} not found.".format(pattern))