From 0ef3c75185b323dfb1c0327e739b4f8587397e5a Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 15 Apr 2020 07:46:41 +0200 Subject: [PATCH] Simplify obtaining of PKGDIR So far, in all Makefiles we have a complicated way to construct PKGDIR path which is used to install python modules into. Firstly, python version is obtained, and then system prefix and these are then used to construct the PKGDIR path. Well, we can do better. We can use 'site.getsitepackages()[0]' to obtain exactly the path we are after. This also fixes the problem on distributions which have split /usr/lib and /usr/lib64 directories, because with the way we are constructing the PKGDIR path we assume that the directories are the same (or one is a symlink to another). Well, that is not always the case. Signed-off-by: Michal Privoznik --- cli/Makefile | 5 +---- cli/koji_cli/Makefile | 5 +---- hub/Makefile | 5 +---- koji.spec | 14 +++++++------- koji/Makefile | 5 +---- plugins/Makefile | 6 +----- www/lib/kojiweb/Makefile | 5 +---- 7 files changed, 13 insertions(+), 32 deletions(-) diff --git a/cli/Makefile b/cli/Makefile index d5cca841..ddaeba36 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -1,10 +1,7 @@ SUBDIRS=koji_cli PACKAGE = $(shell basename `pwd`) -PYVER := $(shell $(PYTHON) -c 'import sys; print("%.3s" %(sys.version))') -PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print(sys.prefix)') -PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) -PKGDIR = $(PYLIBDIR)/site-packages +PKGDIR = $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])")/$(PACKAGE) FILES = koji diff --git a/cli/koji_cli/Makefile b/cli/koji_cli/Makefile index c7c460a9..fd669298 100644 --- a/cli/koji_cli/Makefile +++ b/cli/koji_cli/Makefile @@ -1,10 +1,7 @@ PYFILES = $(wildcard *.py) PACKAGE = $(shell basename `pwd`) -PYVER := $(shell $(PYTHON) -c 'import sys; print("%.3s" % (sys.version))') -PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print(sys.prefix)') -PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) -PKGDIR = $(PYLIBDIR)/site-packages/$(PACKAGE) +PKGDIR = $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])")/$(PACKAGE) _default: @echo "nothing to make. try make install" diff --git a/hub/Makefile b/hub/Makefile index e8fe6517..6881f63b 100644 --- a/hub/Makefile +++ b/hub/Makefile @@ -1,9 +1,6 @@ PACKAGE = $(shell basename `pwd`) PYFILES = $(wildcard *.py) -PYVER := $(shell $(PYTHON) -c 'import sys; print("%.3s" %(sys.version))') -PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print(sys.prefix)') -PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) -PKGDIR = $(PYLIBDIR)/site-packages/$(PACKAGE) +PKGDIR = $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])")/$(PACKAGE) SERVERDIR = /usr/share/koji-hub PYFILES = $(wildcard *.py) diff --git a/koji.spec b/koji.spec index 2b21ef0b..a5f3d789 100644 --- a/koji.spec +++ b/koji.spec @@ -58,7 +58,7 @@ # not yet to RHEL proper. # https://bugzilla.redhat.com/show_bug.cgi?id=1307190 %{!?__python2: %global __python2 /usr/bin/python2} -%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %{!?py2_build: %global py2_build %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} build --executable="%{__python2} -s"}} %{!?py2_install: %global py2_install %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} install -O1 --skip-build --root %{buildroot}}} @@ -472,19 +472,19 @@ rm -rf $RPM_BUILD_ROOT %if 0%{py2_support} %files -n python2-%{name} -%{python2_sitelib}/%{name} -%{python2_sitelib}/koji_cli +%{python2_sitearch}/%{name} +%{python2_sitearch}/koji_cli %endif %if 0%{py3_support} %files -n python%{python3_pkgversion}-koji -%{python3_sitelib}/%{name} -%{python3_sitelib}/koji_cli +%{python3_sitearch}/%{name} +%{python3_sitearch}/koji_cli %endif %if 0%{py2_support} %files -n python2-%{name}-cli-plugins -%{python2_sitelib}/koji_cli_plugins +%{python2_sitearch}/koji_cli_plugins # we don't have config files for default plugins yet #%%dir %%{_sysconfdir}/koji/plugins #%%config(noreplace) %%{_sysconfdir}/koji/plugins/*.conf @@ -492,7 +492,7 @@ rm -rf $RPM_BUILD_ROOT %if 0%{py3_support} %files -n python%{python3_pkgversion}-%{name}-cli-plugins -%{python3_sitelib}/koji_cli_plugins +%{python3_sitearch}/koji_cli_plugins # we don't have config files for default plugins yet #%%dir %%{_sysconfdir}/koji/plugins #%%config(noreplace) %%{_sysconfdir}/koji/plugins/*.conf diff --git a/koji/Makefile b/koji/Makefile index df2991c7..2b6f3d46 100644 --- a/koji/Makefile +++ b/koji/Makefile @@ -2,10 +2,7 @@ PACKAGE = $(shell basename `pwd`) PYFILES = $(wildcard *.py) PYSCRIPTS = SUBDIRS = -PYVER := $(shell $(PYTHON) -c 'import sys; print("%.3s" % (sys.version))') -PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print(sys.prefix)') -PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) -PKGDIR = $(PYLIBDIR)/site-packages/$(PACKAGE) +PKGDIR = $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])")/$(PACKAGE) _default: @echo "nothing to make. try make install" diff --git a/plugins/Makefile b/plugins/Makefile index 690e5c36..10f71e21 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1,8 +1,4 @@ -PYMAJORVER := $(shell $(PYTHON) -c 'import sys; print(sys.version_info[0])') -PYVER := $(shell $(PYTHON) -c 'import sys; print("%.3s" %(sys.version))') -PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print(sys.prefix)') -PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) -PKGDIR = $(PYLIBDIR)/site-packages +PKGDIR = $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])")/$(PACKAGE) CLIPLUGINDIR = $(PKGDIR)/koji_cli_plugins HUBPLUGINDIR = /usr/lib/koji-hub-plugins diff --git a/www/lib/kojiweb/Makefile b/www/lib/kojiweb/Makefile index e23fb4db..8ea37595 100644 --- a/www/lib/kojiweb/Makefile +++ b/www/lib/kojiweb/Makefile @@ -1,9 +1,6 @@ PACKAGE = $(shell basename `pwd`) PYFILES = $(wildcard *.py) -PYVER := $(shell $(PYTHON) -c 'import sys; print("%.3s" % (sys.version))') -PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print(sys.prefix)') -PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) -PKGDIR = $(PYLIBDIR)/site-packages/$(PACKAGE) +PKGDIR = $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])")/$(PACKAGE) SERVERDIR = /kojiweb FILES = $(wildcard *.py *.chtml)