From 0ef3c75185b323dfb1c0327e739b4f8587397e5a Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Sep 22 2020 11:45:48 +0000 Subject: 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 --- diff --git a/cli/Makefile b/cli/Makefile index d5cca84..ddaeba3 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 c7c460a..fd66929 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 e8fe651..6881f63 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 2b21ef0..a5f3d78 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 df2991c..2b6f3d4 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 690e5c3..10f71e2 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 e23fb4d..8ea3759 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)