#1144359 init-system-helpers: Use of uninitialized value in string eq at /usr/sbin/update-rc.d line 196.

#1144359#5
Date:
2026-08-14 07:25:29 UTC
From:
To:
Upon executing dpkg-reconfigure on a random package, the following message appeared:

Use of uninitialized value in string eq at /usr/sbin/update-rc.d line 196.

Hurd still uses sysv init, so I presume that this was caused by the recent NMU (1.69+nmu1).

Martin-Éric

#1144359#8
Date:
2026-08-15 16:24:56 UTC
From:
To:
Hi,

I would not judge the severity of this bug as important because it only affects
users of sysvinit and update-rc.d still does what it should despite the
warning. But I let the maintainers change the severity.

Yes it was. The error only happens when you have sysvinit-core installed.

I fixed the problem in this MR:
https://salsa.debian.org/debian/init-system-helpers/-/merge_requests/35

From the MR text:

Perl's readlink() returns undef when used on a regular file. The docs say:

Turns out that "file is not a symlink" is a system error. :)

Turns out that all packages in Debian that ship /usr/sbin/init ship it as a
symlink -- except for sysvinit-core. This means that before this change, users
of sysvinit would see this message when update-rc.d is run:

    Use of uninitialized value in string eq at /usr/sbin/update-rc.d line 196.

The message is annoying but at least it's harmless. The part of the code that
emitted it was:

    readlink "$dpkg_root/usr/sbin/init" eq "../lib/systemd/systemd"

If readlink() returns undef, then the comparison fails as it should. I fixed it
by checking the type of /usr/sbin/init before doing readlink().

Thanks!

cheers, josch