Просмотр исходного кода

dpkg (1.3.3) experimental; urgency=low

  * Programmers' & policy manuals in source tree; HTML in /usr/doc/dpkg.
  * Old guidelines.info and text files in /usr/doc/dpkg removed.

  * dpkg-source sets permissions on extracted debianised source tree
    and does not copy ownerships out of archive even if running as root.

  * Emacs mode `dpkg changelog' renamed to `Debian changelog'.
  * Default changelog format renamed from `dpkg' to `debian'.

  * debian-changelog-mode sets fill-prefix correctly.
  * debian-changelog-mode urgencies except HIGH lowercase by default.
  * debian-changelog-mode displays keymap in doc string and so mode help.

  * More maintainers' PGP keys.

  * Remove built changelog parsers with `clean' target in source.

 -- Ian Jackson <ian@chiark.chu.cam.ac.uk>  Sat, 10 Aug 1996 23:35:51 +0100
Ian Jackson лет назад: 30
Родитель
Сommit
f50dc4ae0a

+ 22 - 1
debian/changelog

@@ -1,3 +1,24 @@
+dpkg (1.3.3) experimental; urgency=low
+
+  * Programmers' & policy manuals in source tree; HTML in /usr/doc/dpkg.
+  * Old guidelines.info and text files in /usr/doc/dpkg removed.
+
+  * dpkg-source sets permissions on extracted debianised source tree
+    and does not copy ownerships out of archive even if running as root.
+
+  * Emacs mode `dpkg changelog' renamed to `Debian changelog'.
+  * Default changelog format renamed from `dpkg' to `debian'.
+
+  * debian-changelog-mode sets fill-prefix correctly.
+  * debian-changelog-mode urgencies except HIGH lowercase by default.
+  * debian-changelog-mode displays keymap in doc string and so mode help.
+
+  * More maintainers' PGP keys.
+
+  * Remove built changelog parsers with `clean' target in source.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk>  Sat, 10 Aug 1996 23:35:51 +0100
+
 dpkg (1.3.2) experimental; urgency=LOW (MEDIUM for dpkg-source)
 
   * Faster update-rc.d written in Perl by Miquel van Smoorenburg.
@@ -1552,5 +1573,5 @@ Thu Aug 25 11:46:27 1994  Ian Murdock  (imurdock@debra.debian.org)
 ChangeLog begins Thu Aug 25 11:46:27 1994 for dpkg 0.93.5.
 
 Local variables:
-mode: dpkg-changelog
+mode: debian-changelog
 End:

+ 0 - 3
debian/postinst

@@ -2,9 +2,6 @@
 
 set -e
 
-install-info --section Development Development \
-	     --quiet /usr/info/guidelines.info.gz
-
 dupdaemonhelp () {
 	cat <<'END'
 

+ 0 - 1
debian/rules

@@ -36,7 +36,6 @@ binary:	checkroot build
 		datadir=$(DIR)/debian/tmp/var/lib/dpkg \
 		etcdir=$(DIR)/debian/tmp/etc \
 		install
-	gzip -9 debian/tmp/usr/info/guidelines.info*
 	cp debian/copyright debian/tmp/usr/doc/copyright/dpkg
 	cp TODO debian/tmp/usr/doc/dpkg/WISHLIST
 	touch debian/tmp/var/lib/dpkg/{status,available}

+ 19 - 15
doc/Makefile.in

@@ -35,15 +35,22 @@ INSTALL_DATA = @INSTALL_DATA@
 MAKEINFO = makeinfo
 TEXI2DVI = texi2dvi
 
-DPKGDOCS= auto-deconfiguration.txt dependency-ordering.txt \
- disappear-replace.txt diversions.text \
- essential-flag.txt version-ordering.txt developer-keys.pgp
+DPKGDOCS= developer-keys.pgp
+
+SGMLDOCS= programmer policy
 
-# Files folded into main guidelines document
+# Files folded into manuals
 OBSOLETEDOCS= descriptions.txt upgrades+errors.txt \
- maintainer-script-args.txt virtual-dependencies.txt
+ maintainer-script-args.txt virtual-dependencies.txt \
+ auto-deconfiguration.txt dependency-ordering.txt \
+ disappear-replace.txt diversions.text \
+ essential-flag.txt version-ordering.txt
+
+all:		$(DPKGDOCS) $(SGMLDOCS)
 
-all:		$(DPKGDOCS) guidelines.info
+$(SGMLDOCS):
+		debiandoc2html $@.sgml
+		touch $@
 
 guidelines.info: guidelines.texi
 		$(MAKEINFO) $(srcdir)/guidelines.texi
@@ -57,16 +64,12 @@ database-structure.monops: database-structure.ps
  bind def$$:/$$1 {} bind def:' database-structure.ps >ps
 		mv ps database-structure.monops
 
-#dpkg.dvi:
-#		$(TEXI2DVI) $(srcdir)/dpkg.texi
-#
-#dpkg.info:
-#		$(MAKEINFO) $(srcdir)/dpkg.texi
-
 clean:
+		rm -f $(SGMLDOCS)
 		rm -f database-structure.ps database-structure.monops ps
 		rm -f *.{aux,cp,dvi,fn,ky,log,pg,toc,tp,vr,bak}
-		rm -f guidelines.info*
+		rm -f guidelines.info* *.sasp*
+		rm -rf {programmer,policy}.html
 
 distclean:
 		rm -f Makefile *.orig *~ *.~* ./#*#
@@ -75,8 +78,9 @@ install:	all
 		$(INSTALL_DATA) deb.5 $(man5dir)/deb.$(man5)
 		$(INSTALL_DATA) deb-old.5 $(man5dir)/deb-old.$(man5)
 		$(INSTALL_DATA) deb-control.5 $(man5dir)/deb-control.$(man5)
-		$(INSTALL_DATA) guidelines.info guidelines.info-*[0-9] \
-			$(infodir)/.
+		set -e; for f in $(SGMLDOCS) ; do \
+			cp -r $$f.html $(dpkgdocdir)/$$f.html ; \
+		done
 		set -e; for d in $(DPKGDOCS) ; do \
 			$(INSTALL_DATA) $$d $(dpkgdocdir)/$$d ; \
 		done

BIN
doc/developer-keys.pgp


+ 0 - 29
doc/junk

@@ -1,29 +0,0 @@
-
-@table @file
-@item virtual-package-names-list.text
-The list of virtual package names currently in use, together with the
-procedure for getting new virtual package names allocated.
-@item (obsolete) README.etc-skel
-A description of @file{/etc/skel} and @file{/usr/doc/examples}
-(@pxref{Skeleton and examples}).
-@item (obsolete) descriptions.txt
-The description of the package. How to write an extended and more useful
-description field (@pxref{Package description}).
-@item (obsolete) README.init
-How to use the features of Init under Debian GNU/Linux in packages
-(@pxref{Configuration of init}).
-@item (obsolete) mailers.txt
-How to properly configure packages to use the Debian GNU/Linux mail
-nnsystem (@pxref{Mail processing packages}).
-@item (obsolete) maintainer-script-args.txt
-All the ways that the package maintainer scripts inside a package can be
-called by dpkg (@pxref{Maintainer script arguments}).
-@item (obsolete) dpkg-upgrades+errors.txt
-What order things happen in during a package upgrade (@pxref{What
-happends during a package upgrade?}).
-@item (obsolete) virtual-dependencies.txt
-How to use ``virtual dependencies'' in packages (@pxref{Virtual
-dependencies}).
-@item (obsolete) dependency-ordering.txt
-How to properly order package names in the @file{DEPENDS} field.
-@end table

doc/auto-deconfiguration.txt → doc/obsolete/auto-deconfiguration.txt


doc/dependency-ordering.txt → doc/obsolete/dependency-ordering.txt


doc/descriptions.txt → doc/obsolete/descriptions.txt


doc/disappear-replace.txt → doc/obsolete/disappear-replace.txt


doc/diversions.text → doc/obsolete/diversions.text


doc/dpkg.texi → doc/obsolete/dpkg.texi


doc/dselect-methods.txt → doc/obsolete/dselect-methods.txt


doc/essential-flag.txt → doc/obsolete/essential-flag.txt


doc/guidelines.texi → doc/obsolete/guidelines.texi


doc/maintainer-script-args.txt → doc/obsolete/maintainer-script-args.txt


doc/upgrades+errors.txt → doc/obsolete/upgrades+errors.txt


doc/version-ordering.txt → doc/obsolete/version-ordering.txt


doc/virtual-dependencies.txt → doc/obsolete/virtual-dependencies.txt


Разница между файлами не показана из-за своего большого размера
+ 1222 - 0
doc/policy.sgml


Разница между файлами не показана из-за своего большого размера
+ 2990 - 0
doc/programmer.sgml


Разница между файлами не показана из-за своего большого размера
+ 0 - 1443
doc/sgml/programmer.sgml


+ 3 - 3
scripts/Makefile.in

@@ -47,8 +47,8 @@ MAN8 =	update-rc.d start-stop-daemon update-alternatives install-info \
 SBIN =	update-rc.d start-stop-daemon update-alternatives install-info \
 	dpkg-scanpackages dpkg-divert cleanup-info
 LIB =	controllib.pl
-ELISP =	dpkg-changelog-mode.el
-CHGLGS=	cl-dpkg
+ELISP =	debian-changelog-mode.el
+CHGLGS=	cl-debian
 
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -79,7 +79,7 @@ INSTALL_DATA = @INSTALL_DATA@
 all:		$(EXC) $(SBIN) $(CHGLGS)
 
 clean:
-		rm -f $(EXC) $(SBIN) core *.new
+		rm -f $(EXC) $(SBIN) $(CHGLGS) core *.new
 
 distclean:	clean
 		rm -f Makefile *.orig *~ *.~* ./#*# i386elf-hello-world.gz

scripts/cl-dpkg.pl → scripts/cl-debian.pl


+ 0 - 143
scripts/cl-dpkg

@@ -1,143 +0,0 @@
-#!/usr/bin/perl
-#
-# Options:
-#  -v<version>
-#   changes since <version>
-
-$dpkglibdir= "/usr/lib/dpkg";
-$version= '1.3.0'; # This line modified by Makefile
-
-$controlfile= 'debian/control';
-$changelogfile= 'debian/changelog';
-$fileslistfile= 'debian/files';
-$varlistfile= 'debian/substvars';
-
-push(@INC,$dpkglibdir);
-require 'controllib.pl';
-
-$progname= "parsechangelog/$progname";
-
-$since='';
-
-sub usageversion {
-    print STDERR
-"Debian GNU/Linux parsechangelog/dpkg $version.  Copyright (C) 1996
-Ian Jackson.  This is free software; see the GNU General Public Licence
-version 2 or later for copying conditions.  There is NO warranty.
-
-Usage: parsechangelog/dpkg [-v<versionsince] | -h
-";
-}
-
-while (@ARGV) {
-    $_=shift(@ARGV);
-    if (m/^-v(.+)$/) {
-        $since= $1;
-    } elsif (m/^-h$/) {
-        &usageversion; exit(0);
-    } else {
-        &usageerr("unknown option or argument \`$_'");
-    }
-}
-
-%mapkv=(); # for future use
-$i=100;grep($fieldimps{$_}=$i--,
-          qw(Source Version Distribution Urgency Maintainer Date Changes));
-$i=1;grep($urgencies{$_}=$i++,
-          qw(low medium routine high urgent emergency));
-
-$expect='first heading';
-
-while (<STDIN>) {
-    s/\s*\n$//;
-#    printf(STDERR "%-39.39s %-39.39s\n",$expect,$_);
-    if (m/^(\w[-+0-9a-z.]+) \(([^\(\) \t]+)\)((\s+[-0-9a-z]+)+)\;/i) {
-        if ($expect eq 'first heading') {
-            $f{'Source'}= $1;
-            $f{'Version'}= $2;
-            $f{'Distribution'}= $3;
-            &error("-v<since> option specifies most recent version") if
-                $2 eq $since;
-            $f{'Distribution'} =~ s/^\s+//;
-        } elsif ($expect eq 'next heading or eof') {
-            last if $2 eq $since;
-            $f{'Changes'}.= " .\n";
-        } else {
-            &clerror("found start of entry where expected $expect");
-        }
-        $rhs= $'; $rhs =~ s/^\s+//;
-        undef %kvdone;
-        for $kv (split(/\s*,\s*/,$rhs)) {
-            $kv =~ m/^([-0-9a-z]+)\=\s*(.*\S)$/i ||
-                &clerror("bad key-value after \`;': \`$kv'");
-            $k=(uc substr($1,0,1)).(lc substr($1,1)); $v=$2;
-            $kvdone{$k}++ && &clwarn("repeated key-value $k");
-            if ($k eq 'Urgency') {
-                $v =~ m/^([-0-9a-z]+)((\s+.*)?)$/i ||
-                    &clerror("badly formatted urgency value, at changelog ");
-                $newurg= lc $1;
-                $newurgn= $urgencies{lc $1}; $newcomment= $2;
-                $newurgn ||
-                    &clwarn("unknown urgency value $newurg - comparing very low");
-                if (defined($f{'Urgency'})) {
-                    $f{'Urgency'} =~ m/^([-0-9a-z]+)((\s+.*)?)$/i ||
-                        &internerr("urgency >$f{'Urgency'}<");
-                    $oldurg= lc $1;
-                    $oldurgn= $urgencies{lc $1}; $oldcomment= $2;
-                } else {
-                    $oldurgn= -1;
-                    $oldcomment= '';
-                }
-                $f{'Urgency'}=
-                    (($newurgn > $oldurgn ? $newurg : $oldurg).
-                     $oldcomment.
-                     $newcomment);
-            } elsif (defined($mapkv{$k})) {
-                $f{$mapkv{$k}}= $v;
-            } elsif ($k =~ m/^X[BCS]+-/i) {
-                # Extensions - XB for putting in Binary,
-                # XC for putting in Control, XS for putting in Source
-                $f{$k}= $v;
-            } else {
-                &clwarn("unknown key-value key $k - copying to XS-$k");
-                $f{"XS-$k"}= $v;
-            }
-        }
-        $expect= 'start of change data'; $blanklines=0;
-        $f{'Changes'}.= " $_\n .\n";
-    } elsif (m/^\S/) {
-        &clerror("badly formatted heading line");
-    } elsif (m/^ \-\- (\S.*\S)  ((\w+\,\s*)?\d{1,2}\s+\w+\s+\d{4}\s+\d{1,2}:\d\d:\d\d\s+[-+]\d{4}(\s+\([^\\\(\)]\))?)$/) {
-        $expect eq 'more change data or trailer' ||
-            &clerror("found trailer where expected $expect");
-        $f{'Maintainer'}= $1 unless defined($f{'Maintainer'});
-        $f{'Date'}= $2 unless defined($f{'Date'});
-#        $f{'Changes'}.= " .\n $_\n";
-        $expect= 'next heading or eof';
-        last if $since eq '';
-    } elsif (m/^ \-\-/) {
-        &clerror("badly formatted trailer line");
-    } elsif (m/^\s{2,}\S/) {
-        $expect eq 'start of change data' || $expect eq 'more change data or trailer' ||
-            &clerror("found change data where expected $expect");
-        $f{'Changes'}.= (" .\n"x$blanklines)." $_\n"; $blanklines=0;
-        $expect= 'more change data or trailer';
-    } elsif (!m/\S/) {
-        next if $expect eq 'start of change data' || $expect eq 'next heading or eof';
-        $expect eq 'more change data or trailer' ||
-            &clerror("found blank line where expected $expect");
-        $blanklines++;
-    } else {
-        &clerror("unrecognised line");
-    }
-}
-
-$expect eq 'next heading or eof' || die "found eof where expected $expect";
-
-$f{'Changes'} =~ s/\n$//;
-$f{'Changes'} =~ s/^/\n/;
-
-&outputclose;
-
-sub clerror { &error("$_[0], at changelog line $."); }
-sub clwarn { &warn("$_[0], at changelog line $."); }

+ 60 - 55
scripts/dpkg-changelog-mode.el

@@ -1,4 +1,4 @@
-;; dpkg-changelog.el --- change log maintenance for dpkg-style changelogs
+;; debian-changelog.el --- change log maintenance for Debian-style changelogs
 
 ;; Keywords: maint
 
@@ -22,32 +22,33 @@
 
 (require 'add-log)
 
-(defvar dpkg-changelog-urgencies
-  '((?l."LOW") (?m."MEDIUM") (?h."HIGH"))
-  "alist of keystrokes vs. urgency values dpkg-changelog-urgency ^c^u.")
+(defvar debian-changelog-urgencies
+  '((?l."low") (?m."medium") (?h."HIGH"))
+  "alist of keystrokes vs. urgency values debian-changelog-urgency ^c^u.")
 
-(defvar dpkg-changelog-distributions
+(defvar debian-changelog-distributions
   '((?s."stable") (?u."unstable") (?c."contrib") (?n."non-free") (?e."experimental"))
-  "alist of keystrokes vs. distribution values for dpkg-changelog-distribution ^c^d.")
+  "alist of keystrokes vs. distribution values for debian-changelog-distribution ^c^d.")
 
-(defvar dpkg-changelog-mode-map nil
-  "Keymap for dpkg changelog major mode.")
-(if dpkg-changelog-mode-map
+(defvar debian-changelog-mode-map nil
+  "Keymap for Debian changelog major mode.")
+(if debian-changelog-mode-map
     nil
-  (setq dpkg-changelog-mode-map (make-sparse-keymap))
-  (define-key dpkg-changelog-mode-map "\C-c\C-a" 'dpkg-changelog-add-entry)
-  (define-key dpkg-changelog-mode-map "\C-c\C-f" 'dpkg-changelog-finalise-last-version)
-  (define-key dpkg-changelog-mode-map "\C-c\C-c" 'dpkg-changelog-finalise-and-save)
-  (define-key dpkg-changelog-mode-map "\C-c\C-v" 'dpkg-changelog-add-version)
-  (define-key dpkg-changelog-mode-map "\C-c\C-d" 'dpkg-changelog-distribution)
-  (define-key dpkg-changelog-mode-map "\C-c\C-u" 'dpkg-changelog-urgency)
-  (define-key dpkg-changelog-mode-map "\C-c\C-e"
-    'dpkg-changelog-unfinalise-last-version))
-
-(defun dpkg-changelog-add-entry ()
-  "Add a new change entry to a dpkg-style changelog."
+  (setq debian-changelog-mode-map (make-sparse-keymap))
+  (define-key debian-changelog-mode-map "\C-c\C-a" 'debian-changelog-add-entry)
+  (define-key debian-changelog-mode-map "\C-c\C-f"
+    'debian-changelog-finalise-last-version)
+  (define-key debian-changelog-mode-map "\C-c\C-c" 'debian-changelog-finalise-and-save)
+  (define-key debian-changelog-mode-map "\C-c\C-v" 'debian-changelog-add-version)
+  (define-key debian-changelog-mode-map "\C-c\C-d" 'debian-changelog-distribution)
+  (define-key debian-changelog-mode-map "\C-c\C-u" 'debian-changelog-urgency)
+  (define-key debian-changelog-mode-map "\C-c\C-e"
+    'debian-changelog-unfinalise-last-version))
+
+(defun debian-changelog-add-entry ()
+  "Add a new change entry to a debian-style changelog."
   (interactive)
-  (if (eq (dpkg-changelog-finalised-p) t)
+  (if (eq (debian-changelog-finalised-p) t)
       (error "most recent version has been finalised - use ^c^e or ^c^v"))
   (goto-char (point-min))
   (re-search-forward "\n --")
@@ -58,7 +59,7 @@
   (insert "  * ")
   (save-excursion (insert "\n")))
 
-(defun dpkg-changelog-headervalue (arg re alist)
+(defun debian-changelog-headervalue (arg re alist)
   (let (a b v k
         (lineend (save-excursion (end-of-line) (point))))
     (save-excursion
@@ -78,28 +79,28 @@
       (if arg nil (insert (cdr v))))
     (if arg (goto-char a))))
 
-(defun dpkg-changelog-urgency (arg)
+(defun debian-changelog-urgency (arg)
   "Without argument, prompt for a key for a new urgency value (using
-dpkg-changelog-urgencies).  With argument, delete the current urgency
+debian-changelog-urgencies).  With argument, delete the current urgency
 and position the cursor to type a new one."
   (interactive "P")
-  (dpkg-changelog-headervalue
+  (debian-changelog-headervalue
    arg
    "\\;[^\n]* urgency=\\(\\sw+\\)"
-   dpkg-changelog-urgencies))
+   debian-changelog-urgencies))
 
-(defun dpkg-changelog-distribution (arg)
+(defun debian-changelog-distribution (arg)
   "Without argument, prompt for a key for a new distribution value (using
-dpkg-changelog-distributions).  With argument, delete the current distribution
+debian-changelog-distributions).  With argument, delete the current distribution
 and position the cursor to type a new one."
   (interactive "P")
-  (dpkg-changelog-headervalue
+  (debian-changelog-headervalue
    arg
    ") \\(.*\\)\\;"
-   dpkg-changelog-distributions))
+   debian-changelog-distributions))
 
-(defun dpkg-changelog-finalised-p ()
-  "Check whether the most recent dpkg-style changelog entry is
+(defun debian-changelog-finalised-p ()
+  "Check whether the most recent debian-style changelog entry is
 finalised yet (ie, has a maintainer name and email address and a
 release date."
   (save-excursion
@@ -118,10 +119,10 @@ release date."
       nil)
      ("finalisation line has bad format (not ` -- maintainer <email>  date')"))))
 
-(defun dpkg-changelog-add-version ()
-  "Add a new version section to a dpkg-style changelog file."
+(defun debian-changelog-add-version ()
+  "Add a new version section to a debian-style changelog file."
   (interactive)
-  (let ((f (dpkg-changelog-finalised-p)))
+  (let ((f (debian-changelog-finalised-p)))
     (and (stringp f) (error f))
     (or f (error "previous version not yet finalised")))
   (goto-char (point-min))
@@ -133,30 +134,30 @@ release date."
            (let ((pkg (read-string "Package name: "))
                  (ver (read-version "New version (including any revision): ")))
              (concat pkg " (" ver ") unstable; urgency="
-                     (cdr (car dpkg-changelog-urgencies)))))))
+                     (cdr (car debian-changelog-urgencies)))))))
     (insert headstring "\n\n  * ")
     (save-excursion
       (if (re-search-backward "\;[^\n]* urgency=\\(\\sw+\\)" (point-min) t)
           (progn (goto-char (match-beginning 1))
                  (delete-region (point) (match-end 1))
-                 (insert (cdr (car dpkg-changelog-urgencies))))))
+                 (insert (cdr (car debian-changelog-urgencies))))))
     (save-excursion (insert "\n\n --\n\n"))))
 
-(defun dpkg-changelog-finalise-and-save ()
-  "Finalise, if necessary, and then save a dpkg-style changelog file."
+(defun debian-changelog-finalise-and-save ()
+  "Finalise, if necessary, and then save a debian-style changelog file."
   (interactive)
-  (let ((f (dpkg-changelog-finalised-p)))
+  (let ((f (debian-changelog-finalised-p)))
     (and (stringp f) (error f))
-    (or f (dpkg-changelog-finalise-last-version)))
+    (or f (debian-changelog-finalise-last-version)))
   (save-buffer))
 
-(defun dpkg-changelog-finalise-last-version ()
+(defun debian-changelog-finalise-last-version ()
   "Remove the `finalisation' information (maintainer's name and email
 address and release date) so that new entries can be made."
   (interactive)
   (or add-log-full-name (setq add-log-full-name (user-full-name)))
   (or add-log-mailing-address (setq add-log-mailing-address user-mail-address))
-  (and (dpkg-changelog-finalised-p) (dpkg-changelog-unfinalise-last-version))
+  (and (debian-changelog-finalised-p) (debian-changelog-unfinalise-last-version))
   (save-excursion
     (goto-char (point-min))
     (re-search-forward "\n --\\([ \t]*\\)")
@@ -170,11 +171,11 @@ address and release date) so that new entries can be made."
         (error (concat "expected newline after date from " dp)))
     (delete-char 1)))
 
-(defun dpkg-changelog-unfinalise-last-version ()
+(defun debian-changelog-unfinalise-last-version ()
   "Remove the `finalisation' information (maintainer's name and email
 address and release date) so that new entries can be made."
   (interactive)
-  (if (dpkg-changelog-finalised-p) nil
+  (if (debian-changelog-finalised-p) nil
     (error "most recent version is not finalised"))
   (save-excursion
     (goto-char (point-min))
@@ -183,18 +184,22 @@ address and release date) so that new entries can be made."
       (end-of-line)
       (delete-region dels (point)))))
 
-(defun dpkg-changelog-mode ()
-  "Major mode for editing dpkg-style change logs.
-Runs `dpkg-changelog-mode-hook'."
+(defun debian-changelog-mode ()
+  "Major mode for editing Debian-style change logs.
+Runs `debian-changelog-mode-hook' if it exists.
+
+Key bindings:
+
+\\{dpkg-changelog-mode-map}"
   (interactive)
   (kill-all-local-variables)
   (text-mode)
-  (setq major-mode 'dpkg-changelog-mode
-	mode-name "dpkg changelog"
+  (setq major-mode 'debian-changelog-mode
+	mode-name "Debian changelog"
         left-margin 2
-	fill-prefix "    "
+	fill-prefix "  "
 	fill-column 74)
-  (use-local-map dpkg-changelog-mode-map)
+  (use-local-map debian-changelog-mode-map)
   ;; Let each entry behave as one paragraph:
   (set (make-local-variable 'paragraph-start) "\\*")
   (set (make-local-variable 'paragraph-separate) "\\*\\|\\s-*$|\\S-")
@@ -203,6 +208,6 @@ Runs `dpkg-changelog-mode-hook'."
   ;; is grouped with what follows.
   (set (make-local-variable 'page-delimiter) "^\\<")
   (set (make-local-variable 'version-control) 'never)
-  (run-hooks 'dpkg-changelog-mode-hook))
+  (run-hooks 'debian-changelog-mode-hook))
 
-(provide 'dpkg-changelog)
+(provide 'debian-changelog)

+ 1 - 1
scripts/dpkg-parsechangelog.pl

@@ -3,7 +3,7 @@
 $dpkglibdir= ".";
 $version= '1.3.0'; # This line modified by Makefile
 
-$format='dpkg';
+$format='debian';
 $changelogfile='debian/changelog';
 @parserpath= ("/usr/local/lib/dpkg/parsechangelog",
               "$dpkglibdir/parsechangelog");

+ 4 - 3
scripts/dpkg-source.1

@@ -143,7 +143,9 @@ This option is understood by
 Specifies the format of the changelog.  By default the format is read
 from a special line near the bottom of the changelog (see the
 programmers' manual) or failing that defaults to
-.BR dpkg .
+.BR debian ,
+the standard format described in the
+.IR "dpkg programmers' manual" .
 This option is understood by
 .BR dpkg-source ", " dpkg-gencontrol " and " dpkg-genchanges .
 .SH DPKG-SOURCE OPTIONS
@@ -387,8 +389,7 @@ not matter, since
 .BR $ ", " { " and " }
 are not legal in package names or version numbers.
 .SH SEE ALSO
-.B dpkg
-.IR "programmers' manual" ,
+.IR "dpkg programmers' manual" ,
 .IR "Debian policy manual" ,
 .BR dpkg\-deb (8),
 .BR dpkg (8),

+ 39 - 8
scripts/dpkg-source.pl

@@ -382,8 +382,7 @@ if ($opmode eq 'build') {
     defined($c2= open(CPIO,"-|")) || &syserr("fork for cpio");
     if (!$c2) {
         open(STDIN,"<&GZIP") || &syserr("reopen gzip for cpio");
-        open(STDERR,"| egrep -v '^[0-9]+ blocks\$' >&2") ||
-            &syserr("reopen stderr for cpio to grep out blocks message");
+        &cpiostderr;
         exec('cpio','-0t'); &syserr("exec cpio");
     }
     $/= "\0";
@@ -394,7 +393,7 @@ if ($opmode eq 'build') {
         $fn =~ m/\n/ &&
             &error("tarfile contains object with newline in its name ($pname)");
         $slash= substr($fn,length($expectprefix),1);
-        (($slash || '/' || $slash eq '') &&
+        (($slash eq '/' || $slash eq '') &&
          substr($fn,0,length($expectprefix)) eq $expectprefix) ||
              &error("tarfile contains object ($pname) not in expected directory".
                     " ($expectprefix)");
@@ -529,6 +528,32 @@ if ($opmode eq 'build') {
         }
     }
 
+    $execmode= 0777 & ~umask;
+    (@s= stat('.')) || &syserr("cannot stat \`.'");
+    $dirmode= $execmode | ($s[2] & 02000);
+    $plainmode= $execmode & ~0111;
+    $fifomode= ($plainmode & 0222) | (($plainmode & 0222) << 1);
+    for $fn (@filesinarchive) {
+        $fn= substr($fn,length($expectprefix)+1);
+        $fn= "$newdirectory/$fn";
+        (@s= lstat($fn)) || &syserr("cannot stat extracted object \`$fn'");
+        $mode= $s[2];
+        if (-d _) {
+            $newmode= $dirmode;
+        } elsif (-f _) {
+            $newmode= ($mode & 0111) ? $execmode : $plainmode;
+        } elsif (-p _) {
+            $newmode= $fifomode;
+        } elsif (!-l _) {
+            &internerr("unknown object \`$fn' after extract (mode ".
+                       sprintf("0%o",$mode).")");
+        }
+printf STDERR "mode %07o newmode %07o %s\n",$mode,$newmode,$fn;
+        next if ($mode & 07777) == $newmode;
+        chmod($newmode,$fn) ||
+            &syserr(sprintf("cannot change mode of \`%s' to 0%o from 0%o",
+                            $fn,$newmode,$mode));
+    }
     exit(0);
 }
 
@@ -556,17 +581,23 @@ sub erasedir {
 
 sub extracttar {
     &forkgzipread("$dscdir/$tarfile");
-    defined($c2= fork) || &syserr("fork for tar -x");
+    defined($c2= fork) || &syserr("fork for cpio -i");
     if (!$c2) {
-        open(STDIN,"<&GZIP") || &syserr("reopen gzip for tar -x");
-        exec('tar','-xf','-'); &syserr("exec tar -x");
+        open(STDIN,"<&GZIP") || &syserr("reopen gzip for cpio -i");
+        &cpiostderr;
+        exec('cpio','-Hustar','-im','--no-preserve-owner'); &syserr("exec cpio -i");
     }
     close(GZIP);
-    $c2 == waitpid($c2,0) || &syserr("wait for tar -x");
-    $? && subprocerr("tar -x");
+    $c2 == waitpid($c2,0) || &syserr("wait for cpio -i");
+    $? && subprocerr("cpio -i");
     &reapgzip;
 }
 
+sub cpiostderr {
+    open(STDERR,"| egrep -v '^[0-9]+ blocks\$' >&2") ||
+        &syserr("reopen stderr for cpio to grep out blocks message");
+}
+
 sub setfile {
     my ($varref)= @_;
     &error("repeated file type - files ".$$varref." and $file") if length($$varref);

+ 1 - 1
version.h

@@ -1 +1 @@
-#define DPKG_VERSION "1.3.2" /* This line modified by Makefile */
+#define DPKG_VERSION "1.3.3" /* This line modified by Makefile */