Hi David, I'm sorry for the inconvenience.
Am 16.12.21 um 14:44 schrieb David Bremner:
Your test package does not include debian/changelog. The test build fails for me with the expected autopkgtest [09:40:44]: test build-deb: [----------------------- all.el dpkg-buildpackage: error: cannot open file debian/changelog: No such file or directory autopkgtest [09:40:45]: test build-deb: -----------------------] autopkgtest [09:40:46]: test build-deb: - - - - - - - - - - results - - - - - - - - - - build-deb FAIL non-zero exit status 25 autopkgtest [09:40:46]: @@@@@@@@@@@@@@@@@@@@ summary build-deb FAIL non-zero exit status 25 qemu-system-x86_64: terminating on signal 15 from pid 3161551 (/usr/bin/python3) Did you maybe drop a file, or is something more complicated going on?
Indeed, the 'debdiff' tool seems to have dropped that file. It is here locally and I ran the test successfully before. Let me attach a git diff to this email (in favor of a debdiff) that contains all the needed files.
Cheers, Lukas
diff --git a/debian/copyright b/debian/copyright index af76dd9..ed80c0e 100644 --- a/debian/copyright +++ b/debian/copyright @@ -4,6 +4,12 @@ Files: * Copyright: © 2007-2015 Free Software Foundation Inc, © 2015 David Bremner <brem...@debian.org> © 2016 Sean Whitton <spwhit...@spwhitton.name> +License: GPL-3+ + +Files: debian/tests/elpa-test/all.el +Copyright: © 1985-2020 Free Software Foundation, Inc. +License: GPL-3+ + License: GPL-3+ dh-elpa is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/debian/tests/build-deb b/debian/tests/build-deb new file mode 100755 index 0000000..f79a43b --- /dev/null +++ b/debian/tests/build-deb @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Build an elpa package according to: +# https://wiki.debian.org/Teams/DebianEmacsenTeam/elpa-hello +# +set -eu + +cd debian/tests/elpa-test +# Create a dummy .orig.tar.gz +tar czvf ../elpa-test_1.0.orig.tar.gz all.el +dpkg-buildpackage +# Make sure the ${elpa:Depends} were picked up +dpkg-deb --info ../elpa-all_1.0-1_all.deb | grep Depends | grep dh-elpa-helper diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..42018db --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,4 @@ +Tests: build-deb +Restrictions: allow-stderr +Depends: @, build-essential, dpkg, dpkg-dev, emacs-nox + diff --git a/debian/tests/elpa-test/all.el b/debian/tests/elpa-test/all.el new file mode 100644 index 0000000..79dcea5 --- /dev/null +++ b/debian/tests/elpa-test/all.el @@ -0,0 +1,203 @@ +;;; all.el --- Edit all lines matching a given regexp -*- lexical-binding: t; -*- + +;; Copyright (C) 1985-2020 Free Software Foundation, Inc. + +;; Author: Per Abrahamsen <per.abraham...@gmail.com> +;; Version: 1.0 +;; Keywords: matching + +;; LCD Archive Entry: +;; all|Per Abrahamsen|abra...@dina.kvl.dk| +;; Edit all lines matching a given regexp| +;; $Date: 1997/03/04 10:29:42 $|$Revision: 5.2 $|~/misc/all.Z| + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Just like occur, except that changes in the *All* buffer are +;; propagated to the original buffer. + +;; You can no longer use mouse-2 to find a match in the original file, +;; since the default definition of mouse is too useful. +;; However, `C-c C-c' still works. + +;; Line numbers are not listed in the *All* buffer. + +;; Ok, it is _not_ just like occur. + +;; Some limitations: + +;; - Undo in the *All* buffer is an ordinary change in the original. +;; - Changes to the original buffer are not reflected in the *All* buffer. +;; - A single change in the *All* buffer must be limited to a single match. + +;;; Code: + +(defvar all-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-c\C-c" #'all-mode-goto) + map)) + +(defvar all-buffer nil) +(make-variable-buffer-local 'all-buffer) + +(define-derived-mode all-mode fundamental-mode "All" + "Major mode for output from \\[all]. + +All changes made in this buffer will be propagated to the buffer where +you ran \\[all]. + +Press \\[all-mode-goto] to go to the same spot in the original buffer." + (add-hook 'before-change-functions #'all-before-change-function nil 'local) + (add-hook 'after-change-functions #'all-after-change-function nil 'local)) + +(defun all-mode-find (pos) + ;; Find position in original buffer corresponding to POS. + (let ((overlay (all-mode-find-overlay pos))) + (if overlay + (+ (marker-position (overlay-get overlay 'all-marker)) + (- pos (overlay-start overlay)))))) + +(defun all-mode-find-overlay (pos) + ;; Find the overlay containing POS. + (let ((overlays (overlays-at pos))) + (while (and overlays (null (overlay-get (car overlays) 'all-marker))) + (setq overlays (cdr overlays))) + (car-safe overlays))) + +(defun all-mode-goto () + "Move point to the corresponding position in the original buffer." + (interactive) + (let ((pos (all-mode-find (point)))) + (if pos + (pop-to-buffer all-buffer) + (error "This text is not from the original buffer")) + (goto-char pos))) + +(defvar all-initialization-p nil) + +(defun all-before-change-function (from to) + ;; Check that change is legal. + (and all-buffer + (not all-initialization-p) + (let ((start (all-mode-find-overlay from)) + (end (all-mode-find-overlay to))) + (not (and start (eq start end)))) + (error "Changes should be limited to a single text piece"))) + +(defun all-after-change-function (from to length) + ;; Propagate changes from *All* buffer. + (and all-buffer + (null all-initialization-p) + (let ((buffer (current-buffer)) + (pos (all-mode-find from))) + (if pos + (with-current-buffer all-buffer + (save-excursion + (goto-char pos) + (delete-region pos (+ pos length)) + (insert-buffer-substring buffer from to))))))) + +;;;###autoload +(defun all (regexp &optional nlines) + "Show all lines in the current buffer containing a match for REGEXP. + +If a match spreads across multiple lines, all those lines are shown. + +Each line is displayed with NLINES lines before and after, or -NLINES +before if NLINES is negative. +NLINES defaults to `list-matching-lines-default-context-lines'. +Interactively it is the prefix arg. + +The lines are shown in a buffer named `*All*'. +Any changes made in that buffer will be propagated to this buffer." + (interactive + (list (let* ((default (car regexp-history))) + (read-regexp + (if default + (format + "Edit lines matching regexp (default `%s'): " default) + "Edit lines matching regexp: ") + default)) + current-prefix-arg)) + (setq nlines (if nlines (prefix-numeric-value nlines) + list-matching-lines-default-context-lines)) + (let ((all-initialization-p t) + (buffer (current-buffer)) + (prevend nil) + (prevstart nil) + (prevpos (point-min))) + (with-output-to-temp-buffer "*All*" + (with-current-buffer standard-output + (all-mode) + (setq all-buffer buffer) + (insert "Lines matching ") + (prin1 regexp) + (insert " in buffer " (buffer-name buffer) ?. ?\n) + (insert "--------\n")) + (if (eq buffer standard-output) + (goto-char (point-max))) + (save-excursion + (goto-char (point-min)) + ;; Find next match, but give up if prev match was at end of buffer. + (while (and (not (= prevpos (point-max))) + (re-search-forward regexp nil t)) + (goto-char (match-beginning 0)) + (beginning-of-line) + (setq prevpos (point)) + (goto-char (match-end 0)) + (let* ((start (save-excursion + (goto-char (match-beginning 0)) + (forward-line (if (< nlines 0) nlines (- nlines))) + (point))) + (end (save-excursion + (goto-char (match-end 0)) + (if (> nlines 0) + (forward-line (1+ nlines)) + (forward-line 1)) + (point)))) + (cond ((null prevend) + (setq prevstart start + prevend end)) + ((> start prevend) + (all-insert prevstart prevend regexp nlines) + (setq prevstart start + prevend end)) + (t + (setq prevend end))))) + (if prevend + (all-insert prevstart prevend regexp nlines)))))) + +(defun all-insert (start end regexp nlines) + ;; Insert match. + (let ((marker (copy-marker start)) + (buffer (current-buffer))) + (with-current-buffer standard-output + (let ((from (point)) + to) + (insert-buffer-substring buffer start end) + (setq to (point)) + (overlay-put (make-overlay from to) 'all-marker marker) + (goto-char from) + (while (re-search-forward regexp to t) + (put-text-property (match-beginning 0) (match-end 0) + 'face 'match)) + (goto-char to) + (if (> nlines 0) + (insert "--------\n")))))) + +(provide 'all) + +;;; all.el ends here diff --git a/debian/tests/elpa-test/debian/changelog b/debian/tests/elpa-test/debian/changelog new file mode 100644 index 0000000..d2228f3 --- /dev/null +++ b/debian/tests/elpa-test/debian/changelog @@ -0,0 +1,5 @@ +elpa-test (1.0-1) unstable; urgency=medium + + * Initial release. + + -- Lukas Märdian <sl...@ubuntu.com> Tue, 7 Dec 2021 12:05:48 +0100 diff --git a/debian/tests/elpa-test/debian/control b/debian/tests/elpa-test/debian/control new file mode 100644 index 0000000..d0455f3 --- /dev/null +++ b/debian/tests/elpa-test/debian/control @@ -0,0 +1,31 @@ +Source: elpa-test +Section: editors +Priority: optional +Maintainer: Lukas Märdian <sl...@ubuntu.com> +Build-Depends: debhelper-compat (= 13), + dh-elpa +Standards-Version: 4.5.1 +Rules-Requires-Root: no + +Package: elpa-all +Architecture: all +Depends: ${elpa:Depends}, ${misc:Depends} +Recommends: emacs (>= 46.0) +Enhances: emacs +Description: Edit all lines matching a given regexp + Just like occur, except that changes in the *All* buffer are + propagated to the original buffer. + . + You can no longer use mouse-2 to find a match in the original file, + since the default definition of mouse is too useful. + However, `C-c C-c' still works. + . + Line numbers are not listed in the *All* buffer. + . + Ok, it is _not_ just like occur. + . + Some limitations: + . + - Undo in the *All* buffer is an ordinary change in the original. + - Changes to the original buffer are not reflected in the *All* buffer. + - A single change in the *All* buffer must be limited to a single match. diff --git a/debian/tests/elpa-test/debian/copyright b/debian/tests/elpa-test/debian/copyright new file mode 100644 index 0000000..373f3d9 --- /dev/null +++ b/debian/tests/elpa-test/debian/copyright @@ -0,0 +1,27 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: elpa-test + +Files: * +Copyright: (C) 1985-2020 Free Software Foundation, Inc. +License: GPL-3+ + +Files: debian/* +Copyright: (C) 2021 Lukas Märdian <sl...@ubuntu.com> +License: GPL-3+ + +License: GPL-3+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in `/usr/share/common-licenses/GPL-3' diff --git a/debian/tests/elpa-test/debian/elpa b/debian/tests/elpa-test/debian/elpa new file mode 100644 index 0000000..abf136d --- /dev/null +++ b/debian/tests/elpa-test/debian/elpa @@ -0,0 +1 @@ +*.el diff --git a/debian/tests/elpa-test/debian/rules b/debian/tests/elpa-test/debian/rules new file mode 100755 index 0000000..e8e22ba --- /dev/null +++ b/debian/tests/elpa-test/debian/rules @@ -0,0 +1,4 @@ +#!/usr/bin/make -f + +%: + dh $@ --with elpa diff --git a/debian/tests/elpa-test/debian/source/format b/debian/tests/elpa-test/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/tests/elpa-test/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt)