mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	- Migrate to embedded Jetty server. - Improve ServerDaemon implementation. - Introduce a new server.properties file for easier configuration. - Have a single /etc/default/cloudstack-management to configure env. - Reduce shaded jar file, removing unnecessary dependencies. - Upgrade to Spring 5.x, upgrade several jar dependencies. - Does not shade and include mysql-connector, used from classpath instead. - Upgrade and use bountcastle as a separate un-shaded jar dependency. - Remove tomcat related configuration and files. - Have both embedded UI assets in uber jar and separate webapp directory. - Refactor systemd and init scripts, cleanup packaging. - Made cloudstack-setup-databases faster, using `urandom`. - Remove unmaintained distro packagings. - Moves creation and usage of server keystore in CA manager, this deprecates the need to create/store cloud.jks in conf folder and the db.cloud.keyStorePassphrase in db.properties file. This also remove the need of the --keystore-passphrase in the cloudstack-setup-encryption script. - GZip contents dynamically in embedded Jetty Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
		
			
				
	
	
		
			643 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
			
		
		
	
	
			643 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
# 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:      cloudstack
 | 
						|
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
 | 
						|
 | 
						|
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 | 
						|
 | 
						|
Version:   %{_ver}
 | 
						|
License:   ASL 2.0
 | 
						|
Vendor:    Apache CloudStack <dev@cloudstack.apache.org>
 | 
						|
Packager:  Apache CloudStack <dev@cloudstack.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.8.0-openjdk-devel
 | 
						|
BuildRequires: ws-commons-util
 | 
						|
BuildRequires: jpackage-utils
 | 
						|
BuildRequires: gcc
 | 
						|
BuildRequires: glibc-devel
 | 
						|
BuildRequires: /usr/bin/mkisofs
 | 
						|
BuildRequires: mysql-connector-python
 | 
						|
#BuildRequires: maven => 3.0.0
 | 
						|
 | 
						|
%description
 | 
						|
CloudStack is a highly-scalable elastic, open source,
 | 
						|
intelligent IaaS cloud implementation.
 | 
						|
 | 
						|
%package management
 | 
						|
Summary:   CloudStack management server UI
 | 
						|
Requires: java-1.8.0-openjdk
 | 
						|
Requires: jsvc
 | 
						|
Requires: jakarta-commons-daemon
 | 
						|
Requires: jakarta-commons-daemon-jsvc
 | 
						|
Requires: python
 | 
						|
Requires: bash
 | 
						|
Requires: bzip2
 | 
						|
Requires: gzip
 | 
						|
Requires: unzip
 | 
						|
Requires: /sbin/mount.nfs
 | 
						|
Requires: openssh-clients
 | 
						|
Requires: nfs-utils
 | 
						|
Requires: wget
 | 
						|
Requires: mysql
 | 
						|
Requires: mysql-connector-java
 | 
						|
Requires: sudo
 | 
						|
Requires: /sbin/service
 | 
						|
Requires: /sbin/chkconfig
 | 
						|
Requires: /usr/bin/ssh-keygen
 | 
						|
Requires: mkisofs
 | 
						|
Requires: mysql-connector-python
 | 
						|
Requires: python-paramiko
 | 
						|
Requires: ipmitool
 | 
						|
Requires: %{name}-common = %{_ver}
 | 
						|
Obsoletes: cloud-client < 4.1.0
 | 
						|
Obsoletes: cloud-client-ui < 4.1.0
 | 
						|
Obsoletes: cloud-server < 4.1.0
 | 
						|
Obsoletes: cloud-test < 4.1.0
 | 
						|
Provides:  cloud-client
 | 
						|
Group:     System Environment/Libraries
 | 
						|
%description management
 | 
						|
The CloudStack management server is the central point of coordination,
 | 
						|
management, and intelligence in CloudStack.  
 | 
						|
 | 
						|
%package common
 | 
						|
Summary: Apache CloudStack common files and scripts
 | 
						|
Requires: python
 | 
						|
Requires: python-argparse
 | 
						|
Requires: python-netaddr
 | 
						|
Obsoletes: cloud-test < 4.1.0 
 | 
						|
Obsoletes: cloud-scripts < 4.1.0
 | 
						|
Obsoletes: cloud-utils < 4.1.0
 | 
						|
Obsoletes: cloud-core < 4.1.0
 | 
						|
Obsoletes: cloud-deps < 4.1.0
 | 
						|
