mirror of https://gitee.com/bigwinds/arangodb
226 lines
7.4 KiB
Plaintext
226 lines
7.4 KiB
Plaintext
################################################################################
|
|
## epm configuration file
|
|
## Documentation: http://www.epmhome.org
|
|
################################################################################
|
|
|
|
$version=${arangodb_version}
|
|
$release=${arangodb_release}
|
|
|
|
################################################################################
|
|
## ArangoDB
|
|
################################################################################
|
|
|
|
%product ArangoDB
|
|
%copyright 2012 by triAGENS GmbH
|
|
%vendor triAGENS GmbH
|
|
%license ${project_dir}/LICENSE
|
|
%readme ${project_dir}/README
|
|
%description ArangoDB is a durable, reliable, transactional multi-model database. It's key-features are: Schema-free schemata, an integrated application server, flexible data modelling, free index choice, and configurable durability.
|
|
%version ${version}
|
|
%release ${release}
|
|
|
|
################################################################################
|
|
## File List
|
|
################################################################################
|
|
|
|
d 0755 ${susr} ${sgrp} /etc/arangodb -
|
|
d 0755 ${susr} ${sgrp} /etc/arangodb/ -
|
|
c 0644 ${susr} ${sgrp} /etc/arangodb/arangosh.conf ${project_dir}/etc/arangodb/arangosh.conf
|
|
|
|
f 0755 ${susr} ${sgrp} ${sbindir}/arangod-${arangodb_version} ${project_dir}/bin/arangod
|
|
l 000 ${rusr} ${rgrp} ${sbindir}/arangod ${sbindir}/arangod-${arangodb_version}
|
|
|
|
f 0755 ${susr} ${sgrp} ${bindir}/arangoimp ${project_dir}/bin/arangoimp
|
|
f 0755 ${susr} ${sgrp} ${bindir}/arangosh ${project_dir}/bin/arangosh
|
|
|
|
# database directory
|
|
d 0755 ${rusr} ${rgrp} ${data_dir} -
|
|
d 0755 ${susr} ${sgrp} ${data_dir}/arangodb -
|
|
|
|
# static files
|
|
d 0755 ${susr} ${sgrp} ${static_dir} -
|
|
d 0755 ${susr} ${sgrp} ${static_dir}/arangodb -
|
|
d 0755 ${susr} ${sgrp} ${static_dir}/arangodb/js -
|
|
d 0755 ${susr} ${sgrp} ${static_dir}/arangodb/html -
|
|
|
|
# PID file directory
|
|
d 0755 ${susr} ${sgrp} /var/run/arangodb -
|
|
|
|
# logfile directory
|
|
d 0755 ${susr} ${sgrp} /var/log/arangodb -
|
|
|
|
d 0755 ${rusr} ${rgrp} ${mandir} -
|
|
d 0755 ${rusr} ${rgrp} ${mandir}/man1 -
|
|
d 0755 ${rusr} ${rgrp} ${mandir}/man8 -
|
|
|
|
%include ${project_dir}/Installation/epm/arangodb.sublist
|
|
|
|
################################################################################
|
|
## Pre/Post Install
|
|
################################################################################
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## MAC OS X
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%ifdef macosx
|
|
c 0644 ${susr} ${sgrp} /etc/arangodb/arangod.conf ${project_dir}/etc/arangodb/arangod.conf
|
|
d 0755 ${rusr} ${rgrp} /Library/LaunchDaemons/ -
|
|
f 0755 ${rusr} ${rgrp} /Library/LaunchDaemons/org.arangodb.plist.template ${project_dir}/Installation/MacOSX/org.arangodb.plist
|
|
%postinstall <<EOF
|
|
sed -e 's%@BINARY@%${sbindir}/arangod-${version}%g' -e 's%@CONFIGDIR@%/etc/arangodb%g' /Library/LaunchDaemons/org.arangodb.plist.template > /Library/LaunchDaemons/org.arangodb.plist
|
|
launchctl unload /Library/LaunchDaemons/org.arangodb.plist
|
|
|
|
# change user of 1.0 version
|
|
/usr/sbin/chown -R ${susr}:${sgrp} /var/run/arangodb
|
|
/usr/sbin/chown -R ${susr}:${sgrp} /var/log/arangodb
|
|
/usr/sbin/chown -R ${susr}:${sgrp} ${data_dir}/arangodb
|
|
|
|
launchctl load /Library/LaunchDaemons/org.arangodb.plist
|
|
|
|
EOF
|
|
|
|
%preremove <<EOF
|
|
launchctl stop de.triagens.arango
|
|
launchctl unload /Library/LaunchDaemons/org.arangodb.plist
|
|
EOF
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## LINUX
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%else
|
|
c 0644 ${susr} ${sgrp} /etc/arangodb/arangod.conf ${project_dir}/etc/arangodb/arangod-uid.conf
|
|
%preinstall <<EOF
|
|
getent group arangodb >/dev/null || groupadd -r arangodb
|
|
getent passwd arangodb >/dev/null || useradd -r -g arangodb -d ${static_dir}/arangodb -s /bin/false -c "ArangoDB Application User" arangodb
|
|
EOF
|
|
%endif
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## CHKCONF
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%ifdef chkconf
|
|
f 0755 ${rusr} ${rgrp} ${initdir}/arangodb ${project_dir}/Installation/Linux/${START_SCRIPT}
|
|
|
|
%postinstall <<EOF
|
|
chkconfig --level ${runlevels} arangodb on
|
|
|
|
# change user of 1.0 version
|
|
chown -R ${susr}:${sgrp} /var/run/arangodb
|
|
chown -R ${susr}:${sgrp} /var/log/arangodb
|
|
chown -R ${susr}:${sgrp} ${data_dir}/arangodb
|
|
|
|
echo "${install_message}"
|
|
|
|
exit 0
|
|
EOF
|
|
|
|
%preremove <<EOF
|
|
${initdir}/arangodb stop 2&>1 > /dev/null || true
|
|
chkconfig --del arangodb
|
|
exit 0
|
|
EOF
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## INSSERV
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%elseifdef insserv
|
|
f 0755 ${rusr} ${rgrp} ${initdir}/arangodb ${project_dir}/Installation/Linux/${START_SCRIPT}
|
|
|
|
%postinstall <<EOF
|
|
test -x /sbin/insserv && /sbin/insserv /etc/init.d/arangodb 2&>1 > /dev/null
|
|
|
|
# change user of 1.0 version
|
|
chown -R ${susr}:${sgrp} /var/run/arangodb
|
|
chown -R ${susr}:${sgrp} /var/log/arangodb
|
|
chown -R ${susr}:${sgrp} ${data_dir}/arangodb
|
|
|
|
echo "${install_message}"
|
|
|
|
exit 0
|
|
EOF
|
|
|
|
%preremove <<EOF
|
|
${initdir}/arangodb stop 2&>1 > /dev/null || true
|
|
test -x /sbin/insserv && /sbin/insserv -r /etc/init.d/arangodb 2&>1 > /dev/null
|
|
exit 0
|
|
EOF
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## use_systemd
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%elseifdef use_systemd
|
|
f 0544 ${rusr} ${rgrp} ${systemddir}/arangodb.service ${project_dir}/etc/systemd/arangodb.service
|
|
|
|
%postinstall <<EOF
|
|
/bin/systemctl daemon-reload > /dev/null 2>&1
|
|
/bin/systemctl preset arangodb.service > /dev/null 2>&1
|
|
|
|
# change user of 1.0 version
|
|
chown -R ${susr}:${sgrp} /var/run/arangodb
|
|
chown -R ${susr}:${sgrp} /var/log/arangodb
|
|
chown -R ${susr}:${sgrp} ${data_dir}/arangodb
|
|
|
|
echo "${install_message}"
|
|
|
|
exit 0
|
|
EOF
|
|
|
|
%preremove <<EOF
|
|
test -n "$$FIRST_ARG" || FIRST_ARG=$$1
|
|
if [ $$FIRST_ARG -eq 0 ]; then
|
|
# Package removal, not upgrade
|
|
/bin/systemctl --no-reload disable arangodb.service > /dev/null 2>&1 || :
|
|
/bin/systemctl stop arangodb.service > /dev/null 2>&1 || :
|
|
fi
|
|
exit 0
|
|
EOF
|
|
|
|
%postremove <<EOF
|
|
test -n "$$FIRST_ARG" || FIRST_ARG=$$1
|
|
if [ $$FIRST_ARG -ge 1 ]; then
|
|
# Package upgrade, not uninstall
|
|
/bin/systemctl try-restart arangodb.service >/dev/null 2>&1 || :
|
|
else # package uninstall
|
|
for service in arangodb.service ; do
|
|
sysv_service=$${service%.*}
|
|
rm -f "/var/lib/systemd/migrated/$$sysv_service" 2> /dev/null || :
|
|
done
|
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
|
fi
|
|
EOF
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## EPM
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%else
|
|
|
|
%system linux
|
|
i 0755 ${rusr} ${rgrp} arangodb ${project_dir}/Installation/Linux/${START_SCRIPT} runlevel(${runlevels})
|
|
|
|
%postinstall <<EOF
|
|
|
|
# change user of 1.0 version
|
|
chown -R ${susr}:${sgrp} /var/run/arangodb
|
|
chown -R ${susr}:${sgrp} /var/log/arangodb
|
|
chown -R ${susr}:${sgrp} ${data_dir}/arangodb
|
|
|
|
echo "${install_message}"
|
|
|
|
exit 0
|
|
EOF
|
|
|
|
%endif
|
|
|
|
## -----------------------------------------------------------------------------
|
|
## RC skript
|
|
## -----------------------------------------------------------------------------
|
|
|
|
%system linux
|
|
l 000 ${rusr} ${rgrp} ${sbindir}/rcarangodb /etc/init.d/arangodb
|