# Contributor: Santic <email@santic-zombie.ru>
# Maintainer:  Santic <email@santic-zombie.ru>
pkgname=opennebula
pkgver=6.4.0
pkgrel=1
pkgdesc="OpenNebula Server and Scheduler (Community Edition)"
url="https://opennebula.io/"
arch="x86_64"
options="!check"
license="Apache"
depends="augeas
	augeas-libs
	curl
	czmq
	gnutls
	g++
	libcurl
	libffi
	libgcc
	libvncserver
	libnsl
	libpg_query
	libpq
	libssl1.1
	libstdc++
	libxml2
	libxslt
	logrotate
	mariadb
	mariadb-client
	mariadb-server-utils
	npm
	openssl
	ruby
	ruby-augeas
	ruby-bundler
	ruby-libs
	ruby-nokogiri
	ruby-pg
	ruby-rexml
	ruby-xmlrpc
	shadow
	sqlite
	sqlite-libs
	sqlite-static
	xmlrpc-c"
makedepends="alpine-sdk
	augeas-dev
	bash
	curl-dev
	czmq-dev
	gnutls-dev
	libnsl-dev
	libpq-dev
	libvncserver-dev
	libxml2-dev
	linux-headers
	mariadb-dev
	make
	openssl-dev
	python3
	ronn
	ruby-dev
	scons
	sqlite-dev
	xmlrpc-c-dev"
install="${pkgname}.pre-install
	${pkgname}.post-install
	${pkgname}.post-upgrade
	${pkgname}.pre-deinstall
	${pkgname}.post-deinstall"
source="https://downloads.opennebula.io/packages/opennebula-${pkgver}/opennebula-${pkgver}.tar.gz
	Gruntfile.patch
	package.patch
	svn.patch
	opennebula
	opennebula-scheduler
	opennebula-novnc
	opennebula-sunstone
	opennebula-hem
	opennebula-flow
	opennebula-gate
	opennebula-ssh-agent
	opennebula.logrotate"

builddir="$srcdir/"

prepare() {
	cd "opennebula-${pkgver}"

	patch -p0 < "${srcdir}/Gruntfile.patch"
	patch -p0 < "${srcdir}/package.patch"
	patch -p0 < "${srcdir}/svn.patch"

	rm -rf "${HOME}/.npm-packages"
	mkdir "${HOME}/.npm-packages"

	npm config set prefix "${HOME}/.npm-packages"
	NPM_PACKAGES="${HOME}/.npm-packages"
	export PATH="$PATH:$NPM_PACKAGES/bin"

	npm install bower grunt -g
}

build() {
	cd "opennebula-${pkgver}"
	CXXFLAGS="--std=c++14" scons -j2 new_xmlrpc=yes mysql=yes sqlite=yes sunstone=yes systemd=no
}

package() {
	cd "opennebula-${pkgver}"

	install -D -m755 "${srcdir}/opennebula" "${pkgdir}/etc/init.d/opennebula"
	install -D -m755 "${srcdir}/opennebula-scheduler" "${pkgdir}/etc/init.d/opennebula-scheduler"
	install -D -m755 "${srcdir}/opennebula-novnc" "${pkgdir}/etc/init.d/opennebula-novnc"
	install -D -m755 "${srcdir}/opennebula-sunstone" "${pkgdir}/etc/init.d/opennebula-sunstone"
	install -D -m755 "${srcdir}/opennebula-hem" "${pkgdir}/etc/init.d/opennebula-hem"
	install -D -m755 "${srcdir}/opennebula-flow" "${pkgdir}/etc/init.d/opennebula-flow"
	install -D -m755 "${srcdir}/opennebula-gate" "${pkgdir}/etc/init.d/opennebula-gate"
	install -D -m755 "${srcdir}/opennebula-ssh-agent" "${pkgdir}/etc/init.d/opennebula-ssh-agent"
	install -D -m644 "${srcdir}/opennebula.logrotate" "${pkgdir}/etc/logrotate.d/opennebula.logrotate"

	DESTDIR="${pkgdir}" ./install.sh -u oneadmin -g cloud
}
