Bug#914419: debhelper mustn't set pass V to make

2018-11-26 Thread Luca Boccassi
On Sun, 2018-11-25 at 21:39 +0200, Adrian Bunk wrote:
> On Sun, Nov 25, 2018 at 07:21:17PM +, Luca Boccassi wrote:
> > ...
> > In general, I realise that not every makefile might implement
> > VERBOSE/V, but I think it's the most common pattern, so I think
> > it's
> > the best chance we have to support it automagically via debhelper.
> > If
> > some package uses a different set of variables for verbosity (or
> > none
> > at all), then they'll have to use overrides, but they'd be no worse
> > than now - of course unless there are more breakages, in which case
> > we
> > can revert/use a compat level. Does this sound like a plan?
> > ...
> 
> The problem is not about finding the correct variable for verbosity.
> 
> The problem is that Makefiles are allowed to use variables like V or 
> VERBOSE for whatever purpose they want, and with whatever values
> they 
> want.
> 
> It is not even clear that all breakages are FTBFS,
> we might end up with misbuilt packages due to that.

True, I didn't think of other more subtle failures. I've updated the MR
to revert the change. It's a pity, but I guess the lesser evil is to
live with having to add more boilerplate to d/rules.

-- 
Kind regards,
Luca Boccassi

signature.asc
Description: This is a digitally signed message part


Bug#914419: debhelper mustn't set pass V to make

2018-11-25 Thread Adrian Bunk
On Sun, Nov 25, 2018 at 07:21:17PM +, Luca Boccassi wrote:
>...
> In general, I realise that not every makefile might implement
> VERBOSE/V, but I think it's the most common pattern, so I think it's
> the best chance we have to support it automagically via debhelper. If
> some package uses a different set of variables for verbosity (or none
> at all), then they'll have to use overrides, but they'd be no worse
> than now - of course unless there are more breakages, in which case we
> can revert/use a compat level. Does this sound like a plan?
>...

The problem is not about finding the correct variable for verbosity.

The problem is that Makefiles are allowed to use variables like V or 
VERBOSE for whatever purpose they want, and with whatever values they 
want.

It is not even clear that all breakages are FTBFS,
we might end up with misbuilt packages due to that.

> Kind regards,
> Luca Boccassi

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#914419: debhelper mustn't set pass V to make

2018-11-25 Thread Luca Boccassi
On Sun, 2018-11-25 at 14:12 +0200, Adrian Bunk wrote:
> On Sun, Nov 25, 2018 at 11:58:57AM +, Luca Boccassi wrote:
> > On Sun, 25 Nov 2018, 11:30 Niels Thykier  > 
> > > Adrian Bunk:
> > > > Package: debhelper
> > > > Version: 11.5.2
> > > > Severity: serious
> > > > 
> > > > 
> > > 
> > > https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd6
> > > 4/apcupsd.html
> > > > 
> > > > ...
> > > > dh clean --with autoreconf
> > > >    dh_auto_clean
> > > >   make V=1 -j16 clean
> > > > make[1]: Entering directory '/build/1st/apcupsd-3.14.14'
> > > > 1find . -depth \
> > > >   \( -name  -o -name  -o -name \*.a \) \
> > > >   -exec  "  CLEAN" \{\} \; -exec  \{\} \;
> > > > /bin/sh: 1: 1find: not found
> > > > make[1]: *** [autoconf/targets.mak:98: clean] Error 127
> > > > 
> > > > 
> > > > 
> > > 
> > > https://sources.debian.org/src/apcupsd/3.14.14-2/autoconf/targets
> > > .mak/#L98
> > > > 
> > > > 
> > > > Using V=1 for getting verbose build output is a relatively
> > > > recent convention followed by some software.
> > > > 
> > > > It is not something that is safe to use everywhere.
> > > > 
> > > 
> > > Hi,
> > > 
> > > Adding Luca to this report as it affect a change by Luca.
> > > 
> > > @Luca: What is your take on this?  Should we roll back on this,
> > > guard it
> > > by a compat level or something else?
> > > 
> > > Thanks,
> > > ~Niels
> > > 
> > 
> > Hi Niels and Adrian,
> 
> Hi Luca,
> 
> > Before considering other options, would using VERBOSE=1 instead of
> > V=1
> > work? I'm afk until later today so I can't check right now if gmake
> > accepts
> > it, iirc it does but I could be confusing it with other tools.
> 
> make happily accepts them, but this misses the problem.
> 
> None of these options is supported directly by make.
> 
> make just passes such options to the package-specific
> Makefile that might do something or nothing with them.

