#7 Drop clamd@scan.service file (bz#1725810)
Merged 4 years ago by orion. Opened 4 years ago by orion.
rpms/ orion/clamav systemd  into  master

file modified
+19 -20
@@ -1,5 +1,5 @@ 

- Please note since el7 and Fedora 15 or 19 we use only systemd.

- upstart and sysv was dropped, this document may still applies to el6.

+ Please note for Fedora and EPEL 7+ we use only systemd.

+ upstart and sysvinit only apply to EPEL 6.

  

  A clamav-milter setup consists of the following three components:

  
@@ -11,18 +11,22 @@ 

    The main configuration is in /etc/mail/clamav-milter.conf and MUST

    be changed before first use.

  

+   This can be enabled with: 'systemctl enable clamav-milter.service'

+ 

    The -sysvinit package is managed by the traditional tools, but

    -upstart requires modification of /etc/event.d/clamav-milter to

    enable automatic startup.  See comments there for more details.

  

  * a clamav scanner daemon

  

-   --> this package is called 'clamav-scanner' plus (alternatively)

-       'clamav-scanner-upstart' or 'clamav-scanner-sysvinit'

+   --> this is in the clamd package (or on EL6:

+       'clamav-scanner-upstart' or 'clamav-scanner-sysvinit')

  

    The daemon is configured by /etc/clamd.d/scan.conf (which MUST be

    edited before first use).

  

+   This can be enabled with: 'systemctl enable clamd@scan.service'

+ 

    The -sysvinit package is managed by the traditional tools, but

    -upstart requires modification of /etc/event.d/clamd.scan to enable

    automatic startup.  See comments there for more details.
@@ -32,19 +36,14 @@ 

    --> you should know how to install this...

  

    When communicating across unix sockets with the clamav-milter, it is

-   suggested to use the /var/run/clamav-milter/clamav-milter.socket

+   suggested to use the /run/clamav-milter/clamav-milter.socket

    path.  You have to add something like

  

-     INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav-milter/clamav-milter.socket, F=, T=S:4m;R:4m')dnl

+     INPUT_MAIL_FILTER(`clamav', `S=local:/run/clamav-milter/clamav-milter.socket, F=, T=S:4m;R:4m')dnl

  

    to your sendmail.mc.

  

  

- 

- It is suggested that components communicate through TCP sockets as

- this eases setup.  Please add corresponding packet filter rules!

- 

- 

  EXAMPLE

  =======

  
@@ -70,13 +69,13 @@ 

  

       and all the other options which are required on your system

  

-   3. Edit /etc/event.d/clamav-milter and uncomment the

+   3. Enable clamav-milter.service:

  

-     | start on starting local

+     | systemctl enable clamav-milter.service

  

-      line. Restart your system or execute

+      Restart your system or execute

  

-     | initctl emit starting local

+     | systemctl start clamav-milter.service

  

    4. Add something like

  
@@ -90,7 +89,7 @@ 

  

  C)  On the clamav-scanner host (assumed hostname 'host-scanner')

  

-   1. Install clamav-scanner + clamav-scanner-upstart packages

+   1. Install clamd

  

    2. Add to /etc/clamd.d/scan.conf

  
@@ -100,13 +99,13 @@ 

       comment out possible 'LocalSocket' lines and set all the other

       options which are required on your system

  

-   3. Edit /etc/event.d/clamav-scanner and uncomment the

+   3. Enable clamd@scan.service:

  

-     | start on starting local

+     | systemctl enable clamd@scan.service

  

-      line. Restart your system or execute

+      Restart your system or execute

  

-     | initctl emit starting local

+     | systemctl start clamd@scan.service

  

    4. Add something like

  

file modified
+13 -17
@@ -54,7 +54,7 @@ 

  Summary:    End-user tools for the Clam Antivirus scanner

  Name:       clamav

  Version:    0.101.4

- Release:    2%{?dist}

+ Release:    3%{?dist}

  License:    %{?with_unrar:proprietary}%{!?with_unrar:GPLv2}

  URL:        https://www.clamav.net/

  %if %{with unrar}
@@ -82,8 +82,6 @@ 

  Source11:   daily-25550.cvd

  #http://database.clamav.net/bytecode.cvd

  Source12:   bytecode-330.cvd

- #for devel

- Source100:  clamd-gen

  #for update

  Source200:  freshclam-sleep

  Source201:  freshclam.sysconfig
@@ -326,8 +324,8 @@ 

  

  sed -ri \

      -e 's!^#?(LogFile ).*!#\1/var/log/clamd.<SERVICE>!g' \

-     -e 's!^#?(LocalSocket ).*!#\1/var/run/clamd.<SERVICE>/clamd.sock!g' \

-     -e 's!^(#?PidFile ).*!\1/var/run/clamd.<SERVICE>/clamd.pid!g' \

+     -e 's!^#?(LocalSocket ).*!#\1%{_rundir}/clamd.<SERVICE>/clamd.sock!g' \

+     -e 's!^(#?PidFile ).*!\1%{_rundir}/clamd.<SERVICE>/clamd.pid!g' \

      -e 's!^#?(User ).*!\1<USER>!g' \

      -e 's!^#?(AllowSupplementaryGroups|LogSyslog).*!\1 yes!g' \

      -e 's! /usr/local/share/clamav,! %homedir,!g' \
@@ -433,7 +431,6 @@ 

  %if %{with sysv}

  install -m 0644 -p %SOURCE520       $RPM_BUILD_ROOT%pkgdatadir/

  %endif

- install -m 0755 -p %SOURCE100       $RPM_BUILD_ROOT%pkgdatadir/

  cp -pa _doc_server/*            $RPM_BUILD_ROOT%pkgdatadir/template

  

  %if %{with sysv}
@@ -471,7 +468,6 @@ 

  %endif

  

  install -D -p -m 0644 %SOURCE410 $RPM_BUILD_ROOT%_sysconfdir/init/clamd.scan.conf

- install -D -p -m 0644 %SOURCE430 $RPM_BUILD_ROOT%_unitdir/clamd@scan.service

  

  cat << EOF > $RPM_BUILD_ROOT%_tmpfilesdir/clamd.scan.conf

  d %scanstatedir 0710 %scanuser virusgroup
@@ -553,8 +549,10 @@ 

  /usr/bin/killall -u %scanuser clamd 2>/dev/null || :

  %endif

  %if %{with systemd}

- %systemd_post clamd@.service

- %systemd_post clamd@scan.service

+ # Point to the new service unit

+ [ -L /etc/systemd/system/multi-user.target.wants/clamd@scan.service ] &&

+     ln -sf /usr/lib/systemd/system/clamd@.service /etc/systemd/system/multi-user.target.wants/clamd@scan.service || :

+ %systemd_post clamd@\*.service

  %{?with_tmpfiles:/bin/systemd-tmpfiles --create %_tmpfilesdir/clamd.scan.conf || :}

  %endif

  
@@ -567,8 +565,7 @@ 

  test "$1" != "0" || /sbin/initctl -q stop clamd.scan || :

  %endif

  %if %{with systemd}

- %systemd_preun clamd@.service

- %systemd_preun clamd@scan.service

+ %systemd_preun clamd@\*.service

  %endif

  

  %postun -n clamd
@@ -576,8 +573,7 @@ 

  test "$1"  = 0 || %_initrddir/clamd.scan condrestart >/dev/null || :

  %endif

  %if %{with systemd}

- %systemd_postun_with_restart clamd@.service

- %systemd_postun_with_restart clamd@scan.service

+ %systemd_postun_with_restart clamd@\*.service

  %endif

  

  
@@ -670,7 +666,6 @@ 

  %_includedir/*

  %_libdir/*.so

  %pkgdatadir/template

- %pkgdatadir/clamd-gen

  %_libdir/pkgconfig/*

  %_bindir/clamav-config

  
@@ -735,9 +730,6 @@ 

  %if %{with upstart}

    %config(noreplace) %_sysconfdir/init/clamd.scan*

  %endif

- %if %{with systemd}

-   %_unitdir/clamd@scan.service

- %endif

  

  ## -----------------------

  
@@ -769,6 +761,10 @@ 

  

  

  %changelog

+ * Mon Nov 18 2019 Orion Poplawski <orion@nwra.com> - 0.101.4-3

+ - Drop clamd@scan.service file (bz#1725810)

+ - Change /var/run to /run

+ 

  * Mon Nov 18 2019 Orion Poplawski <orion@nwra.com> - 0.101.4-2

  - Add TimeoutStartSec=420 to clamd@.service to match upstream (bz#1764835)

  

file modified
+7 -8
@@ -1,10 +1,9 @@ 

  To create individual clamd-instance take the following files and

  modify/copy them in the suggested way:

  

- clamd.conf:

-   * set LocalSocket (or better: TCPSocket) and User to suitable values;

-     avoid PidFile unless it is required by system monitoring or something

-     else. Logging through syslog is usually better than an individual

+ /etc/clamd/scan.conf:

+   * set LocalSocket for localhost access or TCPSocket for network access

+     and User to suitable values. Logging through syslog is usually better than an individual

      Logfile.

    * place this file into /etc/clamd.d with an unique service-name;

      e.g. as /etc/clamd.d/<SERVICE>.conf
@@ -40,10 +39,10 @@ 

  

  Additionally, when using LocalSocket instead of TCPSocket, the directory

  for the socket file must be created.  For tmpfiles based systems, you

- might want to create a file /usr/lib/tmpfiles.d/clamd.<SERVICE>.conf

+ might want to create a file /etc/tmpfiles.d/clamd.<SERVICE>.conf

  with a content of

  

-  | d /var/run/clamd.<SERVICE> <MODE> <USER> <GROUP>

+  | d /run/clamd.<SERVICE> <MODE> <USER> <GROUP>

  

  Adjust <MODE> (0710 should suffice for most cases) and <USER> + <GROUP>

  so that the socket can be accessed by clamd and by the applications
@@ -53,9 +52,9 @@ 

  After emulating these steps by hand (or else rebooting), you still need set

  SELinux:

  

-  chcon -t clamd_var_run_t /var/run/clamd.<SERVICE>

+  chcon -t clamd_var_run_t /run/clamd.<SERVICE>

  or

-  restorecon -R -v "/var/run/clamd.<SERVICE>"

+  restorecon -R -v "/run/clamd.<SERVICE>"

  

  More SELinux notes:

  you may need run:

file removed
-269
@@ -1,269 +0,0 @@ 

- #! /bin/bash

- 

- # Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>

- #

- # This program is free software; you can redistribute it and/or modify

- # it under the terms of the GNU General Public License as published by

- # the Free Software Foundation; version 2 of the License.

- #

- # This program is distributed in the hope that it will be useful,

- # but WITHOUT ANY WARRANTY; without even the implied warranty of

- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

- # GNU General Public License for more details.

- #

- # You should have received a copy of the GNU General Public License

- # along with this program; if not, write to the Free Software

- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

- 

- function showHelp()

- {

-     echo \

- $"Usage: clamd-gen --service=<SERVICE> --version=<VERSION> --release=<RELEASE>

-                  --license=<LICENSE> --username=>USERNAME>

- "

-     exit 0

- }

- 

- function rpm.generatePreamble()

- {

-     cat <<EOF

- %{!?release_func:%define release_func()	%1%{?dist}}

- # The name of the minit service

- %define minitsvcdir	%minitdir/services/%name

- # The configuration file for the SysV initservice

- %define conffile	%_sysconfdir/clamd.d/%service.conf

- # The directory, where the milter socket will be placed into; this

- # socket will be named clamd.sock

- %define rundir		/var/run/clamd.%service

- # The name of the logfile

- %define logfile		/var/log/clamd.%service

- # The user under whose id, the clamd shall be running. This user must

- # be able to read the files from the base-service and is usually

- # created there.

- %define username	$USERNAME

- # The packagename of the service

- %define service		$SERVICE

- # The service name as used by the system's initscripts; usually this

- # is %service

- %define baseservice	%service

- 

- %define __chkconfig	/sbin/chkconfig

- %define minitdir	%_sysconfdir/minit

- 

- 

- EOF

- }

- 

- function rpm.generateHeader()

- {

-     cat <<EOF

- Summary:		Clamav server for '%service'

- Name:			clamd.%service

- Version:		$VERSION

- Release:		%release_func $RELEASE

- Epoch:			0

- License:		$LICENSE

- Group:			System Environment/Daemons

- BuildRoot:		%_tmppath/%name-%version-%release-root

- BuildArch:		noarch

- Requires:		init(%name)

- Requires(pre):		%service

- Requires:		clamav-server

- BuildRequires:		clamav-devel

- 

- %package sysv

- Summary:		SysV initscripts for a %service clamav-server

- Group:			System Environment/Daemons

- Provides:		init(%name) = sysv

- Conflicts:		init(%name) < sysv

- Conflicts:		init(%name) > sysv

- Requires:		clamav-server-sysv

- Requires(post):		%name = %epoch:%version-%release

- Requires(post):		diffutils mktemp %__chkconfig

- Requires(preun):	%__chkconfig

- Requires(pre):		%_initrddir

- Requires(postun):	%_initrddir

- 

- %package minit

- Summary:		minit initscripts for a %service clamav-server

- Group:			System Environment/Daemons

- Provides:		init(%name) = minit

- Conflicts:		init(%name) < minit

- Conflicts:		init(%name) > minit

- Requires(post):		%name = %epoch:%version-%release

- Requires(post):		diffutils mktemp

- Requires(pre):		minit-setup

- Requires(postun):	minit-setup

- Requires(triggers):	minit-tools

- 

- 

- %description

- Basic setup for a clamav server for '%service'.

- 

- 

- %description sysv

- Basic setup for a clamav server for '%service'.

- 

- This package contains initscripts for SysV based systems.

- 

- 

- %description minit

- Basic setup for a clamav server for '%service'.

- 

- This package contains initscripts for minit based systems.

- 

- EOF

- }

- 

- 

- function rpm.genBody()

- {

-     cat <<"XEOFX"

- %prep

- %build

- 

- %install

- rm -rf $RPM_BUILD_ROOT

- %__install -d -m755 $RPM_BUILD_ROOT{%minitsvcdir,%_sbindir,%rundir,/var/log}

- 

- d=/usr/share/clamav/template

- 

- function subst

- {

- 	src=$d/$1

- 	dst=$RPM_BUILD_ROOT$2

- 

- 	%__install -d -m755 $(dirname "$dst")

- 	sed -e 's!^\(#?LogFile \).*!\1%logfile!g;

- 		s!^#?\(LocalSocket \).*!\1%rundir/clamd.sock!g;

- 		s!^#?\(PidFile \).*!\1%rundir/clamd.pid!g;

- 		s!<SERVICE>!%service!g;

- 		s!<USER>!%username!g;' "$src" >"$dst"

- 	chmod --reference "$src" "$dst"

- }

- 

- subst clamd.conf      %conffile

- subst clamd.logrotate %_sysconfdir/logrotate.d/clamd.%service

- 

- %if 0%{!?_without_sysv:1}

- subst clamd.sysconfig %_sysconfdir/sysconfig/clamd.%service

- subst clamd.init      %_initrddir/clamd.%service

- %endif

- 

- ln -s clamd $RPM_BUILD_ROOT%_sbindir/clamd.%service

- 

- touch $RPM_BUILD_ROOT%logfile

- touch $RPM_BUILD_ROOT%rundir/clamd.sock

- 

- %if 0%{!?_without_minit:1}

- ln -s %_sbindir/clamd.%service $RPM_BUILD_ROOT%minitsvcdir/run

- touch                          $RPM_BUILD_ROOT%minitsvcdir/respawn

- cat <<EOF                     >$RPM_BUILD_ROOT%minitsvcdir/params

- -c

- %conffile

- EOF

- %endif

- 

- %clean

- rm -rf $RPM_BUILD_ROOT

- 

- 

- %triggerin minit -- %baseservice

- minit-svc add services/clamd.%service services/%baseservice/

- 

- %triggerun minit -- %baseservice

- test "$1" != 0 -a "$2" != 0 || \

- 	minit-svc del services/clamd.%service services/%baseservice/

- 

- 

- %post minit

- d=$(mktemp /tmp/clamd.%service.XXXXXX)

- sed -e 's!^#Foreground!Foreground!' "%conffile" >"$d"

- grep -q '^Foreground' $d || echo 'Foreground' >>$d

- cmp -s "$d" %conffile || cat "$d" >"%conffile"

- rm -f "$d"

- 

- %post sysv

- d=$(mktemp /tmp/clamd.%service.XXXXXX)

- sed -e 's!^Foreground!#Foreground!' "%conffile" >"$d"

- cmp -s "$d" %conffile || cat "$d" >"%conffile"

- rm -f "$d"

- 

- %__chkconfig --add %name

- 

- 

- %preun sysv

- test "$1" != 0 || %__chkconfig --del %name

- 

- XEOFX

- }

- 

- 

- function rpm.genFiles

- {

-     cat <<"EOF"

- %files

- %defattr(-,root,root,-)

- %doc

- %config(noreplace) %verify(not size md5 mtime) %attr(0620,root,%username)  %logfile

- %config(noreplace) %verify(not mtime) %conffile

- %config(noreplace) %verify(not mtime) %_sysconfdir/logrotate.d/clamd.%service

- %_sbindir/clamd.%service

- %dir %attr(0700,%username,root) %rundir

- %ghost %rundir/clamd.sock

- 

- 

- %if 0%{!?_without_sysv:1}

- %files sysv

- %defattr(-,root,root,-)

- %config            %verify(not mtime) %_initrddir/clamd.%service

- %config(noreplace) %verify(not mtime) %_sysconfdir/sysconfig/clamd.%service

- %endif

- 

- 

- %if 0%{!?_without_minit:1}

- %files minit

- %defattr(-,root,root,-)

- %dir                                  %minitsvcdir

- %config(noreplace) %verify(not mtime) %minitsvcdir/params

- %config                               %minitsvcdir/run

- 				      %minitsvcdir/respawn

- %endif

- EOF

- }

- 

- 

- SERVICE=

- VERSION=

- RELEASE=

- LICENSE=

- USERNAME=

- tmp=$(getopt -o '' --long service:,version:,release:,license:,username:,help -n "$0" -- "$@") || exit 1

- eval set -- "$tmp"

- 

- while true; do

-     case "$1" in

- 	(--help)	showHelp $0;;

- 	(--service)	SERVICE=$2;  shift;;

- 	(--version)	VERSION=$2;  shift;;

- 	(--release)	RELEASE=$2;  shift;;

- 	(--license)	LICENSE=$2;  shift;;

- 	(--username)	USERNAME=$2; shift;;

- 	(--)		shift; break;;

-     esac

-     shift

- done

- 

- for i in SERVICE VERSION RELEASE LICENSE USERNAME; do

-     eval tmp=\$${i}

-     test "$tmp" || {

- 	echo $"No value for $i specified; assuming @${i}@"  >&2;

- 	eval $i=@${i}@;

-     }

- done

- 

- 

- rpm.generatePreamble

- rpm.generateHeader

- rpm.genBody

- rpm.genFiles

file modified
+5 -3
@@ -1,13 +1,15 @@ 

  [Unit]

  Description = clamd scanner (%i) daemon

  Documentation=man:clamd(8) man:clamd.conf(5) https://www.clamav.net/documents/

- # Check for database existence

- # ConditionPathExistsGlob=@DBDIR@/main.{c[vl]d,inc}

- # ConditionPathExistsGlob=@DBDIR@/daily.{c[vl]d,inc}

  After = syslog.target nss-lookup.target network.target

  

  [Service]

  Type = forking

  ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf

+ # Reload the database

+ ExecReload=/bin/kill -USR2 $MAINPID

  Restart = on-failure

  TimeoutStartSec=420

+ 

+ [Install]

+ WantedBy = multi-user.target

Change /var/run to /run

I think it is finally time to properly use systemd instance units. systemctl enable/disable/start/start clamd@scan will still work as before, and it migrates existing clamd@scan enablements to the instance unit.

This also tries to update the docs a little bit, and drops the old clamd-gen file.

" .include directives are deprecated, and support for them will be removed in a future version of systemd. Please use drop-in files instead."

where are the drop-in files ? you just drop clamd@scan.service file , or I'm missing something , a fresh install we won't have any clamd@scan.service

The .include directive notice is a bit generic, and not directly applicable here. It assumes you are doing .include to override settings in a unit rather than using dropins.

However, the clamd@.service unit is an instance unit - and at any time someone can enable/start a "clamd@blah" service and the %i in the clamd@.service file will be replaced with "blah". We really never should have had a clamd@scan.service unit shipped. It improperly used .include instead of just being a proper instance unit. We just need to make clamd@.service installable via an [Install] section.

rebased onto 234a5b8

4 years ago

Any more comments? Otherwise I'm going to build this for rawhide soon.

The .include directive notice is a bit generic, and not directly applicable here. It assumes you are doing .include to override settings in a unit rather than using dropins.
However, the clamd@.service unit is an instance unit - and at any time someone can enable/start a "clamd@blah" service and the %i in the clamd@.service file will be replaced with "blah". We really never should have had a clamd@scan.service unit shipped. It improperly used .include instead of just being a proper instance unit. We just need to make clamd@.service installable via an [Install] section.

why we shouldn't have clamd@scan.service unit shipped ? I think we should

systemctl status clamd@scan.service
● clamd@scan.service - Generic clamav scanner daemon
   Loaded: loaded (/usr/lib/systemd/system/clamd@scan.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-11-19 05:46:53 WET; 15min ago
     Docs: man:clamd(8)
           man:clamd.conf(5)
           https://www.clamav.net/documents/
  Process: 12518 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/scan.conf (code=exited, status=0/SUCCESS)
 Main PID: 12543 (clamd)
    Tasks: 2 (limit: 4504)
   Memory: 681.3M
   CGroup: /system.slice/system-clamd.slice/clamd@scan.service
           └─12543 /usr/sbin/clamd -c /etc/clamd.d/scan.conf

I think I fixed it with:

cd /usr/lib/systemd/system/
mkdir clamd.service.d
mv clamd\@scan.service clamd.service.d/scan.conf
vi clamd.service.d/scan.conf (removed .include line)
systemctl daemon-reload

What you have done is almost the same as what I have done but needlessly split the clamd@.service file into two parts. There is no point in shipping a /usr/lib/systemd/system/SERVICE.service.d/ dropin. Those are for local customization or for one package to change the configuration of another package. We simply need one proper service file. Also, your change does not work because the clamd@.service does not load the clamd.service.d dropin, so "systemctl enable clamd@scan.service" fails:

# systemctl disable clamd@scan.service
Removed /etc/systemd/system/multi-user.target.wants/clamd@scan.service.
# systemctl enable clamd@scan.service
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.

Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.

That is why I'm moving the [install] section from clamd@scan.service into clamd@.service.

Please read about instance units - https://www.freedesktop.org/software/systemd/man/systemd.unit.html (search for "@").

Having the possibility of multiple instances is still useful, and is good for backwards compatibility (the default service is still "clamd@scan").

Having the possibility of multiple instances is still useful, and is good for backwards compatibility (the default service is still "clamd@scan").

if systemctl start clamd@scan.service still works , it is OK
sorry for wasting your time ... please merge it

Pull-Request has been merged by orion

4 years ago

I just updated to 0.101.4-1 and noticed the following messages:

Running scriptlet: clamd-0.101.4-1.fc31.x86_64 63/102
Cleanup : clamd-0.101.4-1.fc31.x86_64 63/102
Running scriptlet: clamd-0.101.4-1.fc31.x86_64 63/102
Failed to try-restart clamd@.service: Unit name clamd@.service is missing the instance name.
See system logs and 'systemctl status clamd@.service' for details.

My clamd@scan.service with the associated .include is still working - would be nice to get a cheat sheet on exactly what changes need to be made and to what so this would work transparently going forward.

Note - these changes are only in 0.101.4-3 and in fact fixes the above message. The upgrade here should be transparent and users shouldn't have to do anything - assuming I got everything right. I did some local testing but it's amazing all the different setups out there.

ok, it's probably I didn't notice the message before and since I was aware of this pull-request I was watching closer and noticed it. As I mentioned it's still working, just that I noticed the scriptlet threw that error message. I'll wait for ~4-3 and hopefully that will fix the situation. Thanks!