1
0
Fork 0

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:
Wilfried Goesgens 2016-08-01 13:41:46 +02:00
parent dc5e345440
commit ad0bc4d00f
14 changed files with 228 additions and 88 deletions

View File

@ -55,7 +55,7 @@ endif ()
set(ARANGODB_VERSION_MAJOR "3") set(ARANGODB_VERSION_MAJOR "3")
set(ARANGODB_VERSION_MINOR "0") set(ARANGODB_VERSION_MINOR "0")
set(ARANGODB_VERSION_REVISION "x") set(ARANGODB_VERSION_REVISION "devel")
set(ARANGODB_VERSION set(ARANGODB_VERSION
"${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}") "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}")

75
Installation/debian/config Executable file
View File

@ -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

View File

@ -1,23 +1,64 @@
#!/bin/sh #!/bin/sh
set -e set -e
#DEBHELPER# ARANGODB="/usr/sbin/arangod"
echo " # source debconf library
ArangoDB 3 (http://www.arangodb.org) . /usr/share/debconf/confmodule
A multi-purpose open-source database with a flexible data model for documents,
graphs, and key-values.
First Steps with ArangoDB: if [ "$1" = "configure" -a -z "$2" ]; then
http:/www.arangodb.org/quickstart db_get arangodb/password
Configuration file: # Escape backslashes and quotes
/etc/arangodb3/arangod.conf 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: db_set arangodb/password ""
> /usr/bin/arangosh fi
Start ArangoDB service: # check if we should upgrade the database directory
> /etc/init.d/arangodb3 start
"
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

View File

@ -1,10 +1,30 @@
#!/bin/sh #!/bin/sh
set -e 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 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/log/arangodb3
rm -rf /var/lib/arangodb3 rm -rf /var/lib/arangodb3
rm -rf /var/lib/arangodb3-apps rm -rf /var/lib/arangodb3-apps

View File

@ -2,10 +2,16 @@
set -e set -e
getent group arangodb >/dev/null || groupadd -r arangodb 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
install -o arangodb -g arangodb -m 755 -d /var/lib/arangodb3-apps install -o arangodb -g arangodb -m 755 -d /var/lib/arangodb3-apps
install -o arangodb -g arangodb -m 755 -d /var/log/arangodb3 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

View File

@ -1,4 +1,9 @@
#!/bin/sh #!/bin/sh
set -e 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

View File

@ -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.

View File

@ -1 +1 @@
3.0.x 3.0.devel

View File

@ -1,5 +1,11 @@
include(GNUInstallDirs) 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_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)") 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) #get_cmake_property(_variableNames VARIABLES)
#foreach (_variableName ${_variableNames}) #foreach (_variableName ${_variableNames})
# message(STATUS "${_variableName}=${${_variableName}}") # message(STATUS "${_variableName}=${${_variableName}}")
#endforeach () ##--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------

View File

@ -19,6 +19,13 @@ macro (generate_root_config name)
FileContent "${FileContent}") FileContent "${FileContent}")
STRING(REPLACE "@SYSCONFDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}" STRING(REPLACE "@SYSCONFDIR@" "@ROOTDIR@/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}"
FileContent "${FileContent}") FileContent "${FileContent}")
if (ENABLE_UID_CFG)
STRING(REPLACE "@DEFINEUID@" ""
FileContent "${FileContent}")
else ()
STRING(REPLACE "@DEFINEUID@" "# "
FileContent "${FileContent}")
endif ()
if (MSVC) if (MSVC)
STRING(REPLACE "@PROGRAM_SUFFIX@" ".exe" STRING(REPLACE "@PROGRAM_SUFFIX@" ".exe"
FileContent "${FileContent}") FileContent "${FileContent}")
@ -35,6 +42,13 @@ macro (generate_path_config name)
FileContent "${FileContent}") FileContent "${FileContent}")
STRING(REPLACE "@LOCALSTATEDIR@" "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}" STRING(REPLACE "@LOCALSTATEDIR@" "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}"
FileContent "${FileContent}") 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}") FILE(WRITE ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_SYSCONFDIR_ARANGO}/${name}.conf "${FileContent}")
endmacro () endmacro ()

View File

@ -5,6 +5,8 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT}) set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA 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/postinst"
"${PROJECT_SOURCE_DIR}/Installation/debian/preinst" "${PROJECT_SOURCE_DIR}/Installation/debian/preinst"
"${PROJECT_SOURCE_DIR}/Installation/debian/postrm" "${PROJECT_SOURCE_DIR}/Installation/debian/postrm"
@ -21,66 +23,6 @@ else()
endif() 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 # components
install( install(
FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init

View File

@ -97,12 +97,12 @@ if (typeof internal.arango !== 'undefined') {
exports.plainServerVersion = function () { exports.plainServerVersion = function () {
if (internal.arango) { if (internal.arango) {
let version = internal.arango.getVersion(); let version = internal.arango.getVersion();
let devel = version.match(/(.*)\.x-devel/); let devel = version.match(/(.*)\.devel/);
if (devel !== null) { if (devel !== null) {
version = devel[1] + '.0'; version = devel[1] + '.0';
} else { } else {
devel = version.match(/(.*)-((alpha|beta|devel|rc)[0-9]*)$/); devel = version.match(/(.*)((alpha|beta|devel|rc)[0-9]*)$/);
if (devel !== null) { if (devel !== null) {
version = devel[1]; version = devel[1];

View File

@ -78,12 +78,12 @@ exports.db = internal.db;
exports.plainServerVersion = function () { exports.plainServerVersion = function () {
let version = internal.version; let version = internal.version;
let devel = version.match(/(.*)\.x-devel/); let devel = version.match(/(.*)\.devel/);
if (devel !== null) { if (devel !== null) {
version = devel[1] + '.0'; version = devel[1] + '.0';
} else { } else {
devel = version.match(/(.*)-((alpha|beta|devel|rc)[0-9]*)$/); devel = version.match(/(.*)((alpha|beta|devel|rc)[0-9]*)$/);
if (devel !== null) { if (devel !== null) {
version = devel[1]; version = devel[1];

View File

@ -6,7 +6,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd ${DIR}/.. cd ${DIR}/..
export PARALLEL_BUILDS=12 export PARALLEL_BUILDS=25
./Installation/Jenkins/build.sh \ ./Installation/Jenkins/build.sh \
standard \ standard \
--rpath \ --rpath \