#!/bin/sh # config maintainer script for zoneminder set -e # Source the debconf stuff . /usr/share/debconf/confmodule # Set the first version in which dbconfig-common was introduced in the package dbc_first_version="1.28.0" # Source the config file if exists CONFIGFILE=/etc/zm/zm.conf if [ -e $CONFIGFILE ]; then . $CONFIGFILE # Re-use data from ZM config file dbc_dbserver="$ZM_DB_HOST" dbc_dbname="$ZM_DB_NAME" dbc_dbuser="$ZM_DB_USER" fi if [ -f /usr/share/dbconfig-common/dpkg/config ]; then # Default use dbconfig-common dbc_install="true" # Currently we only support mysql database dbc_dbtypes="mysql" # Set authentication method to password dbc_authmethod_user="password" # Source the dbconfig-common stuff . /usr/share/dbconfig-common/dpkg/config fi # Do this when the package is installed, upgraded or reconfigured # Most of answers are cached so the questions will not be asked again if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then # Ask the user if the database shall be installed locally or remotely db_input high zoneminder/debconf_dblocation || true db_go || true db_get zoneminder/debconf_dblocation if [ "$RET" = "local" ]; then if [ ! -e "/usr/sbin/mysqld" ]; then # Display a message and exit if the user want a local database but # no database server is available db_input high zoneminder/debconf_dblocalmissingerror || true db_go || true exit 0 else # Set the database server to localhost dbc_dbserver="localhost" fi else # Source the dbconfig main configuration file if [ -f /etc/dbconfig-common/config ]; then . /etc/dbconfig-common/config fi if [ "$dbc_remote_questions_default" = "false" ]; then # Display a message and exit if the dbconfig configuration does not # allow installation of remote databases # Note: To overcome this issue, we could think to override the # default setting by using dbc_remote_questions_default='true' in # maintainer scripts but unfortunately this does not work due to # current dbconfig design # More information here: # https://bugs.launchpad.net/ubuntu/+source/dbconfig-common/+bug/1065331 db_input high zoneminder/debconf_dbconfigerror || true db_go || true exit 0 fi fi # Ask the user for all database settings dbc_go zoneminder $@ # Ask the user for the password of the database administrator if the user # has not yet answered to this question. # This situation may occur if the user skipped the database creation step # when reconfiguring the package. RET="" db_get zoneminder/mysql/admin-pass if [ -z "$RET" ]; then db_input high zoneminder/mysql/admin-pass || true db_go || true fi # Do this only when not upgrading the package (no old version in argument) if [ -z "$2" ]; then # Ask for the password of 'admin' user while :; do RET="" db_input high zoneminder/admin_password || true db_go || true db_get zoneminder/admin_password # If password isn't empty we ask for password verification if [ -z "$RET" ]; then db_fset zoneminder/admin_password seen false db_fset zoneminder/admin_password_again seen false break fi ROOT_PW="$RET" db_input high zoneminder/admin_password_again || true db_go || true db_get zoneminder/admin_password_again if [ "$RET" = "$ROOT_PW" ]; then ROOT_PW="" break fi db_fset zoneminder/password_mismatch seen false db_input critical zoneminder/password_mismatch || true db_set zoneminder/admin_password "" db_set zoneminder/admin_password_again "" db_go || true done else # If we are upgrading the package, set an empty password to disable # password update in ZoneMinder database db_set zoneminder/admin_password "" fi fi #DEBHELPER# exit 0