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

Bug#835528: blends-dev: please support option for udeb using blends



Package: blends-dev
Version: 0.6.93
Severity: important
Tags: patch
User: debian-edu@lists.debian.org
Usertags: debian-edu
X-Debbugs-Cc: debian-edu@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 to: