On Tue, 07 Dec 2010 15:49:44 +0100, Holger Levsen wrote:

> http://piuparts.debian.org/sid/pass/emacspeak-ss_1.12.1-1.log and
> http://piuparts.debian.org/squeeze/pass/emacspeak-ss_1.12.1-1.log are both 
> examples of successful installations.
> 
> Also please note that the above logs are from June+September, I've just 
> rescheduled them for testing again and they both passed. These logs will be 
> available from tomorrow at the same URLs.

Both logs show success.

But I can reproduce the problem quite easily:
$ sudo cowbuilder --login
# apt-get install emacspeak-ss
...
Fetched 35.9 MB in 1min 1s (579 kB/s)                                           
                                                  
Extracting templates from packages: 100%
Preconfiguring packages ...
Use of uninitialized value $_[1] in join or string at 
/usr/share/perl5/Debconf/Client/ConfModule.pm line 121, <STDIN> line 14.
Use of uninitialized value $_[1] in join or string at 
/usr/share/perl5/Debconf/Client/ConfModule.pm line 121, <STDIN> line 16.

The hanging process seems to be
/usr/bin/perl -w /tmp/emacspeak.config.96593 configure

Looks more like emacspeak than emacspeak-ss; but `apt-get install
emacspeak' succeeds, after showing the same warnings.

After that I can install emacspeak-ss without problems.
Hm.

Ok, let's try manually:

# /tmp/emacspeak.config.96593 configure
Use of uninitialized value $device in hash element at 
/tmp/emacspeak.config.322673 line 62, <STDIN> line 3.
Use of uninitialized value $device in hash element at 
/tmp/emacspeak.config.322673 line 63, <STDIN> line 3.
Use of uninitialized value $device in hash element at 
/tmp/emacspeak.config.322673 line 64, <STDIN> line 3.
Use of uninitialized value $p in concatenation (.) or string at 
/tmp/emacspeak.config.322673 line 65, <STDIN> line 3.
Use of uninitialized value $t in concatenation (.) or string at 
/tmp/emacspeak.config.322673 line 65, <STDIN> line 3.
Use of uninitialized value $device in hash element at 
/tmp/emacspeak.config.322673 line 65, <STDIN> line 3.
^C

Adding some debug output to /tmp/emacspeak.config.96593 we see that $choices 
contains
'shared/emacspeak/database doesn\'t exist' and $database too.

If I guard this block with an if-conditional I later get an infinite
loop in the "while (!$valid)" loop. $port contains
'shared/emacspeak/port doesn\'t exist'. Setting it to "none" (which
is the default anyway?!) let's the config script finish.

Just for reference, I'm attaching the changes mentioned above. With
this change I can install emacspeak and emacspeak-ss with dpkg in the
cowbuilder chroot.

But I'm still not sure if this is a problem in emacspeak or in
emacspeak-ss (since emacspeak alone installs). And in general I don't
really understand what's going in here ...


Cheers,
gregor

-- 
 .''`.   http://info.comodo.priv.at/ -- GPG key IDs: 0x8649AA06, 0x00F3CFE4
 : :' :  Debian GNU/Linux user, admin, & developer - http://www.debian.org/
 `. `'   Member of VIBE!AT & SPI, fellow of Free Software Foundation Europe
   `-    NP: Bob Dylan: Shelter From The Storm
diff -u emacspeak-29.0/debian/config emacspeak-29.0/debian/config
--- emacspeak-29.0/debian/config
+++ emacspeak-29.0/debian/config
@@ -56,13 +56,15 @@
 my ($b, $p, $t, $device, $olddevice, 
     %blurb, %program, %tcl, %device, %db, $devicelist);
 ($ret, $database) = metaget ('shared/emacspeak/database', 'choices');
-foreach (split (/, */, $database)){ # debconf database is comma separated
-    ($b, $p, $t, $device)=split(/:/);
-    # load data into hashes
-    $blurb{$device}=$b;
-    $program{$device}=$p;
-    $tcl{$device}=$t;
-    $db{$device}="$b:$p:$t";	# local database is colon separated
+if ($database ne 'shared/emacspeak/database doesn\'t exist') {
+  foreach (split (/, */, $database)){ # debconf database is comma separated
+      ($b, $p, $t, $device)=split(/:/);
+      # load data into hashes
+      $blurb{$device}=$b;
+      $program{$device}=$p;
+      $tcl{$device}=$t;
+      $db{$device}="$b:$p:$t";	# local database is colon separated
+  }
 }
 
 # Add choices from unpacked .blurb files from other packages, in case
@@ -182,6 +184,7 @@
 while (!$valid) {
     input('high', 'shared/emacspeak/port'); go();
     $port=get('shared/emacspeak/port');
+    $port = "none" if $port eq 'shared/emacspeak/port doesn\'t exist';
     if (($port eq "none") || (-c $port)){
 	$valid=1;
     } else {

Attachment: signature.asc
Description: Digital signature

Reply via email to