]> err.no Git - dpkg/commitdiff
Tollef and I gorged on low hanging fruit and got our hands sticky.
authorScott James Remnant <keybuk@debian.org>
Sun, 25 Apr 2004 17:11:41 +0000 (17:11 +0000)
committerScott James Remnant <keybuk@debian.org>
Sun, 25 Apr 2004 17:11:41 +0000 (17:11 +0000)
18 files changed:
ChangeLog
debian/changelog
debian/control
dpkg-deb/main.c
include/dpkg.h.in
lib/dump.c
lib/ehandle.c
lib/myopt.c
main/archives.c
main/query.c
release.sh
scripts/dpkg-checkbuilddeps.1
scripts/dpkg-divert.8
scripts/dpkg-scanpackages.pl
scripts/dpkg-shlibdeps.pl
scripts/dpkg-statoverride.pl
scripts/install-info.pl
split/mksplit.pl

index b6c15ce94da6d64534de3a10eb9c67fe36ffd70c..6e0a2a408f3a678566bbc5f989487336dec0467e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+Sun Apr 25 18:02:34 BST 2004 Scott James Remnant <scott@netsplit.com>
+
+  * scripts/install-info.pl: Add gndn --dir-file option for compatibility
+  with GNU install-info.  Correct code to break infinite loop.
+
+Sun Apr 25 17:57:46 BST 2004 Scott James Remnant <scott@netsplit.com>
+
+  * scripts/dpkg-divert.8: Document that diverting shared libraries
+  can be troublesome when combined with ldconfig.
+
+Sun Apr 25 17:53:06 BST 2004 Scott James Remnant <scott@netsplit.com>
+
+  * scripts/dpkg-checkbuilddeps.1: This script no longer checks for
+  build-essential, so don't document that it does.
+
+Sun Apr 25 17:45:47 BST 2004 Scott James Remnant <scott@netsplit.com>
+
+  * scripts/dpkg-genchanges.pl: Group the -o expression to find
+  using braces.
+
 Sun Apr 25 17:17:16 BST 2004 Scott James Remnant <scott@netsplit.com>
 
   * man/es/Makefile.in: Add new dpkg-source.1 manpage.
@@ -10,6 +30,46 @@ Sun Apr 25 16:59:09 BST 2004 Scott James Remnant <scott@netsplit.com>
 
   * configure.in: Add Norwegian Nynorsk and Portugese linguas.
 
+Sun Apr 25 12:27:38 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * main/archive.c: make block and char devices work properly when
+    extracting.  mknod can create other kinds of devices than just char
+    and block devices, so we need to pass the type of device to mknod in
+    the mode argument.
+
+Sun Apr 25 00:46:38 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * split/mksplit.pl: cut off anything after the first piece of whitespace
+    when getting the md5sum, since we now get a different-formatted md5sum
+    back.  (It now has a trailing dash.)
+
+Sun Apr 25 00:23:27 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * lib/dump.c: Terminate buffer in order to not display garbage when
+    displaying dependency fields.
+       
+Sun Apr 25 00:12:27 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * main/query.c, dpkg-deb/main.c: Fix up the query format to be
+    consistent with what the library expects.  Remove the pkg: prefix from
+    the default showformat.
+       
+Sun Apr 25 00:06:27 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * scripts/dpkg-statoverride.pl: Make sure the permissions passed to
+    dpkg-statoverride are numeric.
+
+Sat Apr 24 23:11:12 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * include/dpkg.h.in, lib/ehandle.c, lib/myopt.c: Failed opening of
+    configuration files are no longer a fatal error.  Thanks to Max
+    Vozeler <max@hinterhof.net> for the patch.
+
+Mon Apr 19 12:24:40 CEST 2004 Tollef Fog Heen <tfheen@debian.org>
+
+  * scripts/dpkg-shlibdeps.pl: Set LC_ALL to C before spawning off dpkg
+  --search, to avoid searching on localized strings.
+
 Sun Mar 28 18:32:19 CEST 2004 Jordi Mallach <jordi@debian.org>
 
   * po/ca.po: Update Catalan translation.
@@ -65,6 +125,10 @@ Thu Mar  8 00:54:00 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
   * man/ja/{dpkg-architecture.1,dpkg-query.8,dselect.8}:  Update Japanese
     translation.  Closes: #224616
 
+Thu Mar  8 00:38:00 CEST 2004  Tollef Fog Heen  <tfheen@debian.org>
+
+  * release.sh: Remove .svn directories as well.
+
 Mon Mar  8 19:37:00 GMT 2004 Scott James Remnant <scott@netsplit.com>
 
   * version-nr, debian/changelog: Bump version to 1.10.20.
