This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new ca7e1ac1abb packaging: allow universal EL pkging to support EL8, EL9, 
Suse15 (#6844)
ca7e1ac1abb is described below

commit ca7e1ac1abbe78513bfdd57b990d58e018f8d65d
Author: Rohit Yadav <rohit.ya...@shapeblue.com>
AuthorDate: Fri Dec 23 14:57:20 2022 +0530

    packaging: allow universal EL pkging to support EL8, EL9, Suse15 (#6844)
    
    This introduced general EL rpm build step that allows the same
    EL pkgs to be used on EL8, EL9 and Suse15.
    
    Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com>
---
 packaging/centos8/cloud.spec         | 64 ++++++++++++++----------------------
 packaging/centos8/replace.properties |  2 +-
 packaging/el9                        |  1 +
 3 files changed, 26 insertions(+), 41 deletions(-)

diff --git a/packaging/centos8/cloud.spec b/packaging/centos8/cloud.spec
index 076f9975071..daed84fd98d 100644
--- a/packaging/centos8/cloud.spec
+++ b/packaging/centos8/cloud.spec
@@ -25,10 +25,7 @@ Name:      cloudstack
 Summary:   CloudStack IaaS Platform
 #http://fedoraproject.org/wiki/PackageNamingGuidelines#Pre-Release_packages
 %define _maventag %{_fullver}
-Release:   %{_rel}%{dist}
-
-%define __python python3
-%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
+Release:   %{_rel}
 
 Version:   %{_ver}
 License:   ASL 2.0
@@ -45,7 +42,6 @@ BuildRequires: jpackage-utils
 BuildRequires: gcc
 BuildRequires: glibc-devel
 BuildRequires: /usr/bin/mkisofs
-BuildRequires: maven => 3.0.0
 BuildRequires: python3-setuptools
 BuildRequires: wget
 BuildRequires: nodejs
@@ -147,20 +143,11 @@ Group: System Environment/Libraries
 %description ui
 The CloudStack UI
 
-%package cli
-Summary: Apache CloudStack CLI
-Provides: python-marvin
-Group: System Environment/Libraries
-%description cli
-Apache CloudStack command line interface
-
 %package marvin
 Summary: Apache CloudStack Marvin library
 Requires: python3-pip
-Requires: python2-pip
 Requires: gcc
 Requires: python3-devel
-Requires: python2-devel
 Requires: libffi-devel
 Requires: openssl-devel
 Group: System Environment/Libraries
@@ -232,14 +219,14 @@ mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d
 # Common
 mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
 mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms
-mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch}/
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/python-site
 mkdir -p ${RPM_BUILD_ROOT}/usr/bin
 cp -r scripts/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
 install -D systemvm/dist/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms/
-install python/lib/cloud_utils.py 
${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
-cp -r python/lib/cloudutils ${RPM_BUILD_ROOT}%{python_sitearch}/
-python3 -m py_compile ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
-python3 -m compileall ${RPM_BUILD_ROOT}%{python_sitearch}/cloudutils
+install python/lib/cloud_utils.py 
${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/python-site/cloud_utils.py
+cp -r python/lib/cloudutils 
${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/python-site/
+python3 -m py_compile 
${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/python-site/cloud_utils.py
+python3 -m compileall 
${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/python-site/cloudutils
 cp build/gitrev.txt ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
 cp packaging/centos8/cloudstack-sccs ${RPM_BUILD_ROOT}/usr/bin
 
@@ -318,8 +305,8 @@ ln -sf /etc/%{name}/ui/config.json 
${RPM_BUILD_ROOT}%{_datadir}/%{name}-ui/confi
 # Package mysql-connector-python
 wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel 
https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
 wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel 
https://files.pythonhosted.org/packages/e9/93/4860cebd5ad3ff2664ad3c966490ccb46e3b88458b2095145bca11727ca4/setuptools-47.3.1-py3-none-any.whl
-wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel 
https://files.pythonhosted.org/packages/28/05/9867ef8eafd12265267bee138fa2c46ebf34a276ea4cbe184cba4c606e8b/protobuf-3.12.2-cp36-cp36m-manylinux1_x86_64.whl
-wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel 
https://files.pythonhosted.org/packages/d1/53/4cf90d2fe81b9cdb55dc180951bcec44ea8685665f1bdb1412501dc362dd/mysql_connector_python-8.0.20-cp36-cp36m-manylinux1_x86_64.whl
+wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel 
https://files.pythonhosted.org/packages/32/27/1141a8232723dcb10a595cc0ce4321dcbbd5215300bf4acfc142343205bf/protobuf-3.19.6-py2.py3-none-any.whl
+wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel 
https://files.pythonhosted.org/packages/08/1f/42d74bae9dd6dcfec67c9ed0f3fa482b1ae5ac5f117ca82ab589ecb3ca19/mysql_connector_python-8.0.31-py2.py3-none-any.whl
 
 chmod 440 ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
 chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
@@ -365,10 +352,6 @@ install -D packaging/systemd/cloudstack-usage.service 
${RPM_BUILD_ROOT}%{_unitdi
 install -D packaging/systemd/cloudstack-usage.default 
${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-usage
 mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
 
-# CLI
-cp -r cloud-cli/cloudtool ${RPM_BUILD_ROOT}%{python_sitearch}/
-install cloud-cli/cloudapis/cloud.py 
${RPM_BUILD_ROOT}%{python_sitearch}/cloudapis.py
-
 # Marvin
 mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin
 cp tools/marvin/dist/Marvin-*.tar.gz 
${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin/
@@ -394,8 +377,6 @@ install -D tools/whisker/NOTICE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage
 install -D tools/whisker/LICENSE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 install -D tools/whisker/NOTICE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-ui-%{version}/NOTICE
 install -D tools/whisker/LICENSE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-ui-%{version}/LICENSE
-install -D tools/whisker/NOTICE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
-install -D tools/whisker/LICENSE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
 install -D tools/whisker/NOTICE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
 install -D tools/whisker/LICENSE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
 install -D tools/whisker/NOTICE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
@@ -404,6 +385,13 @@ install -D tools/whisker/LICENSE 
${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-inte
 %clean
 [ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
 
+%pre common
+
+python_dir=$(python3 -c "from distutils.sysconfig import get_python_lib; 
print(get_python_lib(1))")
+mkdir -p %{_datadir}/%{name}-common
+rm -f %{_datadir}/%{name}-common/python-site || true
+ln -s $python_dir %{_datadir}/%{name}-common/python-site
+
 %preun management
 /usr/bin/systemctl stop cloudstack-management || true
 /usr/bin/systemctl disable cloudstack-management || true
@@ -433,7 +421,7 @@ fi
 
 %post management
 # Install mysql-connector-python
-pip3 install 
%{_datadir}/%{name}-management/setup/wheel/six-1.15.0-py2.py3-none-any.whl 
%{_datadir}/%{name}-management/setup/wheel/setuptools-47.3.1-py3-none-any.whl 
%{_datadir}/%{name}-management/setup/wheel/protobuf-3.12.2-cp36-cp36m-manylinux1_x86_64.whl
 
%{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.0.20-cp36-cp36m-manylinux1_x86_64.whl
+pip3 install 
%{_datadir}/%{name}-management/setup/wheel/six-1.15.0-py2.py3-none-any.whl 
%{_datadir}/%{name}-management/setup/wheel/setuptools-47.3.1-py3-none-any.whl 
%{_datadir}/%{name}-management/setup/wheel/protobuf-3.19.6-py2.py3-none-any.whl 
%{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.0.31-py2.py3-none-any.whl
 
 /usr/bin/systemctl enable cloudstack-management > /dev/null 2>&1 || true
 /usr/bin/systemctl enable --now rngd > /dev/null 2>&1 || true
@@ -558,7 +546,7 @@ if [ -f 
"/usr/share/cloudstack-common/scripts/installer/cloudstack-help-text" ];
 fi
 
 %post marvin
-pip install --upgrade 
https://files.pythonhosted.org/packages/ca/ea/1e2553b088bad2f9fa8120c2624f797b2d7450d3b61bb492d29c72e3d3c2/mysql_connector_python-8.0.20-cp27-cp27mu-manylinux1_x86_64.whl
+pip install --upgrade 
https://files.pythonhosted.org/packages/08/1f/42d74bae9dd6dcfec67c9ed0f3fa482b1ae5ac5f117ca82ab589ecb3ca19/mysql_connector_python-8.0.31-py2.py3-none-any.whl
 pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
 
 #No default permission as the permission setup is complex
@@ -626,16 +614,16 @@ pip install --upgrade 
/usr/share/cloudstack-marvin/Marvin-*.tar.gz
 %{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
 
 %files common
-%dir %attr(0755,root,root) %{python_sitearch}/cloudutils
+%dir %attr(0755,root,root) %{_datadir}/%{name}-common/python-site/cloudutils
 %dir %attr(0755,root,root) %{_datadir}/%{name}-common/vms
 %attr(0755,root,root) %{_datadir}/%{name}-common/scripts
 %attr(0755,root,root) /usr/bin/cloudstack-sccs
 %attr(0644, root, root) %{_datadir}/%{name}-common/vms/agent.zip
 %attr(0644, root, root) %{_datadir}/%{name}-common/vms/cloud-scripts.tgz
 %attr(0644, root, root) %{_datadir}/%{name}-common/vms/patch-sysvms.sh
-%attr(0644,root,root) %{python_sitearch}/cloud_utils.py
-%attr(0644,root,root) %{python_sitearch}/__pycache__/*
-%attr(0644,root,root) %{python_sitearch}/cloudutils/*
+%attr(0644,root,root) %{_datadir}/%{name}-common/python-site/cloud_utils.py
+%attr(0644,root,root) %{_datadir}/%{name}-common/python-site/__pycache__/*
+%attr(0644,root,root) %{_datadir}/%{name}-common/python-site/cloudutils/*
 %attr(0644, root, root) %{_datadir}/%{name}-common/lib/jasypt-1.9.3.jar
 %{_defaultdocdir}/%{name}-common-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-common-%{version}/NOTICE
@@ -657,13 +645,6 @@ pip install --upgrade 
/usr/share/cloudstack-marvin/Marvin-*.tar.gz
 %{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
 
-%files cli
-%attr(0644,root,root) %{python_sitearch}/cloudapis.py
-%attr(0644,root,root) %{python_sitearch}/cloudtool/__init__.py
-%attr(0644,root,root) %{python_sitearch}/cloudtool/utils.py
-%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
-%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
-
 %files marvin
 %attr(0644,root,root) %{_datadir}/%{name}-marvin/Marvin*.tar.gz
 %{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
@@ -684,6 +665,9 @@ pip install --upgrade 
/usr/share/cloudstack-marvin/Marvin-*.tar.gz
 %attr(0755,root,root) %{_bindir}/cloudstack-setup-baremetal
 
 %changelog
+* Thu Dec 22 2022 Rohit Yadav <ro...@apache.org> 4.18.0
+- Add support for EL9
+
 * Fri Oct 14 2022 Daan Hoogland <daan.hoogl...@gmail.com> 4.18.0
 - initialising sanity check pointer file
 
diff --git a/packaging/centos8/replace.properties 
b/packaging/centos8/replace.properties
index 8c3560dd462..8f1fb11f999 100644
--- a/packaging/centos8/replace.properties
+++ b/packaging/centos8/replace.properties
@@ -48,7 +48,7 @@ MSUSER=cloud
 PIDDIR=/var/run
 PLUGINJAVADIR=/usr/share/cloudstack-management/plugin
 PREMIUMJAVADIR=/usr/share/cloudstack-management/premium
-PYTHONDIR=/usr/lib/python3.6/site-packages/
+PYTHONDIR=/usr/share/cloudstack-common/python-site/
 SERVERSYSCONFDIR=/etc/sysconfig
 SETUPDATADIR=/usr/share/cloudstack-management/setup
 SYSCONFDIR=/etc/sysconfig
diff --git a/packaging/el9 b/packaging/el9
new file mode 120000
index 00000000000..575742e7ff2
--- /dev/null
+++ b/packaging/el9
@@ -0,0 +1 @@
+centos8
\ No newline at end of file

Reply via email to