Koha/debian/koha-common.postinst
Martin Renvoize e07c9e9f06 Bug 14300: Add %P to SIP LogPattern
This patch adds `%P` to the SIP log4perl configuration so that PID is
recorded against log lines.

This allows transactions to be more easily tied together under one
SIPServer, thus making it easier to pick out a whole transaction from
start to finish.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-04-21 15:25:07 +02:00

270 lines
9.2 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
log4perl_component()
{
local config=$1
local component=$2
if grep -q "log4perl.logger.$component" $config; then
return 0
else
return 1
fi
}
# Take care of the instance's log4perl.conf file
for site in $(koha-list); do
log4perl_config="/etc/koha/sites/$site/log4perl.conf"
if ! log4perl_component $log4perl_config "z3950"; then
cat <<EOF >> $log4perl_config
log4perl.logger.z3950 = WARN, Z3950
log4perl.appender.Z3950=Log::Log4perl::Appender::File
log4perl.appender.Z3950.filename=/var/log/koha/$site/z3950-error.log
log4perl.appender.Z3950.mode=append
log4perl.appender.Z3950.layout=PatternLayout
log4perl.appender.Z3950.layout.ConversionPattern=[%d] [%p] %m %l %n
log4perl.appender.Z3950.utf8=1
EOF
fi
if ! log4perl_component $log4perl_config "api"; then
cat <<EOF >> $log4perl_config
log4perl.logger.api = WARN, API
log4perl.appender.API=Log::Log4perl::Appender::File
log4perl.appender.API.filename=/var/log/koha/$site/api-error.log
log4perl.appender.API.mode=append
log4perl.appender.API.layout=PatternLayout
log4perl.appender.API.layout.ConversionPattern=[%d] [%p] %m %l %n
log4perl.appender.API.utf8=1
EOF
fi
done
for site in $(koha-list); do
log4perl_config="/etc/koha/sites/$site/log4perl.conf"
if ! log4perl_component $log4perl_config "sip"; then
cat <<EOF >> $log4perl_config
log4perl.logger.sip = DEBUG, SIP
log4perl.appender.SIP=Log::Log4perl::Appender::File
log4perl.appender.SIP.filename=/var/log/koha/$site/sip.log
log4perl.appender.SIP.mode=append
log4perl.appender.SIP.layout=PatternLayout
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %m %l %n
log4perl.appender.SIP.utf8=1
EOF
fi
done
for site in $(koha-list); do
log4perl_config="/etc/koha/sites/$site/log4perl.conf"
if ! log4perl_component $log4perl_config "plack-opac"; then
cat <<EOF >> $log4perl_config
log4perl.logger.plack-opac = WARN, PLACKOPAC
log4perl.appender.PLACKOPAC=Log::Log4perl::Appender::File
log4perl.appender.PLACKOPAC.filename=/var/log/koha/$site/plack-opac-error.log
log4perl.appender.PLACKOPAC.mode=append
log4perl.appender.PLACKOPAC.layout=PatternLayout
log4perl.appender.PLACKOPAC.layout.ConversionPattern=[%d] [%p] %m
log4perl.appender.PLACKOPAC.utf8=1
EOF
fi
done
for site in $(koha-list); do
log4perl_config="/etc/koha/sites/$site/log4perl.conf"
if ! log4perl_component $log4perl_config "plack-api"; then
cat <<EOF >> $log4perl_config
log4perl.logger.plack-api = WARN, PLACKAPI
log4perl.appender.PLACKAPI=Log::Log4perl::Appender::File
log4perl.appender.PLACKAPI.filename=/var/log/koha/$site/plack-api-error.log
log4perl.appender.PLACKAPI.mode=append
log4perl.appender.PLACKAPI.layout=PatternLayout
log4perl.appender.PLACKAPI.layout.ConversionPattern=[%d] [%p] %m
log4perl.appender.PLACKAPI.utf8=1
EOF
fi
done
for site in $(koha-list); do
log4perl_config="/etc/koha/sites/$site/log4perl.conf"
if ! log4perl_component $log4perl_config "plack-intranet"; then
cat <<EOF >> $log4perl_config
log4perl.logger.plack-intranet = WARN, PLACKINTRANET
log4perl.appender.PLACKINTRANET=Log::Log4perl::Appender::File
log4perl.appender.PLACKINTRANET.filename=/var/log/koha/$site/plack-intranet-error.log
log4perl.appender.PLACKINTRANET.mode=append
log4perl.appender.PLACKINTRANET.layout=PatternLayout
log4perl.appender.PLACKINTRANET.layout.ConversionPattern=[%d] [%p] %m
log4perl.appender.PLACKINTRANET.utf8=1
EOF
fi
done
for site in $(koha-list); do
kohaconfig="/etc/koha/sites/$site/koha-conf.xml"
logdir="$( xmlstarlet sel -t -v 'yazgfs/config/logdir' $kohaconfig )"
if [ "$logdir" != "" ] && [ "$logdir" != "0" ]; then
chown -R $site-koha:$site-koha $logdir
else
chown -R $site-koha:$site-koha /var/log/koha/$site
fi
done
# Bug 14106 - fix the modulePath of existing koha instances so that it'll
# continue to work. This will only patch the files if the exact original string
# that we're fixing them from is there, so we just run it every time. Maybe
# in many years time we can get rid of this, when no one will be running
# Koha < 3.20.
for zfile in $( find /etc/koha/sites -name zebra-authorities-dom.cfg -or -name zebra-biblios-dom.cfg ); do
perl -p -i -e 's{^modulePath: /usr/lib/idzebra-2.0/modules$}{modulePath: /usr/lib/idzebra-2.0/modules:/usr/lib/x86_64-linux-gnu/idzebra-2.0/modules:/usr/lib/i386-linux-gnu/idzebra-2.0/modules:/usr/lib/aarch64-linux-gnu/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabi/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabihf/idzebra-2.0/modules:/usr/lib/mips-linux-gnu/idzebra-2.0/modules:/usr/lib/mipsel-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc64le-linux-gnu/idzebra-2.0/modules:/usr/lib/s390x-linux-gnu/idzebra-2.0/modules}' $zfile
done
db_stop
rabbitmq-plugins enable rabbitmq_stomp
service rabbitmq-server restart
# Bug 18250: Correct startup order of koha-common and memcached
# Since the init script has been updated, we can force the order in rc.d
# by disabling and enabling again.
update-rc.d koha-common disable
update-rc.d koha-common enable
exit 0