mirror of https://gitee.com/bigwinds/arangodb
Work on the debian build
- change 3.0.x-devel to be 3.0.devel since minus or underscore collide with packaging requirements - re-sync package scripts with whats current on suse OBS - add config-uid support.
This commit is contained in:
parent
dc5e345440
commit
ad0bc4d00f
|
@ -55,7 +55,7 @@ endif ()
|
|||
|
||||
set(ARANGODB_VERSION_MAJOR "3")
|
||||
set(ARANGODB_VERSION_MINOR "0")
|
||||
set(ARANGODB_VERSION_REVISION "x")
|
||||
set(ARANGODB_VERSION_REVISION "devel")
|
||||
|
||||
set(ARANGODB_VERSION
|
||||
"${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}")
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# source debconf stuff
|
||||
. /usr/share/debconf/confmodule
|
||||
db_version 2.0
|
||||
|
||||
db_capb backup
|
||||
|
||||
DO_CONFIGURE=no
|
||||
|
||||
if test -n "$2"; then
|
||||
# do we want to reconfigure?
|
||||
if test "`echo $2 | sed -e 's/[a-zA-Z.-]//g' -e 's;ubuntu;;'`" -lt 127 \
|
||||
-o "$1" = reconfigure
|
||||
then
|
||||
DO_CONFIGURE=yes
|
||||
fi
|
||||
else
|
||||
# are we in first install?
|
||||
if test "$1" = "configure"; then
|
||||
DO_CONFIGURE=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$DO_CONFIGURE" = "yes"; then
|
||||
STATE=1
|
||||
LASTSTATE=8
|
||||
while [ "$STATE" != 0 -a "$STATE" -le "$LASTSTATE" ]; do
|
||||
|
||||
case "$STATE" in
|
||||
1)
|
||||
db_input high arangodb/password || true
|
||||
db_go
|
||||
db_get arangodb/password
|
||||
#if [ -z "$RET" ]; then
|
||||
#fi
|
||||
ROOT_PW="${RET}"
|
||||
db_input high arangodb/password_again || true
|
||||
db_go
|
||||
db_get arangodb/password_again
|
||||
if [ "${ROOT_PW}" = "${RET}" ]; then
|
||||
ROOT_PW=""
|
||||
break
|
||||
else
|
||||
db_input critical arangodb/password_mismatch
|
||||
STATE=$(($STATE - 1))
|
||||
fi
|
||||
db_set arangodb/password_again ""
|
||||
;;
|
||||
2)
|
||||
db_input high arangodb/upgrade || true
|
||||
;;
|
||||
3)
|
||||
db_get arangodb/upgrade
|
||||
|
||||
if [ "$RET" = "true" ]; then
|
||||
db_input high arangodb/backup || true
|
||||
db_go
|
||||
else
|
||||
db_set arangodb/backup "false"
|
||||
fi
|
||||
;;
|
||||
|
||||
esac
|
||||
if db_go; then
|
||||
STATE=$(($STATE + 1))
|
||||
else
|
||||
STATE=$(($STATE - 1))
|
||||
fi
|
||||
|
||||
done
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -1,23 +1,64 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
#DEBHELPER#
|
||||
ARANGODB="/usr/sbin/arangod"
|
||||
|
||||
echo "
|
||||
ArangoDB 3 (http://www.arangodb.org)
|
||||
A multi-purpose open-source database with a flexible data model for documents,
|
||||
graphs, and key-values.
|
||||
# source debconf library
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
First Steps with ArangoDB:
|
||||
http:/www.arangodb.org/quickstart
|
||||
if [ "$1" = "configure" -a -z "$2" ]; then
|
||||
db_get arangodb/password
|
||||
|
||||
Configuration file:
|
||||
/etc/arangodb3/arangod.conf
|
||||
# Escape backslashes and quotes
|
||||
if [ -n "$RET" ]; then
|
||||
ARANGODB_DEFAULT_ROOT_PASSWORD=`echo $RET|sed -e 's;\\\\;\\\\\\\\;g' -e 's;";\\\\";g'` \
|
||||
/usr/sbin/arango-init-database \
|
||||
--uid arangodb --gid arangodb || true
|
||||
fi
|
||||
|
||||
Start ArangoDB shell client:
|
||||
> /usr/bin/arangosh
|
||||
db_set arangodb/password ""
|
||||
fi
|
||||
|
||||
Start ArangoDB service:
|
||||
> /etc/init.d/arangodb3 start
|
||||
"
|
||||
# check if we should upgrade the database directory
|
||||
|
||||
UPGRADE=false
|
||||
$ARANGODB --uid arangodb --gid arangodb --server.rest-server false --log.foreground-tty false --database.check-version \
|
||||
|| UPGRADE=true
|
||||
|
||||
db_get arangodb/upgrade
|
||||
if [ "$RET" = "true" ]; then
|
||||
if [ "$UPGRADE" = "true" ]; then
|
||||
db_get arangodb/backup
|
||||
|
||||
if [ "$RET" = "true" ]; then
|
||||
BACKUP="/var/lib/arangodb3-`date +%F-%H-%M-%S`"
|
||||
cp -a /var/lib/arangodb3 $BACKUP
|
||||
echo "A backup of your database files has been stored in $BACKUP."
|
||||
fi
|
||||
|
||||
echo "Upgrading database files."
|
||||
$ARANGODB --uid arangodb --gid arangodb --server.rest-server false --log.level error --database.auto-upgrade true
|
||||
else
|
||||
echo "Database files are up-to-date."
|
||||
fi
|
||||
elif [ "$UPGRADE" = "true" ]; then
|
||||
echo "Warning: database files need upgrade, automatic upgrade is disable, please do it manually."
|
||||
echo "After you've prepared your system for upgrade run "
|
||||
echo " /etc/init.d/arangodb3 upgrade"
|
||||
echo " dpkg --pending --configure"
|
||||
echo "after the packaging system is in stable state again."
|
||||
else
|
||||
echo "Database files are up-to-date."
|
||||
fi
|
||||
|
||||
db_stop
|
||||
|
||||
# Automatically added by dh_installinit
|
||||
if [ -x "/etc/init.d/arangodb3" ]; then
|
||||
update-rc.d arangodb3 defaults >/dev/null
|
||||
invoke-rc.d arangodb3 start || exit $?
|
||||
fi
|
||||
# End automatically added section
|
||||
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,10 +1,30 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
#DEBHELPER#
|
||||
# Automatically added by dh_installinit
|
||||
if [ "$1" = "purge" ] ; then
|
||||
update-rc.d arangodb3 remove >/dev/null
|
||||
fi
|
||||
|
||||
|
||||
# In case this system is running systemd, we make systemd reload the unit files
|
||||
# to pick up changes.
|
||||
if [ -d /run/systemd/system ] ; then
|
||||
systemctl --system daemon-reload >/dev/null || true
|
||||
fi
|
||||
# End automatically added section
|
||||
# Automatically added by dh_installdebconf
|
||||
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
|
||||
. /usr/share/debconf/confmodule
|
||||
db_purge
|
||||
fi
|
||||
# End automatically added section
|
||||
|
||||
|
||||
rm -rf /usr/share/arangodb3/js.old
|
||||
|
||||
if [ purge = "$1" ]; then
|
||||
rm -rf /usr/share/arangodb/js/apps
|
||||
rm -rf /usr/share/arangodb3/js/apps
|
||||
rm -rf /var/log/arangodb3
|
||||
rm -rf /var/lib/arangodb3
|
||||
rm -rf /var/lib/arangodb3-apps
|
||||
|
|
|
@ -2,10 +2,16 @@
|
|||
set -e
|
||||
|
||||
getent group arangodb >/dev/null || groupadd -r arangodb
|
||||
getent passwd arangodb >/dev/null || useradd -r -g arangodb -d /usr/share/arangodb3 -s /bin/false -c "ArangoDB Application User" arangodb
|
||||
getent passwd arangodb >/dev/null || useradd -r -g arangodb -d /usr/share/arangodb -s /bin/false -c "ArangoDB Application User" arangodb
|
||||
|
||||
install -o arangodb -g arangodb -m 755 -d /var/lib/arangodb3
|
||||
install -o arangodb -g arangodb -m 755 -d /var/lib/arangodb3-apps
|
||||
install -o arangodb -g arangodb -m 755 -d /var/log/arangodb3
|
||||
|
||||
#DEBHELPER#
|
||||
rm -rf /usr/share/arangodb3/js.old
|
||||
|
||||
if test -d /usr/share/arangodb3/js; then
|
||||
mv /usr/share/arangodb3/js /usr/share/arangodb3/js.old
|
||||
fi
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
#DEBHELPER#
|
||||
# Automatically added by dh_installinit
|
||||
if [ -x "/etc/init.d/arangodb3" ]; then
|
||||
invoke-rc.d arangodb3 stop || exit $?
|
||||
fi
|
||||
# End automatically added section
|
||||
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
Template: arangodb/upgrade
|
||||
Type: boolean
|
||||
Default: true
|
||||
Description: Automatically upgrade database files?
|
||||
Your database files must be upgraded before they can be used with a
|
||||
newer version of ArangoDB. If you say "yes" here, the files will be
|
||||
automatically upgraded, when a newer version of ArangoDB is installed.
|
||||
if you say "no" here, you need to manually invoke the upgrade once.
|
||||
This will render the package 'unstable' on upgrade.
|
||||
|
||||
Template: arangodb/backup
|
||||
Type: boolean
|
||||
Default: false
|
||||
Description: Backup database files before upgrading?
|
||||
If you say "yes" here, a backup of your database files is created before
|
||||
upgrading the files. The backup will be stored in /var/lib/arangodb-DATE.
|
||||
|
||||
Template: arangodb/password
|
||||
Type: password
|
||||
Default:
|
||||
Description: password for the ArangoDB "root" user:
|
||||
Please enter the password for the database root user account that should be granted
|
||||
administrative privileges
|
||||
|
||||
Template: arangodb/password_again
|
||||
Type: password
|
||||
Description: Repeat password for the ArangoDB "root" user:
|
||||
|
||||
Template: arangodb/password_mismatch
|
||||
Type: error
|
||||
Description: Password input error
|
||||
The two passwords you entered were not the same. Please try again.
|
|
@ -1,5 +1,11 @@
|
|||
include(GNUInstallDirs)
|
||||
|
||||
if (MSVC OR DARWIN)
|
||||
set(ENABLE_UID_CFG false)
|
||||
else ()
|
||||
set(ENABLE_UID_CFG true)
|
||||
endif ()
|
||||
|
||||
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_SYSCONFDIR}/arangodb3" CACHE PATH "read-only single-machine data (etc)")
|
||||
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_FULL_SYSCONFDIR}/arangodb3" CACHE PATH "read-only single-machine data (etc)")
|
||||
|
||||
|
@ -145,5 +151,4 @@ install(
|
|||
#get_cmake_property(_variableNames VARIABLES)
|
||||
#foreach (_variableName ${_variableNames})
|
||||
# message(STATUS "${_variableName}=${${_variableName}}")
|
||||
#endforeach ()
|
||||
#--------------------------------------------------------------------------------
|
||||
##--------------------------------------------------------------------------------
|
||||
|
|
|
@ -19,6 +19,13 @@ macro (generate_root_config name)
|
|||
FileContent "${FileContent}")
|
||||
STRING(REPLACE "@SYSCONFDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}"
|
||||
FileContent "${FileContent}")
|
||||
if (ENABLE_UID_CFG)
|
||||
STRING(REPLACE "@DEFINEUID@" ""
|
||||
FileContent "${FileContent}")
|
||||
else ()
|
||||
STRING(REPLACE "@DEFINEUID@" "# "
|
||||
FileContent "${FileContent}")
|
||||
endif ()
|
||||
if (MSVC)
|
||||
STRING(REPLACE "@PROGRAM_SUFFIX@" ".exe"
|
||||
FileContent "${FileContent}")
|
||||
|
@ -35,6 +42,13 @@ macro (generate_path_config name)
|
|||
FileContent "${FileContent}")
|
||||
STRING(REPLACE "@LOCALSTATEDIR@" "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}"
|
||||
FileContent "${FileContent}")
|
||||
if (ENABLE_UID_CFG)
|
||||
STRING(REPLACE "@DEFINEUID@" ""
|
||||
FileContent "${FileContent}")
|
||||
else ()
|
||||
STRING(REPLACE "@DEFINEUID@" "# "
|
||||
FileContent "${FileContent}")
|
||||
endif ()
|
||||
FILE(WRITE ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}/${name}.conf "${FileContent}")
|
||||
endmacro ()
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
|||
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
|
||||
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||
"${PROJECT_SOURCE_DIR}/Installation/debian/templates"
|
||||
"${PROJECT_SOURCE_DIR}/Installation/debian/config"
|
||||
"${PROJECT_SOURCE_DIR}/Installation/debian/postinst"
|
||||
"${PROJECT_SOURCE_DIR}/Installation/debian/preinst"
|
||||
"${PROJECT_SOURCE_DIR}/Installation/debian/postrm"
|
||||
|
@ -21,66 +23,6 @@ else()
|
|||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#find_program(DH_INSTALLINIT dh_installinit)
|
||||
#
|
||||
#if (NOT DH_INSTALLINIT)
|
||||
# message(ERROR "Failed to find debhelper. please install in order to build debian packages.")
|
||||
#endif()
|
||||
#
|
||||
#find_program(FAKEROOT fakeroot)
|
||||
#if (NOT FAKEROOT)
|
||||
# message(ERROR "Failed to find fakeroot. please install in order to build debian packages.")
|
||||
#endif()
|
||||
#
|
||||
#add_custom_target(prepare_debian)
|
||||
#SET(DEBIAN_CONTROL_EXTRA_BASENAMES
|
||||
# postinst
|
||||
# preinst
|
||||
# postrm
|
||||
# prerm
|
||||
# )
|
||||
#SET(DEBIAN_WORK_DIR "${PROJECT_BINARY_DIR}/debian-work")
|
||||
#add_custom_command(TARGET prepare_debian POST_BUILD
|
||||
# COMMAND ${CMAKE_COMMAND} -E
|
||||
# remove_directory "${DEBIAN_WORK_DIR}"
|
||||
# )
|
||||
#foreach (_DEBIAN_CONTROL_EXTRA_BASENAME ${DEBIAN_CONTROL_EXTRA_BASENAMES})
|
||||
# SET(RELATIVE_NAME "debian/${_DEBIAN_CONTROL_EXTRA_BASENAME}")
|
||||
# SET(SRCFILE "${PROJECT_SOURCE_DIR}/Installation/${RELATIVE_NAME}")
|
||||
# SET(DESTFILE "${DEBIAN_WORK_DIR}/${RELATIVE_NAME}")
|
||||
#
|
||||
# list(APPEND DEBIAN_CONTROL_EXTRA_SRC "${SRCFILE}")
|
||||
# list(APPEND DEBIAN_CONTROL_EXTRA_DEST "${DESTFILE}")
|
||||
#
|
||||
# add_custom_command(TARGET prepare_debian POST_BUILD
|
||||
# COMMAND ${CMAKE_COMMAND} -E
|
||||
# copy ${SRCFILE} ${DESTFILE})
|
||||
#endforeach()
|
||||
#
|
||||
#add_custom_command(TARGET prepare_debian POST_BUILD
|
||||
# COMMAND ${CMAKE_COMMAND} -E
|
||||
# copy "${PROJECT_SOURCE_DIR}/Installation/debian/control" "${DEBIAN_WORK_DIR}/debian/control"
|
||||
# )
|
||||
#add_custom_command(TARGET prepare_debian POST_BUILD
|
||||
# COMMAND ${CMAKE_COMMAND} -E
|
||||
# copy "${PROJECT_SOURCE_DIR}/Installation/debian/compat" "${DEBIAN_WORK_DIR}/debian/compat"
|
||||
# )
|
||||
#add_custom_command(TARGET prepare_debian POST_BUILD
|
||||
# COMMAND fakeroot "${DH_INSTALLINIT}" -o 2>/dev/null
|
||||
# WORKING_DIRECTORY ${DEBIAN_WORK_DIR}
|
||||
# )
|
||||
#add_custom_command(TARGET prepare_debian POST_BUILD
|
||||
# COMMAND fakeroot dh_installdeb
|
||||
# WORKING_DIRECTORY ${DEBIAN_WORK_DIR}
|
||||
# )
|
||||
|
||||
# components
|
||||
install(
|
||||
FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
|
||||
|
|
|
@ -97,12 +97,12 @@ if (typeof internal.arango !== 'undefined') {
|
|||
exports.plainServerVersion = function () {
|
||||
if (internal.arango) {
|
||||
let version = internal.arango.getVersion();
|
||||
let devel = version.match(/(.*)\.x-devel/);
|
||||
let devel = version.match(/(.*)\.devel/);
|
||||
|
||||
if (devel !== null) {
|
||||
version = devel[1] + '.0';
|
||||
} else {
|
||||
devel = version.match(/(.*)-((alpha|beta|devel|rc)[0-9]*)$/);
|
||||
devel = version.match(/(.*)((alpha|beta|devel|rc)[0-9]*)$/);
|
||||
|
||||
if (devel !== null) {
|
||||
version = devel[1];
|
||||
|
|
|
@ -78,12 +78,12 @@ exports.db = internal.db;
|
|||
|
||||
exports.plainServerVersion = function () {
|
||||
let version = internal.version;
|
||||
let devel = version.match(/(.*)\.x-devel/);
|
||||
let devel = version.match(/(.*)\.devel/);
|
||||
|
||||
if (devel !== null) {
|
||||
version = devel[1] + '.0';
|
||||
} else {
|
||||
devel = version.match(/(.*)-((alpha|beta|devel|rc)[0-9]*)$/);
|
||||
devel = version.match(/(.*)((alpha|beta|devel|rc)[0-9]*)$/);
|
||||
|
||||
if (devel !== null) {
|
||||
version = devel[1];
|
||||
|
|
|
@ -6,7 +6,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||
|
||||
cd ${DIR}/..
|
||||
|
||||
export PARALLEL_BUILDS=12
|
||||
export PARALLEL_BUILDS=25
|
||||
./Installation/Jenkins/build.sh \
|
||||
standard \
|
||||
--rpath \
|
||||
|
|
Loading…
Reference in New Issue