|
Line 0
Link Here
|
|
|
1 |
#!/bin/sh |
| 2 |
|
| 3 |
set -e |
| 4 |
|
| 5 |
# Default to "yes" |
| 6 |
AUTOMATIC_TRANSLATIONS_UPDATE="yes" |
| 7 |
|
| 8 |
. /usr/share/debconf/confmodule |
| 9 |
|
| 10 |
# Read configuration variable file if it is present |
| 11 |
CONFIG=/etc/koha/koha-common.conf |
| 12 |
if [ -r $CONFIG ]; then |
| 13 |
. $CONFIG |
| 14 |
fi |
| 15 |
|
| 16 |
conf=/etc/mysql/koha-common.cnf |
| 17 |
if [ ! -e "$conf" ] && [ ! -L "$conf" ] |
| 18 |
then |
| 19 |
ln -s debian.cnf "$conf" |
| 20 |
fi |
| 21 |
|
| 22 |
#DEBHELPER# |
| 23 |
|
| 24 |
koha-upgrade-schema $(koha-list) |
| 25 |
|
| 26 |
# Generate a config file if one doesn't exist already |
| 27 |
if [ ! -e $CONFIG ]; then |
| 28 |
cat <<EOF > $CONFIG |
| 29 |
## Automatic template translation update |
| 30 |
# |
| 31 |
# This variable controls whether template translations should |
| 32 |
# be updated automatically on koha-common package upgrades. |
| 33 |
# Options: 'yes' (default) |
| 34 |
# 'no' |
| 35 |
# Note: if you choose 'no' then you will have to issue |
| 36 |
# $ koha-translate --update <lang_code> |
| 37 |
# |
| 38 |
AUTOMATIC_TRANSLATIONS_UPDATE="yes" |
| 39 |
EOF |
| 40 |
fi |
| 41 |
|
| 42 |
# Substitute the values from debconf into the file. |
| 43 |
db_get koha-core/automatically-update-translations |
| 44 |
UPDATE="$RET" |
| 45 |
if [ "$UPDATE" = "false" ]; then |
| 46 |
UPDATE="no" |
| 47 |
else |
| 48 |
UPDATE="yes" |
| 49 |
fi |
| 50 |
# In case they were removed/commented out, we add it in. |
| 51 |
grep -Eq '^ *AUTOMATIC_TRANSLATIONS_UPDATE=' $CONFIG || \ |
| 52 |
echo "AUTOMATIC_TRANSLATIONS_UPDATE=" >> $CONFIG |
| 53 |
|
| 54 |
sed -e "s/^ *AUTOMATIC_TRANSLATIONS_UPDATE=.*/AUTOMATIC_TRANSLATIONS_UPDATE=\"$UPDATE\"/" < $CONFIG > $CONFIG.tmp |
| 55 |
mv -f $CONFIG.tmp $CONFIG |
| 56 |
|
| 57 |
if [ "$AUTOMATIC_TRANSLATIONS_UPDATE" = "yes" ]; then |
| 58 |
for lang in $(koha-translate --list | grep -v -x "en"); do |
| 59 |
if koha-translate --update $lang; then |
| 60 |
echo "Updated the $lang translations." |
| 61 |
else |
| 62 |
cat <<EOF >&2 |
| 63 |
ERROR: an error was found when updating '$lang' translations. Please manually |
| 64 |
run 'koha-translate --update $lang'. Run man koha-translate for more options. |
| 65 |
EOF |
| 66 |
fi |
| 67 |
done |
| 68 |
else |
| 69 |
# no auto-update, check update needed and warn if needed |
| 70 |
if koha-translate --list | grep -v -q -x "en"; then |
| 71 |
# translations installed, update needed |
| 72 |
cat <<EOF >&2 |
| 73 |
Warning: template translations are not set to be automatically updated. |
| 74 |
Please manually run 'koha-translate --update lang_code' to update them. |
| 75 |
|
| 76 |
You can run 'koha-translate --list' to get a list of the installed translations codes. |
| 77 |
EOF |
| 78 |
fi |
| 79 |
fi |
| 80 |
|
| 81 |
# Check if we need to rename the Apache vhost files |
| 82 |
RENAME_APACHE_FILES="no" |
| 83 |
for vhost in $(koha-list); do |
| 84 |
if [ -f "/etc/apache2/sites-available/$vhost" ] && \ |
| 85 |
[ ! -f "/etc/apache2/sites-available/$vhost.conf" ]; then |
| 86 |
RENAME_APACHE_FILES="yes" |
| 87 |
break # at least one, trigger renaming |
| 88 |
fi |
| 89 |
done |
| 90 |
|
| 91 |
if [ "$RENAME_APACHE_FILES" = "yes" ]; then |
| 92 |
# If the user agreed we now rename their Apache files |
| 93 |
db_get koha-core/rename-apache-vhost-files |
| 94 |
if [ "$RET" = "false" ]; then |
| 95 |
# We're not renaming the files, just print a warning |
| 96 |
cat <<EOF >&2 |
| 97 |
Warning: you have chosen not to migrate your Apache virtual hosts files to the |
| 98 |
Apache 2.4 naming schema. You can do it manually by running this for each |
| 99 |
Koha instance: |
| 100 |
|
| 101 |
$ sudo a2dissite instance |
| 102 |
$ sudo mv /etc/apache2/sites-available/instance \ |
| 103 |
/etc/apache2/sites-available/instance.conf |
| 104 |
$ sudo a2ensite instance |
| 105 |
EOF |
| 106 |
else |
| 107 |
# We have to rename the Apache files |
| 108 |
for site in $(koha-list); do |
| 109 |
ENABLE_VHOST="yes" |
| 110 |
if [ -f "/etc/apache2/sites-available/$site" ] && \ |
| 111 |
[ ! -f "/etc/apache2/sites-available/$site.conf" ]; then |
| 112 |
if [ ! -f "/etc/apache2/sites-enabled/$site" ]; then |
| 113 |
ENABLE_VHOST="no" |
| 114 |
fi |
| 115 |
a2dissite $site > /dev/null 2>&1 || true |
| 116 |
rm -f "/etc/apache2/sites-enabled/$site" |
| 117 |
# Rename the vhost definition files |
| 118 |
mv "/etc/apache2/sites-available/$site" \ |
| 119 |
"/etc/apache2/sites-available/$site.conf" |
| 120 |
|
| 121 |
if [ "$ENABLE_VHOST" = "yes" ]; then |
| 122 |
if ! { |
| 123 |
a2ensite "$site" > /dev/null 2>&1 || |
| 124 |
a2ensite "${site}.conf" > /dev/null 2>&1 |
| 125 |
}; then |
| 126 |
echo "Warning: problem enabling $site in Apache" >&2 |
| 127 |
fi |
| 128 |
fi |
| 129 |
fi |
| 130 |
done |
| 131 |
fi |
| 132 |
fi |
| 133 |
|
| 134 |
log4perl_component() |
| 135 |
{ |
| 136 |
local config=$1 |
| 137 |
local component=$2 |
| 138 |
|
| 139 |
if grep -q "log4perl.logger.$component" $config; then |
| 140 |
return 0 |
| 141 |
else |
| 142 |
return 1 |
| 143 |
fi |
| 144 |
} |
| 145 |
|
| 146 |
# Take care of the instance's log4perl.conf file |
| 147 |
for site in $(koha-list); do |
| 148 |
log4perl_config="/etc/koha/sites/$site/log4perl.conf" |
| 149 |
if ! log4perl_component $log4perl_config "z3950"; then |
| 150 |
cat <<EOF >> $log4perl_config |
| 151 |
log4perl.logger.z3950 = WARN, Z3950 |
| 152 |
log4perl.appender.Z3950=Log::Log4perl::Appender::File |
| 153 |
log4perl.appender.Z3950.filename=/var/log/koha/$site/z3950-error.log |
| 154 |
log4perl.appender.Z3950.mode=append |
| 155 |
log4perl.appender.Z3950.layout=PatternLayout |
| 156 |
log4perl.appender.Z3950.layout.ConversionPattern=[%d] [%p] %m %l %n |
| 157 |
log4perl.appender.Z3950.utf8=1 |
| 158 |
|
| 159 |
EOF |
| 160 |
fi |
| 161 |
|
| 162 |
if ! log4perl_component $log4perl_config "api"; then |
| 163 |
cat <<EOF >> $log4perl_config |
| 164 |
log4perl.logger.api = WARN, API |
| 165 |
log4perl.appender.API=Log::Log4perl::Appender::File |
| 166 |
log4perl.appender.API.filename=/var/log/koha/$site/api-error.log |
| 167 |
log4perl.appender.API.mode=append |
| 168 |
log4perl.appender.API.layout=PatternLayout |
| 169 |
log4perl.appender.API.layout.ConversionPattern=[%d] [%p] %m %l %n |
| 170 |
log4perl.appender.API.utf8=1 |
| 171 |
|
| 172 |
EOF |
| 173 |
fi |
| 174 |
done |
| 175 |
|
| 176 |
for site in $(koha-list); do |
| 177 |
log4perl_config="/etc/koha/sites/$site/log4perl.conf" |
| 178 |
if ! log4perl_component $log4perl_config "sip"; then |
| 179 |
cat <<EOF >> $log4perl_config |
| 180 |
log4perl.logger.sip = DEBUG, SIP |
| 181 |
log4perl.appender.SIP=Log::Log4perl::Appender::File |
| 182 |
log4perl.appender.SIP.filename=/var/log/koha/$site/sip.log |
| 183 |
log4perl.appender.SIP.mode=append |
| 184 |
log4perl.appender.SIP.layout=PatternLayout |
| 185 |
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%p] %m %l %n |
| 186 |
log4perl.appender.SIP.utf8=1 |
| 187 |
|
| 188 |
EOF |
| 189 |
fi |
| 190 |
done |
| 191 |
|
| 192 |
for site in $(koha-list); do |
| 193 |
log4perl_config="/etc/koha/sites/$site/log4perl.conf" |
| 194 |
if ! log4perl_component $log4perl_config "plack-opac"; then |
| 195 |
cat <<EOF >> $log4perl_config |
| 196 |
log4perl.logger.plack-opac = WARN, PLACKOPAC |
| 197 |
log4perl.appender.PLACKOPAC=Log::Log4perl::Appender::File |
| 198 |
log4perl.appender.PLACKOPAC.filename=/var/log/koha/$site/plack-opac-error.log |
| 199 |
log4perl.appender.PLACKOPAC.mode=append |
| 200 |
log4perl.appender.PLACKOPAC.layout=PatternLayout |
| 201 |
log4perl.appender.PLACKOPAC.layout.ConversionPattern=[%d] [%p] %m |
| 202 |
log4perl.appender.PLACKOPAC.utf8=1 |
| 203 |
|
| 204 |
EOF |
| 205 |
fi |
| 206 |
done |
| 207 |
|
| 208 |
for site in $(koha-list); do |
| 209 |
log4perl_config="/etc/koha/sites/$site/log4perl.conf" |
| 210 |
if ! log4perl_component $log4perl_config "plack-api"; then |
| 211 |
cat <<EOF >> $log4perl_config |
| 212 |
log4perl.logger.plack-api = WARN, PLACKAPI |
| 213 |
log4perl.appender.PLACKAPI=Log::Log4perl::Appender::File |
| 214 |
log4perl.appender.PLACKAPI.filename=/var/log/koha/$site/plack-api-error.log |
| 215 |
log4perl.appender.PLACKAPI.mode=append |
| 216 |
log4perl.appender.PLACKAPI.layout=PatternLayout |
| 217 |
log4perl.appender.PLACKAPI.layout.ConversionPattern=[%d] [%p] %m |
| 218 |
log4perl.appender.PLACKAPI.utf8=1 |
| 219 |
|
| 220 |
EOF |
| 221 |
fi |
| 222 |
done |
| 223 |
|
| 224 |
for site in $(koha-list); do |
| 225 |
log4perl_config="/etc/koha/sites/$site/log4perl.conf" |
| 226 |
if ! log4perl_component $log4perl_config "plack-intranet"; then |
| 227 |
cat <<EOF >> $log4perl_config |
| 228 |
log4perl.logger.plack-intranet = WARN, PLACKINTRANET |
| 229 |
log4perl.appender.PLACKINTRANET=Log::Log4perl::Appender::File |
| 230 |
log4perl.appender.PLACKINTRANET.filename=/var/log/koha/$site/plack-intranet-error.log |
| 231 |
log4perl.appender.PLACKINTRANET.mode=append |
| 232 |
log4perl.appender.PLACKINTRANET.layout=PatternLayout |
| 233 |
log4perl.appender.PLACKINTRANET.layout.ConversionPattern=[%d] [%p] %m |
| 234 |
log4perl.appender.PLACKINTRANET.utf8=1 |
| 235 |
|
| 236 |
EOF |
| 237 |
fi |
| 238 |
done |
| 239 |
|
| 240 |
for site in $(koha-list); do |
| 241 |
kohaconfig="/etc/koha/sites/$site/koha-conf.xml" |
| 242 |
logdir="$( xmlstarlet sel -t -v 'yazgfs/config/logdir' $kohaconfig )" |
| 243 |
if [ "$logdir" != "" ] && [ "$logdir" != "0" ]; then |
| 244 |
chown -R $site-koha:$site-koha $logdir |
| 245 |
else |
| 246 |
chown -R $site-koha:$site-koha /var/log/koha/$site |
| 247 |
fi |
| 248 |
done |
| 249 |
|
| 250 |
# Bug 14106 - fix the modulePath of existing koha instances so that it'll |
| 251 |
# continue to work. This will only patch the files if the exact original string |
| 252 |
# that we're fixing them from is there, so we just run it every time. Maybe |
| 253 |
# in many years time we can get rid of this, when no one will be running |
| 254 |
# Koha < 3.20. |
| 255 |
for zfile in $( find /etc/koha/sites -name zebra-authorities-dom.cfg -or -name zebra-biblios-dom.cfg ); do |
| 256 |
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 |
| 257 |
done |
| 258 |
|
| 259 |
db_stop |
| 260 |
|
| 261 |
# Bug 18250: Correct startup order of koha-common and memcached |
| 262 |
# Since the init script has been updated, we can force the order in rc.d |
| 263 |
# by disabling and enabling again. |
| 264 |
update-rc.d koha-core disable |
| 265 |
update-rc.d koha-core enable |
| 266 |
|
| 267 |
exit 0 |