1f5e92fec6
As the way we need to reference Apache instance names has now changed between 2.2 and 2.4, we need to try it out both ways to make sure we get it right. This also allows koha-create/koha-disable to try the .conf version of the name if the first one doesn't work. To test: * Create an instance on an Apache 2.2 system with koha < 3.16 * Upgrade to 3.16 with this patch, saying 'yes' to the renaming question ** Make sure you don't see the warning: Warning: problem enabling $site in Apache * Do a 'service apache2 restart' * Make sure you can still access the instance * Make sure that /etc/apache2/sites-enabled/instance.conf exists as a link to /etc/apache2/sites-available/instance.conf * Check that koha-create and koha-remove behave like you'd expect. Note: * If you need to make debconf forget that it asked you the question about renaming so that it'll do it again, then run: echo "unregister koha-common/rename-apache-vhost-files" | sudo debconf-communicate koha-common * 'debconf-show koha-common' will show you the current debconf configuration. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
136 lines
4.1 KiB
Bash
136 lines
4.1 KiB
Bash
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# Default to "yes"
|
|
AUTOMATIC_TRANSLATIONS_UPDATE="yes"
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
# Read configuration variable file if it is present
|
|
CONFIG=/etc/koha/koha-common.conf
|
|
if [ -r $CONFIG ]; then
|
|
. $CONFIG
|
|
fi
|
|
|
|
conf=/etc/mysql/koha-common.cnf
|
|
if [ ! -e "$conf" ] && [ ! -L "$conf" ]
|
|
then
|
|
ln -s debian.cnf "$conf"
|
|
fi
|
|
|
|
#DEBHELPER#
|
|
|
|
koha-upgrade-schema $(koha-list)
|
|
|
|
# Generate a config file if one doesn't exist already
|
|
if [ ! -e $CONFIG ]; then
|
|
cat <<EOF > $CONFIG
|
|
## Automatic template translation update
|
|
#
|
|
# This variable controls whether template translations should
|
|
# be updated automatically on koha-common package upgrades.
|
|
# Options: 'yes' (default)
|
|
# 'no'
|
|
# Note: if you choose 'no' then you will have to issue
|
|
# $ koha-translate --update <lang_code>
|
|
#
|
|
AUTOMATIC_TRANSLATIONS_UPDATE="yes"
|
|
EOF
|
|
fi
|
|
|
|
# Substitute the values from debconf into the file.
|
|
db_get koha-common/automatically-update-translations
|
|
UPDATE="$RET"
|
|
if [ "$UPDATE" = "false" ]; then
|
|
UPDATE="no"
|
|
else
|
|
UPDATE="yes"
|
|
fi
|
|
# In case they were removed/commented out, we add it in.
|
|
grep -Eq '^ *AUTOMATIC_TRANSLATIONS_UPDATE=' $CONFIG || \
|
|
echo "AUTOMATIC_TRANSLATIONS_UPDATE=" >> $CONFIG
|
|
|
|
sed -e "s/^ *AUTOMATIC_TRANSLATIONS_UPDATE=.*/AUTOMATIC_TRANSLATIONS_UPDATE=\"$UPDATE\"/" < $CONFIG > $CONFIG.tmp
|
|
mv -f $CONFIG.tmp $CONFIG
|
|
|
|
if [ "$AUTOMATIC_TRANSLATIONS_UPDATE" = "yes" ]; then
|
|
for lang in $(koha-translate --list | grep -v -x "en"); do
|
|
if koha-translate --update $lang; then
|
|
echo "Updated the $lang translations."
|
|
else
|
|
cat <<EOF >&2
|
|
ERROR: an error was found when updating '$lang' translations. Please manually
|
|
run 'koha-translate --update $lang'. Run man koha-translate for more options.
|
|
EOF
|
|
fi
|
|
done
|
|
else
|
|
# no auto-update, check update needed and warn if needed
|
|
if koha-translate --list | grep -v -q -x "en"; then
|
|
# translations installed, update needed
|
|
cat <<EOF >&2
|
|
Warning: template translations are not set to be automatically updated.
|
|
Please manually run 'koha-translate --update lang_code' to update them.
|
|
|
|
You can run 'koha-translate --list' to get a list of the installed translations codes.
|
|
EOF
|
|
fi
|
|
fi
|
|
|
|
# Check if we need to rename the Apache vhost files
|
|
RENAME_APACHE_FILES="no"
|
|
for vhost in $(koha-list); do
|
|
if [ -f "/etc/apache2/sites-available/$vhost" ] && \
|
|
[ ! -f "/etc/apache2/sites-available/$vhost.conf" ]; then
|
|
RENAME_APACHE_FILES="yes"
|
|
break # at least one, trigger renaming
|
|
fi
|
|
done
|
|
|
|
if [ "$RENAME_APACHE_FILES" = "yes" ]; then
|
|
# If the user agreed we now rename their Apache files
|
|
db_get koha-common/rename-apache-vhost-files
|
|
if [ "$RET" = "false" ]; then
|
|
# We're not renaming the files, just print a warning
|
|
cat <<EOF >&2
|
|
Warning: you have chosen not to migrate your Apache virtual hosts files to the
|
|
Apache 2.4 naming schema. You can do it manually by running this for each
|
|
Koha instance:
|
|
|
|
$ sudo a2dissite instance
|
|
$ sudo mv /etc/apache2/sites-available/instance \
|
|
/etc/apache2/sites-available/instance.conf
|
|
$ sudo a2ensite instance
|
|
EOF
|
|
else
|
|
# We have to rename the Apache files
|
|
for site in $(koha-list); do
|
|
ENABLE_VHOST="yes"
|
|
if [ -f "/etc/apache2/sites-available/$site" ] && \
|
|
[ ! -f "/etc/apache2/sites-available/$site.conf" ]; then
|
|
if [ ! -f "/etc/apache2/sites-enabled/$site" ]; then
|
|
ENABLE_VHOST="no"
|
|
fi
|
|
a2dissite $site > /dev/null 2>&1 || true
|
|
rm -f "/etc/apache2/sites-enabled/$site"
|
|
# Rename the vhost definition files
|
|
mv "/etc/apache2/sites-available/$site" \
|
|
"/etc/apache2/sites-available/$site.conf"
|
|
|
|
if [ "$ENABLE_VHOST" = "yes" ]; then
|
|
if ! {
|
|
a2ensite "$site" > /dev/null 2>&1 ||
|
|
a2ensite "${site}.conf" > /dev/null 2>&1
|
|
}; then
|
|
echo "Warning: problem enabling $site in Apache" >&2
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
db_stop
|
|
|
|
exit 0
|