index 9756ca765bc7e5f2386480e8af3e579bc3436a33..ad15a0853201ed5494b40b0e554249c2a18c8e98 100644 (file)
@@ -1,10 +1,36 @@
 dpkg (1.10.21) unstable; urgency=low
 
-  * Don't require argument for start-stop-daemon -V.  Closes: #237589.
   * Fix incorrect linked list node removal code that caused every second
     shared or diverted conffile to be deleted by dpkg.
     Closes: #10879, #33046, #47267, #90623, #98210, #109691, #146167.
     Closes: #155456, #204275.
+  * Call mknod with the required device type.  Closes: #158916.
+  * Correct the default query output format to be consistent with
+    what the underlying library expects.  Closes: #174973.
+  * Fix missing NULL-termination in dpkg-query -W display of dependency
+    fields.  Closes: #174978
+  * Strip output from md5sum(1) after the first whitespace character.
+    Closes: #200763.
+  * Output a warning if we cannot open a configuration file instead of
+    treating it as a fatal error, in case our home directory is not readable
+    by root.  Closes: #200701.
+  * Set LC_ALL to C before spawning off dpkg --search, to avoid searching
+    on localized strings.  Closes: #244316.
+  * Don't require argument for start-stop-daemon -V.  Closes: #237589.
+  * Correct use of @ARGV within dpkg-scanpackages, allowing -u to work
+    once again.  Closes: #225086, #241503.
+  * Make sure file permissions passed to dpkg-statoverride are numeric.
+    Closes: #161156.
+  * Correctly break out of the loop in install-info.
+    Closes: #124225, #160761.
+  * Add ignored --dir-file option to install-info for GNU install-info
+    compatibility.  Closes: #179192
+  * Refer to debian-policy in dpkg-doc's description instead of the
+    non-existant packaging-manual.  Closes: #120970.
+  * Remove incorrect mention of build-essential from dpkg-checkbuilddeps
+    manpage.  Closes: #219210.
+  * Add a note about diverting shared libraries to the dpkg-divert
+    manpage.  Closes: #214699.
   * Updated Translations:
     - Brazilian Portugese (Andre Luis Lopes).  Closes: #237864.
     - Catalan (Jordi Mallach).
index 38244eec944fa79d449bfc1881fb887abbdaf0d5..6454c2d71054118665f6bf7049b0dbbf565ac34e 100644 (file)
@@ -70,7 +70,7 @@ Description: Dpkg Internals Documentation
  This document describes the internal operations of the dpkg program. It
  covers building as well as the internals functions. If you are interested
  in creating your own packages, then you may be more interested in the
packaging-manual documentation package.
debian-policy package.
 
 Package: dselect
 Architecture: any
index 2cb8f29026e92af6109d8afa034bec79d9560942..42ce6d675f423632d4c7697863a225d0d60d83e3 100644 (file)
@@ -40,7 +40,7 @@
 
 #include "dpkg-deb.h"
 