Sorry, was on the phone and didn't properly read the snippet nor the
link, thought it was make itself complaining (for some reasons - it
didn't make much sense actually).

Still, looking at that makefile, it would seem that using VERBOSE would
do the right thing:

https://sources.debian.org/src/apcupsd/3.14.14-2/autoconf/targets.mak/#L20

It would seem less likely, intuitively, that VERBOSE would be used in 
a similar way that would break the build if set to 1/0, so perhaps it's
still the right fix? It does work with apcupsd for example, just tested
it. iproute2, which is the package I added this for originally, works
just fine likewise.

In general, I realise that not every makefile might implement
VERBOSE/V, but I think it's the most common pattern, so I think it's
the best chance we have to support it automagically via debhelper. If
some package uses a different set of variables for verbosity (or none
at all), then they'll have to use overrides, but they'd be no worse
than now - of course unless there are more breakages, in which case we
can revert/use a compat level. Does this sound like a plan?

If so, here's the MR:

https://salsa.debian.org/debian/debhelper/merge_requests/16

-- 
Kind regards,
Luca Boccassi

signature.asc
Description: This is a digitally signed message part


Bug#914419: debhelper mustn't set pass V to make

2018-11-25 Thread Adrian Bunk
On Sun, Nov 25, 2018 at 11:58:57AM +, Luca Boccassi wrote:
> On Sun, 25 Nov 2018, 11:30 Niels Thykier  
> > Adrian Bunk:
> > > Package: debhelper
> > > Version: 11.5.2
> > > Severity: serious
> > >
> > >
> > https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apcupsd.html
> > >
> > > ...
> > > dh clean --with autoreconf
> > >dh_auto_clean
> > >   make V=1 -j16 clean
> > > make[1]: Entering directory '/build/1st/apcupsd-3.14.14'
> > > 1find . -depth \
> > >   \( -name  -o -name  -o -name \*.a \) \
> > >   -exec  "  CLEAN" \{\} \; -exec  \{\} \;
> > > /bin/sh: 1: 1find: not found
> > > make[1]: *** [autoconf/targets.mak:98: clean] Error 127
> > >
> > >
> > >
> > https://sources.debian.org/src/apcupsd/3.14.14-2/autoconf/targets.mak/#L98
> > >
> > >
> > > Using V=1 for getting verbose build output is a relatively
> > > recent convention followed by some software.
> > >
> > > It is not something that is safe to use everywhere.
> > >
> >
> > Hi,
> >
> > Adding Luca to this report as it affect a change by Luca.
> >
> > @Luca: What is your take on this?  Should we roll back on this, guard it
> > by a compat level or something else?
> >
> > Thanks,
> > ~Niels
> >
> 
> Hi Niels and Adrian,

Hi Luca,

> Before considering other options, would using VERBOSE=1 instead of V=1
> work? I'm afk until later today so I can't check right now if gmake accepts
> it, iirc it does but I could be confusing it with other tools.

make happily accepts them, but this misses the problem.

None of these options is supported directly by make.

make just passes such options to the package-specific
Makefile that might do something or nothing with them.

> Kind regards,
> Luca Boccassi

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#914419: debhelper mustn't set pass V to make

2018-11-25 Thread Luca Boccassi
On Sun, 25 Nov 2018, 11:30 Niels Thykier  Adrian Bunk:
> > Package: debhelper
> > Version: 11.5.2
> > Severity: serious
> >
> >
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apcupsd.html
> >
> > ...
> > dh clean --with autoreconf
> >dh_auto_clean
> >   make V=1 -j16 clean
> > make[1]: Entering directory '/build/1st/apcupsd-3.14.14'
> > 1find . -depth \
> >   \( -name  -o -name  -o -name \*.a \) \
> >   -exec  "  CLEAN" \{\} \; -exec  \{\} \;
> > /bin/sh: 1: 1find: not found
> > make[1]: *** [autoconf/targets.mak:98: clean] Error 127
> >
> >
> >
> https://sources.debian.org/src/apcupsd/3.14.14-2/autoconf/targets.mak/#L98
> >
> >
> > Using V=1 for getting verbose build output is a relatively
> > recent convention followed by some software.
> >
> > It is not something that is safe to use everywhere.
> >
>
> Hi,
>
> Adding Luca to this report as it affect a change by Luca.
>
> @Luca: What is your take on this?  Should we roll back on this, guard it
> by a compat level or something else?
>
> Thanks,
> ~Niels
>

Hi Niels and Adrian,

Before considering other options, would using VERBOSE=1 instead of V=1
work? I'm afk until later today so I can't check right now if gmake accepts
it, iirc it does but I could be confusing it with other tools.

Kind regards,
Luca Boccassi

>


Bug#914419: debhelper mustn't set pass V to make

2018-11-25 Thread Niels Thykier
Adrian Bunk:
> Package: debhelper
> Version: 11.5.2
> Severity: serious
> 
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apcupsd.html
> 
> ...
> dh clean --with autoreconf
>dh_auto_clean
>   make V=1 -j16 clean
> make[1]: Entering directory '/build/1st/apcupsd-3.14.14'
> 1find . -depth \
>   \( -name  -o -name  -o -name \*.a \) \
>   -exec  "  CLEAN" \{\} \; -exec  \{\} \;
> /bin/sh: 1: 1find: not found
> make[1]: *** [autoconf/targets.mak:98: clean] Error 127
> 
> 
> https://sources.debian.org/src/apcupsd/3.14.14-2/autoconf/targets.mak/#L98
> 
> 
> Using V=1 for getting verbose build output is a relatively
> recent convention followed by some software.
> 
> It is not something that is safe to use everywhere.
> 

Hi,

Adding Luca to this report as it affect a change by Luca.

@Luca: What is your take on this?  Should we roll back on this, guard it
by a compat level or something else?

Thanks,
~Niels



Bug#914419: debhelper mustn't set pass V to make

2018-11-23 Thread Adrian Bunk
Package: debhelper
Version: 11.5.2
Severity: serious

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apcupsd.html

...
dh clean --with autoreconf
   dh_auto_clean
make V=1 -j16 clean
make[1]: Entering directory '/build/1st/apcupsd-3.14.14'
1find . -depth \
  \( -name  -o -name  -o -name \*.a \) \
  -exec  "  CLEAN" \{\} \; -exec  \{\} \;
/bin/sh: 1: 1find: not found
make[1]: *** [autoconf/targets.mak:98: clean] Error 127


https://sources.debian.org/src/apcupsd/3.14.14-2/autoconf/targets.mak/#L98


Using V=1 for getting verbose build output is a relatively
recent convention followed by some software.

It is not something that is safe to use everywhere.