On Thu, 28 Feb 2019 at 17:03:44 +0100, Mattia Rizzolo wrote: > If I see this correctly, it's all because the code reads only the first > line of the Binary field, without considering it may be a multiline > field (and tbh I didn't even realized it could be…)
I must admit I hadn't realised there was any middle ground in changes files between "multi-line is mandatory" (like Files) and "multi-line is forbidden". I'll try to put together some sort of parsing fix in shell for buster, but I think this is a sign that mergechanges being a shell script isn't actually very sustainable, and it should be in a language with a more formal parser, probably Perl (using Dpkg::Control) or Python (using debian.deb822). For now, is it OK to make mergechanges use a perl one-liner involving Dpkg::Control to do the heavy lifting? It seems that it already requires perl, and libdpkg-perl is indirectly a hard dependency for devscripts. For the future, do the devscripts maintainers have a preference for the implementation language of a post-buster rewrite of mergechanges in a language with real parsers? smcv