| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| %define __os_install_post %{nil} |
| %global debug_package %{nil} |
| |
| # DISABLE the post-percentinstall java repacking and line number stripping |
| # we need to find a way to just disable the java repacking and line number stripping, but not the autodeps |
| |
| Name: cloud |
| Summary: CloudStack IaaS Platform |
| #http://fedoraproject.org/wiki/PackageNamingGuidelines#Pre-Release_packages |
| %if "%{?_prerelease}" != "" |
| %define _maventag %{_ver}-SNAPSHOT |
| Release: %{_rel}%{dist} |
| %else |
| %define _maventag %{_ver} |
| Release: %{_rel}%{dist} |
| %endif |
| Version: %{_ver} |
| License: ASL 2.0 |
| Vendor: Apache CloudStack <cloudstack-dev@incubator.apache.org> |
| Packager: Apache CloudStack <cloudstack-dev@incubator.apache.org> |
| Group: System Environment/Libraries |
| # FIXME do groups for every single one of the subpackages |
| Source0: %{name}-%{_maventag}.tgz |
| BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build |
| |
| BuildRequires: java-1.6.0-openjdk-devel |
| BuildRequires: tomcat6 |
| BuildRequires: ws-commons-util |
| BuildRequires: jpackage-utils |
| BuildRequires: gcc |
| BuildRequires: glibc-devel |
| BuildRequires: /usr/bin/mkisofs |
| BuildRequires: MySQL-python |
| #BuildRequires: maven => 3.0.0 |
| |
| %description |
| CloudStack is a highly-scalable elastic, open source, |
| intelligent IaaS cloud implementation. |
| |
| %package management-server |
| Summary: CloudStack management server UI |
| Requires: tomcat6 |
| Requires: java >= 1.6.0 |
| Requires: python |
| Requires: bash |
| Requires: bzip2 |
| Requires: gzip |
| Requires: unzip |
| Requires: /sbin/mount.nfs |
| Requires: openssh-clients |
| Requires: nfs-utils |
| Requires: wget |
| Requires: mysql-connector-java |
| Requires: ws-commons-util |
| Requires: jpackage-utils |
| Requires: sudo |
| Requires: /sbin/service |
| Requires: /sbin/chkconfig |
| Requires: /usr/bin/ssh-keygen |
| Requires: mkisofs |
| Requires: MySQL-python |
| Requires: python-paramiko |
| Requires: ipmitool |
| Requires: %{name}-setup = %{_ver} |
| Group: System Environment/Libraries |
| %description management-server |
| The CloudStack management server is the central point of coordination, |
| management, and intelligence in CloudStack. |
| |
| %package setup |
| Summary: CloudStack database setup scripts |
| Requires: java >= 1.6.0 |
| Requires: python |
| Requires: MySQL-python |
| Requires: %{name}-python = %{_ver} |
| Group: System Environment/Libraries |
| %description setup |
| The scripts and commands used to setup and configure the database |
| |
| %package python |
| Summary: CloudStack Python library |
| # FIXME nuke the archdependency |
| Requires: python |
| Group: System Environment/Libraries |
| %description python |
| The CloudStack Python library contains a few Python modules that the |
| CloudStack uses. |
| |
| |
| %prep |
| echo Doing CloudStack build |
| |
| %setup -q -n %{name}-%{_maventag} |
| |
| %build |
| |
| # this fixes the /usr/com bug on centos5 |
| %define _localstatedir /var |
| %define _sharedstatedir /var/lib |
| cp packaging/centos63/replace.properties build/replace.properties |
| echo VERSION=%{_maventag} >> build/replace.properties |
| echo PACKAGE=%{name} >> build/replace.properties |
| mvn package -Dsystemvm |
| |
| %install |
| [ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT} |
| mkdir -p ${RPM_BUILD_ROOT}%{_bindir} |
| mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}/setup |
| mkdir -p ${RPM_BUILD_ROOT}/usr/share/%{name}/management/ |
| ln -sf /usr/share/tomcat6/bin ${RPM_BUILD_ROOT}/usr/share/%{name}/management/bin |
| ln -sf /etc/cloud/management ${RPM_BUILD_ROOT}/usr/share/%{name}/management/conf |
| ln -sf /usr/share/tomcat6/lib ${RPM_BUILD_ROOT}/usr/share/%{name}/management/lib |
| ln -sf /var/log/cloud/management ${RPM_BUILD_ROOT}/usr/share/%{name}/management/logs |
| ln -sf /var/cache/cloud/management/temp ${RPM_BUILD_ROOT}/usr/share/%{name}/management/temp |
| ln -sf /var/cache/cloud/management/work ${RPM_BUILD_ROOT}/usr/share/%{name}/management/work |
| mkdir -p ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client |
| mkdir -p ${RPM_BUILD_ROOT}/var/log/%{name}/management |
| mkdir -p ${RPM_BUILD_ROOT}/var/log/%{name}/agent |
| mkdir -p ${RPM_BUILD_ROOT}/var/log/%{name}/awsapi |
| mkdir -p ${RPM_BUILD_ROOT}/var/log/%{name}/ipallocator |
| mkdir -p ${RPM_BUILD_ROOT}/var/cache/%{name}/management/work |
| mkdir -p ${RPM_BUILD_ROOT}/var/cache/%{name}/management/temp |
| mkdir -p ${RPM_BUILD_ROOT}/var/lib/%{name}/mnt |
| mkdir -p ${RPM_BUILD_ROOT}/var/lib/%{name}/management |
| mkdir -p ${RPM_BUILD_ROOT}/etc/%{name}/management |
| mkdir -p ${RPM_BUILD_ROOT}/etc/%{name}/management/Catalina/localhost/client |
| mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/init.d |
| mkdir -p ${RPM_BUILD_ROOT}/etc/sysconfig |
| mkdir -p ${RPM_BUILD_ROOT}/etc/%{name}/management/Catalina/localhost/client |
| |
| install -D client/target/utilities/bin/* ${RPM_BUILD_ROOT}%{_bindir} |
| install -D console-proxy/dist/systemvm.iso ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client/WEB-INF/classes/vms/systemvm.iso |
| install -D console-proxy/dist/systemvm.zip ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client/WEB-INF/classes/vms/systemvm.zip |
| |
| cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}/setup |
| cp -r client/target/cloud-client-ui-4.1.0-SNAPSHOT/* ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client |
| |
| for name in db.properties log4j-cloud.xml tomcat6-nonssl.conf tomcat6-ssl.conf server-ssl.xml server-nonssl.xml \ |
| catalina.policy catalina.properties db-enc.properties classpath.conf tomcat-users.xml web.xml ; do |
| mv ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client/WEB-INF/classes/$name \ |
| ${RPM_BUILD_ROOT}/etc/%{name}/management/$name |
| done |
| mv ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client/WEB-INF/classes/context.xml \ |
| ${RPM_BUILD_ROOT}/etc/%{name}/management/Catalina/localhost/client |
| |
| mkdir -p ${RPM_BUILD_ROOT}/usr/lib/python2.6/site-packages/ |
| cp -r python/lib/cloudutils ${RPM_BUILD_ROOT}/usr/lib/python2.6/site-packages/ |
| cp -r cloud-cli/cloudtool ${RPM_BUILD_ROOT}/usr/lib/python2.6/site-packages/ |
| install python/lib/cloud_utils.py ${RPM_BUILD_ROOT}/usr/lib/python2.6/site-packages/cloud_utils.py |
| install cloud-cli/cloudapis/cloud.py ${RPM_BUILD_ROOT}/usr/lib/python2.6/site-packages/cloudapis.py |
| install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/ |
| install -D client/target/pythonlibs/jasypt-1.9.0.jar ${RPM_BUILD_ROOT}%{_javadir}/jasypt-1.9.0.jar |
| install -D client/target/pythonlibs/jasypt-1.8.jar ${RPM_BUILD_ROOT}%{_javadir}/jasypt-1.8.jar |
| |
| install -D packaging/centos63/cloud-ipallocator.rc ${RPM_BUILD_ROOT}/etc/rc.d/init.d/%{name}-ipallocator |
| install -D packaging/centos63/cloud-management.rc ${RPM_BUILD_ROOT}/etc/rc.d/init.d/%{name}-management |
| install -D packaging/centos63/cloud-management.sysconfig ${RPM_BUILD_ROOT}/etc/sysconfig/%{name}-management |
| |
| chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina |
| chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost |
| chmod 770 ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client |
| chmod 770 ${RPM_BUILD_ROOT}%{_sharedstatedir}/%{name}/mnt |
| chmod 770 ${RPM_BUILD_ROOT}%{_sharedstatedir}/%{name}/management |
| chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work |
| chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp |
| chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management |
| chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent |
| chmod -R ugo+x ${RPM_BUILD_ROOT}/usr/share/%{name}/management/webapps/client/WEB-INF/classes/scripts |
| %clean |
| |
| [ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT} |
| |
| |
| %preun management-server |
| /sbin/service %{name}-management stop || true |
| if [ "$1" == "0" ] ; then |
| /sbin/chkconfig --del %{name}-management > /dev/null 2>&1 || true |
| /sbin/service %{name}-management stop > /dev/null 2>&1 || true |
| fi |
| |
| %pre management-server |
| id %{name} > /dev/null 2>&1 || /usr/sbin/useradd -M -c "CloudStack unprivileged user" \ |
| -r -s /bin/sh -d %{_sharedstatedir}/%{name}/management %{name}|| true |
| |
| # set max file descriptors for cloud user to 4096 |
| sed -i /"cloud hard nofile"/d /etc/security/limits.conf |
| sed -i /"cloud soft nofile"/d /etc/security/limits.conf |
| echo "cloud hard nofile 4096" >> /etc/security/limits.conf |
| echo "cloud soft nofile 4096" >> /etc/security/limits.conf |
| rm -rf %{_localstatedir}/cache/%{name} |
| # user harcoded here, also hardcoded on wscript |
| |
| %post management-server |
| if [ "$1" == "1" ] ; then |
| /sbin/chkconfig --add %{name}-management > /dev/null 2>&1 || true |
| /sbin/chkconfig --level 345 %{name}-management on > /dev/null 2>&1 || true |
| fi |
| |
| if [ ! -f %{_datadir}/%{name}/management/webapps/client/WEB-INF/classes/scripts/scripts/vm/hypervisor/xenserver/vhd-util ] ; then |
| echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in |
| echo %{_datadir}/%{name}/management/webapps/client/WEB-INF/classes/scripts/vm/hypervisor/xenserver/ |
| fi |
| |
| #No default permission as the permission setup is complex |
| %files management-server |
| %defattr(-,root,root,-) |
| %doc LICENSE |
| %doc NOTICE |
| %dir %attr(0770,root,%{name}) %{_sysconfdir}/%{name}/management/Catalina |
| %dir %attr(0770,root,%{name}) %{_sysconfdir}/%{name}/management/Catalina/localhost |
| %dir %attr(0770,root,%{name}) %{_sysconfdir}/%{name}/management/Catalina/localhost/client |
| %dir %{_datadir}/%{name}/management |
| %dir %attr(0770,root,%{name}) %{_sharedstatedir}/%{name}/mnt |
| %dir %attr(0770,%{name},%{name}) %{_sharedstatedir}/%{name}/management |
| %dir %attr(0770,root,%{name}) %{_localstatedir}/cache/%{name}/management |
| %dir %attr(0770,root,%{name}) %{_localstatedir}/cache/%{name}/management/work |
| %dir %attr(0770,root,%{name}) %{_localstatedir}/cache/%{name}/management/temp |
| %dir %attr(0770,root,%{name}) %{_localstatedir}/log/%{name}/management |
| %dir %attr(0770,root,%{name}) %{_localstatedir}/log/%{name}/agent |
| %config(noreplace) %{_sysconfdir}/sysconfig/%{name}-management |
| %config(noreplace) %{_sysconfdir}/%{name}/management |
| %config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/management/db.properties |
| %config(noreplace) %{_sysconfdir}/%{name}/management/log4j-%{name}.xml |
| %config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-nonssl.conf |
| %config(noreplace) %{_sysconfdir}/%{name}/management/tomcat6-ssl.conf |
| %attr(0755,root,root) %{_initrddir}/%{name}-management |
| %attr(0755,root,root) %{_bindir}/%{name}-setup-management |
| %attr(0755,root,root) %{_bindir}/%{name}-update-xenserver-licenses |
| %{_datadir}/%{name}/management/* |
| |
| %files setup |
| %attr(0755,root,root) %{_bindir}/%{name}-setup-databases |
| %attr(0755,root,root) %{_bindir}/%{name}-migrate-databases |
| %attr(0755,root,root) %{_bindir}/%{name}-set-guest-password |
| %attr(0755,root,root) %{_bindir}/%{name}-set-guest-sshkey |
| %attr(0755,root,root) %{_bindir}/%{name}-sysvmadm |
| %attr(0755,root,root) %{_bindir}/%{name}-setup-encryption |
| %dir %{_datadir}/%{name}/setup |
| %{_datadir}/%{name}/setup/*.sql |
| %{_datadir}/%{name}/setup/db/*.sql |
| %{_datadir}/%{name}/setup/*.sh |
| %{_datadir}/%{name}/setup/server-setup.xml |
| %{_javadir}/jasypt-1.9.0.jar |
| %{_javadir}/jasypt-1.8.jar |
| %doc LICENSE |
| %doc NOTICE |
| |
| %files python |
| %defattr(0644,root,root,0755) |
| %{_prefix}/lib*/python*/site-packages/%{name}* |
| %attr(0755,root,root) %{_bindir}/cloud-external-ipallocator.py |
| %attr(0755,root,root) %{_initrddir}/cloud-ipallocator |
| %dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator |
| %doc LICENSE |
| %doc NOTICE |
| |
| |
| %changelog |
| * Fri Oct 03 2012 Hugo Trippaers <hugo@apache.org> 4.1.0 |
| - new style spec file |
| |