On Sat, Nov 07, 2020 at 11:04:36AM +0100, Niels Thykier wrote:
> On Sat, 20 Jun 2020 11:30:03 +0000 Jelmer Vernooij <jel...@debian.org>
> wrote:
> > Package: lintian-brush
> > Version: 0.70
> > Severity: important
> > 
> > As seen in 
> > https://salsa.debian.org/cinnamon-team/cinnamon/-/merge_requests/9,
> > upgrades from debhelper 11 to debhelper 12 by lintian-brush will sometimes 
> > result in
> > files no longer being installed.
> > 
> > The relevant bit from the debhelper changelog appears to be:
> > 
> > The build systems meson and autoconf no longer explicitly set the 
> > --libexecdir variable and thus relies on the build system default - which 
> > should be /usr/libexec (per FHS 3.0,
> > adopted in Debian Policy 4.1.5).
> > 
> > If a particular upstream package does not use the correct default, the 
> > parameter can often be passed manually via dh_auto_configure(1).  E.g.  via 
> > the following example:
> > 
> > override_dh_auto_configure:
> >   dh_auto_configure -- --libexecdir=/usr/libexec
> > 
> > Note the -- before the --libexecdir parameter.
> > 
> > Looking at the logs, it seems like the old build passed in 
> > --libexecdir=\${prefix}/lib/x86_64-linux-gnu
> > 
> > lintian-brush can automatically set this flag for packages that it upgrades 
> > to
> > debhelper 12, but ideally it would only do so for those packages that ship
> > anything in libexec.
> > 
> > [...]

> I think a better solution would be if the janitor could fixup
> "\${prefix}/lib/x86_64-linux-gnu" in debian/*.install instead.  If would
> often appear as "usr/lib/*/..." or "usr/lib/${...}/...".
> 
> The tricky part here is that if it is a library, the original dh_install
> line needs to stay as well for the .so file.
> 
> Admittedly, I am speaking from a "nice to have" or "in the perfect
> world" scenario.  The proposed solution would work and that is relevant
> in itself.

Yeah, the challenge here is that lintian-brush runs on the package before
it's built, so it would need to figure out which files are going to
move.

We could assume that everything that's not a library would move to
libexecdir. Upstream may not have classified things appropriately
though. Ideal would be if we could ask automake which files would be
installed into the libexecdir and then just move those, but it doesn't
like there is a way to query automake for that information.

Cheers,

Jelmer

-- 
Jelmer Vernooij <jel...@jelmer.uk>
PGP Key: https://www.jelmer.uk/D729A457.asc

Attachment: signature.asc
Description: PGP signature

Reply via email to