Attached is a patch modernizing debian/rules to the dh sequencer, as
requested.
Every plain dh_* call that had no custom behavior (dh_installdocs,
dh_installexamples, dh_link, dh_strip, dh_compress, dh_installdeb,
dh_lintian, dh_shlibdeps, dh_gencontrol, dh_md5sums, dh_builddeb) is now
implicit in the dh sequence. What's left as explicit overrides/hooks:
- override_dh_auto_configure / _build / _install: the real source lives
in src/, not the top level, so default dh_auto_* detection doesn't
apply -- full overrides, not execute_before/after, since there's no
default behavior to layer on top of.
- execute_after_dh_auto_clean: additive, removes the extra generated
files (pppoe.prj, config.h, etc.) the upstream build leaves behind,
after letting the default dh_auto_clean run first.
- override_dh_installchangelogs: the upstream changelog lives at
doc/CHANGES, not a path dh_installchangelogs finds on its own.
- execute_after_dh_fixperms: the setuid pppoe binary and the restricted
dsl-provider file, both applied after the default dh_fixperms run.
That last point surfaced a real, separate, pre-existing bug I want to
be upfront about rather than bury in the diff: in the *original*,
unmodified 4.0-1 rules, the dsl-provider install command ran *before*
dh_fixperms in the sequence -- and dh_fixperms silently resets it back
to default 644/root:root regardless, undoing the intended
`install -m 0640 -o root -g dip`. I reproduced this identically
against a fresh, unmodified 4.0-1 build before concluding it was real
and not something I'd introduced. Since dsl-provider is a PPPoE
connection config file that can hold real ISP credentials,
world-readable was a genuine, if minor, exposure. Fixed by moving the
install into execute_after_dh_fixperms, the one hook guaranteed to run
last -- same fix approach the binary's own setuid bit already needed
for the identical reason.
Also added a lintian-overrides entry for the new non-standard-file-perm
tag this introduces, alongside (not replacing -- I made that mistake
once locally and caught it before generating this patch) the existing
elevated-privileges override already covering the setuid binary.
Verified:
- Full dpkg-buildpackage build succeeds against a fresh pristine 4.0-1
source tree with this patch applied
- dsl-provider ships 640 root:dip, pppoe ships 4754 root:dip, confirmed
directly from the built .deb's real contents
- lintian passes clean (0 warnings) with both overrides in place
- Patch applies with zero errors against a fresh pristine extraction,
confirmed on a second, independent apply+build+verify pass
Changes:
- debian/rules (modernized to dh sequencer)
- debian/changelog
- debian/pppoe.lintian-overrides (new tag added, existing one preserved)