[debhelper-devel] Bug#879063: ipmitool FTBFS with debhelper 10.9.2
Niels Thykier
niels at thykier.net
Tue Oct 31 06:27:00 UTC 2017
Control: reassign -1 ipmitool
On Mon, 30 Oct 2017 22:57:22 +0100
=?ISO-8859-1?Q?J=F6rg_Frings-F=FCrst?= <debian at jff-webhosting.net> wrote:
> reassign 879063 debhelper 10.10.5
> retitle 879063 [dh_system_enable] don't notice the debhelper naming convention
> thanks
>
> Hi,
>
> this is not a ipitool bug.
>
> Fakts:
>
> - the service file is debian/ipmitool.ipmievd.service.
> This fulfill the debhelper naming convention[1].
>
> - without "dh_systemd_enable --no-enable ipmievd.service" and / or with
> "dh_systemd_start ipmievd.service" the service file is installed[2].
> This will find the service file.
>
> Result:
>
> Its looks like dh_systemd_enable do not notice the debhelper naming
> convention. So I reassign this bug to debhelper.
>
> CU
> Jörg
>
> [...]
Hi,
Sorry, but I disagree with your assertion. :)
While the facts as such are correct, there are two facts missing:
* When "dh_systemd_enable --no-enable ipmievd.service" is called,
the service is *not* present in the package directory[1].
Accordingly, you get that error.
* The service is currently installed by dh_installinit (see the first
three lines of [2]). By design, dh_systemd_enable is run *before*
dh_installinit (and dh_systemd_start is run after dh_installinit).
- I admit that this interaction between dh_installinit and
dh_systemd_* is way more complex than it has to be and we are
cleaning it up for compat 11. :)
Previously, dh_systemd_enable had a behaviour depending on whether it
could read the service file. This lead to silent "fail-to-fail"
behaviour where you could end up with a service not being enabled
instead of the build failing. I can see that ipmitool unfortunately
relied on this "failure to fail" in the build log for stable[3].
The consequences for ipmitool:
If I am reading dh_systemd_enable correctly, it will fail to deliver a
shell snippet for notifying the system that a new service file has been
installed (and re-enable on reinstall if it was enabled prior to
uninstall).
* While this may sound scary, I /think/ dh_installinit happens to do
that for you in compat 10. (Did not check too deeply though)
* Although, it is not clear to me that your --no-enable is respected at
all. If it is, then it is not because of something dh_systemd_enable
does.
Thanks,
~Niels
[1]
"""
make[1]: Leaving directory '<BUILDDIR>/ipmitool-1.8.18'
dh_installdocs
dh_installchangelogs
dh_installman
debian/rules override_dh_systemd_enable
make[1]: Entering directory '<BUILDDIR>/ipmitool-1.8.18'
dh_systemd_enable -v --no-enable ipmievd.service
dh_systemd_enable: Requested unit "ipmievd.service" but it was not found
in any package acted on.
dh_systemd_enable: Could not handle all of the requested services
debian/rules:36: recipe for target 'override_dh_systemd_enable' failed
make[1]: *** [override_dh_systemd_enable] Error 2
make[1]: Leaving directory '<BUILDDIR>ipmitool-1.8.18'
debian/rules:24: recipe for target 'binary' failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess
returned exit status 2
<BUILDDIR>/ipmitool-1.8.18$ find debian/ipmitool -type f
debian/ipmitool/usr/bin/ipmitool
debian/ipmitool/usr/sbin/ipmievd
debian/ipmitool/usr/share/man/man1/ipmitool.1
debian/ipmitool/usr/share/man/man8/ipmievd.8
debian/ipmitool/usr/share/ipmitool/oem_ibm_sel_map
debian/ipmitool/usr/share/doc/ipmitool/README
debian/ipmitool/usr/share/doc/ipmitool/AUTHORS
debian/ipmitool/usr/share/doc/ipmitool/copyright
debian/ipmitool/usr/share/doc/ipmitool/changelog.Debian
debian/ipmitool/usr/share/doc/ipmitool/changelog
"""
[2]
"""
$ dh_installinit -v --name ipmievd --error-handler=ipmievd_initd_failed
install -d debian/ipmitool/lib/systemd/system
install -p -m0644 debian/ipmitool.ipmievd.service
debian/ipmitool/lib/systemd/system/ipmievd.service
install -d debian/ipmitool/etc/default
install -p -m0644 debian/ipmitool.ipmievd.default
debian/ipmitool/etc/default/ipmievd
install -d debian/ipmitool/etc/init.d
install -p -m0755 debian/ipmitool.ipmievd.init
debian/ipmitool/etc/init.d/ipmievd
echo "# Automatically added by dh_installinit/10.10.5">>
debian/ipmitool.postinst.debhelper
sed
"s/#SCRIPT#/ipmievd/g;s/#INITPARMS#/defaults/g;s/#ERROR_HANDLER#/ipmievd_initd_failed/g"
/usr/share/debhelper/autoscripts/postinst-init-restart >>
debian/ipmitool.postinst.debhelper
echo '# End automatically added section' >>
debian/ipmitool.postinst.debhelper
echo "# Automatically added by dh_installinit/10.10.5">>
debian/ipmitool.prerm.debhelper
sed
"s/#SCRIPT#/ipmievd/g;s/#INITPARMS#/defaults/g;s/#ERROR_HANDLER#/ipmievd_initd_failed/g"
/usr/share/debhelper/autoscripts/prerm-init-norestart >>
debian/ipmitool.prerm.debhelper
echo '# End automatically added section' >>
debian/ipmitool.prerm.debhelper
echo "# Automatically added by dh_installinit/10.10.5">>
debian/ipmitool.postrm.debhelper
sed
"s/#SCRIPT#/ipmievd/g;s/#INITPARMS#/defaults/g;s/#ERROR_HANDLER#/ipmievd_initd_failed/g"
/usr/share/debhelper/autoscripts/postrm-init >>
debian/ipmitool.postrm.debhelper
echo '# End automatically added section' >>
debian/ipmitool.postrm.debhelper
"""
[3]
https://tests.reproducible-builds.org/debian/rb-pkg/stretch/amd64/ipmitool.html
"""
make[1]: Entering directory '/build/ipmitool-1.8.18'
dh_systemd_enable --no-enable ipmievd.service
dh_systemd_enable: Could not find "ipmievd.service" in the
/lib/systemd/system directory of ipmitool. This could be a typo, or
using Also= with a service file from another package. Please check
carefully that this message is harmless.
dh_systemd_enable: Cannot open(ipmievd.service) for extracting the Also=
line(s)
make[1]: Leaving directory '/build/ipmitool-1.8.18'
"""
More information about the debhelper-devel
mailing list