Control: tags -1 + patch

On 2017-10-17 12:45 +0200, Sven Joachim wrote:

> Package: debian-el
> Version: 36.3+nmu1
> Severity: important
>
> In the dpkg 1.19.0 upload, the --uniform-compression option for dpkg-deb
> has been turned on by default, meaning that the control archive will be
> compressed with xz rather than gzip.
>
> Unfortunately, deb-view.el hardcodes control.tar.gz, in line 387 ff:
>
> ,----
> |       (call-process shell-file-name nil t nil shell-command-switch
> |                     (concat "ar -p " debfile
> |                             " control.tar.gz | gzip -cd"))
> `----
>
> This leads complaints from ar about the missing control.tar.gz and from
> gzip about the (empty) standard input not being in gzip format, making
> it impossible to view the .deb file in Emacs.

Fortunately, dpkg-deb has gained a --ctrl-tarfile option in dpkg 1.17.14
which perfectly replaces the "ar -p | gzip -cd" pipeline.  The attached
patch works for me. :-)

diff -Nru emacs-goodies-el-36.3+nmu1/debian/changelog emacs-goodies-el-36.3+nmu1local1/debian/changelog
--- emacs-goodies-el-36.3+nmu1/debian/changelog	2017-01-28 06:15:49.000000000 +0100
+++ emacs-goodies-el-36.3+nmu1local1/debian/changelog	2017-10-17 12:52:48.000000000 +0200
@@ -1,3 +1,10 @@
+emacs-goodies-el (36.3+nmu1local1) unstable; urgency=medium
+
+  * Use dpkg-deb's --ctrl-tarfile option to extract the control archive
+    (Closes: #878868).  Depend on dpkg (>= 1.17.14) for that feature.
+
+ -- Sven Joachim <svenj...@gmx.de>  Tue, 17 Oct 2017 12:52:48 +0200
+
 emacs-goodies-el (36.3+nmu1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru emacs-goodies-el-36.3+nmu1/debian/control emacs-goodies-el-36.3+nmu1local1/debian/control
--- emacs-goodies-el-36.3+nmu1/debian/control	2017-01-28 03:14:24.000000000 +0100
+++ emacs-goodies-el-36.3+nmu1local1/debian/control	2017-10-17 12:50:49.000000000 +0200
@@ -113,7 +113,7 @@
 Package: debian-el
 Architecture: all
 Pre-Depends: xz-utils
-Depends: emacs | emacsen, emacsen-common (>= 2.0.8), reportbug (>= 4.12), ${misc:Depends}, dpkg (>= 1.15.4) | install-info, bzip2, file
+Depends: emacs | emacsen, emacsen-common (>= 2.0.8), reportbug (>= 4.12), ${misc:Depends}, dpkg (>= 1.17.14), bzip2, file
 Recommends: wget, dlocate, groff-base
 Suggests: gnus
 Replaces: debbugs-el, debview
diff -Nru emacs-goodies-el-36.3+nmu1/elisp/debian-el/deb-view.el emacs-goodies-el-36.3+nmu1local1/elisp/debian-el/deb-view.el
--- emacs-goodies-el-36.3+nmu1/elisp/debian-el/deb-view.el	2017-01-28 03:14:24.000000000 +0100
+++ emacs-goodies-el-36.3+nmu1local1/elisp/debian-el/deb-view.el	2017-10-17 12:46:18.000000000 +0200
@@ -385,8 +385,7 @@
      (new-archive-format
       ;; New deb format (archive)
       (call-process shell-file-name nil t nil shell-command-switch
-                    (concat "ar -p " debfile
-                            " control.tar.gz | gzip -cd"))
+                    (concat "dpkg-deb --ctrl-tarfile " debfile))
       (goto-char 1)
       (setq buffer-file-name (concat deb-view-file-name "-INFO"))
       (if (fboundp 'set-buffer-multibyte) (set-buffer-multibyte nil))

Reply via email to