summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/maintainer-scripts/diversion
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 13:42:30 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 13:42:30 +0000
commit75808db17caf8b960b351e3408e74142f4c85aac (patch)
tree7989e9c09a4240248bf4658a22208a0a52d991c4 /t/recipes/checks/maintainer-scripts/diversion
parentInitial commit. (diff)
downloadlintian-upstream.tar.xz
lintian-upstream.zip
Adding upstream version 2.117.0.upstream/2.117.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 't/recipes/checks/maintainer-scripts/diversion')
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/install4
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/postrm26
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/preinst38
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/fill-values3
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/orphan1
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/some-file1
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/desc2
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/hints8
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/install5
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postinst11
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postrm34
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/preinst53
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/fill-values3
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/file.11
-rwxr-xr-xt/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo2
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo.1p3
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/orphan1
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/some-file1
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/desc2
-rw-r--r--t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/hints8
20 files changed, 207 insertions, 0 deletions
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/install b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/install
new file mode 100644
index 0000000..c29cc54
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/install
@@ -0,0 +1,4 @@
+orphan usr/share/scripts/t1
+some-file usr/share/scripts/t1
+orphan usr/share/scripts/t2/foo
+some-file usr/share/scripts/t2/foo
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/postrm b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/postrm
new file mode 100644
index 0000000..73b8ee9
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/postrm
@@ -0,0 +1,26 @@
+#!/bin/sh
+set -e
+
+if [ remove = "$1" ]; then
+ # Clean up the correct diversion from preinst.
+ dpkg-divert --package scripts-diversions --remove --rename \
+ --divert /usr/share/scripts/t2/foo/some-file.real \
+ "/usr/share/scripts/t2/foo/some-file"
+
+ d=scripts
+ # Clean up some other diversion that we didn't create.
+ dpkg-divert --package scripts-diversions --remove --rename \
+ /usr/lib/$d/old-file; echo hi
+
+ # Clean up a diversion we did not create for a non-existent file.
+ dpkg-divert --remove --package scripts-diversions --rename \
+ --divert /usr/share/scripts/$v/no-such-file.real \
+ /usr/share/scripts/$v/no-such-file && echo hello
+
+ # Clean up a diversion we did create for a non-existent file.
+ (dpkg-divert --package foo --remove /etc/scripts/orphan)
+ # another one:
+ { dpkg-divert --package foo --remove /usr/share/foo/$(echo bar); }
+fi
+
+#DEBHELPER#
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/preinst b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/preinst
new file mode 100644
index 0000000..c311563
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/debian/preinst
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -e
+
+if [ install = "$1" ]; then
+ # This is a correct diversion.
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /usr/share/scripts/t2/foo/some-file.real \
+ /usr/share/scripts/t2/foo/some-file
+
+ # This is broken -- can't use local.
+ dpkg-divert --local \
+ --add \
+ --divert \
+ /usr/share/scripts/other-file.real \
+ /usr/share/scripts/other-file
+
+ f=orphan
+ # This is also correct, but we're not going to clean it up.
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /usr/share/scripts/t1/$f.real \
+ /usr/share/scripts/t1/"$f"
+
+ # Try to divert a file we don't ship
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /etc/scripts/$f.real \
+ /etc/scripts/$f|| true
+ # Another one
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /usr/share/foo/$f.real \
+ /usr/share/foo/${f#f}
+
+ # This is correct too.
+ dpkg-divert $SOMETHING --package scripts-diversions --add --rename \
+ --divert /usr/share/scripts/t2/foo/some-file.real \
+ /usr/share/scripts/t2/foo/some-file
+fi
+
+#DEBHELPER#
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/fill-values b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/fill-values
new file mode 100644
index 0000000..a2852bf
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: scripts-diversions-variables
+Description: Tests of dpkg-divert checks with variables
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/orphan b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/orphan
new file mode 100644
index 0000000..934fd74
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/orphan
@@ -0,0 +1 @@
+Some file that we're going to divert and not clean up.
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/some-file b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/some-file
new file mode 100644
index 0000000..649e369
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/build-spec/orig/some-file
@@ -0,0 +1 @@
+Some random file that we're going to install after diverting.
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/desc b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/desc
new file mode 100644
index 0000000..8e33766
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/desc
@@ -0,0 +1,2 @@
+Testname: scripts-diversions-variables
+Check: maintainer-scripts/diversion
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/hints b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/hints
new file mode 100644
index 0000000..d32d2c6
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions-variables/eval/hints
@@ -0,0 +1,8 @@
+scripts-diversions-variables (binary): remove-of-unknown-diversion usr/share/scripts/*/no-such-file [postrm:18]
+scripts-diversions-variables (binary): remove-of-unknown-diversion usr/lib/*/old-file [postrm:13]
+scripts-diversions-variables (binary): package-uses-local-diversion [preinst:15]
+scripts-diversions-variables (binary): orphaned-diversion usr/share/scripts/t1/* [preinst:21]
+scripts-diversions-variables (binary): orphaned-diversion usr/share/scripts/other-file [preinst:15]
+scripts-diversions-variables (binary): diversion-for-unknown-file usr/share/scripts/other-file [preinst:15]
+scripts-diversions-variables (binary): diversion-for-unknown-file usr/share/foo/* [preinst:30]
+scripts-diversions-variables (binary): diversion-for-unknown-file etc/scripts/* [preinst:26]
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/install b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/install
new file mode 100644
index 0000000..bf6447b
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/install
@@ -0,0 +1,5 @@
+orphan usr/share/scripts
+some-file usr/share/scripts
+file.1 usr/share/scripts
+foo usr/bin
+foo.1p usr/share/man/man1
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postinst b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postinst
new file mode 100644
index 0000000..f397e7d
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postinst
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+# This isn't a diversion we create anywhere, but we're allowed to do this in
+# postinst in case we're cleaning up after a previous version.
+if [ configure = "$1" ] && dpkg-divert --list '*old-file' >/dev/null ; then
+ dpkg-divert --package scripts-diversions --remove --rename \
+ /usr/share/scripts/old-file
+fi
+
+#DEBHELPER#
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postrm b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postrm
new file mode 100644
index 0000000..26128e9
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/postrm
@@ -0,0 +1,34 @@
+#!/bin/sh
+set -e
+
+if [ remove = "$1" ]; then
+ # Clean up the correct diversion from preinst.
+ dpkg-divert --package scripts-diversions --remove --rename \
+ --divert /usr/share/scripts/some-file.real \
+ /usr/share/scripts/some-file
+
+ # Clean up some other diversion that we didn't create.
+ dpkg-divert --package scripts-diversions --remove --rename \
+ /usr/share/scripts/old-file
+
+ # Clean up a diversion we did create for a non-existent file.
+ dpkg-divert --remove --package scripts-diversions --rename \
+ --divert /usr/share/scripts/no-such-file.real \
+ /usr/share/scripts/no-such-file
+
+ # Regression test for diversions ending in numbers (Bug#534942)
+ dpkg-divert --remove --package scripts-diversions \
+ --divert /usr/share/scripts/file.1.real \
+ /usr/share/scripts/file.1 > /dev/null
+
+ # Clean up the diversion for a binary man page.
+ dpkg-divert --remove --package scripts-diversions \
+ --divert /usr/share/man/man1/foo.real.1.gz \
+ /usr/share/man/man1/foo.1.gz
+
+ # Clean up a local diversion.
+ dpkg-divert --local --remove --divert /usr/share/scripts/other-file.real \
+ /usr/share/scripts/other-file
+fi
+
+#DEBHELPER#
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/preinst b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/preinst
new file mode 100644
index 0000000..b590f9d
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/debian/preinst
@@ -0,0 +1,53 @@
+#!/bin/sh
+set -e
+
+if [ install = "$1" ]; then
+ # This is a correct diversion.
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /usr/share/scripts/some-file.real \
+ /usr/share/scripts/some-file
+
+ # This is broken -- can't use local.
+ dpkg-divert --local --add --divert /usr/share/scripts/other-file.real \
+ /usr/share/scripts/other-file
+
+ # This was broken until dpkg 1.16.0 (Wheezy), see #679132
+ dpkg-divert --add --divert /usr/share/scripts/another-file.real \
+ /usr/share/scripts/another-file
+
+ # This is also correct, but we're not going to clean it up. While we're
+ # at it, make sure we strip trailing redirections.
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /usr/share/scripts/orphan.real \
+ /usr/share/scripts/orphan > /dev/null
+
+ # The same one again, but with a different redirection.
+ dpkg-divert --package scripts-diversions --add --rename \
+ --divert /usr/share/scripts/orphan.real \
+ /usr/share/scripts/orphan 2> /dev/null
+
+ # This is broken because the file doesn't exist.
+ dpkg-divert --add --package scripts-diversions --rename \
+ --divert /usr/share/scripts/no-such-file.real \
+ /usr/share/scripts/no-such-file
+
+ # Regression test for diversions ending in numbers (Bug#534942)
+ dpkg-divert --add --rename --package scripts-diversions \
+ --divert /usr/share/scripts/file.1.real \
+ /usr/share/scripts/file.1 > /dev/null
+
+ # We're allowed to divert a man page to install another man page in a
+ # different section but the same numeric section. (Bug#543781)
+ dpkg-divert --add --rename --package scripts-diversions \
+ --divert /usr/share/man/man1/foo.real.1.gz \
+ /usr/share/man/man1/foo.1.gz
+fi
+
+# This isn't a diversion we create anywhere, but we're allowed to do this in
+# preinst in case we're cleaning up after a previous version.
+if [ upgrade = "$1" ] && dpkg-divert --list '*old-file' >/dev/null ; then
+ dpkg-divert --package scripts-diversions --remove --rename \
+ /usr/share/scripts/old-file
+fi
+
+#DEBHELPER#
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/fill-values b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/fill-values
new file mode 100644
index 0000000..df30405
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: scripts-diversions
+Description: Tests of dpkg-divert checks
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/file.1 b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/file.1
new file mode 100644
index 0000000..a58ae6c
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/file.1
@@ -0,0 +1 @@
+Some file ending in a number.
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo
new file mode 100755
index 0000000..adff45d
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'Fake foo binary'
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo.1p b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo.1p
new file mode 100644
index 0000000..c3088fd
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/foo.1p
@@ -0,0 +1,3 @@
+.TH foo 1p
+.SH NAME
+foo \- a fake man page for a foo
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/orphan b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/orphan
new file mode 100644
index 0000000..934fd74
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/orphan
@@ -0,0 +1 @@
+Some file that we're going to divert and not clean up.
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/some-file b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/some-file
new file mode 100644
index 0000000..649e369
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/build-spec/orig/some-file
@@ -0,0 +1 @@
+Some random file that we're going to install after diverting.
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/desc b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/desc
new file mode 100644
index 0000000..bf8f64f
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/desc
@@ -0,0 +1,2 @@
+Testname: scripts-diversions
+Check: maintainer-scripts/diversion
diff --git a/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/hints b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/hints
new file mode 100644
index 0000000..d8d2444
--- /dev/null
+++ b/t/recipes/checks/maintainer-scripts/diversion/scripts-diversions/eval/hints
@@ -0,0 +1,8 @@
+scripts-diversions (binary): remove-of-unknown-diversion usr/share/scripts/old-file [postrm:12]
+scripts-diversions (binary): package-uses-local-diversion [preinst:12]
+scripts-diversions (binary): package-uses-local-diversion [postrm:31]
+scripts-diversions (binary): orphaned-diversion usr/share/scripts/orphan [preinst:27]
+scripts-diversions (binary): orphaned-diversion usr/share/scripts/another-file [preinst:16]
+scripts-diversions (binary): diversion-for-unknown-file usr/share/scripts/other-file [preinst:12]
+scripts-diversions (binary): diversion-for-unknown-file usr/share/scripts/no-such-file [preinst:32]
+scripts-diversions (binary): diversion-for-unknown-file usr/share/scripts/another-file [preinst:16]