+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.
* 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.
* 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.
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).
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
#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");
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 ***/
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) {
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;
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)) {
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:
#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) {
# 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 '.#*'`
\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.
.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
$udeb = 0;
$arch = '';
-while ($ARGV[1] =~ m/^-.*/) {
+while ($ARGV[0] =~ m/^-.*/) {
my $opt = shift @ARGV;
if ($opt eq '-u') {
$udeb = 1;
}
}
$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;
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>) {
}
$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";
[--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
$menuentry="";
$description="";
+$infodir="";
$sectionre="";
$sectiontitle="";
$infoentry="";
$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;
}
@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);
$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");