-const char* showformat = "${pkg:Package}\t${pkg:Version}\n";
+const char* showformat = "${Package}\t${Version}\n";
 
 static void printversion(void) {
   if (fputs(_("Debian `"), stdout) < 0) werr("stdout");
index 230fe53912a0683565a97e95fb0b022503ff4e46..c3fbd8a324fc42b32fbe9eccf769939c66e93756 100644 (file)
@@ -191,6 +191,7 @@ void ohshite(const char *fmt, ...) NONRETURNPRINTFFORMAT(1,2);
 void ohshitvb(struct varbuf*) NONRETURNING;
 void badusage(const char *fmt, ...) NONRETURNPRINTFFORMAT(1,2);
 void werr(const char *what) NONRETURNING;
+void warningf(const char *fmt, ...);
 
 /*** from mlib.c ***/
 
index 48976d7f127dd147518bd22746799fe0d78b09ff..888f3e0f1399077c0302fa0a0e0f0f3dbc565d89 100644 (file)
@@ -207,6 +207,8 @@ void w_dependency(struct varbuf *vb,
   if (!pifp->valid) return;
   if (flags&fw_printheader)
     sprintf(fnbuf,"%s: ",fip->name);
+  else
+    fnbuf[0] = '\0';
 
   depdel= fnbuf;
   for (dyp= pifp->depends; dyp; dyp= dyp->next) {
index d60804b50f8f4fdfb3e143f3a0b1c663bf3cf787..f04217eb008f129f76cb78359b2f619501ebf920 100644 (file)
@@ -256,6 +256,19 @@ void ohshite(const char *fmt, ...) {
   longjmp(*econtext->jbufp,1);
 }
 
+void warningf(const char *fmt, ...) {
+  int e;
+  va_list al;
+  char buf[1024];
+
+  e=errno;
+  va_start(al,fmt);
+  vsnprintf(buf,sizeof(buf),fmt,al);
+  va_end(al);
+
+  fprintf(stderr,"%s: %s",buf,strerror(e));
+}
+
 void badusage(const char *fmt, ...) {
   char buf[1024];
   va_list al;
index adfef9b7fef565c2e6e522a12528039dd65528bc..56c8f903535f758b21ad84dedb18f3cc06a9e97d 100644 (file)
@@ -37,7 +37,8 @@ void myfileopt(const char* fn, const struct cmdinfo* cmdinfos) {
   if (!file) {
     if (errno==ENOENT)
       return;
-    ohshite(_("failed to open configuration file `%.255s' for reading"), fn);
+    warningf(_("failed to open configuration file `%.255s' for reading"),fn);
+    return;
   }
 
   while (fgets(linebuf, sizeof(linebuf), file)) {
index 7d61497e626745b1cda3121f3741a01bbe102cc0..76d61edc3019b6470636cc49a210d56ee6bb028c 100644 (file)
@@ -525,10 +525,16 @@ int tarobject(struct TarInfo *ti) {
     debug(dbg_eachfiledetail,"tarobject FIFO");
     newtarobject_allmodes(fnamenewvb.buf,ti, nifd->namenode->statoverride);
     break;
-  case CharacterDevice: case BlockDevice:
-    if (mknod(fnamenewvb.buf,0,ti->Device))
+  case CharacterDevice:
+    if (mknod(fnamenewvb.buf,S_IFCHR, ti->Device))
       ohshite(_("error creating device `%.255s'"),ti->Name);
-    debug(dbg_eachfiledetail,"tarobject CharacterDevice|BlockDevice");
+    debug(dbg_eachfiledetail,"tarobject CharacterDevice");
+    newtarobject_allmodes(fnamenewvb.buf,ti, nifd->namenode->statoverride);
+    break; 
+  case BlockDevice:
+    if (mknod(fnamenewvb.buf,S_IFBLK, ti->Device))
+      ohshite(_("error creating device `%.255s'"),ti->Name);
+    debug(dbg_eachfiledetail,"tarobject BlockDevice");
     newtarobject_allmodes(fnamenewvb.buf,ti, nifd->namenode->statoverride);
     break; 
   case HardLink:
index 51e0cffaef9af503f1f0842a76b7c094341901ee..d4d8e81d87696baee15f2e683e9b8b97ff2cd092 100644 (file)
@@ -43,7 +43,7 @@
 #include "filesdb.h"
 #include "main.h"
 
-static const char* showformat          = "${pkg:Package}\t${pkg:Version}\n";
+static const char* showformat          = "${Package}\t${Version}\n";
 
 
 void ensure_package_clientdata(struct pkginfo *pkg) {
index 4c25eb1e8c38c6c3ed91f1730008089c81c796ef..0274e9e077cfcf6c4035f4c1daa5d09c84759d2d 100755 (executable)
@@ -8,6 +8,7 @@
 # remove CVS files
 rm -rf `find . -name CVS -type d`
 rm -f `find . -name .cvsignore -type f`
+rm -rf `find . -name .svn -type d`
 
 # Remove any cruft files...
 rm -f `find . -name '*.orig' -o -name '*.rej' -o -name '*~' -o -name '.#*'`
index 529eb1af88da2e09f8c86c148cf286a115b7b341..4013b5ffabcd76d5eff295eb6cd8ee495097a18b 100644 (file)
@@ -5,9 +5,8 @@ dpkg-checkbuilddeps -- check build dependencies and conflicts
 \fBdpkg-checkbuilddeps\fR -B [\fIcontrol-file\fR]
 .SH DESCRIPTION
 This program checks the installed packages in the system against the build
-dependencies and build conflicts listed in the control file. It also checks
-for build-essential. If any are not met, it displays them and exits with a
-nonzero return code.
+dependencies and build conflicts listed in the control file.  If any are
+not met, it displays them and exits with a nonzero return code.
 .P
 By default, \fBdebian/control\fR is read, but an alternate control filename
 may be specified on the command line.
index 7817aa95c98abe71cab584274c42b177a17b7aa6..e22932539c59fa1330804ed59baf84b231caf7cc 100644 (file)
@@ -66,8 +66,14 @@ Output program name and version and exit successfully.
 .SH NOTES
 When adding, default is --local and --divert <original>.distrib.
 When removing, --package or --local and --divert must match if specified.
-.br
+
 Directories can't be diverted with dpkg-divert.
+
+Care should be taken when diverting shared libraries, ldconfig (8) creates
+a symbolic link based on the DT_SONAME field embedded in the library.
+Because ldconfig doesn't honour diverts (only dpkg does), if a diverted
+ibrary has the same SONAME as the undiverted one the symlink may end up
+pointing at the diverted library.
 .SH FILES
 .TP
 .I /var/lib/dpkg/diversions
index 4f77944f45266cff87cce3b38bd14996c72f9a1f..e5387355ecada0119a6f45150ce604e719eb56db 100755 (executable)
@@ -33,7 +33,7 @@ $i=100; grep($pri{$_}=$i--,@fieldpri);
 
 $udeb = 0;
 $arch = '';
-while ($ARGV[1] =~ m/^-.*/) {
+while ($ARGV[0] =~ m/^-.*/) {
     my $opt = shift @ARGV;
     if ($opt eq '-u') {
         $udeb = 1;
@@ -49,7 +49,7 @@ while ($ARGV[1] =~ m/^-.*/) {
     }
 }
 $ext = $udeb ? 'udeb' : 'deb';
-$pattern = $arch ? "-name '*_all.$ext' -o -name '*_$arch.$ext'" : "-name '*.$ext'";
+$pattern = $arch ? "'(' -name '*_all.$ext' -o -name '*_$arch.$ext' ')'" : "-name '*.$ext'";
 if ($ARGV[1] eq '-u') {
     $udeb = 1;
     shift @ARGV;
index 64fa30f925853ab59765f8258f8568cb5093b255..e5f0a56a43d106f189e6291c47bdec12f7268ce5 100755 (executable)
@@ -192,6 +192,7 @@ if ($#libfiles >= 0) {
     if (!$c) {
         close STDERR; # we don't need to see dpkg's errors
        open STDERR, "> /dev/null";
+        $ENV{LC_ALL} = "C";
         exec("dpkg","--search","--",map {"$_"} @libfiles); syserr("cannot exec dpkg");
     }
     while (<P>) {
index cdd01aa5cd15d853b728d88a3b5ed57c1ff2d02f..485f0bcef64e796fe3ad57603bb47220cc72bf74 100755 (executable)
@@ -95,7 +95,7 @@ if ($mode eq "add") {
        }
 
        $mode= $ARGV[2];
-       (($mode<0) or (oct($mode)>07777)) && &badusage("illegal mode $mode");
+       (($mode<0) or (oct($mode)>07777) or ($mode !~ m/\d+/)) && &badusage("illegal mode $mode");
        $file= $ARGV[3];
        $file =~ m/\n/ && &badusage("file may not contain newlines");
        $file =~ s,/+$,, && print STDERR "stripping trailing /\n";
index 6d1ccc239d6b7370844050d54ca493706f4b7089..5abf86133c73d90c8052009ed9a8902a0c19f5bb 100755 (executable)
@@ -23,7 +23,7 @@ usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn]
              [--section regexp title] [--infodir=xxx] [--align=nnn]
              [--calign=nnn] [--quiet] [--menuentry=xxx] [--info-dir=xxx]
              [--keep-old] [--description=xxx] [--test]
-             [--remove | --remove-exactly ]
+             [--remove | --remove-exactly ] [--dir-file]
              [--]
              filename
 END
@@ -37,6 +37,7 @@ $default='/usr/share/base-files/info.dir';
 
 $menuentry="";
 $description="";
+$infodir="";
 $sectionre="";
 $sectiontitle="";
 $infoentry="";
@@ -90,6 +91,8 @@ while ($ARGV[0] =~ m/^--/) {
         $infodir=$';
     } elsif (m/^--description=/) {
         $description=$';
+    } elsif (m/^--dir-file=/) { # for compatibility with GNU install-info
+       $infodir=$';
     } else {
         print STDERR "$name: unknown option \`$_'\n"; &usage(STDERR); exit 1;
     }
@@ -280,7 +283,7 @@ open(OLD,"$infodir/dir") || &ulquit("open $infodir/dir: $!");
 @work= <OLD>;
 eof(OLD) || &ulquit("read $infodir/dir: $!");
 close(OLD) || &ulquit("close $infodir/dir after read: $!");
-while ($work[$#work] !~ m/\S/) { $#work--; last unless $#work; }
+while (($#work >= 0) && ($work[$#work] !~ m/\S/)) { $#work--; }
 
 while (@work) {
     $_= shift(@work);
index aa71a67beaa3e05d2887280eb1b369339dc7b252..f01741cfaa10dcc8731dd40c184205579bdaafd9 100644 (file)
@@ -32,6 +32,7 @@ sub output {
 
 $myversion='2.1';
 $csum= &output("md5sum <\"$sourcefile\"");
+$csum =~ s/\s.*//;
 $package= &output("dpkg-deb --field \"$sourcefile\" Package");
 $version= &output("dpkg-deb --field \"$sourcefile\" Version");
 $revision= &output("dpkg-deb --field \"$sourcefile\" Package_Revision");