Bug 24905: Make installer update log4perl.conf for instances
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 19 Mar 2020 13:51:40 +0000 (10:51 -0300)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 27 Mar 2020 08:38:03 +0000 (08:38 +0000)
This patch makes koha-common.postinst check if the log4perl.conf files
on the instances need tweaking. If they do, it appends the relevant
configuration text.

To test:
1. Install Koha 19.11 or earlier using the packages
2. Create an instance:
   $ koha-create --create-db test1
   $ koha-create --create-db test2
=> FAIL: /etc/koha/sites/test1/log4perl.conf doesn't include an entry for
z39.50
3. Apply this patch and run:
   $ docker run \
      --volume=/path/to/your/clone:/koha \
      --volume=/dest/path/for/debs:/debs \
      --privileged
      --env VERSION=19.12.00.047 \
      koha/koha-dpkg:master
Note: Paths need to be adjusted
4. Grab the .deb files and put them on the machine you're testing this
5. Edit /etc/koha/sites/test2/log4perl.conf and add the following text
   at the bottom: log4perl.logger.z3950
6. Install the debs:
   $ sudo dpkg -i koha-perldeps koha-deps koha-common
=> SUCCESS: Install process doesn't explode due to the addition
=> SUCCESS: /etc/koha/sites/test1/log4perl.conf has a new entry for log4perl.logger.z3950
=> SUCCESS: /etc/koha/sites/test2/log4perl.conf doesn't have a new entry for log4perl.logger.z3950
7. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

debian/koha-common.postinst

index b5f72cd..55f3c14 100644 (file)
@@ -131,6 +131,34 @@ EOF
     fi
 fi
 
+log4perl_component()
+{
+    local config=$1
+    local component=$2
+
+    if [ grep -q -x "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
+
+EOF
+    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