summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorCare Computers2015-06-08 23:46:30 +0200
committerCare Computers2015-06-08 23:46:30 +0200
commit30f1bb92756729cae17cfdcbc195813fa6c6e7fc (patch)
tree96b3c8de09d7d03373a3d35da0a76f1292651b3d /PKGBUILD
downloadaur-archipel-agent-git.tar.gz
Initial import
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD99
1 files changed, 99 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..0db25be81211
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,99 @@
+# Maintainer: Ruthger Gubbels <aur@ruthger.nl>
+# Contributor: Damian Nowak <spam@nowaker.net>
+# Contributor: Sebastien Leduc <sebastien@sleduc.fr>
+# Contributor: Shanto <shanto@hotmail.com>
+
+pkgname='archipel-agent-git'
+pkgver=beta6.r389.gc7f7fa6
+pkgrel=1
+pkgdesc='A solution to manage and supervise virtual machines. (Agent)'
+arch=('any')
+url='http://archipelproject.org/'
+license=('AGPL')
+depends=(
+ 'python2' 'python2-apscheduler' 'python2-sqlalchemy'
+ 'python2-numpy' 'python2-magic' 'python2-ctypes'
+ 'python-imaging' 'dnsmasq'
+ 'libvirt' 'libvirt-python' 'qemu'
+)
+makedepends=('python2-setuptools>=3.4' 'git')
+optdepends=('ejabberd: An XMPP Server used by archipel for communication with VMs')
+provides=('archipel-agent')
+conflicts=('archipel-agent')
+backup=('etc/archipel/archipel.conf' 'etc/archipel/vnc.pem'
+ 'etc/archipel/modules.d/action-scheduler.conf' 'etc/archipel/modules.d/centraldb.conf'
+ 'etc/archipel/modules.d/hypervisor-geolocalization.conf' 'etc/archipel/modules.d/hypervisor-health.conf'
+ 'etc/archipel/modules.d/hypervisor-network.conf' 'etc/archipel/modules.d/iphone-notification.conf'
+ 'etc/archipel/modules.d/virtualmachine-oomkiller.conf' 'etc/archipel/modules.d/virtualmachine-snapshoting.conf'
+ 'etc/archipel/modules.d/virtualmachine-storage.conf' 'etc/archipel/modules.d/virtualmachine-vnc.conf'
+ 'etc/archipel/modules.d/vmcasting.conf' 'etc/archipel/modules.d/vmparking.conf'
+ 'etc/archipel/modules.d/xmppserver.conf'
+)
+options=(!strip !emptydirs)
+install='install'
+source=('git://github.com/ArchipelProject/Archipel.git'
+ 'git://github.com/ArchipelProject/xmpppy.git'
+ 'git://github.com/ArchipelProject/Node.git'
+)
+sha512sums=('SKIP' 'SKIP' 'SKIP')
+
+pkgver() {
+ cd Archipel
+ git describe --tags | sed 's/^@//; s/-/.r/; s/-/./'
+}
+
+prepare() {
+ cd "$srcdir"/Archipel
+ git submodule init
+ git config submodule.ArchipelAgent/archipel-core/archipelcore/xmpp.url "$srcdir"/xmpppy
+# git config submodule.ArchipelAgent/ANSOS.url "$srcdir"/Node
+ git submodule update "$srcdir"/Archipel/ArchipelAgent/archipel-core/archipelcore/xmpp
+# git submodule update "$srcdir"/Archipel/ArchipelAgent/ANSOS
+}
+
+build() {
+ # Remove central agent python packages
+ rm "$srcdir"/Archipel/ArchipelAgent/archipel-central-agent* -r 2>/dev/null
+
+ _list=$(find "$srcdir"/Archipel/ArchipelAgent -type d -name "archipel-*")
+ for _dir in $_list; do
+ msg "Building $_dir"
+ pushd $_dir 1>/dev/null
+ if [ -f 'setup.py' ]; then
+ python2 setup.py install --root="$srcdir/$pkgname" --optimize=1 1>/dev/null
+ fi
+ popd 1>/dev/null
+ done;
+
+ # Replace python with python2
+ sed -i 's/\/usr\/bin\/python /\/usr\/bin\/python2 /' "$srcdir"/"$pkgname"/usr/bin/*
+
+ # Copy modules.d conf files
+ _list=$(find "$srcdir"/"$pkgname"/usr/lib/ -type d -name '*.egg-info')
+ for _pack in $_list; do
+ _conf=$(cat "$_pack"/SOURCES.txt | sed -nr '/plugin.conf/p')
+ if [ -n "$_conf" ]; then
+ _name=$(cat "$_pack"/PKG-INFO | sed -n '/Name:/p' | sed -n -e 's/^.*\(agent-\)\(.*\)$/\2/p')
+ install -Dm644 "$_pack"/../"$_conf" "$srcdir"/"$pkgname"/usr/install/etc/archipel/modules.d/"$_name".conf
+ fi
+ done;
+
+ # Remove old init.d
+ rm "$srcdir"/"$pkgname"/usr/install/etc/init.d -r
+}
+
+package() {
+ # Copy Archipel packages and executables
+ cp "$srcdir"/"$pkgname"/usr "$pkgdir"/usr -r
+
+ # Install systemd service
+ install -Dm644 "$srcdir"/Archipel/ArchipelAgent/archipel-agent/install/usr/lib/systemd/system/archipel-agent.service "$pkgdir"/usr/lib/systemd/system/archipel-agent.service
+
+ # Create the target configuration and data directories
+ install -dm0755 "$pkgdir"/etc/archipel "$pkgdir"/var/lib/archipel
+
+ # Copy the configuration and data files
+ cp "$srcdir"/"$pkgname"/usr/install/etc/archipel/* "$pkgdir"/etc/archipel -r
+
+ cp "$srcdir"/"$pkgname"/usr/install/var/lib/archipel/* "$pkgdir"/var/lib/archipel -r
+}