]> err.no Git - dpkg/commitdiff
Merge changes from v1_9 branch
authorWichert Akkerman <wakkerma@debian.org>
Tue, 17 Jul 2001 15:03:55 +0000 (15:03 +0000)
committerWichert Akkerman <wakkerma@debian.org>
Tue, 17 Jul 2001 15:03:55 +0000 (15:03 +0000)
ChangeLog
debian/changelog
main/help.c
scripts/dpkg-source.pl

index 402491b3577af30749f18f55a65c897457a2d62b..f7341636558882aeaee095b95515fb46fdfdded4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Tue Jul 17 16:53:12 CEST 2001 Wichert Akkerman <wakkerma@debian.org>
+  
+  * Merge changes from v1_9 branch
+    + debian/changelog: add 1.9.15 and 1.9.16 releases
+    + scripts/dpkg-source.pl: 
+      - Add handleformat sub to check if we can handle a dscformat
+      - Revert dscformat to 1.0. Technically we changed a few things
+        but older versions of dpkg-source did not handle minor updates
+        to the dscformat. New policy is that minor updates (last digit
+        changes) to the dscformat have to be fully backward and forward
+        compatible.
+      - restore test if tar exited with exited with a non-zero exitcode
+      - remove a bunch of commented debug statements
+    + main/help.c: fix narglist construction building and usage in do_script() 
+
 Tue Jul 17 00:36:32 CEST 2001 Wichert Akkerman <wakkerma@debian.org>
 
   * dselect/dselect.8: document new search features
index 529a8b083122f38a5da19962e2bfe21e840b075e..ddb47073546b497cc8d6c4e1550a54be6b857f1d 100644 (file)
@@ -32,6 +32,24 @@ dpkg (1.10) unstable; urgency=low
 
  -- Wichert Akkerman <wakkerma@debian.org>  UNRELEASED
 
+dpkg (1.9.16) unstable; urgency=low
+
+  * Revert architecture-change to dpkg-source from 1.9.11, see ChangeLog
+    for details.
+
+ -- Wichert Akkerman <wakkerma@debian.org>  Thu,  5 Jul 2001 22:42:11 +0200
+
+dpkg (1.9.15) unstable; urgency=low
+
+  * Change policy of handling dscformat in dpkg-source
+  * Fix the arglist construction for maintainer scripts
+  * Revert dscformat to 1.0 since older dpkg-source versions do not have
+    the new policy. In the future (starting at format 2.0 to maintain
+    compatibility with old dpkg-source implementations) minor changes to
+    the dscformat have to be fully backward and forward compatible.
+
+ -- Wichert Akkerman <wakkerma@debian.org>  Sat, 30 Jun 2001 16:41:43 +0200
+
 dpkg (1.9.14) unstable; urgency=low
 
   * Make the Uploaders field in a .dsc file optional.
index 1dcb517ac117cfcdde745464bcde101097745533..379f1c7b4971b8b68be0aac74cb9cfaf150b1cee 100644 (file)
@@ -262,12 +262,12 @@ static int do_script(const char *pkg, const char *scriptname, const char *script
   if (!c1) {
     const char **narglist;
     for (r=0; arglist[r]; r++) ;
-    narglist=nfmalloc(r*sizeof(char*));
-    for (r=1; arglist[r]; r++)
+    narglist=nfmalloc((r+1)*sizeof(char*));
+    for (r=1; arglist[r-1]; r++)
       narglist[r]= arglist[r];
     scriptexec= preexecscript(scriptpath,narglist);
     narglist[0]= scriptexec;
-    execv(scriptexec,arglist);
+    execv(scriptexec,narglist);
     ohshite(desc,name);
   }
   script_catchsignals(); /* This does a push_cleanup() */
index 7b7ef4d427248289f6caa0a5b353e549e7f01dde..a55cdd7e9effc01c51fcd8f4f258d29e76b682c5 100755 (executable)
@@ -11,7 +11,7 @@ my $fn;
 $diff_ignore_default_regexp = '^.*~$|^\..*\.swp|DEADJOE|(?:/CVS|/RCS|/.deps)(?:$|/.*$)';
 
 $sourcestyle = 'X';
-$dscformat = "1.1";
+$dscformat = "1.0";
 
 use POSIX;
 use POSIX qw (:errno_h :signal_h);
@@ -59,6 +59,17 @@ General options: -h                  print this message
 ";
 }
 
+sub handleformat {
+       local $fmt      = shift;
+       local $ourfmt   = $dscformat;
+
+       $fmt =~ s/(.*)\.\d*/$1/;
+       $ourfmt =~ s/(.*)\.\d*/$1/;
+
+       return ($fmt==$ourfmt);
+}
+
+
 $i = 100;
 grep ($fieldimps {$_} = $i--,
       qw (Format Source Version Binary Origin Maintainer Architecture
@@ -130,7 +141,6 @@ if ($opmode eq 'build') {
     for $_ (keys %fi) {
         $v= $fi{$_};
         if (s/^C //) {
-#print STDERR "G key >$_< value >$v<\n";
             if (m/^Source$/) { &setsourcepackage; }
             elsif (m/^(Standards-Version|Origin|Maintainer|Uploaders)$/) { $f{$_}= $v; }
            elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) { $f{$_}= $v; }
@@ -138,11 +148,9 @@ if ($opmode eq 'build') {
             elsif (m/^(Section|Priority|Files|Bugs)$/ || m/^X[BC]+-/i) { }
             else { &unknown('general section of control info file'); }
         } elsif (s/^C(\d+) //) {
-#print STDERR "P key >$_< value >$v<\n";
             $i=$1; $p=$fi{"C$i Package"};
             push(@binarypackages,$p) unless $packageadded{$p}++;
             if (m/^Architecture$/) {
-#print STDERR "$p >$v< >".join(' ',@sourcearch)."<\n";
                 if ($v eq 'any') {
                     @sourcearch= ('any');
                 } elsif ($v eq 'all') {
@@ -152,6 +160,9 @@ if ($opmode eq 'build') {
                         @sourcearch= ('any');
                     }
                 } else {
+                   if (grep($sourcearch[0] eq $_, 'any','all'))  {
+                       @sourcearch= ('any');
+                   } else {
                         for $a (split(/\s+/,$v)) {
                             &error("architecture $a only allowed on its own".
                                    " (list for package $p is \`$a')")
@@ -159,6 +170,7 @@ if ($opmode eq 'build') {
                             push(@sourcearch,$a) unless $archadded{$a}++;
                         }
                 }
+                }
                 $f{'Architecture'}= join(' ',@sourcearch);
             } elsif (s/^X[BC]*S[BC]*-//i) {
                 $f{$_}= $v;
@@ -170,7 +182,6 @@ if ($opmode eq 'build') {
                 &unknown("package's section of control info file");
             }
         } elsif (s/^L //) {
-#print STDERR "L key >$_< value >$v<\n";
             if (m/^Source$/) {
                 &setsourcepackage;
             } elsif (m/^Version$/) {
@@ -205,9 +216,7 @@ if ($opmode eq 'build') {
     $basenamerev= $sourcepackage.'_'.$version;
     $basename= $sourcepackage.'_'.$upstreamversion;
     $basedirname= $basename;
-#print STDERR ">$basedirname<\n";
     $basedirname =~ s/_/-/;
-#print STDERR ">$basedirname<\n";
 
     $origdir= "$dir.orig";
     $origtargz= "$basename.orig.tar.gz";
@@ -276,8 +285,6 @@ if ($opmode eq 'build') {
         $tarname= "$basenamerev.tar.gz";
     }
 
-#print STDERR ">$dir|$origdir|$origtargz|$sourcestyle<\n";
-
     if ($sourcestyle =~ m/[nurUR]/) {
 
         if (stat($tarname)) {
@@ -288,15 +295,12 @@ if ($opmode eq 'build') {
             &syserr("unable to check for existence of \`$tarname'");
         }
 
-#print STDERR ">$tarname|$tardirbase|$tardirname<\n";
-    
         print("$progname: building $sourcepackage in $tarname\n")
             || &syserr("write building tar message");
         &forkgzipwrite("$tarname.new");
         defined($c2= fork) || &syserr("fork for tar");
         if (!$c2) {
             chdir($tardirbase) || &syserr("chdir to above (orig) source $tardirbase");
-#system('pwd && ls');
             open(STDOUT,">&GZIP") || &syserr("reopen gzip for tar");
             # FIXME: put `--' argument back when tar is fixed
             exec('tar','-cf','-',$tardirname); &syserr("exec tar");
@@ -329,6 +333,8 @@ if ($opmode eq 'build') {
         }
 
         $expectprefix= $origdir; $expectprefix =~ s,^\./,,;
+# tar checking is disabled, there are too many broken tar archives out there
+# which we can still handle anyway.
 #        checktarsane($origtargz,$expectprefix);
         mkdir("$origtargz.tmp-nest",0755) ||
             &syserr("unable to create \`$origtargz.tmp-nest'");
@@ -495,11 +501,12 @@ if ($opmode eq 'build') {
     }
 
     if (defined $fi{'S Format'}) {
-        $dscformat=$fi{'S Format'};
-       if (not $dscformat =~ /^1\./) {
+       if (not handleformat($fi{'S Format'})) {
            &error("Unsupported format of .dsc file ($dscformat)");
        }
+        $dscformat=$fi{'S Format'};
     }
+
     $sourcepackage =~ m/[^.0-9]/ &&
         &error("dsc format contains illegal character \`$&'");
 
@@ -536,6 +543,8 @@ if ($opmode eq 'build') {
     checkstats($tarfile);
     checkstats($difffile) if length($difffile);
 
+# tar checking is disabled, there are too many broken tar archives out there
+# which we can still handle anyway.
 #    checktarsane("$dscdir/$tarfile",$expectprefix);
 
     if (length($difffile)) {
@@ -935,7 +944,7 @@ sub checktarsane {
         if ($type ne '-') { $notfileobject{$tarfn} = 1; }
     }
     close (TAR);
-    #$? && subprocerr ("tar -vvtf");
+    $? && subprocerr ("tar -vvtf");
     &reapgzip;
 
     my $tarsubst = quotemeta ($tarprefix);
@@ -1023,7 +1032,6 @@ sub unrepdiff2 {
 }
 
 sub forkgzipwrite {
-#print STDERR "forkgzipwrite $_[0]\n";
     open(GZIPFILE,"> $_[0]") || &syserr("create file $_[0]");
     pipe(GZIPREAD,GZIP) || &syserr("pipe for gzip");
     defined($cgz= fork) || &syserr("fork for gzip");
@@ -1037,7 +1045,6 @@ sub forkgzipwrite {
 }
 
 sub forkgzipread {
-#print STDERR "forkgzipread $_[0]\n";
     local $SIG{PIPE} = 'DEFAULT';
     open(GZIPFILE,"< $_[0]") || &syserr("read file $_[0]");
     pipe(GZIP,GZIPWRITE) || &syserr("pipe for gunzip");
@@ -1052,7 +1059,6 @@ sub forkgzipread {
 }
 
 sub reapgzip {
-#print STDERR "reapgzip $_[0]\n";
     $cgz == waitpid($cgz,0) || &syserr("wait for gzip");
     !$? || ($gzipsigpipeok && WIFSIGNALED($?) && WTERMSIG($?)==SIGPIPE) ||
         subprocerr("gzip");