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

Bug#840094: blends-dev: Does not recognize multiline dependencies



On Wed, Nov 09, 2016 at 01:42:37PM +0100, Ole Streicher wrote:
> On 09.11.2016 12:47, Andreas Tille wrote:
> > In other words: Once it was defined as syntax for these control files
> > that newlines need to be escaped.  I do not like it and as I said this
> > is fixed in the long-term pending rewrite.  However, the bug is not
> > serious but at best wishlist.  Would you follow this arguing?
> >
> 
> Not really. My point here is that this happens really unexpected, and
> since blend-gen-control doesn't complain about the then wrong format,
> one silently gets wrong dependencies. At least I did in the first
> versions of debian-astro (<0.5).

I fully agree that this is a bad situation.  That's a problem inherited
from the first days when blends-dev was part of debian-edu package where
it just was implemented that way and people were aware of this.
 
> We have a clear definition of how these files should look like, namely
> RFC822, and this also defines continuation lines.

Unfortunately in this specific feature tasks files are not RFC822
compliant, which sucks, yes.  Its even not documented (I just checked
since I intended to document it at some point in time but can't find it
:-( )

> Look at
> https://blends.debian.org/blends/ch08.html#edittasksfiles - it is
> blends-gen-control that isn't conform to that.

Yes.
 
> I would think that there is also a quick fix for it -- the tool already
> handles continuation lines for the tasks description, so one could
> probably just take that. I have no glue of all the Perl $@^!~ special
> chars, but wouldn't do it something like the attached patch (after
> removing the obvious errors from it)?
> 
> Or something else just adopted from lines 556-562 of blends-gen-control?

While I fully agree that we should fix this I'm not fully convinced how
to sensibly proceed here.  The problematic thing is that we are quite
short before a release and if we might break metapackage creation in
some way we might get in trouble.  I'm no Perl programmer myself (even
if I think your patch looks sensible) and so IMHO staying conservative
and add some line ending escapes could be the less invasive change.

For the future I think we should start a common effort to switch to
blends-dev 0.7[1] which neither has the problem above nor some other
problems.
 
If you (and Bas and other readers here) think we should fix the issue
right now I'm fine if you apply the patch below and we should seriously
test the metapackage creation of each Blend *before* 2016-12-05.

What do you think?

Kind regards

     Andreas.
 

> diff --git a/devtools/blend-gen-control b/devtools/blend-gen-control
> index 1aba552..cde3237 100755
> --- a/devtools/blend-gen-control
> +++ b/devtools/blend-gen-control
> @@ -566,9 +566,14 @@ sub load_task {
>          my $header;
>          for $header (qw(Depends Recommends Suggests)) {
>              if (m/^$header:\s+(.+)$/ && $1 !~ /^\s*$/) {
> +		my $pkgs = $1;
> +		while (<TASKFILE>) {
> +		    last if (m/^\S+/ || m/^\s*$/);
> +		    $pkgs .= $_;
> +		}
>                  $taskinfo{$curpkg}{$header} = ()
>                      if (! exists $taskinfo{$curpkg}{$header});
> -                my ($pkglist, $missinglist) = process_pkglist($1);
> +                my ($pkglist, $missinglist) = process_pkglist($pkgs);
>                  push(@{$taskinfo{$curpkg}{$header}}, @{$pkglist});
>  
>  		$haspackages += $#{$taskinfo{$curpkg}{$header}} + 1;


[1] https://anonscm.debian.org/git/blends/blends-gsoc.git

-- 
http://fam-tille.de


Reply to: