Subject: bug#319: openrc savecache doesnt run start()

From: dxrobertson <[email-masked]>
Date: Wed, 24 Apr 2019 17:58:05 -0400

I believe the problem to be in openrc-run.sh, the code at/around line 245:

# Load our script
lsbh=$(lsb2rcconf "$RC_SERVICE")
if [ -n "${lsbh}" ]; then
eval "${lsbh}"
else
sourcex "$RC_SERVICE"
.
.
.

I ran rc-service with the -d debug option:
rc-service -dv savecache start
Both with the LSB header present and not present, in /etc/init.d/savecache.

When running WITH the LSB header present, variable lsbh becomes:
+ lsb2rcconf /etc/init.d/savecache
+ lsbh=depend () {
        provide _all
}
And subsequently, the code at line 247 gets run:
if [ -n "${lsbh}" ]; then
eval "${lsbh}"
(This is the problem where savecache start() doesnt get run)

When running WITHOUT the LSB header present, variable lsbh becomes:
+ lsb2rcconf /etc/init.d/savecache
+ lsbh=
And subsequently, the "else" code at line 249 gets run:
else
sourcex "$RC_SERVICE"
.
.
.
(savecache start() runs)

To resolve the problem, the LSB header could simply be removed from
/etc/init.d/savecache.

I wonder why LSB is being examined at all in openrc-run scripts, I
thought (wrongly?) that LSB support was only added for /bin/sh run
scripts, so to use the sysvinit scripts without modification, in
openrc.