Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1011057: lintian: Add warning if a *.postinst file does not have #DEBHELPER#

1 view
Skip to first unread message

Carles Pina i Estany

unread,
May 16, 2022, 5:20:04 AM5/16/22
to
Package: lintian
Version: 2.104.0
Severity: wishlist

Dear Maintainer,

It might be useful that lintian checked that each *.postinst contains
the #DEBHELPER# string.

For example, I noticed a missing #DEBHELPER# when creating a package
that installed a systemd service but it did not start as expected.

Thank you very much,

-- System Information:
Debian Release: 11.3
APT prefers stable
APT policy: (990, 'stable'), (500, 'stable-security')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-13-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=ca_ES.UTF-8, LC_CTYPE=ca_ES.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages lintian depends on:
ii binutils 2.35.2-2
ii bzip2 1.0.8-4
ii diffstat 1.64-1
ii dpkg 1.20.9
ii dpkg-dev 1.20.9
ii file 1:5.39-3
ii gettext 0.21-4
ii gpg 2.2.27-2+deb11u1
ii intltool-debian 0.35.0+20060710.5
ii libapt-pkg-perl 0.1.39
ii libarchive-zip-perl 1.68-1
ii libcapture-tiny-perl 0.48-1
ii libclass-xsaccessor-perl 1.19-3+b7
ii libclone-perl 0.45-1+b1
ii libconfig-tiny-perl 2.26-1
ii libcpanel-json-xs-perl 4.25-1+b1
ii libdata-dpath-perl 0.58-1
ii libdata-validate-domain-perl 0.10-1.1
ii libdevel-size-perl 0.83-1+b2
ii libdpkg-perl 1.20.9
ii libemail-address-xs-perl 1.04-1+b3
ii libfile-basedir-perl 0.08-1
ii libfile-find-rule-perl 0.34-1
ii libfont-ttf-perl 1.06-1.1
ii libhtml-html5-entities-perl 0.004-1.1
ii libipc-run3-perl 0.048-2
ii libjson-maybexs-perl 1.004003-1
ii liblist-compare-perl 0.55-1
ii liblist-moreutils-perl 0.430-2
ii liblist-utilsby-perl 0.11-1
ii libmoo-perl 2.004004-1
ii libmoox-aliases-perl 0.001006-1.1
ii libnamespace-clean-perl 0.27-1
ii libpath-tiny-perl 0.118-1
ii libperlio-gzip-perl 0.19-1+b7
ii libproc-processtable-perl 0.59-2+b1
ii libsereal-decoder-perl 4.018+ds-1+b1
ii libsereal-encoder-perl 4.018+ds-1+b1
ii libtext-glob-perl 0.11-1
ii libtext-levenshteinxs-perl 0.03-4+b8
ii libtext-markdown-discount-perl 0.12-1+b1
ii libtext-xslate-perl 3.5.8-1+b1
ii libtime-duration-perl 1.21-1
ii libtime-moment-perl 0.44-1+b3
ii libtimedate-perl 2.3300-2
ii libtry-tiny-perl 0.30-1
ii libtype-tiny-perl 1.012001-2
ii libunicode-utf8-perl 0.62-1+b2
ii liburi-perl 5.08-1
ii libxml-libxml-perl 2.0134+dfsg-2+b1
ii libyaml-libyaml-perl 0.82+repack-1+b1
ii lzip 1.22-3
ii lzop 1.04-2
ii man-db 2.9.4-2
ii patchutils 0.4.2-1
ii perl [libdigest-sha-perl] 5.32.1-4+deb11u2
ii t1utils 1.41-4
ii unzip 6.0-26
ii xz-utils 5.2.5-2

lintian recommends no packages.

Versions of packages lintian suggests:
pn binutils-multiarch <none>
pn libtext-template-perl <none>

-- no debconf information

Axel Beckert

unread,
Jun 9, 2022, 11:40:03 PM6/9/22
to
Control: tag -1 +moreinfo

Hi Carles,

Carles Pina i Estany wrote:
> Package: lintian
> Version: 2.104.0
[…]
> It might be useful that lintian checked that each *.postinst contains
> the #DEBHELPER# string.
>
> For example, I noticed a missing #DEBHELPER# when creating a package
> that installed a systemd service but it did not start as expected.

Lintian already has a tag named
maintainer-script-lacks-debhelper-token for exactly that. See also
https://lintian.debian.org/tags/maintainer-script-lacks-debhelper-token

The tag is though only emitted if debhelper is actually used.

If in your case the tag should have been emitted but hadn't been
emitted, please tell us which package at which version (or commit ID)
this happened.

Regards, Axel
--
,''`. | Axel Beckert <a...@debian.org>, https://people.debian.org/~abe/
: :' : | Debian Developer, ftp.ch.debian.org Admin
`. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5
`- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE

Carles Pina i Estany

unread,
Jun 10, 2022, 3:40:04 AM6/10/22
to

hi,

On Jun/10/2022, Axel Beckert wrote:
> Control: tag -1 +moreinfo
>
> Hi Carles,
>
> Carles Pina i Estany wrote:
> > Package: lintian
> > Version: 2.104.0
> […]
> > It might be useful that lintian checked that each *.postinst contains
> > the #DEBHELPER# string.
> >
> > For example, I noticed a missing #DEBHELPER# when creating a package
> > that installed a systemd service but it did not start as expected.
>
> Lintian already has a tag named
> maintainer-script-lacks-debhelper-token for exactly that. See also
> https://lintian.debian.org/tags/maintainer-script-lacks-debhelper-token

Oops...

> The tag is though only emitted if debhelper is actually used.
>
> If in your case the tag should have been emitted but hadn't been
> emitted, please tell us which package at which version (or commit ID)
> this happened.

I had a look at lintian's source code and realised of what happened.
(I'm testing and reading lintian v2.104.0)

I was running:
$ lintian package.deb # on the binary package

If I run:
$ lintian package.dsc

it does show the warning.

I had expected that if a service is installed (in
/lib/systemd/system/*.service) the postinst should have:
"^# Automatically added by dh_installsystemd"

But I see how is easier and more reliable to maintain lintian doing the
check in the source package (I did not realise of the difference, I
don't usually do packaging so all the tools are new for me :-) )

After opening the bug I started using salsa-ci/pipeline which does it in
the source package and I see the warning if I "break" the package.

To me the bug can be closed and sorry for the noise!

Cheers,

--
Carles Pina i Estany
https://carles.pina.cat

Russ Allbery

unread,
Jun 10, 2022, 11:00:03 AM6/10/22
to
Carles Pina i Estany <car...@pina.cat> writes:

> I had a look at lintian's source code and realised of what happened.
> (I'm testing and reading lintian v2.104.0)

> I was running:
> $ lintian package.deb # on the binary package

> If I run:
> $ lintian package.dsc

> it does show the warning.

For the record (since I'm not sure this is obvious when you're new to
Lintian), the best way to run Lintian is on the *.changes file generated
as part of the package build. That will check everything that will be
included in the upload.

--
Russ Allbery (r...@debian.org) <https://www.eyrie.org/~eagle/>
0 new messages