summaryrefslogtreecommitdiffstats
path: root/t/recipes/lintian-features
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/lintian-features
parentInitial commit. (diff)
downloadlintian-75808db17caf8b960b351e3408e74142f4c85aac.tar.xz
lintian-75808db17caf8b960b351e3408e74142f4c85aac.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/lintian-features')
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/debian/patches/series1
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/fill-values4
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/desc5
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/literal2
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error/build-spec/debian/patches/series1
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error/build-spec/fill-values4
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error/eval/desc6
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-error/eval/literal2
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-info/build-spec/debian/manpages1
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-info/build-spec/fill-values3
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-info/build-spec/orig/man/lsmod.859
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-info/eval/desc6
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-info/eval/hints14
-rw-r--r--t/recipes/lintian-features/exit-status/fail-on-info/eval/literal1
-rw-r--r--t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/debian/manpages1
-rw-r--r--t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/fill-values3
-rw-r--r--t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/orig/man/lsmod.859
-rw-r--r--t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/desc5
-rw-r--r--t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/literal5
-rw-r--r--t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/install1
-rw-r--r--t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/lintian-overrides2
-rw-r--r--t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/fill-values3
-rwxr-xr-xt/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/orig/file4
-rw-r--r--t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/desc6
-rw-r--r--t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/literal2
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/debian/control.in20
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/debian/dirs2
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/debian/examples1
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/debian/install2
-rwxr-xr-xt/recipes/lintian-features/html-output/build-spec/debian/rules5
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/debian/source.lintian-overrides1
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/diff/Changes1
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/fill-values5
-rwxr-xr-xt/recipes/lintian-features/html-output/build-spec/orig/example2
-rwxr-xr-xt/recipes/lintian-features/html-output/build-spec/orig/script3
-rw-r--r--t/recipes/lintian-features/html-output/build-spec/orig/script.desktop9
-rw-r--r--t/recipes/lintian-features/html-output/eval/desc5
-rw-r--r--t/recipes/lintian-features/html-output/eval/literal800
-rw-r--r--t/recipes/lintian-features/html-output/eval/post-test3
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/debian/control.in20
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/debian/dirs2
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/debian/examples1
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/debian/install2
-rwxr-xr-xt/recipes/lintian-features/json-output/build-spec/debian/rules5
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/debian/source.lintian-overrides1
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/diff/Changes1
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/fill-values5
-rwxr-xr-xt/recipes/lintian-features/json-output/build-spec/orig/example2
-rwxr-xr-xt/recipes/lintian-features/json-output/build-spec/orig/script3
-rw-r--r--t/recipes/lintian-features/json-output/build-spec/orig/script.desktop9
-rw-r--r--t/recipes/lintian-features/json-output/eval/desc5
-rw-r--r--t/recipes/lintian-features/json-output/eval/literal297
-rw-r--r--t/recipes/lintian-features/json-output/eval/post-test2
-rw-r--r--t/recipes/lintian-features/lintian-check-tags-file/build-spec/debian/control.in12
-rw-r--r--t/recipes/lintian-features/lintian-check-tags-file/build-spec/fill-values3
-rw-r--r--t/recipes/lintian-features/lintian-check-tags-file/eval/desc5
-rw-r--r--t/recipes/lintian-features/lintian-check-tags-file/eval/literal2
-rw-r--r--t/recipes/lintian-features/lintian-check-tags-file/eval/tag-list7
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/debian/control.in19
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/debian/dirs2
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/debian/examples1
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/debian/install2
-rwxr-xr-xt/recipes/lintian-features/lintian-display-level/build-spec/debian/rules5
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/diff/Changes1
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/fill-values4
-rwxr-xr-xt/recipes/lintian-features/lintian-display-level/build-spec/orig/example2
-rwxr-xr-xt/recipes/lintian-features/lintian-display-level/build-spec/orig/script3
-rw-r--r--t/recipes/lintian-features/lintian-display-level/build-spec/orig/script.desktop7
-rw-r--r--t/recipes/lintian-features/lintian-display-level/eval/desc5
-rw-r--r--t/recipes/lintian-features/lintian-display-level/eval/literal9
-rw-r--r--t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/control.in19
-rw-r--r--t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/dirs3
-rwxr-xr-xt/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/rules5
-rw-r--r--t/recipes/lintian-features/lintian-ftp-rejects/build-spec/fill-values3
-rw-r--r--t/recipes/lintian-features/lintian-ftp-rejects/eval/desc4
-rw-r--r--t/recipes/lintian-features/lintian-ftp-rejects/eval/literal3
-rw-r--r--t/recipes/lintian-features/lintian-no-override/build-spec/debian/dirs1
-rw-r--r--t/recipes/lintian-features/lintian-no-override/build-spec/debian/lintian-no-override.lintian-overrides1
-rw-r--r--t/recipes/lintian-features/lintian-no-override/build-spec/fill-values3
-rw-r--r--t/recipes/lintian-features/lintian-no-override/eval/desc5
-rw-r--r--t/recipes/lintian-features/lintian-no-override/eval/literal3
-rw-r--r--t/recipes/lintian-features/lintian-suppress-tags/build-spec/debian/control.in12
-rw-r--r--t/recipes/lintian-features/lintian-suppress-tags/build-spec/fill-values3
-rw-r--r--t/recipes/lintian-features/lintian-suppress-tags/eval/desc6
-rw-r--r--t/recipes/lintian-features/lintian-suppress-tags/eval/literal1
-rw-r--r--t/recipes/lintian-features/lintian-suppress-tags/eval/suppress7
86 files changed, 1582 insertions, 0 deletions
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/debian/patches/series b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/debian/patches/series
new file mode 100644
index 0000000..b2bfa72
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/debian/patches/series
@@ -0,0 +1 @@
+non-existing.patch
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/fill-values b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/fill-values
new file mode 100644
index 0000000..0be681a
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: fail-on-error-by-default
+Skeleton: source-native
+Description: Exit status for error tags
+Extra-Build-Depends: quilt
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/desc b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/desc
new file mode 100644
index 0000000..e5f0839
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/desc
@@ -0,0 +1,5 @@
+Testname: fail-on-error-by-default
+Exit-Status: 2
+Output-Format: EWI
+Match-Strategy: literal
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/literal b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/literal
new file mode 100644
index 0000000..3224fc5
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error-by-default/eval/literal
@@ -0,0 +1,2 @@
+E: fail-on-error-by-default source: quilt-series-references-non-existent-patch non-existing.patch [debian/patches/series]
+W: fail-on-error-by-default source: patch-system-but-no-source-readme
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error/build-spec/debian/patches/series b/t/recipes/lintian-features/exit-status/fail-on-error/build-spec/debian/patches/series
new file mode 100644
index 0000000..b2bfa72
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error/build-spec/debian/patches/series
@@ -0,0 +1 @@
+non-existing.patch
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error/build-spec/fill-values b/t/recipes/lintian-features/exit-status/fail-on-error/build-spec/fill-values
new file mode 100644
index 0000000..39e4198
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: fail-on-error
+Skeleton: source-native
+Description: Fail on error tag
+Extra-Build-Depends: quilt
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error/eval/desc b/t/recipes/lintian-features/exit-status/fail-on-error/eval/desc
new file mode 100644
index 0000000..5ed4fd8
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error/eval/desc
@@ -0,0 +1,6 @@
+Testname: fail-on-error
+Options: --fail-on error
+Exit-Status: 2
+Output-Format: EWI
+Match-Strategy: literal
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/exit-status/fail-on-error/eval/literal b/t/recipes/lintian-features/exit-status/fail-on-error/eval/literal
new file mode 100644
index 0000000..07096d1
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-error/eval/literal
@@ -0,0 +1,2 @@
+E: fail-on-error source: quilt-series-references-non-existent-patch non-existing.patch [debian/patches/series]
+W: fail-on-error source: patch-system-but-no-source-readme
diff --git a/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/debian/manpages b/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/debian/manpages
new file mode 100644
index 0000000..85c5e00
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/debian/manpages
@@ -0,0 +1 @@
+man/*
diff --git a/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/fill-values b/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/fill-values
new file mode 100644
index 0000000..353a301
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: fail-on-info
+Skeleton: upload-native
+Description: Exit status for info tags with --fail-on info
diff --git a/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/orig/man/lsmod.8 b/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/orig/man/lsmod.8
new file mode 100644
index 0000000..e323bd6
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-info/build-spec/orig/man/lsmod.8
@@ -0,0 +1,59 @@
+'\" t
+.\" Title: lsmod
+.\" Author: Jon Masters <jcm@jonmasters.org>
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 02/09/2019
+.\" Manual: lsmod
+.\" Source: kmod
+.\" Language: English
+.\"
+.TH "LSMOD" "8" "02/09/2019" "kmod" "lsmod"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+lsmod \- Show the status of modules in the Linux Kernel
+.SH "SYNOPSIS"
+.HP \w'\fBlsmod\fR\ 'u
+\fBlsmod\fR
+.SH "DESCRIPTION"
+.PP
+\fBlsmod\fR
+is a trivial program which nicely formats the contents of the
+/proc/modules, showing what kernel modules are currently loaded\&.
+.SH "COPYRIGHT"
+.PP
+This manual page originally Copyright 2002, Rusty Russell, IBM Corporation\&. Maintained by Jon Masters and others\&.
+.SH "SEE ALSO"
+.PP
+\fBinsmod\fR(8),
+\fBmodprobe\fR(8),
+\fBmodinfo\fR(8)
+\fBdepmod\fR(8)
+.SH "AUTHORS"
+.PP
+\fBJon Masters\fR <\&jcm@jonmasters\&.org\&>
+.RS 4
+Developer
+.RE
+.PP
+\fBLucas De Marchi\fR <\&lucas\&.de\&.marchi@gmail\&.com\&>
+.RS 4
+Developer
+.RE
diff --git a/t/recipes/lintian-features/exit-status/fail-on-info/eval/desc b/t/recipes/lintian-features/exit-status/fail-on-info/eval/desc
new file mode 100644
index 0000000..ebf6942
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-info/eval/desc
@@ -0,0 +1,6 @@
+Testname: fail-on-info
+Options: --fail-on info
+Exit-Status: 2
+Output-Format: EWI
+Match-Strategy: literal
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/exit-status/fail-on-info/eval/hints b/t/recipes/lintian-features/exit-status/fail-on-info/eval/hints
new file mode 100644
index 0000000..d32006d
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-info/eval/hints
@@ -0,0 +1,14 @@
+fail-on-info (source): standards-version 4.5.0
+fail-on-info (source): source-format 3.0 (native)
+fail-on-info (source): rules-does-not-require-root
+fail-on-info (source): package-is-maintained-by-individual
+fail-on-info (source): debian-build-system dh
+fail-on-info (source): debhelper-compat-virtual-relation 13
+fail-on-info (source): debhelper-compat-level 13
+fail-on-info (changes): package-is-maintained-by-individual
+fail-on-info (buildinfo): package-is-maintained-by-individual
+fail-on-info (binary): package-is-maintained-by-individual
+fail-on-info (binary): no-ctrl-scripts
+fail-on-info (binary): manpage-without-executable usr/share/man/man8/lsmod.8.gz
+fail-on-info (binary): data-tarball-compression-format xz
+fail-on-info (binary): control-tarball-compression-format xz
diff --git a/t/recipes/lintian-features/exit-status/fail-on-info/eval/literal b/t/recipes/lintian-features/exit-status/fail-on-info/eval/literal
new file mode 100644
index 0000000..43f8d4d
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/fail-on-info/eval/literal
@@ -0,0 +1 @@
+I: fail-on-info: spare-manual-page [usr/share/man/man8/lsmod.8.gz]
diff --git a/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/debian/manpages b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/debian/manpages
new file mode 100644
index 0000000..85c5e00
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/debian/manpages
@@ -0,0 +1 @@
+man/*
diff --git a/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/fill-values b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/fill-values
new file mode 100644
index 0000000..53d5862
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: no-fail-on-info-by-default
+Skeleton: upload-non-native
+Description: Exit status for info tags
diff --git a/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/orig/man/lsmod.8 b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/orig/man/lsmod.8
new file mode 100644
index 0000000..e323bd6
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/build-spec/orig/man/lsmod.8
@@ -0,0 +1,59 @@
+'\" t
+.\" Title: lsmod
+.\" Author: Jon Masters <jcm@jonmasters.org>
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 02/09/2019
+.\" Manual: lsmod
+.\" Source: kmod
+.\" Language: English
+.\"
+.TH "LSMOD" "8" "02/09/2019" "kmod" "lsmod"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+lsmod \- Show the status of modules in the Linux Kernel
+.SH "SYNOPSIS"
+.HP \w'\fBlsmod\fR\ 'u
+\fBlsmod\fR
+.SH "DESCRIPTION"
+.PP
+\fBlsmod\fR
+is a trivial program which nicely formats the contents of the
+/proc/modules, showing what kernel modules are currently loaded\&.
+.SH "COPYRIGHT"
+.PP
+This manual page originally Copyright 2002, Rusty Russell, IBM Corporation\&. Maintained by Jon Masters and others\&.
+.SH "SEE ALSO"
+.PP
+\fBinsmod\fR(8),
+\fBmodprobe\fR(8),
+\fBmodinfo\fR(8)
+\fBdepmod\fR(8)
+.SH "AUTHORS"
+.PP
+\fBJon Masters\fR <\&jcm@jonmasters\&.org\&>
+.RS 4
+Developer
+.RE
+.PP
+\fBLucas De Marchi\fR <\&lucas\&.de\&.marchi@gmail\&.com\&>
+.RS 4
+Developer
+.RE
diff --git a/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/desc b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/desc
new file mode 100644
index 0000000..73e0055
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/desc
@@ -0,0 +1,5 @@
+Testname: no-fail-on-info-by-default
+Exit-Status: 0
+Output-Format: EWI
+Match-Strategy: literal
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/literal b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/literal
new file mode 100644
index 0000000..6a3843c
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/no-fail-on-info-by-default/eval/literal
@@ -0,0 +1,5 @@
+I: no-fail-on-info-by-default source: older-debian-watch-file-standard 3 [debian/watch]
+I: no-fail-on-info-by-default: spare-manual-page [usr/share/man/man8/lsmod.8.gz]
+I: no-fail-on-info-by-default source: upstream-metadata-missing-bug-tracking [debian/upstream/metadata]
+I: no-fail-on-info-by-default source: upstream-metadata-missing-repository [debian/upstream/metadata]
+X: no-fail-on-info-by-default source: debian-watch-does-not-check-openpgp-signature [debian/watch]
diff --git a/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/install b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/install
new file mode 100644
index 0000000..d5d2b1d
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/install
@@ -0,0 +1 @@
+file /usr/share/file
diff --git a/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/lintian-overrides b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/lintian-overrides
new file mode 100644
index 0000000..16c3ee0
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/debian/lintian-overrides
@@ -0,0 +1,2 @@
+# package installs a d/rules template not a script
+missing-dep-for-interpreter /usr/bin/make *
diff --git a/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/fill-values b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/fill-values
new file mode 100644
index 0000000..700aa18
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: show-overrides-exit-status
+Description: Bug #1019690 correct exit status when show-overrides
diff --git a/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/orig/file b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/orig/file
new file mode 100755
index 0000000..e8e22ba
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/build-spec/orig/file
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with elpa
diff --git a/t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/desc b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/desc
new file mode 100644
index 0000000..e3c20ef
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/desc
@@ -0,0 +1,6 @@
+Testname: show-overrides-exit-status
+Check: scripts
+Exit-Status: 0
+Match-Strategy: literal
+Output-Format: EWI
+Default-Lintian-Options: --show-overrides --fail-on error
diff --git a/t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/literal b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/literal
new file mode 100644
index 0000000..d328053
--- /dev/null
+++ b/t/recipes/lintian-features/exit-status/show-overrides-exit-status/eval/literal
@@ -0,0 +1,2 @@
+N: package installs a d/rules template not a script
+O: show-overrides-exit-status: missing-dep-for-interpreter /usr/bin/make (does not satisfy make:any | build-essential:any | dpkg-dev:any) [usr/share/file/file]
diff --git a/t/recipes/lintian-features/html-output/build-spec/debian/control.in b/t/recipes/lintian-features/html-output/build-spec/debian/control.in
new file mode 100644
index 0000000..48330e1
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/debian/control.in
@@ -0,0 +1,20 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, libssl0.9.8 (>= 0abcd)
+Essential:yes
+Section: [% $section %]
+Description: [% $description %].
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ The homepage is http://www.example.com/.
diff --git a/t/recipes/lintian-features/html-output/build-spec/debian/dirs b/t/recipes/lintian-features/html-output/build-spec/debian/dirs
new file mode 100644
index 0000000..055295f
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/debian/dirs
@@ -0,0 +1,2 @@
+usr/local/share/lintian
+var/lock/lintian
diff --git a/t/recipes/lintian-features/html-output/build-spec/debian/examples b/t/recipes/lintian-features/html-output/build-spec/debian/examples
new file mode 100644
index 0000000..33a9488
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/debian/examples
@@ -0,0 +1 @@
+example
diff --git a/t/recipes/lintian-features/html-output/build-spec/debian/install b/t/recipes/lintian-features/html-output/build-spec/debian/install
new file mode 100644
index 0000000..d6f0c2d
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/debian/install
@@ -0,0 +1,2 @@
+script usr/bin
+script.desktop usr/share/applications
diff --git a/t/recipes/lintian-features/html-output/build-spec/debian/rules b/t/recipes/lintian-features/html-output/build-spec/debian/rules
new file mode 100755
index 0000000..67e7058
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_usrlocal:
diff --git a/t/recipes/lintian-features/html-output/build-spec/debian/source.lintian-overrides b/t/recipes/lintian-features/html-output/build-spec/debian/source.lintian-overrides
new file mode 100644
index 0000000..b3f4107
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/debian/source.lintian-overrides
@@ -0,0 +1 @@
+html-output source: dfsg-version-misspelled 1.0*
diff --git a/t/recipes/lintian-features/html-output/build-spec/diff/Changes b/t/recipes/lintian-features/html-output/build-spec/diff/Changes
new file mode 100644
index 0000000..2a267cd
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/diff/Changes
@@ -0,0 +1 @@
+This is unlike any other dummy changelog.
diff --git a/t/recipes/lintian-features/html-output/build-spec/fill-values b/t/recipes/lintian-features/html-output/build-spec/fill-values
new file mode 100644
index 0000000..cbdeb07
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/fill-values
@@ -0,0 +1,5 @@
+Testname: html-output
+Skeleton: upload-non-native
+Version: 1.0+dsfg-1.1
+Package-Architecture: all
+Description: Test Lintian's HTML output format
diff --git a/t/recipes/lintian-features/html-output/build-spec/orig/example b/t/recipes/lintian-features/html-output/build-spec/orig/example
new file mode 100755
index 0000000..1cde649
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/orig/example
@@ -0,0 +1,2 @@
+#!/usr/bin/foo
+echo This is some example.
diff --git a/t/recipes/lintian-features/html-output/build-spec/orig/script b/t/recipes/lintian-features/html-output/build-spec/orig/script
new file mode 100755
index 0000000..a10a951
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/orig/script
@@ -0,0 +1,3 @@
+#!/bin/sh
+. /usr/share/debconf/confmodule
+echo 'Hello world'
diff --git a/t/recipes/lintian-features/html-output/build-spec/orig/script.desktop b/t/recipes/lintian-features/html-output/build-spec/orig/script.desktop
new file mode 100644
index 0000000..e1ec555
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/build-spec/orig/script.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=script
+Type=Application
+Comment=Incorrectly limited to particular environments
+Categories=Development;
+Exec=script
+OnlyShowIn=GNOME;KDE;
+Icon=foo
+Keywords=Lintian
diff --git a/t/recipes/lintian-features/html-output/eval/desc b/t/recipes/lintian-features/html-output/eval/desc
new file mode 100644
index 0000000..a30fd30
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/eval/desc
@@ -0,0 +1,5 @@
+Testname: html-output
+Options: --show-overrides
+Output-Format: html
+Match-Strategy: literal
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/html-output/eval/literal b/t/recipes/lintian-features/html-output/eval/literal
new file mode 100644
index 0000000..e06e404
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/eval/literal
@@ -0,0 +1,800 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Lintian Tags</title>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAArUlEQVR4AWOgOhAOqf4vEFh2RkZGRpAsA7jT5/7nSJ97RlJSklwD5vznTJxCgQFpQAMSJlJoQPwEuroAMxA5U2ZSYsA8YCzMp9AFydMpjMakKZSmg8nkG8CVMe8/e9ai80AD5ICYDx0TNiBr0X/m6oOfganxJEfq7KOcSdOOciVMAuKJR0XswnsIGiAQVvOfK3vxf67M+f+5shYA6YVAeuF/3vj+l2LOcRZUz70AF5dRizrcOOQAAAAASUVORK5CYII=" rel="icon" type="image/x-icon" />
+ <style type="text/css">
+
+/* lintian.css -- Style sheet for lintian.debian.org pages. */
+
+/*
+ # Table of Contents:
+ #
+ # 1. General styles (links, lists, titles, tables...)
+ # 2. Header
+ # 3. Navigation
+ # 4. Main content
+ # 5. Footer
+ # 6. Other
+ */
+
+/*
+ # Order:
+ #
+ # example {
+ # display
+ # position
+ # width
+ # height
+ # margin
+ # padding
+ # background
+ # color
+ # font
+ # text
+ # line-height
+ # border
+ # }
+ */
+
+
+/*
+ * 1. General styles
+ */
+
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+html, body {
+ margin: 0;
+ padding: 0;
+
+ font-family: 'Roboto', serif;
+ color: #222;
+}
+
+h1, h2 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 400;
+}
+
+h1 {
+ margin-top: 0;
+}
+
+article h1 {
+ font-size: 28px;
+}
+
+h2 {
+ margin-top: 25px;
+ margin-bottom: 14px;
+ padding-bottom: 6px;
+ border-bottom: 2px solid #AAA;
+}
+
+h3 {
+ margin: 5px 0 5px 10px;
+ color: #444;
+ font-size: 1.0em;
+}
+
+a {
+ color: #3252B2;
+}
+
+ul {
+ margin: 0;
+}
+
+li {
+ color: #333;
+}
+
+hr {
+ display: none;
+}
+
+/*
+ * 2. Header title
+ */
+
+body > header {
+ background: #F3F3F3 url("/images/logo-small.png") no-repeat right;
+ border-bottom: 1px solid #AAA;
+
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ color: #333;
+
+ height: 50px;
+ padding-right: 85px; /* space for logo */
+}
+
+body > header h1 {
+ font-family: 'Roboto', serif;
+ font-size: 1.2em;
+ margin: 20px 20px;
+}
+
+body > header a {
+ color: inherit;
+ text-decoration: none;
+}
+
+body > header nav ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+body > header nav li {
+ display: inline-block;
+}
+
+body > header nav a {
+ display: block;
+ padding: 3px 5px;
+ font-size: 0.9em;
+ border-bottom: 2px solid #f3f3f4;
+}
+
+body > header nav a:hover {
+ border-bottom: 2px solid #D70751;
+}
+
+/*
+ * 4. Main content
+ */
+
+main {
+ margin: 40px 40px 0;
+ font-size: 0.9em;
+}
+
+.showcase {
+ margin: 25px 0;
+ padding: 40px 20px;
+ background: #EFF4F8 url("/images/l.png") no-repeat left;
+ background-origin: content-box;
+ border: 1px solid #DFE4E8;
+}
+
+.showcase p {
+ margin-left: 160px;
+ font-size: 1.1em;
+}
+
+/* For smaller devices, we leave out the "icon" - it is fairly wide with
+ * little added value.
+ */
+@media (max-width: 700px) {
+
+ .showcase {
+ margin: 25px 0;
+ padding: 20px;
+ background: #EFF4F8;
+ border: 1px solid #DFE4E8;
+ }
+
+ .showcase p {
+ margin-left: 5%;
+ }
+}
+
+li span {
+ margin: 0 0px 0 0;
+ padding: 1px 0px;
+}
+
+/* E/W/I colors */
+
+span.label {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+}
+
+article#hints {
+ margin-top: 20px;
+ padding-top: 10px;
+ border-top: 2px solid #AAA;
+ clear: both;
+}
+
+.hint.tiny {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 0.9em;
+}
+
+.context.tiny {
+ font-family: 'Roboto', sans-serif;
+ font-style: italic;
+ font-size: 0.9em;
+}
+
+.comment.tiny {
+ font-family: 'Roboto', sans-serif;
+ font-size: 0.9em;
+}
+
+ul.minor {
+ list-style-type: none;
+}
+
+ul.see-also {
+ padding-bottom: 1em;
+}
+
+ul.taglist {
+ list-style-type: none;
+}
+
+ul.screenlist {
+ list-style-type: none;
+}
+
+ul.sourcelist {
+ list-style-type: none;
+}
+
+ul.filelist {
+ list-style-type: disc;
+ margin-left: 2em;
+}
+
+ul.hintlist {
+ list-style: none;
+ padding-left: 10px;
+}
+
+ul.commentlist {
+ list-style: none;
+ padding-left: 0px;
+}
+
+li.fileitem {
+ margin: 10px 0 5px 0;
+}
+
+span.visibility-symbol {
+ font-family: monospace;
+ font-size: 1.1em;
+}
+
+a.visibility-symbol {
+ text-decoration: none;
+}
+
+a.visibility-symbol:hover {
+ filter: invert(100%);
+}
+
+a.visibility-symbol.big {
+ padding: 1px 5px;
+ margin-right: 5px;
+ font-weight: normal;
+}
+
+a.visibility-symbol.tiny {
+ font-weight: bold;
+ padding: 1px 3px;
+}
+
+a.visibility-symbol::before {
+ border: 1px solid;
+ display: inline-block;
+ width: 1em;
+ font-family: monospace;
+ font-size: 1.1em;
+ text-align: center;
+}
+
+a.visibility-symbol.error::before {
+ content: 'E';
+ color: #fff;
+ border-color: #fff;
+ background-color: #fc0905;
+}
+
+a.visibility-symbol.warning::before {
+ content: 'W';
+ color: #111;
+ border-color: #888;
+ background-color: #fceb02;
+}
+
+a.visibility-symbol.info::before {
+ content: 'I';
+ color: #fff;
+ border-color: #fff;
+ background-color: #465efc;
+}
+
+a.visibility-symbol.pedantic::before {
+ content: 'P';
+ color: #fff;
+ border-color: #fff;
+ background-color: #00c627;
+}
+
+a.visibility-symbol.experimental::before {
+ content: 'X';
+ color: #fff;
+ border-color: #fff;
+ background-color: #9e8040;
+}
+
+a.visibility-symbol.mask::before {
+ content: 'M';
+ color: #111;
+ border-color: #444;
+ background-color: #ddd;
+}
+
+a.visibility-symbol.override::before {
+ content: 'O';
+ color: #fff;
+ border-color: #fff;
+ background-color: #444;
+}
+
+a.visibility-symbol.classification::before {
+ content: 'C';
+ color: #fff;
+ border-color: #fff;
+ background-color: #bc55fc;
+}
+
+section.explanation {
+ padding: 8px 28px;
+ background-color: #EEE;
+ border: 1px solid #BBB;
+ float: left;
+ clear:left;
+}
+
+.explanation.error {
+ background-color: #fccac9;
+ border: 1px solid #fc0905;
+}
+
+.explanation.warning {
+ background-color: #fcf9c9;
+ border: 1px solid #fceb02;
+}
+
+.explanation.info {
+ background-color: #dee2fc;
+ border: 1px solid #465efc;
+}
+
+.explanation.pedantic {
+ background-color: #d4fcdc;
+ border: 1px solid #00c627;
+}
+
+.explanation.experimental {
+ background-color: #fcf2de;
+ border: 1px solid #9e8040;
+}
+
+.explanation.classification {
+ background-color: #f4e8fc;
+ border: 1px solid #bc55fc;
+}
+
+section.auxiliary {
+ margin: 20px 0;
+ float: left;
+}
+
+div.terminal {
+ margin-bottom: 1em;
+}
+
+p.terminal {
+ font-family: monospace;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+article.version {
+ display: flex;
+ gap: 1em;
+ align-items: flex-start;
+}
+
+article.version nav.version-selector {
+ flex: 0 auto;
+ order: 2;
+}
+
+nav.version-selector {
+ background-color: #F3F3F3;
+ border: 1px solid #AAA;
+ padding: 0.8em;
+ margin: 0 0 20px 20px;
+ display: inline-block;
+ float: right;
+}
+
+.version-selector h3 {
+ font-weight: bold;
+ text-align: center;
+ white-space: nowrap;
+ margin: 0;
+ margin-bottom: 0.5em;
+}
+
+.version-selector ul {
+ list-style: none;
+ padding: 0;
+}
+
+.version-selector li {
+ white-space: nowrap;
+}
+
+.version-selector span.highlight {
+ color: #D70751;
+}
+
+span.maintenance_links {
+ font-size: 0.6em;
+ margin-left: 1.2em;
+}
+
+.liberty.main {
+}
+
+.liberty.contrib {
+ color: red;
+}
+
+.liberty.non-free {
+ color: red;
+}
+
+span.release-list {
+ font-style: italic;
+}
+
+span.quote {
+ font-style: italic;
+}
+
+span.run-details {
+ font-style: italic;
+}
+
+a.sample {
+ font-style: italic;
+}
+
+/*
+ * 5. Footer
+ */
+
+footer {
+ display: block; /* HTML5 compat */
+ margin: 20px 20px;
+ padding: 10px 0 0 0;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-size: 0.85em;
+ border-top: 1px solid #AAA;
+}
+
+footer p {
+ margin: 0;
+ padding: 0;
+}
+
+
+ </style>
+</head>
+
+<body>
+
+<main>
+
+<article>
+
+<h1>Lintian Hints</h1>
+
+
+
+<h2>
+ html-output 1.0+dsfg-1.1
+</h2>
+
+
+<ul class="filelist">
+
+ <li class="fileitem">html-output_1.0+dsfg-1.1.dsc</li>
+
+ <ul class="hintlist">
+
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny warning" href="https://lintian.debian.org/levels#warning"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/changelog-file-missing-explicit-entry">changelog-file-missing-explicit-entry</a></span>
+ <span class="context tiny">0.0.1-1 -&gt; 1.0+dsfg-1 (missing) -&gt; 1.0+dsfg-1.1 [debian/changelog:1]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny warning" href="https://lintian.debian.org/levels#warning"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/format-3.0-but-debian-changes-patch">format-3.0-but-debian-changes-patch</a></span>
+ <span class="context tiny">[debian/patches/debian-changes-1.0+dsfg-1.1]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny warning" href="https://lintian.debian.org/levels#warning"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/maintainer-upload-has-incorrect-version-number">maintainer-upload-has-incorrect-version-number</a></span>
+ <span class="context tiny">1.0+dsfg-1.1 [debian/changelog:1]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/installable-field-mirrors-source">installable-field-mirrors-source</a></span>
+ <span class="context tiny">(in section for html-output) Section [debian/control:13]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/older-debian-watch-file-standard">older-debian-watch-file-standard</a></span>
+ <span class="context tiny">3 [debian/watch]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/patch-not-forwarded-upstream">patch-not-forwarded-upstream</a></span>
+ <span class="context tiny">[debian/patches/debian-changes-1.0+dsfg-1.1]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/quilt-patch-using-template-description">quilt-patch-using-template-description</a></span>
+ <span class="context tiny">[debian/patches/debian-changes-1.0+dsfg-1.1]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/upstream-metadata-missing-bug-tracking">upstream-metadata-missing-bug-tracking</a></span>
+ <span class="context tiny">[debian/upstream/metadata]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/upstream-metadata-missing-repository">upstream-metadata-missing-repository</a></span>
+ <span class="context tiny">[debian/upstream/metadata]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny pedantic" href="https://lintian.debian.org/levels#pedantic"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/debian-control-has-unusual-field-spacing">debian-control-has-unusual-field-spacing</a></span>
+ <span class="context tiny">Essential [debian/control:12]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny pedantic" href="https://lintian.debian.org/levels#pedantic"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/no-homepage-field">no-homepage-field</a></span>
+ <span class="context tiny"></span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny experimental" href="https://lintian.debian.org/levels#experimental"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/debian-watch-does-not-check-openpgp-signature">debian-watch-does-not-check-openpgp-signature</a></span>
+ <span class="context tiny">[debian/watch]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny override" href="https://lintian.debian.org/levels#override"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/dfsg-version-misspelled">dfsg-version-misspelled</a></span>
+ <span class="context tiny">1.0+dsfg-1.1</span>
+
+ </li>
+
+ </ul>
+
+ <li class="fileitem">html-output_1.0+dsfg-1.1_all.deb</li>
+
+ <ul class="hintlist">
+
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny error" href="https://lintian.debian.org/levels#error"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/dir-in-usr-local">dir-in-usr-local</a></span>
+ <span class="context tiny">[usr/local/share/]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny error" href="https://lintian.debian.org/levels#error"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/dir-in-usr-local">dir-in-usr-local</a></span>
+ <span class="context tiny">[usr/local/share/lintian/]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny error" href="https://lintian.debian.org/levels#error"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/dir-or-file-in-var-lock">dir-or-file-in-var-lock</a></span>
+ <span class="context tiny">[var/lock/lintian/]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny error" href="https://lintian.debian.org/levels#error"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/new-essential-package">new-essential-package</a></span>
+ <span class="context tiny"></span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny warning" href="https://lintian.debian.org/levels#warning"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/no-manual-page">no-manual-page</a></span>
+ <span class="context tiny">[usr/bin/script]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/description-possibly-contains-homepage">description-possibly-contains-homepage</a></span>
+ <span class="context tiny">http://www.example.com/.</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/desktop-entry-limited-to-environments">desktop-entry-limited-to-environments</a></span>
+ <span class="context tiny">[usr/share/applications/script.desktop]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/package-contains-empty-directory">package-contains-empty-directory</a></span>
+ <span class="context tiny">[usr/local/share/lintian/]</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny info" href="https://lintian.debian.org/levels#info"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/synopsis-is-a-sentence">synopsis-is-a-sentence</a></span>
+ <span class="context tiny">&quot;Test Lintian&#39;s HTML output format.&quot;</span>
+
+ </li>
+ <li class="hintitem">
+
+ <ul class="commentlist">
+ </ul>
+
+ <a class="visibility-symbol tiny pedantic" href="https://lintian.debian.org/levels#pedantic"></a>
+ <span class="hint tiny"><a href="https://lintian.debian.org/tags/example-unusual-interpreter">example-unusual-interpreter</a></span>
+ <span class="context tiny">/usr/bin/foo [usr/share/doc/html-output/examples/example]</span>
+
+ </li>
+
+ </ul>
+
+ <li class="fileitem">html-output_1.0+dsfg-1.1.buildinfo</li>
+
+ <ul class="hintlist">
+
+ <p>No hints.</p>
+
+ </ul>
+
+ <li class="fileitem">html-output_1.0+dsfg-1.1.changes</li>
+
+ <ul class="hintlist">
+
+ <p>No hints.</p>
+
+ </ul>
+
+
+</ul>
+
+
+</article>
+
+</main>
+
+<hr/>
+
+<footer>
+ <p>
+ Comments about this web page? Please report a bug against the
+ <a href="https://salsa.debian.org/lintian/lintian">lintian</a>
+ package and mention the <em>standalone HTML</em> output format.
+ </p>
+</footer>
+
+</body>
+</html>
diff --git a/t/recipes/lintian-features/html-output/eval/post-test b/t/recipes/lintian-features/html-output/eval/post-test
new file mode 100644
index 0000000..ce45675
--- /dev/null
+++ b/t/recipes/lintian-features/html-output/eval/post-test
@@ -0,0 +1,3 @@
+/Produced by Lintian version/ d
+/The run started/ d
+s/_[[:alnum:]]+\.(changes|buildinfo)/\.\1/
diff --git a/t/recipes/lintian-features/json-output/build-spec/debian/control.in b/t/recipes/lintian-features/json-output/build-spec/debian/control.in
new file mode 100644
index 0000000..48330e1
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/debian/control.in
@@ -0,0 +1,20 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, libssl0.9.8 (>= 0abcd)
+Essential:yes
+Section: [% $section %]
+Description: [% $description %].
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ The homepage is http://www.example.com/.
diff --git a/t/recipes/lintian-features/json-output/build-spec/debian/dirs b/t/recipes/lintian-features/json-output/build-spec/debian/dirs
new file mode 100644
index 0000000..055295f
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/debian/dirs
@@ -0,0 +1,2 @@
+usr/local/share/lintian
+var/lock/lintian
diff --git a/t/recipes/lintian-features/json-output/build-spec/debian/examples b/t/recipes/lintian-features/json-output/build-spec/debian/examples
new file mode 100644
index 0000000..33a9488
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/debian/examples
@@ -0,0 +1 @@
+example
diff --git a/t/recipes/lintian-features/json-output/build-spec/debian/install b/t/recipes/lintian-features/json-output/build-spec/debian/install
new file mode 100644
index 0000000..d6f0c2d
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/debian/install
@@ -0,0 +1,2 @@
+script usr/bin
+script.desktop usr/share/applications
diff --git a/t/recipes/lintian-features/json-output/build-spec/debian/rules b/t/recipes/lintian-features/json-output/build-spec/debian/rules
new file mode 100755
index 0000000..67e7058
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_usrlocal:
diff --git a/t/recipes/lintian-features/json-output/build-spec/debian/source.lintian-overrides b/t/recipes/lintian-features/json-output/build-spec/debian/source.lintian-overrides
new file mode 100644
index 0000000..8c1ea35
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/debian/source.lintian-overrides
@@ -0,0 +1 @@
+json-output source: dfsg-version-misspelled 1.0*
diff --git a/t/recipes/lintian-features/json-output/build-spec/diff/Changes b/t/recipes/lintian-features/json-output/build-spec/diff/Changes
new file mode 100644
index 0000000..2a267cd
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/diff/Changes
@@ -0,0 +1 @@
+This is unlike any other dummy changelog.
diff --git a/t/recipes/lintian-features/json-output/build-spec/fill-values b/t/recipes/lintian-features/json-output/build-spec/fill-values
new file mode 100644
index 0000000..34485c5
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/fill-values
@@ -0,0 +1,5 @@
+Testname: json-output
+Skeleton: upload-non-native
+Version: 1.0+dsfg-1.1
+Package-Architecture: all
+Description: Test Lintian's JSON output format
diff --git a/t/recipes/lintian-features/json-output/build-spec/orig/example b/t/recipes/lintian-features/json-output/build-spec/orig/example
new file mode 100755
index 0000000..1cde649
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/orig/example
@@ -0,0 +1,2 @@
+#!/usr/bin/foo
+echo This is some example.
diff --git a/t/recipes/lintian-features/json-output/build-spec/orig/script b/t/recipes/lintian-features/json-output/build-spec/orig/script
new file mode 100755
index 0000000..a10a951
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/orig/script
@@ -0,0 +1,3 @@
+#!/bin/sh
+. /usr/share/debconf/confmodule
+echo 'Hello world'
diff --git a/t/recipes/lintian-features/json-output/build-spec/orig/script.desktop b/t/recipes/lintian-features/json-output/build-spec/orig/script.desktop
new file mode 100644
index 0000000..e1ec555
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/build-spec/orig/script.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=script
+Type=Application
+Comment=Incorrectly limited to particular environments
+Categories=Development;
+Exec=script
+OnlyShowIn=GNOME;KDE;
+Icon=foo
+Keywords=Lintian
diff --git a/t/recipes/lintian-features/json-output/eval/desc b/t/recipes/lintian-features/json-output/eval/desc
new file mode 100644
index 0000000..490d603
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/eval/desc
@@ -0,0 +1,5 @@
+Testname: json-output
+Options: --show-overrides
+Output-Format: json
+Match-Strategy: literal
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/json-output/eval/literal b/t/recipes/lintian-features/json-output/eval/literal
new file mode 100644
index 0000000..2feaddb
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/eval/literal
@@ -0,0 +1,297 @@
+{
+ "groups" : [
+ {
+ "group_id" : "json-output_1.0+dsfg-1.1",
+ "input_files" : [
+ {
+ "hints" : [
+ {
+ "experimental" : false,
+ "note" : "0.0.1-1 -> 1.0+dsfg-1 (missing) -> 1.0+dsfg-1.1",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/changelog"
+ },
+ "line_position" : 1
+ },
+ "tag" : "changelog-file-missing-explicit-entry",
+ "visibility" : "warning"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/patches/debian-changes-1.0+dsfg-1.1"
+ },
+ "line_position" : 0
+ },
+ "tag" : "format-3.0-but-debian-changes-patch",
+ "visibility" : "warning"
+ },
+ {
+ "experimental" : false,
+ "note" : "1.0+dsfg-1.1",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/changelog"
+ },
+ "line_position" : 1
+ },
+ "tag" : "maintainer-upload-has-incorrect-version-number",
+ "visibility" : "warning"
+ },
+ {
+ "experimental" : false,
+ "note" : "(in section for json-output) Section",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/control"
+ },
+ "line_position" : 13
+ },
+ "tag" : "installable-field-mirrors-source",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "3",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/watch"
+ },
+ "line_position" : 0
+ },
+ "tag" : "older-debian-watch-file-standard",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/patches/debian-changes-1.0+dsfg-1.1"
+ },
+ "line_position" : 0
+ },
+ "tag" : "patch-not-forwarded-upstream",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/patches/debian-changes-1.0+dsfg-1.1"
+ },
+ "line_position" : 0
+ },
+ "tag" : "quilt-patch-using-template-description",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/upstream/metadata"
+ },
+ "line_position" : 0
+ },
+ "tag" : "upstream-metadata-missing-bug-tracking",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/upstream/metadata"
+ },
+ "line_position" : 0
+ },
+ "tag" : "upstream-metadata-missing-repository",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "Essential",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/control"
+ },
+ "line_position" : 12
+ },
+ "tag" : "debian-control-has-unusual-field-spacing",
+ "visibility" : "pedantic"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "tag" : "no-homepage-field",
+ "visibility" : "pedantic"
+ },
+ {
+ "experimental" : true,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1.dsc (patched)",
+ "name" : "debian/watch"
+ },
+ "line_position" : 0
+ },
+ "tag" : "debian-watch-does-not-check-openpgp-signature",
+ "visibility" : "pedantic"
+ },
+ {
+ "experimental" : false,
+ "note" : "1.0+dsfg-1.1",
+ "override" : {
+ "justification" : ""
+ },
+ "tag" : "dfsg-version-misspelled",
+ "visibility" : "warning"
+ }
+ ],
+ "path" : "PATH"
+ },
+ {
+ "hints" : [
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "usr/local/share/"
+ },
+ "line_position" : 0
+ },
+ "tag" : "dir-in-usr-local",
+ "visibility" : "error"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "usr/local/share/lintian/"
+ },
+ "line_position" : 0
+ },
+ "tag" : "dir-in-usr-local",
+ "visibility" : "error"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "var/lock/lintian/"
+ },
+ "line_position" : 0
+ },
+ "tag" : "dir-or-file-in-var-lock",
+ "visibility" : "error"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "tag" : "new-essential-package",
+ "visibility" : "error"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "usr/bin/script"
+ },
+ "line_position" : 0
+ },
+ "tag" : "no-manual-page",
+ "visibility" : "warning"
+ },
+ {
+ "experimental" : false,
+ "note" : "http://www.example.com/.",
+ "tag" : "description-possibly-contains-homepage",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "usr/share/applications/script.desktop"
+ },
+ "line_position" : 0
+ },
+ "tag" : "desktop-entry-limited-to-environments",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "usr/local/share/lintian/"
+ },
+ "line_position" : 0
+ },
+ "tag" : "package-contains-empty-directory",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "\"Test Lintian's JSON output format.\"",
+ "tag" : "synopsis-is-a-sentence",
+ "visibility" : "info"
+ },
+ {
+ "experimental" : false,
+ "note" : "/usr/bin/foo",
+ "pointer" : {
+ "item" : {
+ "index" : "json-output_1.0+dsfg-1.1_all.deb (installed)",
+ "name" : "usr/share/doc/json-output/examples/example"
+ },
+ "line_position" : 0
+ },
+ "tag" : "example-unusual-interpreter",
+ "visibility" : "pedantic"
+ }
+ ],
+ "path" : "PATH"
+ },
+ {
+ "hints" : [],
+ "path" : "PATH"
+ },
+ {
+ "hints" : [],
+ "path" : "PATH"
+ }
+ ],
+ "source_name" : "json-output",
+ "source_version" : "1.0+dsfg-1.1"
+ }
+ ],
+ "lintian_version" : "VERSION"
+}
diff --git a/t/recipes/lintian-features/json-output/eval/post-test b/t/recipes/lintian-features/json-output/eval/post-test
new file mode 100644
index 0000000..beff2c3
--- /dev/null
+++ b/t/recipes/lintian-features/json-output/eval/post-test
@@ -0,0 +1,2 @@
+s/("lintian_version" : )"[^"]*"/\1"VERSION"/
+s/("path" : )"[^"]*"/\1"PATH"/
diff --git a/t/recipes/lintian-features/lintian-check-tags-file/build-spec/debian/control.in b/t/recipes/lintian-features/lintian-check-tags-file/build-spec/debian/control.in
new file mode 100644
index 0000000..ef93898
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-check-tags-file/build-spec/debian/control.in
@@ -0,0 +1,12 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Section: unknown
+Architecture: [% $package_architecture %]
+Description: [% $description %]
diff --git a/t/recipes/lintian-features/lintian-check-tags-file/build-spec/fill-values b/t/recipes/lintian-features/lintian-check-tags-file/build-spec/fill-values
new file mode 100644
index 0000000..80f1b5a
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-check-tags-file/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: lintian-check-tags-file
+Description: Test checking a specific list of tags from a file
diff --git a/t/recipes/lintian-features/lintian-check-tags-file/eval/desc b/t/recipes/lintian-features/lintian-check-tags-file/eval/desc
new file mode 100644
index 0000000..d38aad2
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-check-tags-file/eval/desc
@@ -0,0 +1,5 @@
+Testname: lintian-check-tags-file
+Default-Lintian-Options: --display-info --display-experimental
+Options: --tags-from-file ./tag-list
+Match-Strategy: literal
+Output-Format: EWI
diff --git a/t/recipes/lintian-features/lintian-check-tags-file/eval/literal b/t/recipes/lintian-features/lintian-check-tags-file/eval/literal
new file mode 100644
index 0000000..35c6abe
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-check-tags-file/eval/literal
@@ -0,0 +1,2 @@
+E: lintian-check-tags-file: section-is-dh_make-template
+W: lintian-check-tags-file source: debhelper-but-no-misc-depends lintian-check-tags-file
diff --git a/t/recipes/lintian-features/lintian-check-tags-file/eval/tag-list b/t/recipes/lintian-features/lintian-check-tags-file/eval/tag-list
new file mode 100644
index 0000000..2b96cbf
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-check-tags-file/eval/tag-list
@@ -0,0 +1,7 @@
+# This is a comment.
+
+# Check a couple of tags that we issue
+section-is-dh_make-template, debhelper-but-no-misc-depends
+
+# Check some other tag that we don't issue
+ malformed-override
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/debian/control.in b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/control.in
new file mode 100644
index 0000000..6faa27e
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, libssl0.9.8 (>= 0abcd)
+Essential:yes
+Section: [% $section %]
+Description: [% $description %].
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+ .
+ The homepage is http://www.example.com/.
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/debian/dirs b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/dirs
new file mode 100644
index 0000000..055295f
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/dirs
@@ -0,0 +1,2 @@
+usr/local/share/lintian
+var/lock/lintian
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/debian/examples b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/examples
new file mode 100644
index 0000000..33a9488
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/examples
@@ -0,0 +1 @@
+example
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/debian/install b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/install
new file mode 100644
index 0000000..d6f0c2d
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/install
@@ -0,0 +1,2 @@
+script usr/bin
+script.desktop usr/share/applications
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/debian/rules b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/rules
new file mode 100755
index 0000000..67e7058
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_usrlocal:
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/diff/Changes b/t/recipes/lintian-features/lintian-display-level/build-spec/diff/Changes
new file mode 100644
index 0000000..2a267cd
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/diff/Changes
@@ -0,0 +1 @@
+This is unlike any other dummy changelog.
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/fill-values b/t/recipes/lintian-features/lintian-display-level/build-spec/fill-values
new file mode 100644
index 0000000..1790abe
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: lintian-display-level
+Skeleton: upload-non-native
+Version: 1.0+dsfg-1.1
+Description: Test Lintian --display-level handling
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/orig/example b/t/recipes/lintian-features/lintian-display-level/build-spec/orig/example
new file mode 100755
index 0000000..1cde649
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/orig/example
@@ -0,0 +1,2 @@
+#!/usr/bin/foo
+echo This is some example.
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/orig/script b/t/recipes/lintian-features/lintian-display-level/build-spec/orig/script
new file mode 100755
index 0000000..a10a951
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/orig/script
@@ -0,0 +1,3 @@
+#!/bin/sh
+. /usr/share/debconf/confmodule
+echo 'Hello world'
diff --git a/t/recipes/lintian-features/lintian-display-level/build-spec/orig/script.desktop b/t/recipes/lintian-features/lintian-display-level/build-spec/orig/script.desktop
new file mode 100644
index 0000000..859bb18
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/build-spec/orig/script.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=script
+Type=Application
+Comment=Incorrectly limited to particular environments
+Categories=Development;
+Exec=script
+OnlyShowIn=GNOME;KDE;
diff --git a/t/recipes/lintian-features/lintian-display-level/eval/desc b/t/recipes/lintian-features/lintian-display-level/eval/desc
new file mode 100644
index 0000000..989171c
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/eval/desc
@@ -0,0 +1,5 @@
+Testname: lintian-display-level
+Match-Strategy: literal
+Output-Format: EWI
+Lintian-Command-Line: --no-user-dirs [% $options %] --profile [% $profile %] --allow-root --no-cfg --exp-output format=[% $output_format %] --pedantic -I -E --display-level '-info' --display-level '-error'
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/lintian-display-level/eval/literal b/t/recipes/lintian-features/lintian-display-level/eval/literal
new file mode 100644
index 0000000..59cbe56
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-display-level/eval/literal
@@ -0,0 +1,9 @@
+W: lintian-display-level source: changelog-file-missing-explicit-entry 0.0.1-1 -> 1.0+dsfg-1 (missing) -> 1.0+dsfg-1.1 [debian/changelog:1]
+W: lintian-display-level source: dfsg-version-misspelled 1.0+dsfg-1.1
+W: lintian-display-level source: format-3.0-but-debian-changes-patch [debian/patches/debian-changes-1.0+dsfg-1.1]
+W: lintian-display-level source: maintainer-upload-has-incorrect-version-number 1.0+dsfg-1.1 [debian/changelog:1]
+W: lintian-display-level: no-manual-page [usr/bin/script]
+P: lintian-display-level source: debian-control-has-unusual-field-spacing Essential [debian/control:12]
+P: lintian-display-level: example-unusual-interpreter /usr/bin/foo [usr/share/doc/lintian-display-level/examples/example]
+P: lintian-display-level source: no-homepage-field
+X: lintian-display-level source: debian-watch-does-not-check-openpgp-signature [debian/watch]
diff --git a/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/control.in b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/control.in
new file mode 100644
index 0000000..6faa27e
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, libssl0.9.8 (>= 0abcd)
+Essential:yes
+Section: [% $section %]
+Description: [% $description %].
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+ .
+ The homepage is http://www.example.com/.
diff --git a/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/dirs b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/dirs
new file mode 100644
index 0000000..db81444
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/dirs
@@ -0,0 +1,3 @@
+usr/local/share/lintian
+var/lock/lintian
+opt/lintian
diff --git a/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/rules b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/rules
new file mode 100755
index 0000000..67e7058
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_usrlocal:
diff --git a/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/fill-values b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/fill-values
new file mode 100644
index 0000000..2088697
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-ftp-rejects/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: lintian-ftp-rejects
+Description: Test Lintian --ftp-master-rejects handling
diff --git a/t/recipes/lintian-features/lintian-ftp-rejects/eval/desc b/t/recipes/lintian-features/lintian-ftp-rejects/eval/desc
new file mode 100644
index 0000000..515d9e7
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-ftp-rejects/eval/desc
@@ -0,0 +1,4 @@
+Testname: lintian-ftp-rejects
+Match-Strategy: literal
+Output-Format: EWI
+Default-Lintian-Options: --ftp-master-rejects --display-info --display-experimental
diff --git a/t/recipes/lintian-features/lintian-ftp-rejects/eval/literal b/t/recipes/lintian-features/lintian-ftp-rejects/eval/literal
new file mode 100644
index 0000000..68739ce
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-ftp-rejects/eval/literal
@@ -0,0 +1,3 @@
+E: lintian-ftp-rejects: dir-or-file-in-opt [opt/lintian/]
+E: lintian-ftp-rejects: dir-or-file-in-var-lock [var/lock/lintian/]
+W: lintian-ftp-rejects: empty-binary-package
diff --git a/t/recipes/lintian-features/lintian-no-override/build-spec/debian/dirs b/t/recipes/lintian-features/lintian-no-override/build-spec/debian/dirs
new file mode 100644
index 0000000..eb4bf70
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-no-override/build-spec/debian/dirs
@@ -0,0 +1 @@
+usr/bad/dir
diff --git a/t/recipes/lintian-features/lintian-no-override/build-spec/debian/lintian-no-override.lintian-overrides b/t/recipes/lintian-features/lintian-no-override/build-spec/debian/lintian-no-override.lintian-overrides
new file mode 100644
index 0000000..2ca3546
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-no-override/build-spec/debian/lintian-no-override.lintian-overrides
@@ -0,0 +1 @@
+non-standard-dir-in-usr usr/bad/
diff --git a/t/recipes/lintian-features/lintian-no-override/build-spec/fill-values b/t/recipes/lintian-features/lintian-no-override/build-spec/fill-values
new file mode 100644
index 0000000..876c775
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-no-override/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: lintian-no-override
+Description: Test no-override option
diff --git a/t/recipes/lintian-features/lintian-no-override/eval/desc b/t/recipes/lintian-features/lintian-no-override/eval/desc
new file mode 100644
index 0000000..48fe155
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-no-override/eval/desc
@@ -0,0 +1,5 @@
+Testname: lintian-no-override
+Options: --no-override
+Match-Strategy: literal
+Output-Format: EWI
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/lintian-no-override/eval/literal b/t/recipes/lintian-features/lintian-no-override/eval/literal
new file mode 100644
index 0000000..3de7380
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-no-override/eval/literal
@@ -0,0 +1,3 @@
+W: lintian-no-override: empty-binary-package
+W: lintian-no-override: non-standard-dir-in-usr [usr/bad/]
+I: lintian-no-override: package-contains-empty-directory [usr/bad/dir/]
diff --git a/t/recipes/lintian-features/lintian-suppress-tags/build-spec/debian/control.in b/t/recipes/lintian-features/lintian-suppress-tags/build-spec/debian/control.in
new file mode 100644
index 0000000..5814925
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-suppress-tags/build-spec/debian/control.in
@@ -0,0 +1,12 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Section: unknown
+Architecture: [% $package_architecture %]
+Description: [% $description %] (dummy)
diff --git a/t/recipes/lintian-features/lintian-suppress-tags/build-spec/fill-values b/t/recipes/lintian-features/lintian-suppress-tags/build-spec/fill-values
new file mode 100644
index 0000000..e46ab84
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-suppress-tags/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: lintian-suppress-tags
+Description: Test tag suppression
diff --git a/t/recipes/lintian-features/lintian-suppress-tags/eval/desc b/t/recipes/lintian-features/lintian-suppress-tags/eval/desc
new file mode 100644
index 0000000..2b78d1a
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-suppress-tags/eval/desc
@@ -0,0 +1,6 @@
+Testname: lintian-suppress-tags
+Options: --suppress-tags extended-description-is-empty
+ --suppress-tags-from-file ./suppress
+Match-Strategy: literal
+Output-Format: EWI
+Default-Lintian-Options: --pedantic --display-info --display-experimental
diff --git a/t/recipes/lintian-features/lintian-suppress-tags/eval/literal b/t/recipes/lintian-features/lintian-suppress-tags/eval/literal
new file mode 100644
index 0000000..f3d8b9d
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-suppress-tags/eval/literal
@@ -0,0 +1 @@
+W: lintian-suppress-tags: empty-binary-package
diff --git a/t/recipes/lintian-features/lintian-suppress-tags/eval/suppress b/t/recipes/lintian-features/lintian-suppress-tags/eval/suppress
new file mode 100644
index 0000000..70e4b19
--- /dev/null
+++ b/t/recipes/lintian-features/lintian-suppress-tags/eval/suppress
@@ -0,0 +1,7 @@
+# This is a comment.
+
+# Suppress a tag not present in the test.
+malformed-override
+
+# Suppress two tags on the same line.
+section-is-dh_make-template,debhelper-but-no-misc-depends