* Fixed incorrect patch for --print-architecture (oops, oh well
it was already broken when there was no gcc anyway :)
+ * Fixed missing mipseb that was supposed to be in the archtable
+ * Better output in update-alternatives --config, now shows the
+ current, and the prefered choices.
+ * dpkg-name: ignore epoch when getting version
+ * 50dpkg-dev.el: add it as a conffile for dpkg-dev
+ * dpkg-shlibdeps: redirect STDERR to /dev/null for the dpkg fork so we
+ don't see dpkg's errors
+ * internals.sgml: Removed references to the versions of build tools,
+ they date the document.
+ * debian-changelog-mode.el: added hint for better log-email handling
+ * Added recognition for new source-depends fields for policy
+ referenced in bug #41232
+ * dpkg-buildpackage: add -ap option to force a pause prior to starting
+ the sign process. This helps for people who don't keep their signatures
+ on the filesystem (on a floppy perhaps, then mount as needed).
+ * minor script corrections
+ * dpkg-dev control: Change gcc to c-compiler in the recommends field, and
+ move cpio, patch and make to the depends line
Thu Oct 21 10:22:43 EDT 1999 Ben Collins <bcollins.debian.org>
powerpc powerpc powerpc
mips mips mips
mipsel mipsel mipsel
+mipseb mips mips
* Fixed incorrect patch for --print-architecture (oops, oh well
it was already broken when there was no gcc anyway :)
-
+ * Fixed missing mipseb that was supposed to be in the archtable
+ * Better output in update-alternatives --config, now shows the
+ current, and the prefered choices.
+ * dpkg-name: ignore epoch when getting version
+ * 50dpkg-dev.el: add it as a conffile for dpkg-dev
+ * dpkg-shlibdeps: redirect STDERR to /dev/null for the dpkg fork so we
+ don't see dpkg's errors
+ * internals.sgml: Removed references to the versions of build tools,
+ they date the document.
+ * debian-changelog-mode.el: added hint for better log-email handling
+ * Added recognition for new source-depends fields for policy
+ referenced in bug #41232
+ * dpkg-buildpackage: add -ap option to force a pause prior to starting
+ the sign process. This helps for people who don't keep their signatures
+ on the filesystem (on a floppy perhaps, then mount as needed).
+ * minor script corrections
+ * dpkg-dev control: Change gcc to c-compiler in the recommends field, and
+ move cpio, patch and make to the depends line
-- Wichert Akkerman <wakkerma@debian.org> UNRELEASED
Section: devel
Priority: important
Architecture: all
-Depends: perl5
-Recommends: cpio (>= 2.4.2-2), patch (>= 2.2-1), gcc, make
+Depends: perl5, cpio (>= 2.4.2-2), patch (>= 2.2-1), make
+Recommends: c-compiler
Suggests: gnupg, debian-keyring
Conflicts: dpkgname
Replaces: dpkgname, dpkg (<< 1.4.0), dpkg-doc-ja
sed -e '/^# i386elf: /d' debian/preinst >$(mcidir)/preinst ; \
fi
set -e; if [ -f debian/shlibs.default.$(arch) ]; then \
- echo /etc/dpkg/shlibs.default >debian/tmp-dev/DEBIAN/conffiles ; \
+ echo /etc/dpkg/shlibs.default >> debian/tmp-dev/DEBIAN/conffiles ; \
install -d debian/tmp-main/etc/dpkg; \
install -m644 debian/shlibs.default.$(arch) \
debian/tmp-dev/etc/dpkg/shlibs.default ; \
install -m 755 debian/dev-prerm debian/tmp-dev/DEBIAN/prerm
install -d debian/tmp-dev/etc/emacs/site-start.d
install -m 644 debian/50dpkg-dev.el debian/tmp-dev/etc/emacs/site-start.d/.
+ echo '/etc/emacs/site-start.d/50dpkg-dev.el' >> debian/tmp-dev/DEBIAN/conffiles
install -d debian/tmp-dev/usr/lib/emacsen-common/packages/{install,remove}
install -m 755 debian/emacsen-common-remove \
debian/tmp-dev/usr/lib/emacsen-common/packages/remove/dpkg-dev
should probably read all of this file first. You have been warned.
<p>
-The current version of automake used is version <code/automake-1.1n/,
-which is currently a beta version. It has several significant
-advantages over the released version, including:
+Automake has several significant advantages, including:
<itemize>
<item>it supports emacs lisp properly
build an <file/aclocal.m4/ file from the <file/configure.in/ file to include the
appropriate macros.
-<p>
-<code/automake-1.1n/ can be retreived from
-<file>ftp://ftp.cygnus.com/pub/tromey</file>
-
<p>
This doesn't affect anything other than rebuilding the <file/Makefile.in/ files
from the sources.
<p>
I have also customized the canonicalizing macros found in
-<code/autoconf-2.12/ to include the old way of finding the <code/dpkg/
+<code/autoconf/ to include the old way of finding the <code/dpkg/
``architecture'', i.e. to be a bit more smart. Instead of it trying to
determine the architecture only, I changed it to use the `host',
`build', and `target' system types. The target CPU type is checked
macros into dpkg.m4 to make configure.in a bit more readable.
<p>
-I also converted to libtool 0.7 (which can be found in the Debian
+I also converted to libtool (which can be found in the Debian
distribution now). Essentially, this means that all the dpkg tools can
be compiled against a shared <samp/libdpkg/ without much hassle (in
fact, it is the default). You do not need to install libtool to use
Debian files from a working directory (does a <samp/make dist/
first). Now all we need is a modified dpkg-source so that the
<file/dpkg-1.4.0.8.tar.gz/ GNU-distribution file can be used as part
-of the Debian dsitribution. I'm working on this, but it doesn't work
+of the Debian distribution. I'm working on this, but it doesn't work
too well at the moment (find it in examples).
<p>
$parsechangelog= 'dpkg-parsechangelog';
-grep($capit{lc $_}=$_, qw(Pre-Depends Standards-Version Installed-Size));
+grep($capit{lc $_}=$_, qw(Pre-Depends Standards-Version Installed-Size
+ Build-Depends Build-Indep-Depends
+ Build-Conflicts Build-Indep-Conflicts));
+
$substvar{'Format'}= 1.6;
$substvar{'Newline'}= "\n";
}
if (defined ($ENV{'LOGNAME'})) {
- if (!defined ($getlogin)) {
- warn (sprintf ('no utmp entry available, using value of LOGNAME ("%s")', $ENV{'LOGNAME'}));
+ if (!defined ($getlogin)) {
+ # Hmmm, do we really need this?
+ # warn (sprintf ('no utmp entry available, using value of LOGNAME ("%s")', $ENV{'LOGNAME'}));
} else {
if ($getlogin ne $ENV{'LOGNAME'}) {
warn (sprintf ('utmp entry ("%s") does not match value of LOGNAME ("%s"); using "%s"',
Key bindings:
-\\{debian-changelog-mode-map}"
+\\{debian-changelog-mode-map}
+Hint: If you want to use your debian.org email address for debian/changelog
+entries without using it for the rest of your email, put
+
+ (add-hook 'debian-changelog-mode-hook 'my-debian-changelog-mode-hook)
+ (defun my-debian-changelog-mode-hook ()
+ (make-local-variable 'add-log-mailing-address)
+ (setq add-log-mailing-address \"myname@debian.org\"))
+
+in your ~/.emacs file. This is better than including a local setting
+for add-log-mailing-address in the changelog itself both because you
+only have to set it up once and because it works in the presense of
+NMUs."
+
(interactive)
(kill-all-local-variables)
(text-mode)
'powerpc', 'powerpc-linux',
'mips', 'mips-linux',
'mipsel', 'mipsel-linux',
- 'mipseb', 'mipseb-linux',
'hurd-i386', 'i386-gnu');
sub usageversion {
-sd uploaded src is diff and .dsc only }
-nc do not clean source tree (implies -b)
-tc clean source tree when finished
+ -ap add pause before starting signature process
-h print this message
+ -i[<regex>] ignore diffs of files matching regex } only passed
+ to dpkg-source
END
}
maint=''
desc=''
noclean=false
+usepause=false
while [ $# != 0 ]
do
-spgp) forcesigninterface=pgp ;;
-us) signsource=: ;;
-uc) signchanges=: ;;
+ -ap) usepause="true";;
-a*) opt_a=1; arch="$value" ;;
-si) sourcestyle=-si ;;
-sa) sourcestyle=-sa ;;
-sd) sourcestyle=-sd ;;
+ -i*) diffignore=$1;;
-tc) cleansource=true ;;
-t*) targetgnusystem="$value" ;; # Order DOES matter!
-nc) noclean=true; binaryonly=-b ;;
withecho $rootcommand debian/rules clean $archlist
fi
if [ x$binaryonly = x ]; then
- cd ..; withecho dpkg-source -b "$dirn"; cd "$dirn"
+ cd ..; withecho dpkg-source $diffignore -b "$dirn"; cd "$dirn"
fi
withecho debian/rules build $archlist
withecho $rootcommand debian/rules $binarytarget $archlist
+
+if [ "$usepause" = "true" ] && [ x$binaryonly = x -o x$signchanges != x ] ; then
+ echo Press the return key to start signing process
+ read dummy_stuff
+fi
+
if [ x$binaryonly = x ]; then
$signsource "$pv.dsc"
fi
$i=100;grep($fieldimps{$_}=$i--,
qw(Package Version Section Priority Architecture Essential
Pre-Depends Depends Recommends Suggests Optional Conflicts Replaces
- Provides Installed-Size Maintainer Source Description));
+ Provides Installed-Size Maintainer Source Description Build-Depends
+ Build-Indep-Depends Build-Conflicts Build-Indep-Conflicts));
while (@ARGV) {
$_=shift(@ARGV);
if (m/^Maintainer$/) { $f{$_}=$v; }
elsif (m/^Source$/) { &setsourcepackage; }
elsif (s/^X[CS]*B[CS]*-//i) { $f{$_}= $v; }
- elsif (m/^X[CS]+-|^Standards-Version$/i) { }
- elsif (m/^Section$|^Priority$/) { $spdefault{$_}= $v; }
+ elsif (m/^X[CS]+-|^Standards-Version$|^Build-(Indep-)?(Depends|Conflicts)$/i) { }
+ elsif (m/^Section$|^Priority$/) { $spdefault{$_}= $v; }
else { &unknown('general section of control info file'); }
} elsif (s/^C$myindex //) {
#print STDERR "P key >$_< value >$v<\n";
|| &syserr("chown new files list file");
if (open(X,"< $fileslistfile")) {
while (<X>) {
- s/\n$//;
+ chomp;
next if m/^([-+0-9a-z.]+)_[^_]+_(\w+)\.deb /
- && ($1 eq $oppackage) && ($2 eq $arch);
+ && ($1 eq $oppackage) && ($2 eq $arch || $2 eq 'all');
print(Y "$_\n") || &syserr("copy old entry to new files list file");
}
} elsif ($! != ENOENT) {
getname () {
if p=`dpkg-deb -f -- "$1" package`;
then
- v=`dpkg-deb -f -- "$1" version`;
+ v=`dpkg-deb -f -- "$1" version | sed s,.*:,,`;
r=`dpkg-deb -f -- "$1" revision`;
if [ -z "$r" ];
then
push(@ap,$_);
m/^--$/ && last;
m/^-v/ && next;
+ if (m/^-h$/) { &usageversion; exit(0); }
&usageerr("unknown option \`$_'");
}
#!/usr/bin/perl
$dpkglibdir= ".";
-$version= '1.3.6'; # This line modified by Makefile
+$version= '1.3.7'; # This line modified by Makefile
use POSIX;
use POSIX qw(:errno_h :signal_h);
if ($#libpaths >= 0) {
grep(s/\[\?\*/\\$&/g, @libpaths);
defined($c= open(P,"-|")) || syserr("cannot fork for dpkg --search");
- if (!$c) { exec("dpkg","--search","--",@libpaths); syserr("cannot exec dpkg"); }
+ if (!$c) {
+ close STDERR; # we don't need to see dpkg's errors
+ open STDERR, "> /dev/null";
+ exec("dpkg","--search","--",@libpaths); syserr("cannot exec dpkg");
+ }
while (<P>) {
- s/\n$//;
+ chomp;
if (m/^local diversion |^diversion by/) {
&warn("diversions involved - output may be incorrect");
print(STDERR " $_\n") || syserr("write diversion info to stderr");
or the empty string (no original source, and so no diff) depending on
the arguments.
.TP
+.B -i[<regexp>]
+You may specify a perl regular expression to match files you want
+filtered out of the list of files for the diff. (This list is
+generated by a find command.) \fB-i\fR by itself enables the option,
+with a default that will filter out CVS, RCS and libtool .deps
+subdirectories, and all files within them, as well as ~ suffixed
+backup files and DEAD_JOE's.
+
+This is very helpful in cutting out extraneous files that get included
+in the .diff.gz, (eg: "debian/BUGS_TODO/*" or "debian/RCS/*,v"). For
+instance, if you maintain a package that you track via remote CVS,
+where you don't have access permissions for commiting the debian
+control files and making tags for \fIcvs-buildpackage(1)\fR, it is
+necessary to perform an extra checkout/update into a directory you
+keep pristine, to generate the .orig.tar.gz from. That directory will
+have CVS/Entries files in it that will contain timestamps that differ
+from the ones in your working directory, thus causing them to be
+unnecessarily included in every .diff.gz, unless you use the \fB-i\fR
+switch.
+.TP
.BR -sa , -sp , -su , -sk , -sA , -sP , -sU , -sK , -ss " with " -b
If
.BR -sk " or " -sp
Specify the Debian architecture we build for. The architecture of the
machine we build on is determined automatically, and is also the default
for the host machine.
+.TP
+.B -i[<regexp>]
+Passed unchanged to
+.B dpkg-source
+.TP
.SH DPKG-DISTADDFILE ARGUMENTS
.B dpkg-distaddfile
does not take any non-common options. It takes three non-option
my %notfileobject;
my $fn;
+$diff_ignore_default_regexp = '^.*~$|DEAD_JOE|(?:/CVS|/RCS|/.deps)(?:$|/.*$)';
+
$sourcestyle = 'X';
use POSIX;
push (@INC, $dpkglibdir);
require 'controllib.pl';
+# Make sure patch doesn't get any funny ideas
+undef $ENV{'POSIXLY_CORRECT'};
+
sub usageversion {
print STDERR
"Debian GNU/Linux dpkg-source $version. Copyright (C) 1996
-D<field>=<value> override or add a .dsc field and value
-U<field> remove a field
-sa auto select orig source (-sA is default)
+ -i[<regexp>] filter out files to ignore diffs of.
+ Defaults to: '$diff_ignore_default_regexp'
-sk use packed orig source (unpack & keep)
-sp use packed orig source (unpack & remove)
-su use unpacked orig source (pack & keep)
$i = 100;
grep ($fieldimps {$_} = $i--,
- qw (Source Version Binary Maintainer Architecture Standards-Version));
+ qw (Source Version Binary Maintainer Architecture Standards-Version
+ Build-Depends Build-Indep-Depends Build-Conflicts Build-Indep-Conflicts));
while (@ARGV && $ARGV[0] =~ m/^-/) {
$_=shift(@ARGV);
$override{$1}= $';
} elsif (m/^-U([^\=:]+)$/) {
$remove{$1}= 1;
+ } elsif (m/^-i(.*)$/) {
+ $diff_ignore_regexp = $1 ? $1 : $diff_ignore_default_regexp;
} elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:]/) {
$substvar{$1}= $';
} elsif (m/^-T/) {
#print STDERR "G key >$_< value >$v<\n";
if (m/^Source$/) { &setsourcepackage; }
elsif (m/^Standards-Version$|^Maintainer$/) { $f{$_}= $v; }
+ elsif (m/^Build-(Indep-)?(Depends|Conflicts)$/i) { $f{$_}= $v; }
elsif (s/^X[BC]*S[BC]*-//i) { $f{$_}= $v; }
elsif (m/^(Section|Priority|Files)$/ || m/^X[BC]+-/i) { }
else { &unknown('general section of control info file'); }
file:
while (defined($fn= <FIND>)) {
- $fn =~ s/\0$//; $fn =~ s,^\./,,;
+ $fn =~ s/\0$//;
+ next file if $fn =~ m/$diff_ignore_regexp/o;
+ $fn =~ s,^\./,,;
lstat("$dir/$fn") || &syserr("cannot stat file $dir/$fn");
if (-l _) {
$type{$fn}= 'symlink';
}
$/= "\0";
while (defined($fn= <FIND>)) {
- $fn =~ s/\0$//; $fn =~ s,^\./,,;
+ $fn =~ s/\0$//;
+ next if $fn =~ m/$diff_ignore_regexp/o;
+ $fn =~ s,^\./,,;
next if defined($type{$fn});
lstat("$origdir/$fn") || &syserr("cannot check orig file $origdir/$fn");
if (-f _) {
opendir(D,"$dirchdir") || &syserr("Unable to open dir $dirchdir");
@dirchdirfiles = grep($_ ne "." && $_ ne "..",readdir(D));
closedir(D) || &syserr("Unable to close dir $dirchdir");
- (@dirchdirfiles==1 && -d "$dirchdir/$dirchdirfiles[0]") ||
- &error("$tarfileread extracted into >1 directory");
- rename("$dirchdir/$dirchdirfiles[0]", "$dirchdir/$newtopdir") ||
- &syserr("Unable to rename $dirchdir/$dirchdirfiles[0] to ".
- "$dirchdir/$newtopdir");
+ if (@dirchdirfiles==1 && -d "$dirchdir/$dirchdirfiles[0]") {
+ rename("$dirchdir/$dirchdirfiles[0]", "$dirchdir/$newtopdir") ||
+ &syserr("Unable to rename $dirchdir/$dirchdirfiles[0] to ".
+ "$dirchdir/$newtopdir");
+ } else {
+ mkdir("$dirchdir/$newtopdir", 0777) ||
+ &syserr("Unable to mkdir $dirchdir/$newtopdir");
+ for (@dirchdirfiles) {
+ rename("$dirchdir/$_", "$dirchdir/$newtopdir/$_") ||
+ &syserr("Unable to rename $dirchdir/$_ to ".
+ "$dirchdir/$newtopdir/$_");
+ }
+ }
}
sub cpiostderr {
printf(STDOUT " Selection Command\n");
printf(STDOUT "-----------------------------------------------\n");
for ($i=0; $i<=$#versions; $i++) {
- if ($best eq $versions[$i]) {
- printf(STDOUT "* %s %s\n", $i+1, $versions[$i]);
- } else {
- printf(STDOUT " %s %s\n", $i+1, $versions[$i]);
- }
+ printf(STDOUT "%s%s %s %s\n",
+ (readlink("$altdir/$name") eq $versions[$i]) ? '*' : ' ',
+ ($best eq $versions[$i]) ? '+' : ' ',
+ $i+1, $versions[$i]);
}
printf(STDOUT "\nEnter to keep the default[*], or type selection number: ");
}
($preferred =~ m/[0-9]*/);
if ($preferred ne '') {
$preferred--;
+ print STDOUT "Using \`$versions[$preferred]' to provide \`$name'.\n";
my $spath = $versions[$preferred];
symlink("$spath","$altdir/$name.dpkg-tmp") ||
&quit("unable to make $altdir/$name.dpkg-tmp a symlink to $spath: $!");