Obsoletes: cloud-python < 4.1.0
 | 
						|
Obsoletes: cloud-setup < 4.1.0
 | 
						|
Obsoletes: cloud-cli < 4.1.0
 | 
						|
Obsoletes: cloud-daemonize < 4.1.0
 | 
						|
Group:   System Environment/Libraries
 | 
						|
%description common
 | 
						|
The Apache CloudStack files shared between agent and management server
 | 
						|
 | 
						|
%package agent
 | 
						|
Summary: CloudStack Agent for KVM hypervisors
 | 
						|
Requires: openssh-clients
 | 
						|
Requires: java-1.8.0-openjdk
 | 
						|
Requires: %{name}-common = %{_ver}
 | 
						|
Requires: libvirt
 | 
						|
Requires: bridge-utils
 | 
						|
Requires: ebtables
 | 
						|
Requires: iptables
 | 
						|
Requires: ethtool
 | 
						|
Requires: vconfig
 | 
						|
Requires: ipset
 | 
						|
Requires: jsvc
 | 
						|
Requires: jakarta-commons-daemon
 | 
						|
Requires: jakarta-commons-daemon-jsvc
 | 
						|
Requires: net-tools
 | 
						|
Requires: perl
 | 
						|
Requires: libvirt-python
 | 
						|
Requires: qemu-img
 | 
						|
Requires: qemu-kvm
 | 
						|
Provides: cloud-agent
 | 
						|
Obsoletes: cloud-agent < 4.1.0
 | 
						|
Obsoletes: cloud-agent-libs < 4.1.0
 | 
						|
Obsoletes: cloud-test < 4.1.0
 | 
						|
Group: System Environment/Libraries
 | 
						|
%description agent
 | 
						|
The CloudStack agent for KVM hypervisors
 | 
						|
 | 
						|
%package baremetal-agent
 | 
						|
Summary: CloudStack baremetal agent
 | 
						|
Requires: tftp-server
 | 
						|
Requires: xinetd
 | 
						|
Requires: syslinux
 | 
						|
Requires: chkconfig
 | 
						|
Requires: dhcp
 | 
						|
Requires: httpd
 | 
						|
Group:     System Environment/Libraries
 | 
						|
%description baremetal-agent
 | 
						|
The CloudStack baremetal agent
 | 
						|
 | 
						|
%package usage
 | 
						|
Summary: CloudStack Usage calculation server
 | 
						|
Requires: java-1.8.0-openjdk
 | 
						|
Requires: jsvc
 | 
						|
Requires: jakarta-commons-daemon
 | 
						|
Requires: jakarta-commons-daemon-jsvc
 | 
						|
Group: System Environment/Libraries
 | 
						|
Obsoletes: cloud-usage < 4.1.0
 | 
						|
Provides: cloud-usage 
 | 
						|
%description usage
 | 
						|
The CloudStack usage calculation service
 | 
						|
 | 
						|
%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: python-pip
 | 
						|
Requires: gcc
 | 
						|
Requires: python-devel
 | 
						|
Requires: libffi-devel
 | 
						|
Requires: openssl-devel
 | 
						|
Group: System Environment/Libraries
 | 
						|
%description marvin
 | 
						|
Apache CloudStack Marvin library
 | 
						|
 | 
						|
%package integration-tests
 | 
						|
Summary: Apache CloudStack Marvin integration tests
 | 
						|
Requires: %{name}-marvin = %{_ver}
 | 
						|
Group: System Environment/Libraries
 | 
						|
%description integration-tests
 | 
						|
Apache CloudStack Marvin integration tests
 | 
						|
 | 
						|
%if "%{_ossnoss}" == "noredist"
 | 
						|
%package mysql-ha
 | 
						|
Summary: Apache CloudStack Balancing Strategy for MySQL
 | 
						|
Requires: mysql-connector-java
 | 
						|
Group: System Environmnet/Libraries
 | 
						|
%description mysql-ha
 | 
						|
Apache CloudStack Balancing Strategy for MySQL
 | 
						|
 | 
						|
%endif
 | 
						|
 | 
						|
%prep
 | 
						|
echo Doing CloudStack build
 | 
						|
 | 
						|
%setup -q -n %{name}-%{_maventag}
 | 
						|
 | 
						|
%build
 | 
						|
 | 
						|
cp packaging/centos63/replace.properties build/replace.properties
 | 
						|
echo VERSION=%{_maventag} >> build/replace.properties
 | 
						|
echo PACKAGE=%{name} >> build/replace.properties
 | 
						|
touch build/gitrev.txt
 | 
						|
echo $(git rev-parse HEAD) > build/gitrev.txt
 | 
						|
 | 
						|
if [ "%{_ossnoss}" == "NOREDIST" -o "%{_ossnoss}" == "noredist" ] ; then
 | 
						|
   echo "Executing mvn packaging with non-redistributable libraries"
 | 
						|
   if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then 
 | 
						|
      echo "Executing mvn noredist packaging with simulator ..."
 | 
						|
      mvn -Psystemvm,developer -Dnoredist -Dsimulator clean package
 | 
						|
   else
 | 
						|
      echo "Executing mvn noredist packaging without simulator..."
 | 
						|
      mvn -Psystemvm,developer -Dnoredist clean package
 | 
						|
   fi
 | 
						|
else
 | 
						|
   if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then 
 | 
						|
      echo "Executing mvn default packaging simulator ..."
 | 
						|
      mvn -Psystemvm,developer -Dsimulator clean package
 | 
						|
   else
 | 
						|
      echo "Executing mvn default packaging without simulator ..."
 | 
						|
      mvn -Psystemvm,developer clean package
 | 
						|
   fi
 | 
						|
fi 
 | 
						|
 | 
						|
%install
 | 
						|
[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
 | 
						|
# Common directories
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/ipallocator
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/work
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/default
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
 | 
						|
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}%/usr/bin
 | 
						|
cp -r scripts/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
 | 
						|
install -D systemvm/dist/systemvm.iso ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/vms/systemvm.iso
 | 
						|
install python/lib/cloud_utils.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
 | 
						|
cp -r python/lib/cloudutils ${RPM_BUILD_ROOT}%{python_sitearch}/
 | 
						|
python -m py_compile ${RPM_BUILD_ROOT}%{python_sitearch}/cloud_utils.py
 | 
						|
python -m compileall ${RPM_BUILD_ROOT}%{python_sitearch}/cloudutils
 | 
						|
cp build/gitrev.txt ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
 | 
						|
cp packaging/centos63/cloudstack-sccs ${RPM_BUILD_ROOT}/usr/bin
 | 
						|
 
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts/network/cisco
 | 
						|
cp -r plugins/network-elements/cisco-vnmc/scripts/network/cisco/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts/network/cisco
 | 
						|
 | 
						|
# Management
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management
 | 
						|
 | 
						|
ln -sf /etc/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/conf
 | 
						|
ln -sf /var/log/%{name}/management ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/logs
 | 
						|
 | 
						|
install -D client/target/utilities/bin/cloud-migrate-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-migrate-databases
 | 
						|
install -D client/target/utilities/bin/cloud-set-guest-password ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-password
 | 
						|
install -D client/target/utilities/bin/cloud-set-guest-sshkey ${RPM_BUILD_ROOT}%{_bindir}/%{name}-set-guest-sshkey
 | 
						|
install -D client/target/utilities/bin/cloud-setup-databases ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-databases
 | 
						|
install -D client/target/utilities/bin/cloud-setup-encryption ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-encryption
 | 
						|
install -D client/target/utilities/bin/cloud-setup-management ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-management
 | 
						|
install -D client/target/utilities/bin/cloud-setup-baremetal ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-baremetal
 | 
						|
install -D client/target/utilities/bin/cloud-sysvmadm ${RPM_BUILD_ROOT}%{_bindir}/%{name}-sysvmadm
 | 
						|
install -D client/target/utilities/bin/cloud-update-xenserver-licenses ${RPM_BUILD_ROOT}%{_bindir}/%{name}-update-xenserver-licenses
 | 
						|
 | 
						|
cp -r client/target/utilities/scripts/db/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup
 | 
						|
cp -r client/target/classes/META-INF/webapp ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapp
 | 
						|
cp client/target/cloud-client-ui-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib/cloudstack-%{_maventag}.jar
 | 
						|
cp client/target/lib/*jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/lib/
 | 
						|
 | 
						|
# Don't package the scripts in the management webapp
 | 
						|
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts
 | 
						|
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms
 | 
						|
 | 
						|
for name in db.properties server.properties log4j-cloud.xml commons-logging.properties environment.properties java.security.ciphers
 | 
						|
do
 | 
						|
  cp client/target/conf/$name ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
 | 
						|
done
 | 
						|
 | 
						|
ln -s log4j-cloud.xml  ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/log4j.xml
 | 
						|
 | 
						|
install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/%{name}-external-ipallocator.py
 | 
						|
install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
 | 
						|
 | 
						|
install -D packaging/centos63/cloud-ipallocator.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-ipallocator
 | 
						|
install -D packaging/centos63/cloud-management.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-management
 | 
						|
install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
 | 
						|
install -D packaging/systemd/cloudstack-management.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-management
 | 
						|
#install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
 | 
						|
 | 
						|
chmod 440 ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
 | 
						|
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
 | 
						|
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
 | 
						|
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/management
 | 
						|
chmod 770 ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 | 
						|
 | 
						|
# KVM Agent
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/plugins
 | 
						|
install -D packaging/centos63/cloud-agent.rc ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d/%{name}-agent
 | 
						|
install -D agent/target/transformed/agent.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/agent.properties
 | 
						|
install -D agent/target/transformed/environment.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/environment.properties
 | 
						|
install -D agent/target/transformed/log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/log4j-cloud.xml
 | 
						|
install -D agent/target/transformed/cloud-setup-agent ${RPM_BUILD_ROOT}%{_bindir}/%{name}-setup-agent
 | 
						|
install -D agent/target/transformed/cloudstack-agent-upgrade ${RPM_BUILD_ROOT}%{_bindir}/%{name}-agent-upgrade
 | 
						|
install -D agent/target/transformed/libvirtqemuhook ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook
 | 
						|
install -D agent/target/transformed/cloud-ssh ${RPM_BUILD_ROOT}%{_bindir}/%{name}-ssh
 | 
						|
install -D agent/target/transformed/cloudstack-agent-profile.sh ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/%{name}-agent-profile.sh
 | 
						|
install -D agent/target/transformed/cloudstack-agent.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-agent
 | 
						|
install -D plugins/hypervisors/kvm/target/cloud-plugin-hypervisor-kvm-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%name-agent/lib/cloud-plugin-hypervisor-kvm-%{_maventag}.jar
 | 
						|
cp plugins/hypervisors/kvm/target/dependencies/*  ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
 | 
						|
 | 
						|
# Usage server
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib
 | 
						|
install -D usage/target/cloud-usage-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/cloud-usage-%{_maventag}.jar
 | 
						|
install -D usage/target/transformed/db.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/db.properties
 | 
						|
install -D usage/target/transformed/log4j-cloud_usage.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/log4j-cloud.xml
 | 
						|
cp usage/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib/
 | 
						|
install -D packaging/centos63/cloud-usage.rc ${RPM_BUILD_ROOT}/%{_sysconfdir}/init.d/%{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/
 | 
						|
 | 
						|
# integration-tests
 | 
						|
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests
 | 
						|
cp -r test/integration/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests/
 | 
						|
 | 
						|
# MYSQL HA
 | 
						|
if [ "x%{_ossnoss}" == "xnoredist" ] ; then
 | 
						|
  mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
 | 
						|
  cp -r plugins/database/mysql-ha/target/cloud-plugin-database-mysqlha-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
 | 
						|
fi
 | 
						|
 | 
						|
#License files from whisker
 | 
						|
install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
 | 
						|
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
 | 
						|
install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-common-%{version}/NOTICE
 | 
						|
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-common-%{version}/LICENSE
 | 
						|
install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
 | 
						|
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-agent-%{version}/LICENSE
 | 
						|
install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
 | 
						|
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{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
 | 
						|
install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
 | 
						|
if [ "x%{_ossnoss}" == "xnoredist" ] ; then
 | 
						|
  install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
 | 
						|
  install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
 | 
						|
fi
 | 
						|
 | 
						|
%clean
 | 
						|
[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
 | 
						|
 | 
						|
%preun management
 | 
						|
/sbin/service cloudstack-management stop || true
 | 
						|
if [ "$1" == "0" ] ; then
 | 
						|
    /sbin/chkconfig --del cloudstack-management  > /dev/null 2>&1 || true
 | 
						|
    /sbin/service cloudstack-management stop > /dev/null 2>&1 || true
 | 
						|
fi
 | 
						|
 | 
						|
%pre management
 | 
						|
id cloud > /dev/null 2>&1 || /usr/sbin/useradd -M -c "CloudStack unprivileged user" \
 | 
						|
     -r -s /bin/sh -d %{_localstatedir}/cloudstack/management cloud|| 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/cloud
 | 
						|
rm -rf %{_localstatedir}/cache/cloudstack
 | 
						|
# user harcoded here, also hardcoded on wscript
 | 
						|
 | 
						|
# save old configs if they exist (for upgrade). Otherwise we may lose them
 | 
						|
# when the old packages are erased. There are a lot of properties files here.
 | 
						|
if [ -d "%{_sysconfdir}/cloud" ] ; then
 | 
						|
    mv %{_sysconfdir}/cloud %{_sysconfdir}/cloud.rpmsave
 | 
						|
fi
 | 
						|
 | 
						|
# in case of upgrade to 4.9+ copy commands.properties if not exists in /etc/cloudstack/management/
 | 
						|
if [ "$1" == "2" ] ; then
 | 
						|
    if [ -f "%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/commands.properties" ] && [ ! -f "%{_sysconfdir}/%{name}/management/commands.properties" ] ; then
 | 
						|
        cp -p %{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/commands.properties %{_sysconfdir}/%{name}/management/commands.properties
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
# Remove old tomcat symlinks and env config file
 | 
						|
if [ -L "%{_datadir}/%{name}-management/lib" ]
 | 
						|
then
 | 
						|
    rm -f %{_datadir}/%{name}-management/bin
 | 
						|
    rm -f %{_datadir}/%{name}-management/lib
 | 
						|
    rm -f %{_datadir}/%{name}-management/temp
 | 
						|
    rm -f %{_datadir}/%{name}-management/work
 | 
						|
    rm -f %{_sysconfdir}/default/%{name}-management
 | 
						|
fi
 | 
						|
 | 
						|
%post management
 | 
						|
/sbin/chkconfig --add cloudstack-management > /dev/null 2>&1 || true
 | 
						|
/sbin/chkconfig --level 345 cloudstack-management on > /dev/null 2>&1 || true
 | 
						|
 | 
						|
grep -s -q "db.cloud.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.cloud.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
 | 
						|
grep -s -q "db.usage.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.usage.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
 | 
						|
grep -s -q "db.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
 | 
						|
 | 
						|
if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
 | 
						|
    echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
 | 
						|
    echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
 | 
						|
fi
 | 
						|
 | 
						|
# change cloud user's home to 4.1+ version if needed. Would do this via 'usermod', but it
 | 
						|
# requires that cloud user not be in use, so RPM could not be installed while management is running
 | 
						|
if getent passwd cloud | grep -q /var/lib/cloud; then 
 | 
						|
    sed -i 's/\/var\/lib\/cloud\/management/\/var\/cloudstack\/management/g' /etc/passwd
 | 
						|
fi
 | 
						|
 | 
						|
# if saved configs from upgrade exist, copy them over
 | 
						|
if [ -f "%{_sysconfdir}/cloud.rpmsave/management/db.properties" ]; then
 | 
						|
    mv %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/management/db.properties.rpmnew
 | 
						|
    cp -p %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/%{name}/management
 | 
						|
    if [ -f "%{_sysconfdir}/cloud.rpmsave/management/key" ]; then    
 | 
						|
        cp -p %{_sysconfdir}/cloud.rpmsave/management/key %{_sysconfdir}/%{name}/management
 | 
						|
    fi
 | 
						|
    # make sure we only do this on the first install of this RPM, don't want to overwrite on a reinstall
 | 
						|
    mv %{_sysconfdir}/cloud.rpmsave/management/db.properties %{_sysconfdir}/cloud.rpmsave/management/db.properties.rpmsave
 | 
						|
fi
 | 
						|
 | 
						|
chown -R cloud:cloud /var/log/cloudstack/management
 | 
						|
 | 
						|
%preun agent
 | 
						|
/sbin/service cloudstack-agent stop || true
 | 
						|
if [ "$1" == "0" ] ; then
 | 
						|
    /sbin/chkconfig --del cloudstack-agent > /dev/null 2>&1 || true
 | 
						|
    /sbin/service cloudstack-agent stop > /dev/null 2>&1 || true
 | 
						|
fi
 | 
						|
 | 
						|
%pre agent
 | 
						|
 | 
						|
# save old configs if they exist (for upgrade). Otherwise we may lose them
 | 
						|
# when the old packages are erased. There are a lot of properties files here.
 | 
						|
if [ -d "%{_sysconfdir}/cloud" ] ; then
 | 
						|
    mv %{_sysconfdir}/cloud %{_sysconfdir}/cloud.rpmsave
 | 
						|
fi
 | 
						|
 | 
						|
%post agent
 | 
						|
if [ "$1" == "2" ] ; then
 | 
						|
    echo "Running %{_bindir}/%{name}-agent-upgrade to update bridge name for upgrade from CloudStack 4.0.x (and before) to CloudStack 4.1 (and later)"
 | 
						|
    %{_bindir}/%{name}-agent-upgrade
 | 
						|
fi
 | 
						|
 | 
						|
if [ ! -d %{_sysconfdir}/libvirt/hooks ] ; then
 | 
						|
    mkdir %{_sysconfdir}/libvirt/hooks
 | 
						|
fi
 | 
						|
cp -a ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook %{_sysconfdir}/libvirt/hooks/qemu
 | 
						|
/sbin/service libvirtd restart
 | 
						|
/sbin/chkconfig --add cloudstack-agent > /dev/null 2>&1 || true
 | 
						|
/sbin/chkconfig --level 345 cloudstack-agent on > /dev/null 2>&1 || true
 | 
						|
 | 
						|
# if saved configs from upgrade exist, copy them over
 | 
						|
if [ -f "%{_sysconfdir}/cloud.rpmsave/agent/agent.properties" ]; then
 | 
						|
    mv %{_sysconfdir}/%{name}/agent/agent.properties  %{_sysconfdir}/%{name}/agent/agent.properties.rpmnew
 | 
						|
    cp -p %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/%{name}/agent
 | 
						|
    # make sure we only do this on the first install of this RPM, don't want to overwrite on a reinstall
 | 
						|
    mv %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/cloud.rpmsave/agent/agent.properties.rpmsave
 | 
						|
fi
 | 
						|
 | 
						|
%preun usage
 | 
						|
/sbin/service cloudstack-usage stop || true
 | 
						|
if [ "$1" == "0" ] ; then
 | 
						|
    /sbin/chkconfig --del cloudstack-usage > /dev/null 2>&1 || true
 | 
						|
    /sbin/service cloudstack-usage stop > /dev/null 2>&1 || true
 | 
						|
fi
 | 
						|
 | 
						|
%post usage
 | 
						|
if [ -f "%{_sysconfdir}/%{name}/management/db.properties" ]; then
 | 
						|
    echo Replacing db.properties with management server db.properties
 | 
						|
    rm -f %{_sysconfdir}/%{name}/usage/db.properties
 | 
						|
    ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties
 | 
						|
    /sbin/chkconfig --add cloudstack-usage > /dev/null 2>&1 || true
 | 
						|
    /sbin/chkconfig --level 345 cloudstack-usage on > /dev/null 2>&1 || true
 | 
						|
fi
 | 
						|
 | 
						|
if [ -f "%{_sysconfdir}/%{name}/management/key" ]; then
 | 
						|
    echo Replacing key with management server key
 | 
						|
    rm -f %{_sysconfdir}/%{name}/usage/key
 | 
						|
    ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
 | 
						|
fi
 | 
						|
 | 
						|
if [ ! -f "%{_sysconfdir}/%{name}/usage/key" ]; then
 | 
						|
    ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
 | 
						|
fi
 | 
						|
 | 
						|
%post marvin
 | 
						|
pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
 | 
						|
pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
 | 
						|
 | 
						|
#No default permission as the permission setup is complex
 | 
						|
%files management
 | 
						|
%defattr(-,root,root,-)
 | 
						|
%dir %{_datadir}/%{name}-management
 | 
						|
%dir %attr(0770,root,cloud) %{_localstatedir}/%{name}/mnt
 | 
						|
%dir %attr(0770,cloud,cloud) %{_localstatedir}/%{name}/management
 | 
						|
%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management
 | 
						|
%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management
 | 
						|
%config(noreplace) %{_sysconfdir}/default/%{name}-management
 | 
						|
%config(noreplace) %{_sysconfdir}/sudoers.d/%{name}-management
 | 
						|
%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
 | 
						|
%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/server.properties
 | 
						|
%config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml
 | 
						|
%config(noreplace) %{_sysconfdir}/%{name}/management/log4j.xml
 | 
						|
%config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties
 | 
						|
%config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers
 | 
						|
%config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties
 | 
						|
%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/conf
 | 
						|
%{_datadir}/%{name}-management/lib/*.jar
 | 
						|
%{_datadir}/%{name}-management/logs
 | 
						|
%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
 | 
						|
%{_datadir}/%{name}-management/setup/*.sql
 | 
						|
%{_datadir}/%{name}-management/setup/db/*.sql
 | 
						|
%{_datadir}/%{name}-management/setup/*.sh
 | 
						|
%{_datadir}/%{name}-management/setup/server-setup.xml
 | 
						|
%{_datadir}/%{name}-management/webapp/*
 | 
						|
%attr(0755,root,root) %{_bindir}/%{name}-external-ipallocator.py
 | 
						|
%attr(0755,root,root) %{_initrddir}/%{name}-ipallocator
 | 
						|
%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator
 | 
						|
%{_defaultdocdir}/%{name}-management-%{version}/LICENSE
 | 
						|
%{_defaultdocdir}/%{name}-management-%{version}/NOTICE
 | 
						|
#%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-catalina
 | 
						|
 | 
						|
%files agent
 | 
						|
%attr(0755,root,root) %{_bindir}/%{name}-setup-agent
 | 
						|
%attr(0755,root,root) %{_bindir}/%{name}-agent-upgrade
 | 
						|
%attr(0755,root,root) %{_bindir}/%{name}-ssh
 | 
						|
%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-agent
 | 
						|
%attr(0644,root,root) %{_sysconfdir}/profile.d/%{name}-agent-profile.sh
 | 
						|
%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-agent
 | 
						|
%attr(0755,root,root) %{_datadir}/%{name}-common/scripts/network/cisco
 | 
						|
%config(noreplace) %{_sysconfdir}/%{name}/agent
 | 
						|
%dir %{_localstatedir}/log/%{name}/agent
 | 
						|
%attr(0644,root,root) %{_datadir}/%{name}-agent/lib/*.jar
 | 
						|
%attr(0755,root,root) %{_datadir}/%{name}-agent/lib/libvirtqemuhook
 | 
						|
%dir %{_datadir}/%{name}-agent/plugins
 | 
						|
%{_defaultdocdir}/%{name}-agent-%{version}/LICENSE
 | 
						|
%{_defaultdocdir}/%{name}-agent-%{version}/NOTICE
 | 
						|
 | 
						|
%files common
 | 
						|
%dir %attr(0755,root,root) %{python_sitearch}/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/systemvm.iso
 | 
						|
%attr(0644,root,root) %{python_sitearch}/cloud_utils.py
 | 
						|
%attr(0644,root,root) %{python_sitearch}/cloud_utils.pyc
 | 
						|
%attr(0644,root,root) %{python_sitearch}/cloudutils/*
 | 
						|
%attr(0644, root, root) %{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
 | 
						|
%{_defaultdocdir}/%{name}-common-%{version}/LICENSE
 | 
						|
%{_defaultdocdir}/%{name}-common-%{version}/NOTICE
 | 
						|
 | 
						|
%files usage
 | 
						|
%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-usage
 | 
						|
%attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar
 | 
						|
%attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar
 | 
						|
%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/usage
 | 
						|
%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/db.properties
 | 
						|
%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
 | 
						|
%{_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
 | 
						|
%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
 | 
						|
 | 
						|
%files integration-tests
 | 
						|
%attr(0755,root,root) %{_datadir}/%{name}-integration-tests/*
 | 
						|
%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
 | 
						|
%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
 | 
						|
 | 
						|
%if "%{_ossnoss}" == "noredist"
 | 
						|
%files mysql-ha
 | 
						|
%defattr(0644,cloud,cloud,0755)
 | 
						|
%attr(0644,root,root) %{_datadir}/%{name}-mysql-ha/lib/*
 | 
						|
%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
 | 
						|
%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
 | 
						|
%endif
 | 
						|
 | 
						|
%files baremetal-agent
 | 
						|
%attr(0755,root,root) %{_bindir}/cloudstack-setup-baremetal
 | 
						|
 | 
						|
%changelog
 | 
						|
* Thu Apr 30 2015 Rohit Yadav <bhaisaab@apache.org> 4.6.0
 | 
						|
- Remove awsapi package
 | 
						|
 | 
						|
* Fri Jul 04 2014 Hugo Trippaers <hugo@apache.org> 4.5.0
 | 
						|
- Add a package for the mysql ha module
 | 
						|
 | 
						|
* Wed Oct 03 2012 Hugo Trippaers <hugo@apache.org> 4.1.0
 | 
						|
- new style spec file
 |