[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: `Build-Depends` parsing problem for node-* packages

Hi David,

Le 17/03/2021 à 19:22, David Kalnischkies a écrit :
> Hi,
> On Wed, Mar 17, 2021 at 04:52:38PM +0100, Arnaud Ferraris wrote:
>> I've been confronted with an issue affecting a number of node-* packages
>> (and maybe others): apt is unable to parse the Build-Depends field,
>> making `apt build-dep` effectively unusable with those packages.
>> One good example is node-ramda[1]: as the first non-space character apt
>> encounters when parsing Build-Depends is a comma, it considers this a
>> syntax error and errors out.
> While that particular style is odd for my taste¹, apt is not the arbiter
> of the allowed style here. You would need to make a case for dpkg to
> refuse this style and that seems even more odd [bad pun intended].
> Also, being reminded of #875363 I think the ship has sailed on
> "that is odd, lets not support this in apt" even if we would like to be
> the arbiters (we don't).
>> My personal opinion is that apt's current behavior is sane and the 2nd
> Thanks for giving apt so much credit, but this is just another instance
> of "apt developers are lazy and unimaginative" as they reused the parser
> which was once written for well-defined machine-written and trusted data
> and let it loose on all sorts of crazy handcrafted files with comments,
> spaces, newlines and empty fields all over the place. Its a mystery how
> that isn't crashing all the time even through it isn't written in Rust.
> (SCNR)
> So please move this thread to a (wishlist) bug against apt and I will see
> how I can mangle the input string we pass to good old parser to accept
> commas ,all, over ,the, , place, too (currently it accepts only a single
> trailing comma, optionally surrounded by white space) ,

Thanks for sharing your view about this! That sounds sensible, I'll file
that bug against apt then, thanks again!

> As `apt build-dep .` is (to my knowledge) not used in any critical infra
> but only by some humans this isn't fixable for bullseye though as such
> a change would likely not get a freeze exception.

Not in Debian itself indeed, however it's part of our
packaging/publishing workflow for Apertis[1], and may affect other
derivatives. Anyway, we have a workaround for "The Great Bullseye Rebase
of 2021", so it won't be a problem in the short-term, although having it
fixed in the future will definitely help.


[1] https://wiki.debian.org/Derivatives/Census/Apertis

> Best regards
> David Kalnischkies
> ¹ ; char const * const name = "World"
>   ; printf("Hello %s!", name)
> (that style reminds me of some other language I have seen but can't
>  quite remember at the moment; I just haven't seen it in a control file
>  so far. As said later, some apt developers are so unimaginative…)

Reply to: