Package: blends-dev
Version: 0.6.93
Severity: important
Tags: patch
User: debian-...@lists.debian.org
Usertags: debian-edu
X-Debbugs-Cc: debian-...@lists.debian.org


Hi,

while testing Debian Edu Stretch I noticed that the tasks desc file 
generated by blend-gen-control doesn't work with the Debian Edu udeb 
approach; see #834719.

IMO blends-dev should provide the possibility to generate a task desc 
file that is compliant with the case that udebs are used to modify the 
installer.

It would be good for a blend if just adding a line containing 
"TASKSELOPTS = -u" to their own Makefile would generate a compliant 
desc file. Without this line the desc file should be generated as is.

Please check if the modifications below are acceptable:

diff -u a/blends-dev/blend-gen-control b/blends-dev/blend-gen-control
--- a/blends-dev/blend-gen-control      2016-04-09 20:42:00.000000000 +0200
+++ b/blends-dev/blend-gen-control      2016-08-26 17:32:38.818075961 +0200
@@ -60,12 +60,13 @@
    -s <sourcefile>  : specify which sources.list file to use
    -S               : suppress tasks without any recommended package
    -t               : print task descriptions and package list for task
+   -u               : modify tasks desc file in case the blend uses udebs
 
 example: $0 -s sources.list.etch -D -c -m -i
 EOF
 }
 
-getopts("cdaemis:StDhA", \%opts);
+getopts("cdaemis:StuDhA", \%opts);
 
 usage() and exit if $opts{'h'};
 
@@ -281,15 +282,16 @@
 # Enable to list all dependencies as key packages
 my $task_depends_are_keys = 0;
 sub print_task_desc {
-        print "Task: $blendname\n";
-       print "Relevance: 7\n";
-       print "Section: $blendname\n";
+       if (! $opts{'u'} ) {
+           print "Task: $blendname\n";
+           print "Relevance: 7\n";
+           print "Section: $blendname\n";
 #      print "Key: \n";
 #      print " $blendshortname-tasks\n";
-       print "Description: $blendtitle Pure Blend\n";
-       print " .\n"; # no long description available
-       print "\n";
-    
+           print "Description: $blendtitle Pure Blend\n";
+           print " .\n"; # no long description available
+           print "\n";
+       }
         foreach my $task (sort keys %taskinfo) {
                 next if (exists $taskinfo{$task}{'Leaf'} &&
                         $taskinfo{$task}{'Leaf'} eq 'false');
@@ -313,15 +315,22 @@
                    }
                }
                 print "Task: $task\n";
-                print "Parent: $blendname\n";
-                print "Section: $blendname\n";
+                if (! $opts{'u'}) {
+                   print "Parent: $blendname\n";
+                }; 
+               print "Section: $blendname\n";
                 print "Description: $taskinfo{$task}{Description}\n";
                 print "$taskinfo{$task}{'Description-long'}"; # Already 
contain newline
+                if ($opts{'u'}) {
+                   print "Relevance: 10\n";
+               }
                 print "Enhances: $taskinfo{$task}{Enhances}\n"
                     if exists $taskinfo{$task}{Enhances};
                if (!exists $taskinfo{$task}{'Install'} ||
                    $taskinfo{$task}{'Install'} ne 'false') {
-                   print "Test-new-install: mark show\n";
+                    if (! $opts{'u'}) {
+                       print "Test-new-install: mark show\n";
+                   }
                }
                 for $header (keys %{$taskinfo{$task}}) {
                     if ($header =~ m/test-.+/i) {
@@ -343,6 +352,15 @@
                     }
                 }
 
+                if ($opts{'u'}) {
+                    print "Packages: list\n";
+                    for my $header (qw(Depends Recommends)) {
+                        foreach my $package (task_packages($task, $header, 1)) 
{
+                            print " $package\n" unless $seen{$package};
+                            $seen{$package} = 1;
+                        }
+                    }
+                }
                 print "\n";
         }
 }
diff -u a/blends-dev/Makefile b/blends-dev/Makefile
--- a/blends-dev/Makefile       2016-03-31 20:31:00.000000000 +0200
+++ b/blends-dev/Makefile       2016-08-26 15:33:38.000000000 +0200
@@ -11,6 +11,7 @@
 TARGET_DIST := $(shell head -1 debian/changelog |awk '{print $$3}'|tr -d ';')
 BLEND := $(shell /usr/share/blends-dev/blend-get-names blendname)
 GENCONTROL := /usr/share/blends-dev/blend-gen-control
+TASKSELOPTS := $(shell grep TASKSELOPTS Makefile | cut -d '=' -f2)
 
 # Verify whether config/control exists, if yes, add it to the depends of 
debian/control
 CONFIGCONTROL := $(shell if [ -d config -a -e config/control ] ; then echo 
config/control; fi)
@@ -26,7 +27,7 @@
 
 tasksel: $(BLEND)-tasks.desc
 $(BLEND)-tasks.desc: tasks/* debian/changelog
-       LC_ALL=C $(GENCONTROL) -s $(TARGET_DIST) -S -t -A > 
$(BLEND)-tasks.desc.new && mv $(BLEND)-tasks.desc.new $(BLEND)-tasks.desc
+       LC_ALL=C $(GENCONTROL) -s $(TARGET_DIST) $(TASKSELOPTS) -S -t -A > 
$(BLEND)-tasks.desc.new && mv $(BLEND)-tasks.desc.new $(BLEND)-tasks.desc
 
 packages.txt: tasks/*
        $(GENCONTROL) -s $(TARGET_DIST) -a > packages.txt.$$$$ && mv 
packages.txt.$$$$ packages.txt


Wolfgang

Attachment: signature.asc
Description: Digital signature

Reply via email to