mirror of
https://github.com/apache/cloudstack
synced 2026-08-02 05:26:35 +00:00
- systemd: Add a /etc/sysconfig/cloudstack-* file This allows users to easily override variables passed to Java when starting up. It also creates a foundation for sharing the systemd service profile between CentOS and Ubuntu since it only requires the environment file to be changed. - deb: Add Ubuntu 16.04 support Ubuntu 16.04 differs from Ubuntu 14.04 in a few ways: - systemd instead of sysvinit / upstart - Java 8 support The packaging now detects on which distribution it is being build and based on that it installs different files in the packages, but it also changes the Dependencies. Packages for Ubuntu 16.04 will require Java 8 as a JRE Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
162 lines
8.8 KiB
Makefile
Executable File
162 lines
8.8 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# -*- makefile -*-
|
|
VERSION := $(shell grep '^ <version>' pom.xml| cut -d'>' -f2 |cut -d'<' -f1)
|
|
PACKAGE = $(shell dh_listpackages|head -n 1|cut -d '-' -f 1)
|
|
SYSCONFDIR = "/etc"
|
|
DESTDIR = "debian/tmp"
|
|
|
|
ifeq ($(shell lsb_release -sr), 14.04)
|
|
SUBSTVARS = -Vjre:Depends="openjdk-7-jre-headless" -Vjdk:Depends="openjdk-7-jdk" -Vinit:"Depends:jsvc"
|
|
else
|
|
SUBSTVARS = -Vjre:Depends="openjdk-8-jre-headless" -Vjdk:Depends="openjdk-8-jdk" -Vinit:"Depends:systemd"
|
|
endif
|
|
|
|
%:
|
|
dh $@ --with python2,systemd
|
|
|
|
override_dh_gencontrol:
|
|
dh_gencontrol -- $(SUBSTVARS)
|
|
|
|
override_dh_auto_configure:
|
|
cp packaging/debian/replace.properties replace.properties.tmp
|
|
echo VERSION=${VERSION} >> replace.properties.tmp
|
|
|
|
override_dh_auto_build:
|
|
mvn -T C1.5 clean package -Psystemvm,developer -Dsystemvm \
|
|
-Dcs.replace.properties=replace.properties.tmp \
|
|
-Dmaven.repo.local=$(HOME)/.m2/repository \
|
|
${ACS_BUILD_OPTS}
|
|
|
|
override_dh_auto_clean:
|
|
dh_auto_clean
|
|
rm -f replace.properties.tmp
|
|
|
|
override_dh_auto_install:
|
|
# Common packages
|
|
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)
|
|
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/init.d
|
|
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/default
|
|
|
|
mkdir -p $(DESTDIR)/var/cache/$(PACKAGE)
|
|
mkdir -p $(DESTDIR)/var/log/$(PACKAGE)
|
|
mkdir -p $(DESTDIR)/var/lib/$(PACKAGE)
|
|
mkdir -p $(DESTDIR)/usr/bin
|
|
mkdir -p $(DESTDIR)/usr/share
|
|
|
|
# cloudstack-agent
|
|
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/agent
|
|
mkdir $(DESTDIR)/$(SYSCONFDIR)/profile.d
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-agent
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-agent/plugins
|
|
install -D agent/target/cloud-agent-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/$(PACKAGE)-agent.jar
|
|
install -D plugins/hypervisors/kvm/target/cloud-plugin-hypervisor-kvm-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/
|
|
install -D plugins/hypervisors/kvm/target/dependencies/* $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/
|
|
|
|
install -m0755 packaging/debian/$(PACKAGE)-agent.init $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-agent
|
|
install -d -m0755 debian/$(PACKAGE)-agent/lib/systemd/system
|
|
install -m0644 packaging/debian/$(PACKAGE)-agent.service debian/$(PACKAGE)-agent/lib/systemd/system/$(PACKAGE)-agent.service
|
|
install -m0644 packaging/debian/$(PACKAGE)-agent.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-agent
|
|
|
|
install -D agent/target/transformed/cloud-setup-agent $(DESTDIR)/usr/bin/cloudstack-setup-agent
|
|
install -D agent/target/transformed/cloud-ssh $(DESTDIR)/usr/bin/cloudstack-ssh
|
|
install -D agent/target/transformed/cloudstack-agent-profile.sh $(DESTDIR)/$(SYSCONFDIR)/profile.d/cloudstack-agent-profile.sh
|
|
install -D agent/target/transformed/cloudstack-agent.logrotate $(DESTDIR)/$(SYSCONFDIR)/logrotate.d/cloudstack-agent
|
|
install -D agent/target/transformed/cloudstack-agent-upgrade $(DESTDIR)/usr/bin/cloudstack-agent-upgrade
|
|
install -D agent/target/transformed/libvirtqemuhook $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/
|
|
install -D agent/target/transformed/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/agent
|
|
|
|
# cloudstack-management
|
|
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server
|
|
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management
|
|
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/security/limits.d/
|
|
mkdir -p $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/
|
|
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management
|
|
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-management/webapps/client
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-management/setup
|
|
mkdir $(DESTDIR)/var/log/$(PACKAGE)/management
|
|
mkdir $(DESTDIR)/var/cache/$(PACKAGE)/management
|
|
mkdir $(DESTDIR)/var/cache/$(PACKAGE)/management/work
|
|
mkdir $(DESTDIR)/var/cache/$(PACKAGE)/management/temp
|
|
mkdir $(DESTDIR)/var/log/$(PACKAGE)/ipallocator
|
|
mkdir $(DESTDIR)/var/lib/$(PACKAGE)/management
|
|
mkdir $(DESTDIR)/var/lib/$(PACKAGE)/mnt
|
|
cp -r client/target/utilities/scripts/db/* $(DESTDIR)/usr/share/$(PACKAGE)-management/setup/
|
|
cp -r client/target/cloud-client-ui-$(VERSION)/* $(DESTDIR)/usr/share/$(PACKAGE)-management/webapps/client/
|
|
cp server/target/conf/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/
|
|
cp client/target/conf/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/
|
|
|
|
# nast hack for a couple of configuration files
|
|
mv $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/cloudstack-limits.conf $(DESTDIR)/$(SYSCONFDIR)/security/limits.d/
|
|
mv $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/server/cloudstack-sudoers $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/$(PACKAGE)
|
|
chmod 0440 $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/$(PACKAGE)
|
|
|
|
ln -s tomcat6-nonssl.conf $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/tomcat6.conf
|
|
ln -s server-nonssl.xml $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/server.xml
|
|
install -D packaging/debian/init/cloud-management $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-management
|
|
install -D client/target/utilities/bin/cloud-update-xenserver-licenses $(DESTDIR)/usr/bin/cloudstack-update-xenserver-licenses
|
|
ln -s /usr/share/tomcat6/bin $(DESTDIR)/usr/share/$(PACKAGE)-management/bin
|
|
# Remove configuration in /ur/share/cloudstack-management/webapps/client/WEB-INF
|
|
# This should all be in /etc/cloudstack/management
|
|
rm $(DESTDIR)/usr/share/$(PACKAGE)-management/webapps/client/WEB-INF/classes/*.*
|
|
ln -s ../../..$(SYSCONFDIR)/$(PACKAGE)/management $(DESTDIR)/usr/share/$(PACKAGE)-management/conf
|
|
ln -s ../../../usr/share/tomcat6/lib $(DESTDIR)/usr/share/$(PACKAGE)-management/lib
|
|
ln -s ../../../var/log/$(PACKAGE)/management $(DESTDIR)/usr/share/$(PACKAGE)-management/logs
|
|
ln -s ../../../var/cache/$(PACKAGE)/management/temp $(DESTDIR)/usr/share/$(PACKAGE)-management/temp
|
|
ln -s ../../../var/cache/$(PACKAGE)/management/work $(DESTDIR)/usr/share/$(PACKAGE)-management/work
|
|
|
|
# cloudstack-common
|
|
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-common
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-common/setup
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-common/lib
|
|
cp -r scripts/installer $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
|
|
cp -r scripts/network $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
|
|
cp -r scripts/storage $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
|
|
cp -r scripts/util $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
|
|
cp -r scripts/vm $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
|
|
install -D client/target/utilities/bin/cloud-migrate-databases $(DESTDIR)/usr/bin/cloudstack-migrate-databases
|
|
install -D client/target/utilities/bin/cloud-set-guest-password $(DESTDIR)/usr/bin/cloudstack-set-guest-password
|
|
install -D client/target/utilities/bin/cloud-set-guest-sshkey $(DESTDIR)/usr/bin/cloudstack-set-guest-sshkey
|
|
install -D client/target/utilities/bin/cloud-setup-databases $(DESTDIR)/usr/bin/cloudstack-setup-databases
|
|
install -D client/target/utilities/bin/cloud-setup-management $(DESTDIR)/usr/bin/cloudstack-setup-management
|
|
install -D client/target/utilities/bin/cloud-setup-encryption $(DESTDIR)/usr/bin/cloudstack-setup-encryption
|
|
install -D client/target/utilities/bin/cloud-sysvmadm $(DESTDIR)/usr/bin/cloudstack-sysvmadm
|
|
install -D systemvm/dist/systemvm.iso $(DESTDIR)/usr/share/$(PACKAGE)-common/vms/systemvm.iso
|
|
# We need jasypt for cloud-install-sys-tmplt, so this is a nasty hack to get it into the right place
|
|
install -D agent/target/dependencies/jasypt-1.9.2.jar $(DESTDIR)/usr/share/$(PACKAGE)-common/lib
|
|
|
|
# cloudstack-python
|
|
mkdir -p $(DESTDIR)/usr/share/pyshared
|
|
cp -r python/lib/cloud* $(DESTDIR)/usr/share/pyshared
|
|
|
|
# cloudstack-usage
|
|
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-usage
|
|
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-usage/plugins
|
|
install -D usage/target/cloud-usage-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/$(PACKAGE)-usage.jar
|
|
install -D usage/target/dependencies/* $(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/
|
|
cp usage/target/transformed/db.properties $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/
|
|
cp usage/target/transformed/log4j-cloud_usage.xml $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/log4j-cloud.xml
|
|
|
|
install -D -m0755 packaging/debian/$(PACKAGE)-usage.init $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-usage
|
|
install -d -m0755 debian/$(PACKAGE)-usage/lib/systemd/system
|
|
install -m0644 packaging/debian/$(PACKAGE)-usage.service debian/$(PACKAGE)-usage/lib/systemd/system/$(PACKAGE)-usage.service
|
|
install -m0644 packaging/debian/$(PACKAGE)-usage.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-usage
|
|
|
|
# cloudstack-marvin
|
|
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-marvin
|
|
cp tools/marvin/dist/Marvin-*.tar.gz $(DESTDIR)/usr/share/$(PACKAGE)-marvin/
|
|
|
|
# cloudstack-integration-tests
|
|
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-integration-tests
|
|
cp -r test/integration/* $(DESTDIR)/usr/share/$(PACKAGE)-integration-tests/
|
|
|
|
override_dh_installinit:
|
|
dh_installinit -pcloudstack-management -pcloudstack-agent -pcloudstack-usage --onlyscripts --no-start
|
|
|
|
override_dh_systemd_enable:
|
|
dh_systemd_enable -pcloudstack-agent -pcloudstack-usage
|
|
|
|
override_dh_installdocs:
|
|
dh_installdocs -A tools/whisker/LICENSE tools/whisker/NOTICE INSTALL.md
|