@@ -49,6 +49,7 @@ BuildRequires: mysql-connector-python
4949BuildRequires: maven => 3.0.0
5050BuildRequires: python-setuptools
5151BuildRequires: wget
52+ BuildRequires: nodejs
5253
5354%description
5455CloudStack is a highly-scalable elastic, open source,
@@ -137,6 +138,12 @@ Group: System Environment/Libraries
137138%description usage
138139The CloudStack usage calculation service
139140
141+ %package ui
142+ Summary: CloudStack UI
143+ Group: System Environment/Libraries
144+ %description ui
145+ The CloudStack UI
146+
140147%package cli
141148Summary: Apache CloudStack CLI
142149Provides: python-marvin
@@ -195,6 +202,7 @@ if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
195202fi
196203
197204mvn -Psystemvm,developer $FLAGS clean package
205+ cd ui && npm install && npm run build && cd ..
198206
199207%install
200208[ ${RPM_BUILD_ROOT} != " /" ] && rm -rf ${RPM_BUILD_ROOT}
@@ -255,6 +263,10 @@ cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-
255263
256264cp -r client/target/cloud-client-ui-%{_maventag }.jar ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/
257265cp -r client/target/classes/META-INF/webapp ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/webapp
266+ cp ui/dist/config.json ${RPM_BUILD_ROOT}%{_sysconfdir }/%{name }/management/
267+ cp -r ui/dist/* ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/webapp/
268+ rm -f ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/webapp/config.json
269+ ln -sf /etc/%{name }/management/config.json ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/webapp/config.json
258270mv ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/cloud-client-ui-%{_maventag }.jar ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/lib/cloudstack-%{_maventag }.jar
259271cp client/target/lib/*jar ${RPM_BUILD_ROOT}%{_datadir }/%{name }-management/lib/
260272
@@ -280,6 +292,14 @@ install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}
280292touch ${RPM_BUILD_ROOT}%{_localstatedir }/run/%{name }-management.pid
281293#install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
282294
295+ # UI
296+ mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir }/%{name }/ui
297+ mkdir -p ${RPM_BUILD_ROOT}%{_datadir }/%{name }-ui/
298+ cp ui/dist/config.json ${RPM_BUILD_ROOT}%{_sysconfdir }/%{name }/ui/
299+ cp -r ui/dist/* ${RPM_BUILD_ROOT}%{_datadir }/%{name }-ui/
300+ rm -f ${RPM_BUILD_ROOT}%{_datadir }/%{name }-ui/config.json
301+ ln -sf /etc/%{name }/ui/config.json ${RPM_BUILD_ROOT}%{_datadir }/%{name }-ui/config.json
302+
283303# Package mysql-connector-python
284304wget -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
285305wget -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
@@ -355,6 +375,8 @@ install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent
355375install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-agent-%{version }/LICENSE
356376install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-usage-%{version }/NOTICE
357377install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-usage-%{version }/LICENSE
378+ install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-ui-%{version }/NOTICE
379+ install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-ui-%{version }/LICENSE
358380install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-cli-%{version }/NOTICE
359381install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-cli-%{version }/LICENSE
360382install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir }/%{name }-marvin-%{version }/NOTICE
@@ -498,6 +520,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
498520%config(noreplace) %{_sysconfdir }/security/limits.d/cloud
499521%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir }/%{name }/management/db.properties
500522%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir }/%{name }/management/server.properties
523+ %config(noreplace) %attr(0640,root,cloud) %{_sysconfdir }/%{name }/management/config.json
501524%config(noreplace) %{_sysconfdir }/%{name }/management/log4j-cloud.xml
502525%config(noreplace) %{_sysconfdir }/%{name }/management/log4j.xml
503526%config(noreplace) %{_sysconfdir }/%{name }/management/environment.properties
@@ -560,6 +583,12 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
560583%{_defaultdocdir }/%{name }-common-%{version }/LICENSE
561584%{_defaultdocdir }/%{name }-common-%{version }/NOTICE
562585
586+ %files ui
587+ %config(noreplace) %attr(0640,root,cloud) %{_sysconfdir }/%{name }/ui/config.json
588+ %attr(0644,root,root) %{_datadir }/%{name }-ui/*
589+ %{_defaultdocdir }/%{name }-ui-%{version }/LICENSE
590+ %{_defaultdocdir }/%{name }-ui-%{version }/NOTICE
591+
563592%files usage
564593%attr(0644,root,root) %{_unitdir }/%{name }-usage.service
565594%config(noreplace) %{_sysconfdir }/default/%{name }-usage
0 commit comments