summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/languages
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/languages
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/checks/languages')
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/fill-values3
-rwxr-xr-xt/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/orig/fortran/mpi.modbin0 -> 103 bytes
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/desc5
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/hints1
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/fill-values3
-rwxr-xr-xt/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/orig/fortran/mpi.modbin0 -> 106 bytes
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/desc5
-rw-r--r--t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/hints1
-rw-r--r--t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/Makefile16
-rw-r--r--t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/basic.c12
-rw-r--r--t/recipes/checks/languages/golang/built-using/binaries-golang/eval/desc2
-rw-r--r--t/recipes/checks/languages/golang/built-using/binaries-golang/eval/hints1
-rw-r--r--t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/Makefile16
-rw-r--r--t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/basic.c12
-rw-r--r--t/recipes/checks/languages/golang/import-path/binaries-golang/eval/desc2
-rw-r--r--t/recipes/checks/languages/golang/import-path/binaries-golang/eval/hints1
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control-file-golang-built-using.install1
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control.in41
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/Makefile12
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/basic.c12
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/desc2
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/hints1
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control-file-golang-xs-go-import-path.install1
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control.in41
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/Makefile12
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/basic.c12
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/desc4
-rw-r--r--t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/hints1
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install3
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.classbin0 -> 122 bytes
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class1
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints1
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild1
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs2
-rwxr-xr-xt/recipes/checks/languages/java/java-class-format/build-spec/debian/rules19
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java8
-rw-r--r--t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java8
-rw-r--r--t/recipes/checks/languages/java/java-class-format/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/java-class-format/eval/hints2
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in38
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild2
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest2
-rwxr-xr-xt/recipes/checks/languages/java/java-classpath/build-spec/debian/rules8
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java8
-rw-r--r--t/recipes/checks/languages/java/java-classpath/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/java-classpath/eval/hints1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/clean1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in73
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild4
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install2
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install4
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install1
-rwxr-xr-xt/recipes/checks/languages/java/java-jars/build-spec/debian/rules20
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install1
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl36
-rw-r--r--t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java8
-rw-r--r--t/recipes/checks/languages/java/java-jars/eval/desc4
-rw-r--r--t/recipes/checks/languages/java/java-jars/eval/hints11
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.classbin0 -> 413 bytes
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jarbin0 -> 745 bytes
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java7
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/eval/desc2
-rw-r--r--t/recipes/checks/languages/java/prebuilt-java-object/eval/hints1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/debian/install10
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap.js1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/doxygen.css1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.js1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.min.js1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.css1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.js1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/rss_parse.php1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/streams.php0
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/eval/desc3
-rw-r--r--t/recipes/checks/languages/javascript/embedded/files-embedded/eval/hints6
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/changelog.in78
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/control42
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/doc-base11
-rwxr-xr-xt/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/rules231
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/ .tif2
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/".tif1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/Maelstrom Sound1
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/hints11
-rw-r--r--t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/post-test3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/debian/control.in17
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/package.json5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/hints3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/install1
-rwxr-xr-xt/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/rules16
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.json1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/hints2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/install2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/tests/pkg-js/test3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/watch42
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/package.json1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/test/nestedTest/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/hints17
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/additional_components2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/root_modules1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/tests/pkg-js/test2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/watch6
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/hints8
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/install1
-rwxr-xr-xt/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/rules13
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.json1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/hints2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/install1
-rwxr-xr-xt/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/rules13
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.json1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/hints2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/additional_components2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/root_modules1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/tests/pkg-js/test2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/watch6
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/package.json1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/package.json4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/hints7
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/files5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/test3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/lib/a/file.js0
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/package.json5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/test/test.js0
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/hints2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/tests/pkg-js/test3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/package.json5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/hints1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/package.json5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/hints1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/tests/pkg-js/test3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/package.json5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/hints3
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/index.js1
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/package.json5
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/desc2
-rw-r--r--t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/hints3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/hints2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/hints5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/hints2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/hints1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/hints1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/hints1
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/debian/rules12
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile64
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/basic.c12
-rwxr-xr-xt/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/getbuildid30
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/ocaml.c11
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/hints1
-rwxr-xr-xt/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/post-test1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install12
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.install3
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/Makefile17
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/META1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmxs1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/baz.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cma1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cmo1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/boo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmi1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmxa1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol2.cmx1
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/symbol.c5
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/desc2
-rw-r--r--t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/hints1
-rw-r--r--t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/control.in27
-rwxr-xr-xt/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/rules8
-rw-r--r--t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/desc2
-rw-r--r--t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/hints1
-rw-r--r--t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/post-test1
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/clean5
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/dirs15
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/install61
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/manpages0
-rwxr-xr-xt/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/rules18
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar1
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar.pod18
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/eval/desc2
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/eval/hints5
-rw-r--r--t/recipes/checks/languages/perl/files-foo-in-bar/eval/post-test2
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/control.in17
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/orig/Naughty.pm7
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/desc3
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/hints0
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/orig/Naughty.pm7
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/desc2
-rw-r--r--t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/hints1
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/changelog.in78
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/control42
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/doc-base11
-rwxr-xr-xt/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/rules231
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/ .tif2
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/".tif1
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/Maelstrom Sound1
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/eval/desc2
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/eval/hints2
-rw-r--r--t/recipes/checks/languages/perl/legacy-filenames/eval/post-test3
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/control.in17
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/manpages1
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/Makefile7
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/naughty-script22
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/desc4
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/hints0
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/manpages1
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/Makefile7
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/naughty-script22
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/desc2
-rw-r--r--t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/hints1
-rw-r--r--t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/pkg.install1
-rwxr-xr-xt/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/rules5
-rw-r--r--t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/perl/perl5/cruft-perl/eval/desc2
-rw-r--r--t/recipes/checks/languages/perl/perl5/cruft-perl/eval/hints1
-rw-r--r--t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/orig/perl/Dot.pm14
-rw-r--r--t/recipes/checks/languages/perl/yapp/yapp-parser/eval/desc3
-rw-r--r--t/recipes/checks/languages/perl/yapp/yapp-parser/eval/hints1
-rw-r--r--t/recipes/checks/languages/php/composer/depends-composer/build-spec/debian/control.in19
-rw-r--r--t/recipes/checks/languages/php/composer/depends-composer/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/php/composer/depends-composer/eval/desc2
-rw-r--r--t/recipes/checks/languages/php/composer/depends-composer/eval/hints1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/debian/install10
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap.js1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/doxygen.css1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.js1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.min.js1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.css1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.js1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/rss_parse.php1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/streams.php0
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js1
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/eval/desc3
-rw-r--r--t/recipes/checks/languages/php/embedded/files-embedded/eval/hints2
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/debian/clean1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/debian/dirs13
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/debian/examples1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/debian/install18
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/debian/links1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/debian/manpages2
-rwxr-xr-xt/recipes/checks/languages/php/files-general/build-spec/debian/rules67
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/--lzma2
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/dir18
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/file-in-new-top-level-dir2
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/foo.55
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/foo.vcproj1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-16x16.pngbin0 -> 355 bytes
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-22x22.pngbin0 -> 1505 bytes
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-lib.conf1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/lintian.conf1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/mimeinfo.cache2
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/php-foo.ini1
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/sudotest0
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/tnu.15
-rw-r--r--t/recipes/checks/languages/php/files-general/build-spec/orig/types0
-rw-r--r--t/recipes/checks/languages/php/files-general/eval/desc3
-rw-r--r--t/recipes/checks/languages/php/files-general/eval/hints1
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composer/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/composer.json0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/foo.php0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composer/eval/desc4
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composer/eval/hints1
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/debian/control.in20
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/composer.json1
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/foo.php0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composerok/eval/desc4
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-composerok/eval/hints0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-general/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/channel.xml0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/foo.php0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/package.xml1
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-general/eval/desc4
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-general/eval/hints2
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/build-spec/debian/pkg-php-tools-overrides1
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/foo.php0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package.xml60
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package2.xml0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/eval/desc2
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pear/eval/hints10
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/control.in20
-rwxr-xr-xt/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/rules3
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/MyProject_Packages-0.0.1/empty.php0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/foo.php0
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/package.xml60
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/eval/desc8
-rw-r--r--t/recipes/checks/languages/php/pear/phppear-pearok/eval/hints0
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides2
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py7
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py3
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install11
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php0
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in78
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control42
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base11
-rwxr-xr-xt/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules231
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif2
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py16
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test3
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean5
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs15
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install61
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages0
-rwxr-xr-xt/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules18
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar1
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod18
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/eval/hints3
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test2
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in53
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install7
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules19
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile7
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c4
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv199
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg1
-rw-r--r--t/recipes/checks/languages/python/files-python-general/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/files-python-general/eval/hints7
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install9
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules5
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py0
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py0
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py0
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints9
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install13
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules5
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo1
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/eval/hints16
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install4
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad0
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good0
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py0
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/homepage/pypi/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/homepage/pypi/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py1
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat0
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions1
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values4
-rwxr-xr-xt/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build31
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in6
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control52
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright10
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst10
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm7
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm7
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst13
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config24
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst10
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates101
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in0
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst9
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po66
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po60
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po15
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po15
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po15
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot61
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions1
-rwxr-xr-xt/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules64
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test1
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file2
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc5
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints0
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml7
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml17
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in61
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints3
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in19
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file2
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/eval/hints4
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in67
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in10
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints0
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in9
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file2
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in38
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints6
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in16
-rwxr-xr-xt/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules10
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in87
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/eval/hints6
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in84
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml17
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in19
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml17
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install1
-rwxr-xr-xt/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad11
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad21
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good11
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good21
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints2
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/control.in29
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-false-positive.install1
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-positive.install1
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/orig/DESCRIPTION19
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/desc2
-rw-r--r--t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/hints1
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rda1
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rdata1
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rda1
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rdata1
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/eval/desc4
-rw-r--r--t/recipes/checks/languages/r/files-r-data-unrel/eval/hints0
-rw-r--r--t/recipes/checks/languages/r/files-r-data/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/r/files-r-data/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rdabin0 -> 2761 bytes
-rw-r--r--t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rdatabin0 -> 2761 bytes
-rw-r--r--t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rdabin0 -> 2761 bytes
-rw-r--r--t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rdatabin0 -> 2761 bytes
-rw-r--r--t/recipes/checks/languages/r/files-r-data/eval/desc2
-rw-r--r--t/recipes/checks/languages/r/files-r-data/eval/hints4
-rw-r--r--t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/orig/DESCRIPTION21
-rw-r--r--t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/desc4
-rw-r--r--t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/hints2
-rw-r--r--t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/debian/control.in19
-rw-r--r--t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/desc2
-rw-r--r--t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/hints1
-rw-r--r--t/recipes/checks/languages/ruby/gem-homepage/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/ruby/gem-homepage/eval/desc4
-rw-r--r--t/recipes/checks/languages/ruby/gem-homepage/eval/hints1
-rw-r--r--t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/debian/control.in17
-rw-r--r--t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/desc4
-rw-r--r--t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/hints1
-rw-r--r--t/recipes/checks/languages/rust/template-description/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/rust/template-description/eval/desc2
-rw-r--r--t/recipes/checks/languages/rust/template-description/eval/hints1
848 files changed, 6346 insertions, 0 deletions
diff --git a/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/debian/install b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/debian/install
new file mode 100644
index 0000000..73a6d47
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/debian/install
@@ -0,0 +1 @@
+fortran/* usr/lib/fortran/
diff --git a/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/fill-values b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/fill-values
new file mode 100644
index 0000000..ad604ba
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: missing-prerequisite-for-module
+Skeleton: upload-native
+Description: Tests missing a prerequisite for GFORTRAN modules
diff --git a/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/orig/fortran/mpi.mod b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/orig/fortran/mpi.mod
new file mode 100755
index 0000000..2657e91
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/build-spec/orig/fortran/mpi.mod
Binary files differ
diff --git a/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/desc b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/desc
new file mode 100644
index 0000000..84f5dc0
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/desc
@@ -0,0 +1,5 @@
+Testname: missing-prerequisite-for-module
+Check: languages/fortran/gfortran
+See-Also: Debian Bug #796352,
+ Debian Bug #714730,
+ https://salsa.debian.org/science-team/dh-fortran-mod/blob/debian/master/dh_fortran_mod.in
diff --git a/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/hints b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/hints
new file mode 100644
index 0000000..7777150
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/missing-prerequisite-for-module/eval/hints
@@ -0,0 +1 @@
+missing-prerequisite-for-module (binary): missing-prerequisite-for-gfortran-module [usr/lib/fortran/mpi.mod]
diff --git a/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/debian/install b/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/debian/install
new file mode 100644
index 0000000..73a6d47
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/debian/install
@@ -0,0 +1 @@
+fortran/* usr/lib/fortran/
diff --git a/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/fill-values b/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/fill-values
new file mode 100644
index 0000000..ad39210
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: no-module-version
+Skeleton: upload-native
+Description: GFORTRAN module missing a gfortran module version
diff --git a/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/orig/fortran/mpi.mod b/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/orig/fortran/mpi.mod
new file mode 100755
index 0000000..8367a24
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/no-module-version/build-spec/orig/fortran/mpi.mod
Binary files differ
diff --git a/t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/desc b/t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/desc
new file mode 100644
index 0000000..7d7c555
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/desc
@@ -0,0 +1,5 @@
+Testname: no-module-version
+Check: languages/fortran/gfortran
+See-Also: Debian Bug #796352,
+ Debian Bug #714730,
+ https://salsa.debian.org/science-team/dh-fortran-mod/blob/debian/master/dh_fortran_mod.in
diff --git a/t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/hints b/t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/hints
new file mode 100644
index 0000000..537b4bd
--- /dev/null
+++ b/t/recipes/checks/languages/fortran/gfortran/no-module-version/eval/hints
@@ -0,0 +1 @@
+no-module-version (binary): gfortran-module-does-not-declare-version [usr/lib/fortran/mpi.mod]
diff --git a/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/fill-values b/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/fill-values
new file mode 100644
index 0000000..20669e9
--- /dev/null
+++ b/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: binaries-golang
+Extra-Build-Depends: golang-go (>= 2:1.1.1-4)
+Description: Misc errors related to golang binaries
+Package-Architecture: any
diff --git a/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/Makefile b/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/Makefile
new file mode 100644
index 0000000..f04b342
--- /dev/null
+++ b/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/Makefile
@@ -0,0 +1,16 @@
+NOPIE_CFLAGS = $(filter-out -fPIE,$(CFLAGS))
+NOPIE_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS))
+COMPILE:= $(CC) $(NOPIE_CFLAGS) $(CPPFLAGS) $(NOPIE_LDFLAGS)
+
+all:
+ # static version
+ $(COMPILE) -static -o basic.static basic.c
+
+install:
+ install -d $(DESTDIR)/usr/lib/foo/
+ install -m 755 basic.static $(DESTDIR)/usr/lib/foo/static
+
+clean distclean:
+ rm -f basic
+
+check test:
diff --git a/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/basic.c b/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/basic.c
new file mode 100644
index 0000000..7dea5a0
--- /dev/null
+++ b/t/recipes/checks/languages/golang/built-using/binaries-golang/build-spec/orig/basic.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int
+main(void)
+{
+ char t[10];
+ printf("Hello world!\n");
+ /* Bad choice for reading from stdin, but it forces a stack
+ protector, so meh.
+ */
+ gets (t);
+}
diff --git a/t/recipes/checks/languages/golang/built-using/binaries-golang/eval/desc b/t/recipes/checks/languages/golang/built-using/binaries-golang/eval/desc
new file mode 100644
index 0000000..af9fa03
--- /dev/null
+++ b/t/recipes/checks/languages/golang/built-using/binaries-golang/eval/desc
@@ -0,0 +1,2 @@
+Testname: binaries-golang
+Check: languages/golang/built-using
diff --git a/t/recipes/checks/languages/golang/built-using/binaries-golang/eval/hints b/t/recipes/checks/languages/golang/built-using/binaries-golang/eval/hints
new file mode 100644
index 0000000..52f68b9
--- /dev/null
+++ b/t/recipes/checks/languages/golang/built-using/binaries-golang/eval/hints
@@ -0,0 +1 @@
+binaries-golang (source): missing-built-using-field-for-golang-package (in section for binaries-golang) [debian/control:10]
diff --git a/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/fill-values b/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/fill-values
new file mode 100644
index 0000000..20669e9
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: binaries-golang
+Extra-Build-Depends: golang-go (>= 2:1.1.1-4)
+Description: Misc errors related to golang binaries
+Package-Architecture: any
diff --git a/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/Makefile b/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/Makefile
new file mode 100644
index 0000000..f04b342
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/Makefile
@@ -0,0 +1,16 @@
+NOPIE_CFLAGS = $(filter-out -fPIE,$(CFLAGS))
+NOPIE_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS))
+COMPILE:= $(CC) $(NOPIE_CFLAGS) $(CPPFLAGS) $(NOPIE_LDFLAGS)
+
+all:
+ # static version
+ $(COMPILE) -static -o basic.static basic.c
+
+install:
+ install -d $(DESTDIR)/usr/lib/foo/
+ install -m 755 basic.static $(DESTDIR)/usr/lib/foo/static
+
+clean distclean:
+ rm -f basic
+
+check test:
diff --git a/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/basic.c b/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/basic.c
new file mode 100644
index 0000000..7dea5a0
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/binaries-golang/build-spec/orig/basic.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int
+main(void)
+{
+ char t[10];
+ printf("Hello world!\n");
+ /* Bad choice for reading from stdin, but it forces a stack
+ protector, so meh.
+ */
+ gets (t);
+}
diff --git a/t/recipes/checks/languages/golang/import-path/binaries-golang/eval/desc b/t/recipes/checks/languages/golang/import-path/binaries-golang/eval/desc
new file mode 100644
index 0000000..17b4d64
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/binaries-golang/eval/desc
@@ -0,0 +1,2 @@
+Testname: binaries-golang
+Check: languages/golang/import-path
diff --git a/t/recipes/checks/languages/golang/import-path/binaries-golang/eval/hints b/t/recipes/checks/languages/golang/import-path/binaries-golang/eval/hints
new file mode 100644
index 0000000..7886d2b
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/binaries-golang/eval/hints
@@ -0,0 +1 @@
+binaries-golang (source): missing-xs-go-import-path-for-golang-package
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control-file-golang-built-using.install b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control-file-golang-built-using.install
new file mode 100644
index 0000000..c07a6cb
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control-file-golang-built-using.install
@@ -0,0 +1 @@
+static /usr/lib/foo/
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control.in b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control.in
new file mode 100644
index 0000000..d060140
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/debian/control.in
@@ -0,0 +1,41 @@
+Source: [% $source %]
+Section: net
+Priority: optional
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Rules-Requires-Root: [% $rules_requires_root %]
+Build-Depends: [% $build_depends %],
+ golang-go (>= 2:1.1.1-4)
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Built-Using: ${misc:Built-Using}
+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.
+
+Package: [% $source %]-dev
+Architecture: all
+Depends: ${misc:Depends}
+Built-Using: ${misc:Built-Using}
+Description: [% $description %] (dev)
+ 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.
+ .
+ This package contains the source.
+
+Package: [% $source %]-clean-dev
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] (clean dev)
+ 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.
+ .
+ This package contains the source, without a built-using tag.
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/fill-values b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/fill-values
new file mode 100644
index 0000000..2c9dd7d
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: control-file-golang-built-using
+Description: False-positive test for Built-Using field
+Package-Architecture: any
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/Makefile b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/Makefile
new file mode 100644
index 0000000..6047afb
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/Makefile
@@ -0,0 +1,12 @@
+NOPIE_CFLAGS = $(filter-out -fPIE,$(CFLAGS))
+NOPIE_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS))
+COMPILE:= $(CC) $(NOPIE_CFLAGS) $(CPPFLAGS) $(NOPIE_LDFLAGS)
+
+all:
+ # static version
+ $(COMPILE) -static -o static basic.c
+
+clean distclean:
+ rm -f basic
+
+check test:
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/basic.c b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/basic.c
new file mode 100644
index 0000000..7dea5a0
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/build-spec/orig/basic.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int
+main(void)
+{
+ char t[10];
+ printf("Hello world!\n");
+ /* Bad choice for reading from stdin, but it forces a stack
+ protector, so meh.
+ */
+ gets (t);
+}
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/desc b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/desc
new file mode 100644
index 0000000..e0f3c0f
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/desc
@@ -0,0 +1,2 @@
+Testname: control-file-golang-built-using
+Check: languages/golang/import-path
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/hints b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/hints
new file mode 100644
index 0000000..93f0a70
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-built-using/eval/hints
@@ -0,0 +1 @@
+control-file-golang-built-using (source): missing-xs-go-import-path-for-golang-package
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control-file-golang-xs-go-import-path.install b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control-file-golang-xs-go-import-path.install
new file mode 100644
index 0000000..0ba75d6
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control-file-golang-xs-go-import-path.install
@@ -0,0 +1 @@
+static usr/lib/foo/
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control.in b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control.in
new file mode 100644
index 0000000..0fafdb5
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/debian/control.in
@@ -0,0 +1,41 @@
+Source: [% $source %]
+Section: net
+Priority: optional
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Rules-Requires-Root: [% $rules_requires_root %]
+Build-Depends: [% $build_depends %],
+ golang-go (>= 2:1.1.1-4)
+XS-Go-Import-Path: github.com/Debian/lintian-test-package
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Built-Using: ${misc:Built-Using}
+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.
+
+Package: [% $source %]-dev
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] (dev)
+ 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.
+ .
+ This package contains the source.
+
+Package: [% $source %]-clean-dev
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] (clean dev)
+ 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.
+ .
+ This package contains the source, without a built-using tag.
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/fill-values b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/fill-values
new file mode 100644
index 0000000..130e255
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: control-file-golang-xs-go-import-path
+Description: False-positive test for XS-Go-Import field
+Package-Architecture: any
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/Makefile b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/Makefile
new file mode 100644
index 0000000..6047afb
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/Makefile
@@ -0,0 +1,12 @@
+NOPIE_CFLAGS = $(filter-out -fPIE,$(CFLAGS))
+NOPIE_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS))
+COMPILE:= $(CC) $(NOPIE_CFLAGS) $(CPPFLAGS) $(NOPIE_LDFLAGS)
+
+all:
+ # static version
+ $(COMPILE) -static -o static basic.c
+
+clean distclean:
+ rm -f basic
+
+check test:
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/basic.c b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/basic.c
new file mode 100644
index 0000000..7dea5a0
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/build-spec/orig/basic.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int
+main(void)
+{
+ char t[10];
+ printf("Hello world!\n");
+ /* Bad choice for reading from stdin, but it forces a stack
+ protector, so meh.
+ */
+ gets (t);
+}
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/desc b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/desc
new file mode 100644
index 0000000..3281454
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/desc
@@ -0,0 +1,4 @@
+Testname: control-file-golang-xs-go-import-path
+Check: languages/golang/import-path
+Test-Against:
+ missing-xs-go-import-path-for-golang-package
diff --git a/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/hints b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/hints
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/t/recipes/checks/languages/golang/import-path/control-file-golang-xs-go-import-path/eval/hints
@@ -0,0 +1 @@
+
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in
new file mode 100644
index 0000000..ba62050
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: java
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo-java
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+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.
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install
new file mode 100644
index 0000000..c5226d3
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/debian/libfoo-java.install
@@ -0,0 +1,3 @@
+mini.class usr/share/java/foo/
+mini.class usr/share/java/WEB-INF
+not-a-class-file.class usr/share/java/foo
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values
new file mode 100644
index 0000000..b9ec9d6
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-java-classfiles
+Description: Test Java classfile related tags
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.class b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.class
new file mode 100644
index 0000000..0206c61
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/mini.class
Binary files differ
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class
new file mode 100644
index 0000000..cc63a04
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/build-spec/orig/not-a-class-file.class
@@ -0,0 +1 @@
+This is not a Java .class file.
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc
new file mode 100644
index 0000000..6e101fa
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-java-classfiles
+Check: languages/java/bytecode
diff --git a/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints
new file mode 100644
index 0000000..7f3a686
--- /dev/null
+++ b/t/recipes/checks/languages/java/bytecode/files-java-classfiles/eval/hints
@@ -0,0 +1 @@
+libfoo-java (binary): package-installs-java-bytecode [usr/share/java/foo/mini.class]
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in
new file mode 100644
index 0000000..a3f96c7
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], javahelper, default-jdk-headless | default-jdk
+Rules-Requires-Root: no
+
+Package: libtest-java
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. First part.
+ .
+ This package should not be installed.
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild
new file mode 100644
index 0000000..f13db32
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/javabuild
@@ -0,0 +1 @@
+test.jar src
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs
new file mode 100644
index 0000000..867ff3b
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/libtest-java.jlibs
@@ -0,0 +1,2 @@
+testa.jar
+testb.jar
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/debian/rules b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/rules
new file mode 100755
index 0000000..7e46dd0
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/debian/rules
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+%:
+ dh $@ --with javahelper
+
+override_jh_build:
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7'
+ unzip test.jar
+ # Unknown class version
+ perl -i -pe 's/^(\xCA\xFE\xBA\xBE...)./$$1\x2A/' org/debian/lintian/TestA.class
+ # Java19 (unsupported)
+ perl -i -pe 's/^(\xCA\xFE\xBA\xBE...)./$$1\x3F/' org/debian/lintian/TestB.class
+ # Put them in separate Jars because Lintian stops when the first
+ # "unknown class format" is seen
+ zip -r testa.jar META-INF/ org/debian/lintian/TestA.class
+ zip -r testb.jar META-INF/ org/debian/lintian/TestB.class
+
+override_dh_auto_clean:
+ rm -fr META-INF/ org/
+ rm -f *.jar
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/fill-values b/t/recipes/checks/languages/java/java-class-format/build-spec/fill-values
new file mode 100644
index 0000000..856dd16
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: java-class-format
+Skeleton: upload-non-native
+Package-Architecture: all
+Description: Various checks for Java Class format
+Section: java
+Extra-Build-Depends: javahelper, default-jdk
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java
new file mode 100644
index 0000000..fa9bad9
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestA.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestA {
+ // An empty class should do.
+};
diff --git a/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java
new file mode 100644
index 0000000..eca69aa
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/build-spec/orig/src/org/debian/lintian/TestB.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestB {
+ // An empty class should do.
+};
diff --git a/t/recipes/checks/languages/java/java-class-format/eval/desc b/t/recipes/checks/languages/java/java-class-format/eval/desc
new file mode 100644
index 0000000..c69ca55
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/eval/desc
@@ -0,0 +1,2 @@
+Testname: java-class-format
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/java-class-format/eval/hints b/t/recipes/checks/languages/java/java-class-format/eval/hints
new file mode 100644
index 0000000..5969a6b
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-class-format/eval/hints
@@ -0,0 +1,2 @@
+libtest-java (binary): unknown-java-class-version org/debian/lintian/TestA.class -> 42 [usr/share/java/testa-1.0.jar]
+libtest-java (binary): incompatible-java-bytecode-format Java19 version (Class format: 63)
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs
new file mode 100644
index 0000000..5e5f31e
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/binary-using-java.jlibs
@@ -0,0 +1 @@
+cp-missing-2.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in
new file mode 100644
index 0000000..cc8ad52
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/control.in
@@ -0,0 +1,38 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], javahelper (>= 0.32~), default-jdk-headlesss | default-jdk
+Rules-Requires-Root: no
+
+Package: libcp-missing-java
+Architecture: all
+Depends: ${misc:Depends}, libdepends-java
+Description: [% $description %] - missing
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ Test for missing classpaths.
+
+Package: libcp-relative-java
+Architecture: all
+Depends: ${misc:Depends}, libdepends-java
+Description: [% $description %] - relative
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ Test for relative classpaths.
+
+
+Package: binary-using-java
+Architecture: all
+Depends: ${misc:Depends}, libdepends-java
+Description: [% $description %] - binary
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ Test for classpaths in binary.
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild
new file mode 100644
index 0000000..cdcc483
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/javabuild
@@ -0,0 +1,2 @@
+cp-missing.jar src
+cp-relative.jar src
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs
new file mode 100644
index 0000000..702a7ca
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-missing-java.jlibs
@@ -0,0 +1 @@
+cp-missing.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs
new file mode 100644
index 0000000..4f2e007
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.jlibs
@@ -0,0 +1 @@
+cp-relative.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest
new file mode 100644
index 0000000..c060eca
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/libcp-relative-java.manifest
@@ -0,0 +1,2 @@
+usr/share/java/cp-relative.jar:
+ Class-Path: obviously-relative/stuff.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/debian/rules b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/rules
new file mode 100755
index 0000000..df7aa48
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/debian/rules
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with javahelper
+
+override_jh_build:
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7'
+ cp cp-missing.jar cp-missing-2.jar
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/fill-values b/t/recipes/checks/languages/java/java-classpath/build-spec/fill-values
new file mode 100644
index 0000000..91c9f1c
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: java-classpath
+Skeleton: upload-non-native
+Description: Various checks about JAR files
+Author: Vincent Fourmond <fourmond@debian.org>
+Section: java
+Extra-Build-Depends: javahelper, default-jdk
diff --git a/t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java b/t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java
new file mode 100644
index 0000000..dacb2f2
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/build-spec/orig/src/org/debian/lintian/TestA.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestA {
+ // An empty class should do.
+}; \ No newline at end of file
diff --git a/t/recipes/checks/languages/java/java-classpath/eval/desc b/t/recipes/checks/languages/java/java-classpath/eval/desc
new file mode 100644
index 0000000..7cb903d
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/eval/desc
@@ -0,0 +1,2 @@
+Testname: java-classpath
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/java-classpath/eval/hints b/t/recipes/checks/languages/java/java-classpath/eval/hints
new file mode 100644
index 0000000..6903914
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-classpath/eval/hints
@@ -0,0 +1 @@
+libcp-relative-java (binary): classpath-contains-relative-path obviously-relative/stuff.jar [usr/share/java/cp-relative-1.0.jar]
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/clean b/t/recipes/checks/languages/java/java-jars/build-spec/debian/clean
new file mode 100644
index 0000000..d392f0e
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/clean
@@ -0,0 +1 @@
+*.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in b/t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in
new file mode 100644
index 0000000..a54ccaf
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/control.in
@@ -0,0 +1,73 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], javahelper, default-jdk-headless | default-jdk
+Rules-Requires-Root: no
+
+Package: libtesta-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - part A
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. First part.
+ .
+ This package should not be installed.
+
+Package: libcodeless-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - codeless
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ This package tests for codeless jars.
+
+Package: libmanifestless-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - manifestless
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ This package tests for mainifest-less code jars.
+
+Package: libtestc-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - part C
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. Third part.
+ .
+ This package should not be installed.
+
+Package: libtest-maven-plugin-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - part D
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. Fourth part.
+ .
+ This package should not be installed.
+
+Package: unparsable
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - unparsable
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. The unparsable part.
+ .
+ This package should not be installed.
+
+Package: libcontains-source-java
+Architecture: all
+Depends: ${misc:Depends}
+Description: [% $description %] - contains .java source
+ This is a test package designed to test various aspects of the
+ java-related QA code in lintian. This package should not be
+ installed.
+ .
+ This package tests for .java files inside jars.
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild b/t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild
new file mode 100644
index 0000000..323c1da
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/javabuild
@@ -0,0 +1,4 @@
+testa.jar src
+testb.jar src
+testc.jar src
+testd.jar src
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs
new file mode 100644
index 0000000..e31d0ab
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcodeless-java.jlibs
@@ -0,0 +1 @@
+codeless.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs
new file mode 100644
index 0000000..db68d0e
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libcontains-source-java.jlibs
@@ -0,0 +1 @@
+contains-source.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs
new file mode 100644
index 0000000..7ae2544
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libmanifestless-java.jlibs
@@ -0,0 +1 @@
+manifestless.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install
new file mode 100644
index 0000000..b4f610f
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtest-maven-plugin-java.install
@@ -0,0 +1,2 @@
+testa.jar /usr/share/maven-repo/org/apache/maven/plugins/maven-site-plugin/2.1/
+testb.jar /usr/share/java/
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install
new file mode 100644
index 0000000..cf31c45
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.install
@@ -0,0 +1,4 @@
+0.jar usr/share/java/
+0.jar usr/share/private-jars/
+testb.jar usr/lib/
+testc.jar usr/bin
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs
new file mode 100644
index 0000000..b1017a7
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtesta-java.jlibs
@@ -0,0 +1 @@
+testa.jar
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install
new file mode 100644
index 0000000..32c2610
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/libtestc-java.install
@@ -0,0 +1 @@
+testa.jar usr/share/private-jars
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/rules b/t/recipes/checks/languages/java/java-jars/build-spec/debian/rules
new file mode 100755
index 0000000..8ca4444
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/rules
@@ -0,0 +1,20 @@
+#!/usr/bin/make -f
+%:
+ dh $@ --with javahelper
+
+override_jh_build:
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7'
+ cp testa.jar testb.jar
+ cp testa.jar 0.jar
+ unzip testa.jar
+ zip -r codeless.jar META-INF/
+ zip -r manifestless.jar org/
+ touch org/debian/lintian/TestA.java
+ zip -r contains-source.jar META-INF/ org/
+ perl generate-unparsable.pl
+
+# Skip - it chokes on "unparsable.jar" and we don't need it
+override_jh_manifest override_jh_depends override_dh_strip_nondeterminism:
+
+override_dh_auto_clean:
+ rm -fr META-INF/ org/
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install b/t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install
new file mode 100644
index 0000000..a734cf7
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/debian/unparsable.install
@@ -0,0 +1 @@
+unparsable.jar usr/share/unparsable
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/fill-values b/t/recipes/checks/languages/java/java-jars/build-spec/fill-values
new file mode 100644
index 0000000..320d891
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: java-jars
+Skeleton: upload-non-native
+Description: Various checks about JAR files
+Author: Vincent Fourmond <fourmond@debian.org>
+Section: java
+Extra-Build-Depends: javahelper, default-jdk
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl b/t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl
new file mode 100644
index 0000000..eaed15b
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/orig/generate-unparsable.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+# Generated with "hexdump -C <valid-file.zip> | head -n 10". Should
+# be a valid header of a truncated zip file. This is enough to fool
+# file 5.30 and earlier, but will obviously break if you try to parse
+# it in full.
+my $valid_header = <<'EOF';
+00000000 50 4b 03 04 0a 00 00 00 00 00 4c 59 9e 4a 00 00 |PK........LY.J..|
+00000010 00 00 00 00 00 00 00 00 00 00 04 00 1c 00 6f 72 |..............or|
+00000020 67 2f 55 54 09 00 03 20 c6 05 59 20 c6 05 59 75 |g/UT... ..Y ..Yu|
+00000030 78 0b 00 01 04 e8 03 00 00 04 e8 03 00 00 50 4b |x.............PK|
+00000040 03 04 0a 00 00 00 00 00 4c 59 9e 4a 00 00 00 00 |........LY.J....|
+00000050 00 00 00 00 00 00 00 00 0b 00 1c 00 6f 72 67 2f |............org/|
+00000060 64 65 62 69 61 6e 2f 55 54 09 00 03 20 c6 05 59 |debian/UT... ..Y|
+00000070 20 c6 05 59 75 78 0b 00 01 04 e8 03 00 00 04 e8 | ..Yux..........|
+00000080 03 00 00 50 4b 03 04 0a 00 00 00 00 00 4c 59 9e |...PK........LY.|
+00000090 4a 00 00 00 00 00 00 00 00 00 00 00 00 13 00 1c |J...............|
+EOF
+
+open(my $fd, '>', 'unparsable.jar');
+
+for my $line (split(m/\n/, $valid_header)) {
+ chomp($line);
+ next if $line =~ s/^\s*+(?:\#.*)?$//;
+ next if $line !~ s/^[0-9a-fA-F]+\s+//; # Remove leading "offset"
+ $line =~ s/\s*(?:\|.+\|\s*)?$//; # Remove trailing "display" part (if present)
+ for my $byte (split(m/\s++/, $line)) {
+ printf {$fd} '%c', hex($byte);
+ }
+}
+
+close($fd);
+
diff --git a/t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java b/t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java
new file mode 100644
index 0000000..dacb2f2
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/build-spec/orig/src/org/debian/lintian/TestA.java
@@ -0,0 +1,8 @@
+package org.debian.lintian;
+
+/**
+ A neat empty useless class.
+ */
+public class TestA {
+ // An empty class should do.
+}; \ No newline at end of file
diff --git a/t/recipes/checks/languages/java/java-jars/eval/desc b/t/recipes/checks/languages/java/java-jars/eval/desc
new file mode 100644
index 0000000..3cff6bb
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/eval/desc
@@ -0,0 +1,4 @@
+Testname: java-jars
+Test-Against:
+ source-contains-prebuilt-java-object
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/java-jars/eval/hints b/t/recipes/checks/languages/java/java-jars/eval/hints
new file mode 100644
index 0000000..cd4bd34
--- /dev/null
+++ b/t/recipes/checks/languages/java/java-jars/eval/hints
@@ -0,0 +1,11 @@
+unparsable (binary): zip-parse-error format error: can't find EOCD signature [usr/share/unparsable/unparsable.jar]
+libtestc-java (binary): javalib-but-no-public-jars
+libtesta-java (binary): missing-dep-on-jarwrapper
+libtesta-java (binary): jar-not-in-usr-share [usr/lib/testb.jar]
+libtesta-java (binary): executable-jar-without-main-class [usr/bin/testc.jar]
+libtesta-java (binary): bad-jar-name [usr/share/java/0.jar]
+libtest-maven-plugin-java (binary): maven-plugin-in-usr-share-java [usr/share/java/testb.jar]
+libtest-maven-plugin-java (binary): bad-jar-name [usr/share/java/testb.jar]
+libmanifestless-java (binary): missing-manifest [usr/share/java/manifestless-1.0.jar]
+libcontains-source-java (binary): jar-contains-source org/debian/lintian/TestA.java [usr/share/java/contains-source-1.0.jar]
+libcodeless-java (binary): codeless-jar [usr/share/java/codeless-1.0.jar]
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values
new file mode 100644
index 0000000..01a1fce
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: prebuilt-java-object
+Skeleton: upload-native
+Description: Source package with a prebuilt java object
+Section: java
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.class b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.class
new file mode 100644
index 0000000..b7edf6d
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.class
Binary files differ
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jar b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jar
new file mode 100644
index 0000000..fa91875
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.jar
Binary files differ
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java
new file mode 100644
index 0000000..8a6cd64
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/build-spec/orig/HelloWorld.java
@@ -0,0 +1,7 @@
+package HelloWorld;
+
+class HelloWorld {
+ public void hello() {
+ System.out.println("Hello World!");
+ }
+}
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/eval/desc b/t/recipes/checks/languages/java/prebuilt-java-object/eval/desc
new file mode 100644
index 0000000..e294bed
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/eval/desc
@@ -0,0 +1,2 @@
+Testname: prebuilt-java-object
+Check: languages/java
diff --git a/t/recipes/checks/languages/java/prebuilt-java-object/eval/hints b/t/recipes/checks/languages/java/prebuilt-java-object/eval/hints
new file mode 100644
index 0000000..9522af5
--- /dev/null
+++ b/t/recipes/checks/languages/java/prebuilt-java-object/eval/hints
@@ -0,0 +1 @@
+prebuilt-java-object (source): source-contains-prebuilt-java-object [HelloWorld.jar]
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/debian/install b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/debian/install
new file mode 100644
index 0000000..104313f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/debian/install
@@ -0,0 +1,10 @@
+jquery* usr/share/php
+mocha.* usr/share/javascript/mocha
+bootstrap-* usr/share/php
+bootstrap.js usr/share/xul-ext/lintian
+streams.php usr/share/php
+streams.php usr/share/php/pomo
+rss_parse.php usr/share/php
+tiny_mce_popup.js usr/share/php
+jquery.js usr/share/doxygen-test/
+doxygen.css usr/share/doxygen-test
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/fill-values b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/fill-values
new file mode 100644
index 0000000..8c48bea
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-embedded
+Description: Check for detection of embedded PEAR modules
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js
new file mode 100644
index 0000000..d9c3762
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js
@@ -0,0 +1 @@
+This is an embedded javascript library from Twitter that uses "var Carousel";
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap.js b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap.js
new file mode 100644
index 0000000..896075b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/bootstrap.js
@@ -0,0 +1 @@
+// https://developer.mozilla.org/en-US/docs/Extensions/bootstrap.js false positive
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/doxygen.css b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/doxygen.css
new file mode 100644
index 0000000..43dd760
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/doxygen.css
@@ -0,0 +1 @@
+Dummy CSS file so that we do not emit embedded-javascript-library in jQuery docs.
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.js b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.min.js b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.min.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/jquery.min.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.css b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.css
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.css
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.js b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/mocha.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/rss_parse.php b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/rss_parse.php
new file mode 100644
index 0000000..95afc6a
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/rss_parse.php
@@ -0,0 +1 @@
+This is not a php file.
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/streams.php b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/streams.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/streams.php
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/eval/desc b/t/recipes/checks/languages/javascript/embedded/files-embedded/eval/desc
new file mode 100644
index 0000000..1e47ec3
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-embedded
+See-Also: <g8t2fb$r9t$4@ger.gmane.org>
+Check: languages/javascript/embedded
diff --git a/t/recipes/checks/languages/javascript/embedded/files-embedded/eval/hints b/t/recipes/checks/languages/javascript/embedded/files-embedded/eval/hints
new file mode 100644
index 0000000..ea6df11
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/files-embedded/eval/hints
@@ -0,0 +1,6 @@
+files-embedded (binary): embedded-javascript-library please use tinymce [usr/share/php/tiny_mce_popup.js]
+files-embedded (binary): embedded-javascript-library please use libjs-mocha [usr/share/javascript/mocha/mocha.js]
+files-embedded (binary): embedded-javascript-library please use libjs-mocha [usr/share/javascript/mocha/mocha.css]
+files-embedded (binary): embedded-javascript-library please use libjs-jquery [usr/share/php/jquery.min.js]
+files-embedded (binary): embedded-javascript-library please use libjs-jquery [usr/share/php/jquery.js]
+files-embedded (binary): embedded-javascript-library please use libjs-bootstrap [usr/share/php/bootstrap-1.1.js]
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/changelog.in b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/changelog.in
new file mode 100644
index 0000000..b79c4ca
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/changelog.in
@@ -0,0 +1,78 @@
+filenames ([% $version %]) [% $distribution %]; urgency=low
+
+ * /me is doing a correct NMU of this package, bumping the epoch too.
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:04:39 +0200
+
+filenames (11) unstable; urgency=low
+
+ * Add a README.macos.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Mon, 12 Apr 2004 23:35:24 +0200
+
+filenames (10) unstable; urgency=low
+
+ * Some new files to check the checks for the use of /usr/*/X11 and
+ /usr/X11R6/*.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 17:35:20 +0200
+
+filenames (9) unstable; urgency=low
+
+ * Add a two *.ali files, one with the right permission, one with
+ the more common, but false one.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 00:18:16 +0200
+
+filenames (8) unstable; urgency=low
+
+ * Add a real ancient file
+
+ -- Frank Lichtenheld <djpig@debian.org> Thu, 8 Apr 2004 22:22:40 +0200
+
+filenames (7) unstable; urgency=low
+
+ * Add a dozen symlinks, some correct, some not
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 27 Feb 2004 01:28:42 +0100
+
+filenames (6) unstable; urgency=low
+
+ * Add perl files to check if
+ package-installs-nonbinary-perl-in-usr-lib-perl5 is correctly
+ issued even after attempting to suppress it in some cases
+
+ -- Frank Lichtenheld <djpig@debian.org> Fri, 27 Feb 2004 00:49:44 +0100
+
+filenames (5) unstable; urgency=low
+
+ * Added check for too long symlink
+
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 3 Jan 2001 13:20:31 -0800
+
+filenames (4) unstable; urgency=low
+
+ * Add /usr/lib/menu/menu file to test the bad-menu-file-name tag.
+ * Add /usr/lib/menu/README to test the new execption for it.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 22 Oct 1998 15:42:52 +0200
+
+filenames (3) unstable; urgency=low
+
+ * Don't rely on the installer's umask.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 20 Aug 1998 12:45:47 +0200
+
+filenames (2) unstable; urgency=low
+
+ * Noted more limitations on what filenames lintian handles.
+ * Added Changes.gz in /usr/doc/filenames and made a symlink from changelog.gz
+ to Changes.gz.
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:46:11 +0200
+
+filenames (1) unstable; urgency=low
+
+ * Initial version
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:25:01 +0200
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/control b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/control
new file mode 100644
index 0000000..1ff9c50
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/control
@@ -0,0 +1,42 @@
+Source: filenames
+Maintainer: Lintian Maintainer <lintian-maint@debian.org>
+Standards-Version: 3.1.1
+Rules-Requires-Root: binary-targets
+
+Package: filenames
+Architecture: any
+Description: see how lintian reacts to weird filenames
+ This package contains files with the most evil names I could find,
+ except for ones that lintian is explicitly not designed to handle.
+ .
+ Lintian does not handle filenames containing newlines, or filenames
+ that contain the strings " link to ", " -> ", or ": ". The last one
+ is used as a separator by the file command, the others are used as
+ separators by tar.
+ .
+ Lintian also does not handle filenames that contain backslashes, or
+ other characters that are mangled by tar's -tv output.
+
+Package: filename-games
+Architecture: all
+Depends: filenames
+Section: games
+Description: Test game filename/location checks
+ This package contains files with slightly less evil names than
+ filenames.
+ .
+ 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.
+
+Package: more-filename-games
+Architecture: all
+Depends: filenames, filename-games
+Section: games
+Priority: optional
+Description: More test for game filename/location checks
+ This package contains no evil names, only evil locations.
+ .
+ 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.
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/doc-base b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/doc-base
new file mode 100644
index 0000000..e5a611b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/doc-base
@@ -0,0 +1,11 @@
+Document: testing
+Title: Working doc-base control file
+Author: Russ Allbery
+Abstract: This control file ensures that we don't get false positives for
+ correct doc-base files.
+ .
+ There isn't anything wrong with this one.
+Section: Education
+
+Format: Text
+Files: /usr/share/doc/filenames/README.macosx
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/rules b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/rules
new file mode 100755
index 0000000..0b9e87c
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/debian/rules
@@ -0,0 +1,231 @@
+#!/usr/bin/make -f
+
+# Copyright (C) 1998 Richard Braakman
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, you can find it on the World Wide
+# Web at https://www.gnu.org/copyleft/gpl.html, or write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)')
+
+clean:
+ mkdir -p .svn CVS "{arch}" .arch-ids .bzr
+ touch data/.cvsignore data/svn-commit.tmp data/svk-commitsEr9P.tmp
+ touch data/.arch-inventory
+ touch 'data/.#Maelstrom Sound.1.1.1' 'data/Maelstrom Sounce.r121'
+ touch 'data/Maelstrom Sound.mine'
+ touch "data/'\\ "
+ touch filenames.c~
+
+build-arch:
+
+build-indep:
+
+build: build-arch build-indep
+
+
+binary-arch:
+
+binary-indep:
+ install -d debian/tmp/DEBIAN
+ cp -a data debian/tmp/files
+ chmod -R go=rX debian/tmp/files
+
+ install -d debian/tmp/usr/lib/filenames
+ install -m 555 -d debian/tmp/usr/lib/filenames/readonly
+ touch debian/tmp/usr/lib/filenames/readonly/test
+
+ install -d debian/tmp/usr/lib/menu
+ install -d debian/tmp/usr/share/menu
+ touch debian/tmp/usr/lib/menu/README
+ touch debian/tmp/usr/share/menu/README
+ touch debian/tmp/usr/lib/menu/menu
+ touch debian/tmp/usr/share/menu/menu
+ chmod 644 debian/tmp/usr/lib/menu/*
+
+ install -d debian/tmp/$(VENDORARCH)/foo
+ mkdir debian/tmp/$(VENDORARCH)/.svn
+ mkdir debian/tmp/$(VENDORARCH)/CVS
+ mkdir "debian/tmp/$(VENDORARCH)/{arch}"
+ mkdir debian/tmp/$(VENDORARCH)/.arch-ids
+ mkdir debian/tmp/$(VENDORARCH)/.bzr
+ mkdir debian/tmp/$(VENDORARCH)/.be
+ mkdir debian/tmp/$(VENDORARCH)/.ditrack
+ install -d debian/tmp/usr/share/perl5
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.gitignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgtags
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hg_archival.txt
+
+ touch debian/tmp/$(VENDORARCH)/foo/.packlist
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/.packlist
+ touch debian/tmp/$(VENDORARCH)/foo/bar.pm
+ TZ=UTC touch -t 197501010101 debian/tmp/$(VENDORARCH)/foo/ancient.pm
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/bar.pm
+
+ install -d debian/tmp/usr/share/pixmaps
+ install -d debian/tmp/usr/share/pixmaps/foo
+ touch debian/tmp/usr/share/pixmaps/license.jpeg
+ touch debian/tmp/usr/share/pixmaps/licence.jpg
+ touch debian/tmp/usr/share/pixmaps/copying.xpm
+ touch debian/tmp/usr/share/pixmaps/foo/COPYING.svg
+ touch debian/tmp/usr/share/pixmaps/foo/copying.png
+ touch debian/tmp/usr/share/pixmaps/license.txt
+ touch debian/tmp/usr/share/pixmaps/license.foo
+ touch debian/tmp/usr/share/pixmaps/COPYING
+
+ install -d debian/tmp/usr/share/linda/overrides
+ echo 'foo' > debian/tmp/usr/share/linda/overrides/filenames
+
+ install -d debian/tmp/usr/share/doc/filenames
+ touch debian/tmp/usr/share/doc/filenames/README.macosx
+
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\Ã¥l
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\ål
+
+ echo foo > debian/tmp/usr/share/doc/filenames/Thumbs.db
+ echo foo > debian/tmp/usr/share/doc/filenames/.DS_Store
+ echo foo > debian/tmp/usr/share/doc/filenames/._NEWS.Debian
+
+ touch debian/tmp/usr/share/doc/filenames/news.debian
+ gzip -n debian/tmp/usr/share/doc/filenames/news.debian
+ touch debian/tmp/usr/share/doc/filenames/NEWS.Debian
+
+ echo foo > debian/tmp/usr/share/doc/filenames/link-one
+ ln debian/tmp/usr/share/doc/filenames/link-one \
+ debian/tmp/usr/share/doc/filenames/link-two
+
+ install -d debian/tmp/usr/share/doc/filenames/examples
+ touch debian/tmp/usr/share/doc/filenames/examples/__init__.py
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+ gzip -n debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+
+ install -d debian/tmp/usr/lib/ada/adalib/
+ touch debian/tmp/usr/lib/ada/adalib/test.ali debian/tmp/usr/lib/ada/adalib/test2.ali
+ chmod 0644 debian/tmp/usr/lib/ada/adalib/test.ali
+ chmod 0444 debian/tmp/usr/lib/ada/adalib/test2.ali
+
+ install -d debian/tmp/usr/bin/X11/
+ touch debian/tmp/usr/bin/X11/testxbin
+ install -d debian/tmp/usr/X11R6/bin
+ touch debian/tmp/usr/X11R6/bin/testxbin2
+ install -d debian/tmp/usr/include/X11
+ touch debian/tmp/usr/include/X11/foo.h
+
+ install -d debian/tmp/usr/bin/mh
+ touch debian/tmp/usr/bin/mh/read
+ chmod 755 debian/tmp/usr/bin/mh/read
+ install -d debian/tmp/usr/bin/bin
+ touch debian/tmp/usr/bin/bin/bad
+ chmod 755 debian/tmp/usr/bin/bin/bad
+
+ install -m 644 debian/changelog debian/tmp/usr/share/doc/filenames/Changes
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/Changes
+ ln -s Changes.gz debian/tmp/usr/share/doc/filenames/changelog.gz
+
+ install -d debian/tmp/var/www
+ echo foo > debian/tmp/var/www/foo
+
+ install -d debian/tmp/srv/foo
+ touch debian/tmp/srv/foo/bar
+ install -d debian/tmp/opt/foo
+ touch debian/tmp/opt/foo/bar
+
+ install -d debian/tmp/etc/gconf/schemas
+ touch debian/tmp/etc/gconf/schemas/test.schema
+
+ install -d debian/tmp/usr/lib/sgml
+ touch debian/tmp/usr/lib/sgml/package
+
+ install -d debian/tmp/usr/share/gnome/apps/System
+ touch debian/tmp/usr/share/gnome/apps/System/foo.desktop
+
+ install -d debian/tmp/usr/share/filenames
+ touch debian/tmp/usr/share/filenames/jquery.js
+ touch debian/tmp/usr/share/filenames/jquery.lite.js
+ touch debian/tmp/usr/share/filenames/jquery.min.js
+ touch debian/tmp/usr/share/filenames/jquery.pack.js
+ touch debian/tmp/usr/share/filenames/mochikit.js
+ touch debian/tmp/usr/share/filenames/prototype-1.2.3.4.js
+ touch debian/tmp/usr/share/filenames/prototype.js
+ touch debian/tmp/usr/share/filenames/prototype.js.gz
+ touch debian/tmp/usr/share/filenames/scriptaculous.js
+ touch debian/tmp/usr/share/filenames/yahoo-dom-event.js
+ touch debian/tmp/usr/share/filenames/yahoo-min.js
+
+ ln -s '../filenames/doc/version6.txt.gz' debian/tmp/usr/share/doc/filenames/version.txt.gz
+ ln -s ../../share/symlink debian/tmp/usr/lib/filenames/symlink1ok
+ ln -s ../../../etc/symlink debian/tmp/usr/lib/filenames/symlink1wrong
+ ln -s ../../../../etc/symlink debian/tmp/usr/lib/filenames/symlink2wrong
+ ln -s /etc/symlink debian/tmp/usr/lib/filenames/symlink2ok
+ ln -s /usr/lib/filenames/symlink2 debian/tmp/usr/lib/filenames/symlink3wrong
+ ln -s test debian/tmp/usr/lib/filenames/symlink3ok
+ ln -s ../filenames/symlink2 debian/tmp/usr/lib/filenames/symlink4wrong
+ ln -s ../menu/../somethingelse debian/tmp/usr/lib/filenames/symlink5wrong
+ ln -s ../menu/somethingelse debian/tmp/usr/lib/filenames/symlink4ok
+ ln -s ./file4 debian/tmp/usr/lib/filenames/symlink6wrong
+ ln -s ../menu/./something debian/tmp/usr/lib/filenames/symlink7wrong
+ ln -s ../menu//something debian/tmp/usr/lib/filenames/symlink8wrong
+ ln -s ../menu/something/ debian/tmp/usr/lib/filenames/symlink9wrong
+ ln -s .. debian/tmp/usr/lib/filenames/symlink5ok+warn
+ ln -s . debian/tmp/usr/lib/filenames/symlink6ok+warn
+ ln -s / debian/tmp/usr/lib/filenames/symlink7ok+warn
+ ln -s ../../.. debian/tmp/usr/lib/filenames/symlink10wrong
+
+# devhelp tests. Files in /usr/share/gtk-doc/html or /usr/share/devhelp/books
+# are okay. Files elsewhere are okay iff their parent path is symlinked into
+# one of those paths.
+ install -d debian/tmp/usr/share/devhelp/books/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/a.devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ gzip -n -9 debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ install -d debian/tmp/usr/share/gtk-doc/html/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ gzip -n -9 debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ install -d debian/tmp/usr/share/doc/filenames/good-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/good-devhelp/.devhelp2
+ install -d debian/tmp/usr/share/doc/filenames/bad-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ ln -s ../../doc/filenames/good-devhelp debian/tmp/usr/share/gtk-doc/html/good
+ ln -s ../doc/filenames/bad-devhelp debian/tmp/usr/share/gtk-doc/html/bad
+
+ install -d debian/tmp/usr/share/doc-base
+ install -m 644 debian/doc-base debian/tmp/usr/share/doc-base/filenames
+
+ dpkg-gencontrol -pfilenames -Pdebian/tmp
+ dpkg --build debian/tmp ..
+
+ install -d debian/filename-games debian/filename-games/DEBIAN
+ install -d debian/filename-games/usr debian/filename-games/usr/games debian/filename-games/usr/bin
+ echo '#! /bin/sh' > debian/filename-games/usr/bin/test-game
+ chmod 755 debian/filename-games/usr/bin/test-game
+ dpkg-gencontrol -pfilename-games -Pdebian/filename-games
+ dpkg --build debian/filename-games ..
+
+ install -d debian/more-filename-games debian/more-filename-games/DEBIAN
+ install -d debian/more-filename-games/usr debian/more-filename-games/usr/games debian/more-filename-games/usr/bin
+ echo '#! /bin/sh' > debian/more-filename-games/usr/bin/another-test-game
+ echo '#! /bin/sh' > debian/more-filename-games/usr/games/yet-another-test-game
+ chmod 755 debian/more-filename-games/usr/bin/another-test-game debian/more-filename-games/usr/games/yet-another-test-game
+ dpkg-gencontrol -pmore-filename-games -Pdebian/more-filename-games
+ dpkg --build debian/more-filename-games ..
+
+binary: binary-arch binary-indep
+
+.PHONY: build-indep build-arch build binary-arch binary-indep binary clean
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/fill-values b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/fill-values
new file mode 100644
index 0000000..062a1ea
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-non-native
+Testname: legacy-filenames
+Source: filenames
+Version: 1:12-0.1
+Description: Legacy test "filenames"
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/ .tif b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/ .tif
new file mode 100644
index 0000000..07fd914
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/ .tif
@@ -0,0 +1,2 @@
+This filename was inspired by the ".tif used by fnlib. The real package
+uses space.tif.
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/".tif b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/".tif
new file mode 100644
index 0000000..e005775
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/".tif
@@ -0,0 +1 @@
+This filename is really used, by fnlib.
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/Maelstrom Sound b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/Maelstrom Sound
new file mode 100644
index 0000000..4110410
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/build-spec/orig/data/Maelstrom Sound
@@ -0,0 +1 @@
+This filename occurs in the maelstrom package.
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/desc b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/desc
new file mode 100644
index 0000000..86c9842
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-filenames
+Check: languages/javascript/embedded
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/hints b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/hints
new file mode 100644
index 0000000..c5e3602
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/hints
@@ -0,0 +1,11 @@
+filenames (binary): embedded-javascript-library please use libjs-yui [usr/share/filenames/yahoo-min.js]
+filenames (binary): embedded-javascript-library please use libjs-yui [usr/share/filenames/yahoo-dom-event.js]
+filenames (binary): embedded-javascript-library please use libjs-scriptaculous [usr/share/filenames/scriptaculous.js]
+filenames (binary): embedded-javascript-library please use libjs-prototype [usr/share/filenames/prototype.js]
+filenames (binary): embedded-javascript-library please use libjs-prototype [usr/share/filenames/prototype.js.gz]
+filenames (binary): embedded-javascript-library please use libjs-prototype [usr/share/filenames/prototype-1.2.3.4.js]
+filenames (binary): embedded-javascript-library please use libjs-mochikit [usr/share/filenames/mochikit.js]
+filenames (binary): embedded-javascript-library please use libjs-jquery [usr/share/filenames/jquery.pack.js]
+filenames (binary): embedded-javascript-library please use libjs-jquery [usr/share/filenames/jquery.min.js]
+filenames (binary): embedded-javascript-library please use libjs-jquery [usr/share/filenames/jquery.lite.js]
+filenames (binary): embedded-javascript-library please use libjs-jquery [usr/share/filenames/jquery.js]
diff --git a/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/post-test b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/post-test
new file mode 100644
index 0000000..571e35d
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/embedded/legacy-filenames/eval/post-test
@@ -0,0 +1,3 @@
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
+s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g
+/package-installs-packlist/ d
diff --git a/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/debian/control.in b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/debian/control.in
new file mode 100644
index 0000000..ca61aec
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/debian/control.in
@@ -0,0 +1,17 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], dh-sequence-nodejs
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+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.
diff --git a/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/fill-values
new file mode 100644
index 0000000..652b02b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: pkg-js-tools-test-is-missing
+Skeleton: upload-native
+Description: Test if debian/tests/pkg-js/test exists
+Extra-Build-Depends: pkg-js-tools (>= 0.9.6~), nodejs (>= 8.11.1)
diff --git a/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/package.json
new file mode 100644
index 0000000..889ee8e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/build-spec/orig/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "version": "0.1",
+ "main": "index.js"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/desc b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/desc
new file mode 100644
index 0000000..3270ad1
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/desc
@@ -0,0 +1,2 @@
+Testname: dh-sequence-nodejs-test-is-missing
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/hints b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/hints
new file mode 100644
index 0000000..1cc9594
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/dh-sequence-nodejs-test-is-missing/eval/hints
@@ -0,0 +1,3 @@
+pkg-js-tools-test-is-missing (source): pkg-js-tools-test-is-missing
+pkg-js-tools-test-is-missing (binary): nodejs-module-not-declared node-test [usr/share/nodejs/test/package.json]
+pkg-js-tools-test-is-missing (binary): nodejs-module test 0.1 [usr/share/nodejs/test/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/install b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/install
new file mode 100644
index 0000000..1b91047
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/install
@@ -0,0 +1 @@
+usr/
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/rules
new file mode 100755
index 0000000..22e3438
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/debian/rules
@@ -0,0 +1,16 @@
+#!/usr/bin/make -f
+PKG:=files-nodejs
+INSTPATH:=$(CURDIR)/debian/tmp/usr/share/nodejs
+
+
+%:
+ dh $@
+
+override_dh_install:
+ mkdir -p $(INSTPATH)
+ cp src/test.js $(INSTPATH)/test.js
+ cp src/test.json $(INSTPATH)/package.json
+ dh_install
+
+
+
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/fill-values
new file mode 100644
index 0000000..36fb14a
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-nodejs
+Description: Check for nodejs problems
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.js b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.js
new file mode 100644
index 0000000..ca538a6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.js
@@ -0,0 +1 @@
+/* test.js */ \ No newline at end of file
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.json b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.json
new file mode 100644
index 0000000..f0a3f50
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/build-spec/orig/src/test.json
@@ -0,0 +1 @@
+/* json test */ \ No newline at end of file
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/desc b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/desc
new file mode 100644
index 0000000..a86d3e5
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-nodejs
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/hints b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/hints
new file mode 100644
index 0000000..bd11eea
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/files-nodejs/eval/hints
@@ -0,0 +1,2 @@
+files-nodejs (binary): node-package-install-in-nodejs-rootdir [usr/share/nodejs/test.js]
+files-nodejs (binary): node-package-install-in-nodejs-rootdir [usr/share/nodejs/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/install b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/install
new file mode 100644
index 0000000..28705a7
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/install
@@ -0,0 +1,2 @@
+bson/* /usr/share/nodejs/badname/
+foobar/* /usr/share/nodejs/@bar/foo/
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/rules
new file mode 100644
index 0000000..9edc8dc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/tests/pkg-js/test b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/tests/pkg-js/test
new file mode 100644
index 0000000..bc7b127
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/tests/pkg-js/test
@@ -0,0 +1,3 @@
+# Does nothing
+
+
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/watch b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/watch
new file mode 100644
index 0000000..e6e86de
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/debian/watch
@@ -0,0 +1,42 @@
+version=4
+
+opts=\
+dversionmangle=s/\+(debian|dfsg|ds|deb)(\.\d+)?$//,\
+filenamemangle=s/.*\/v?([\d\.-]+)\.tar\.gz/node-mongodb-native-$1.tar.gz/ \
+ https://github.com/mongodb/node-mongodb-native/tags .*/archive/v?([\d\.]+).tar.gz group
+
+opts="searchmode=plain,pgpmode=none,component=mongodb-core" \
+ https://registry.npmjs.org/mongodb-core https://registry.npmjs.org/mongodb-core/-/mongodb-core-(\d[\d\.]*)@ARCHIVE_EXT@ group
+
+opts="searchmode=plain,pgpmode=none,component=requireoptional" \
+ https://registry.npmjs.org/require_optional https://registry.npmjs.org/require_optional/-/require_optional-(\d[\d\.]*)@ARCHIVE_EXT@ ignore
+
+opts="searchmode=plain,pgpmode=none,component=bson" \
+ https://registry.npmjs.org/bson https://registry.npmjs.org/bson/-/bson-(1[\d\.]*)@ARCHIVE_EXT@ ignore
+
+opts="searchmode=plain,pgpmode=none,component=foobar" \
+ https://registry.npmjs.org/bson https://registry.npmjs.org/foobar/-/foobar-(1[\d\.]*)@ARCHIVE_EXT@ ignore
+
+# It is not recommended use npmregistry. Please investigate more.
+# Take a look at https://wiki.debian.org/debian/watch/
+opts="searchmode=plain,component=denque,pgpmode=none" \
+ https://registry.npmjs.org/denque https://registry.npmjs.org/denque/-/denque-([\d\.]+)@ARCHIVE_EXT@ ignore
+
+opts=\
+component=saslprep,\
+dversionmangle=auto,\
+filenamemangle=s/.*\/v?([\d\.-]+)\.tar\.gz/node-saslprep-$1.tar.gz/ \
+ https://github.com/reklatsmasters/saslprep/tags .*/archive/v?([\d\.]+).tar.gz ignore
+
+opts=\
+component=sparse-bitfield,\
+dversionmangle=auto,\
+filenamemangle=s/.*\/v?([\d\.-]+)\.tar\.gz/node-sparse-bitfield-$1.tar.gz/ \
+ https://github.com/mafintosh/sparse-bitfield/tags .*/archive/v?([\d\.]+).tar.gz ignore
+
+opts=\
+component=memory-pager,\
+dversionmangle=auto,\
+filenamemangle=s/.*\/v?([\d\.-]+)\.tar\.gz/node-memory-pager-$1.tar.gz/ \
+ https://github.com/mafintosh/memory-pager/tags .*/archive/v?([\d\.]+).tar.gz ignore
+
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/fill-values
new file mode 100644
index 0000000..28ad15b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: multiple-nodejs-components
+Skeleton: upload-native
+Description: Test if debian/tests/pkg-js/test contains a command
+Extra-Build-Depends: pkg-js-tools (>= 0.9.6~), nodejs (>= 8.11.1)
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/package.json
new file mode 100644
index 0000000..fb10cf1
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/browser_build/package.json
@@ -0,0 +1 @@
+{ "name": "bson" }
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/package.json
new file mode 100644
index 0000000..745d4e7
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/bson/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "bson",
+ "version": "1.1.3"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/package.json
new file mode 100644
index 0000000..8e07817
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/denque/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "denque",
+ "version": "1.4.1"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/package.json
new file mode 100644
index 0000000..694a18b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/foobar/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@foo/bar",
+ "version": "1.2.0"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/package.json
new file mode 100644
index 0000000..6d5e475
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/memory-pager/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "memory-pager",
+ "version": "1.5.0"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/package.json
new file mode 100644
index 0000000..0c136ce
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/mongodb-core/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "mongodb-core",
+ "version": "3.2.7"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/package.json
new file mode 100644
index 0000000..d60e40f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "mongodb",
+ "version": "3.5.2"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/package.json
new file mode 100644
index 0000000..e3bbffa
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "require_optional",
+ "version": "1.0.1"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/test/nestedTest/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/test/nestedTest/package.json
new file mode 100644
index 0000000..85c7a79
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/requireoptional/test/nestedTest/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "nestedtest",
+ "version": "1.0.0"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/package.json
new file mode 100644
index 0000000..536f56d
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/saslprep/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "saslprep",
+ "version": "1.0.3"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/index.js b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/package.json b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/package.json
new file mode 100644
index 0000000..309af23
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/build-spec/orig/sparse-bitfield/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "sparse-bitfield",
+ "version": "3.0.3"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/desc b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/desc
new file mode 100644
index 0000000..a356c1f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/desc
@@ -0,0 +1,2 @@
+Testname: multiple-nodejs-components
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/hints b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/hints
new file mode 100644
index 0000000..66aa966
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/multiple-nodejs-components/eval/hints
@@ -0,0 +1,17 @@
+multiple-nodejs-components (source): pkg-js-tools-test-is-empty [debian/tests/pkg-js/test]
+multiple-nodejs-components (binary): nodejs-module-not-declared node-mongodb [usr/share/nodejs/mongodb/package.json]
+multiple-nodejs-components (binary): nodejs-module-installed-in-bad-directory bson badname [usr/share/nodejs/badname/package.json]
+multiple-nodejs-components (binary): nodejs-module-installed-in-bad-directory @foo/bar @bar/foo [usr/share/nodejs/@bar/foo/package.json]
+multiple-nodejs-components (binary): nodejs-module sparse-bitfield 3.0.3 [usr/share/nodejs/mongodb/node_modules/sparse-bitfield/package.json]
+multiple-nodejs-components (binary): nodejs-module saslprep 1.0.3 [usr/share/nodejs/mongodb/node_modules/saslprep/package.json]
+multiple-nodejs-components (binary): nodejs-module require_optional 1.0.1 [usr/share/nodejs/mongodb/node_modules/require_optional/package.json]
+multiple-nodejs-components (binary): nodejs-module mongodb-core 3.2.7 [usr/share/nodejs/mongodb/node_modules/mongodb-core/package.json]
+multiple-nodejs-components (binary): nodejs-module mongodb 3.5.2 [usr/share/nodejs/mongodb/package.json]
+multiple-nodejs-components (binary): nodejs-module memory-pager 1.5.0 [usr/share/nodejs/mongodb/node_modules/memory-pager/package.json]
+multiple-nodejs-components (binary): nodejs-module denque 1.4.1 [usr/share/nodejs/mongodb/node_modules/denque/package.json]
+multiple-nodejs-components (binary): nodejs-module bson undef [usr/share/nodejs/mongodb/node_modules/bson/browser_build/package.json]
+multiple-nodejs-components (binary): nodejs-module bson undef [usr/share/nodejs/badname/browser_build/package.json]
+multiple-nodejs-components (binary): nodejs-module bson 1.1.3 [usr/share/nodejs/mongodb/node_modules/bson/package.json]
+multiple-nodejs-components (binary): nodejs-module bson 1.1.3 [usr/share/nodejs/badname/package.json]
+multiple-nodejs-components (binary): nodejs-module @foo/bar 1.2.0 [usr/share/nodejs/mongodb/node_modules/@foo/bar/package.json]
+multiple-nodejs-components (binary): nodejs-module @foo/bar 1.2.0 [usr/share/nodejs/@bar/foo/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/additional_components b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/additional_components
new file mode 100644
index 0000000..0b11676
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/additional_components
@@ -0,0 +1,2 @@
+bson
+foobar
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/root_modules b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/root_modules
new file mode 100644
index 0000000..323fae0
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/nodejs/root_modules
@@ -0,0 +1 @@
+foobar
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/rules
new file mode 100644
index 0000000..9edc8dc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/tests/pkg-js/test b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/tests/pkg-js/test
new file mode 100644
index 0000000..babcb6f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/tests/pkg-js/test
@@ -0,0 +1,2 @@
+# Does nothing
+echo OK
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/watch b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/watch
new file mode 100644
index 0000000..59625c6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/debian/watch
@@ -0,0 +1,6 @@
+version=4
+
+opts=\
+dversionmangle=s/\+(debian|dfsg|ds|deb)(\.\d+)?$//,\
+filenamemangle=s/.*\/v?([\d\.-]+)\.tar\.gz/node-mongodb-native-$1.tar.gz/ \
+ https://github.com/mongodb/node-mongodb-native/tags .*/archive/v?([\d\.]+).tar.gz group
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/fill-values
new file mode 100644
index 0000000..939e0b8
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: nodejs-missing-version-override
+Skeleton: upload-native
+Description: Test if nodejs modules have a valid version
+Extra-Build-Depends: pkg-js-tools (>= 0.9.6~), nodejs (>= 8.11.1)
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/package.json
new file mode 100644
index 0000000..0b293f1
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/bson/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "bson",
+ "version": "0.0.0-development"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/package.json
new file mode 100644
index 0000000..8ddf1cc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/foobar/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@foo/bar",
+ "version": "0.0.0-development"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/package.json
new file mode 100644
index 0000000..fa746a2
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/build-spec/orig/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "mongodb",
+ "version": "0.0.0-development"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/desc b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/desc
new file mode 100644
index 0000000..ef8383a
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/desc
@@ -0,0 +1,2 @@
+Testname: nodejs-missing-version-override
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/hints b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/hints
new file mode 100644
index 0000000..e00c819
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-missing-version-override/eval/hints
@@ -0,0 +1,8 @@
+nodejs-missing-version-override (binary): nodejs-module-not-declared node-mongodb [usr/share/nodejs/mongodb/package.json]
+nodejs-missing-version-override (binary): nodejs-module-not-declared node-foo-bar [usr/share/nodejs/@foo/bar/package.json]
+nodejs-missing-version-override (binary): nodejs-module mongodb 0.0.0-development [usr/share/nodejs/mongodb/package.json]
+nodejs-missing-version-override (binary): nodejs-module bson 0.0.0-development [usr/share/nodejs/mongodb/node_modules/bson/package.json]
+nodejs-missing-version-override (binary): nodejs-module @foo/bar 0.0.0-development [usr/share/nodejs/@foo/bar/package.json]
+nodejs-missing-version-override (binary): nodejs-missing-version-override mongodb 0.0.0-development [usr/share/nodejs/mongodb/package.json]
+nodejs-missing-version-override (binary): nodejs-missing-version-override bson 0.0.0-development [usr/share/nodejs/mongodb/node_modules/bson/package.json]
+nodejs-missing-version-override (binary): nodejs-missing-version-override @foo/bar 0.0.0-development [usr/share/nodejs/@foo/bar/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/install b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/install
new file mode 100644
index 0000000..1b91047
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/install
@@ -0,0 +1 @@
+usr/
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/rules
new file mode 100755
index 0000000..0b4a889
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/debian/rules
@@ -0,0 +1,13 @@
+#!/usr/bin/make -f
+PKG:=nodejs-module-installed-in-usr-lib
+INSTPATH:=$(CURDIR)/debian/tmp/usr/lib/nodejs/module-installed-in-usr-lib
+
+
+%:
+ dh $@
+
+override_dh_install:
+ mkdir -p $(INSTPATH)
+ cp src/test.js $(INSTPATH)/test.js
+ cp src/test.json $(INSTPATH)/package.json
+ dh_install
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/fill-values
new file mode 100644
index 0000000..89cbeb6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: nodejs-module-installed-in-usr-lib
+Description: Check if nodejs modules are no more installed in /usr/lib/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.js
new file mode 100644
index 0000000..ca538a6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.js
@@ -0,0 +1 @@
+/* test.js */ \ No newline at end of file
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.json
new file mode 100644
index 0000000..f0a3f50
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/build-spec/orig/src/test.json
@@ -0,0 +1 @@
+/* json test */ \ No newline at end of file
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/desc b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/desc
new file mode 100644
index 0000000..ed2f889
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/desc
@@ -0,0 +1,2 @@
+Testname: nodejs-module-installed-in-usr-lib
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/hints b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/hints
new file mode 100644
index 0000000..74b9c37
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installed-in-usr-lib/eval/hints
@@ -0,0 +1,2 @@
+nodejs-module-installed-in-usr-lib (binary): nodejs-module-installed-in-usr-lib [usr/lib/nodejs/module-installed-in-usr-lib/test.js]
+nodejs-module-installed-in-usr-lib (binary): nodejs-module-installed-in-usr-lib [usr/lib/nodejs/module-installed-in-usr-lib/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/install b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/install
new file mode 100644
index 0000000..1b91047
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/install
@@ -0,0 +1 @@
+usr/
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/rules
new file mode 100755
index 0000000..9dc0a66
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/debian/rules
@@ -0,0 +1,13 @@
+#!/usr/bin/make -f
+PKG:=nodejs-module-installed-in-usr-lib
+INSTPATH:=$(CURDIR)/debian/tmp/usr/share/nodejs/module-installs-lock-file
+
+
+%:
+ dh $@
+
+override_dh_install:
+ mkdir -p $(INSTPATH)
+ cp src/test.js $(INSTPATH)/yarn.lock
+ cp src/test.json $(INSTPATH)/package-lock.json
+ dh_install
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/fill-values
new file mode 100644
index 0000000..e8df969
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: nodejs-module-installs-lock-file
+Description: Check if nodejs modules are no more installed in /usr/lib/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.js
new file mode 100644
index 0000000..ca538a6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.js
@@ -0,0 +1 @@
+/* test.js */ \ No newline at end of file
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.json
new file mode 100644
index 0000000..f0a3f50
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/build-spec/orig/src/test.json
@@ -0,0 +1 @@
+/* json test */ \ No newline at end of file
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/desc b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/desc
new file mode 100644
index 0000000..4072be6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/desc
@@ -0,0 +1,2 @@
+Testname: nodejs-module-installs-lock-file
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/hints b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/hints
new file mode 100644
index 0000000..19313b4
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-installs-lock-file/eval/hints
@@ -0,0 +1,2 @@
+nodejs-module-installs-lock-file (binary): nodejs-lock-file [usr/share/nodejs/module-installs-lock-file/yarn.lock]
+nodejs-module-installs-lock-file (binary): nodejs-lock-file [usr/share/nodejs/module-installs-lock-file/package-lock.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/additional_components b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/additional_components
new file mode 100644
index 0000000..0b11676
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/additional_components
@@ -0,0 +1,2 @@
+bson
+foobar
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/root_modules b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/root_modules
new file mode 100644
index 0000000..72e8ffc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/nodejs/root_modules
@@ -0,0 +1 @@
+*
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/rules
new file mode 100644
index 0000000..9edc8dc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/tests/pkg-js/test b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/tests/pkg-js/test
new file mode 100644
index 0000000..babcb6f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/tests/pkg-js/test
@@ -0,0 +1,2 @@
+# Does nothing
+echo OK
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/watch b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/watch
new file mode 100644
index 0000000..59625c6
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/debian/watch
@@ -0,0 +1,6 @@
+version=4
+
+opts=\
+dversionmangle=s/\+(debian|dfsg|ds|deb)(\.\d+)?$//,\
+filenamemangle=s/.*\/v?([\d\.-]+)\.tar\.gz/node-mongodb-native-$1.tar.gz/ \
+ https://github.com/mongodb/node-mongodb-native/tags .*/archive/v?([\d\.]+).tar.gz group
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/fill-values
new file mode 100644
index 0000000..87b010a
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: nodejs-module-not-declared
+Skeleton: upload-native
+Description: Test if nodejs modules are declared
+Extra-Build-Depends: pkg-js-tools (>= 0.9.6~), nodejs (>= 8.11.1)
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/package.json
new file mode 100644
index 0000000..fb10cf1
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/browser_build/package.json
@@ -0,0 +1 @@
+{ "name": "bson" }
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/package.json
new file mode 100644
index 0000000..745d4e7
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/bson/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "bson",
+ "version": "1.1.3"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/package.json
new file mode 100644
index 0000000..694a18b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/foobar/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@foo/bar",
+ "version": "1.2.0"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/package.json
new file mode 100644
index 0000000..d60e40f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/build-spec/orig/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "mongodb",
+ "version": "3.5.2"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/desc b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/desc
new file mode 100644
index 0000000..086946a
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/desc
@@ -0,0 +1,2 @@
+Testname: nodejs-module-not-declared
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/hints b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/hints
new file mode 100644
index 0000000..d0b6fdb
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/nodejs-module-not-declared/eval/hints
@@ -0,0 +1,7 @@
+nodejs-module-not-declared (binary): nodejs-module-not-declared node-mongodb [usr/share/nodejs/mongodb/package.json]
+nodejs-module-not-declared (binary): nodejs-module-not-declared node-foo-bar [usr/share/nodejs/@foo/bar/package.json]
+nodejs-module-not-declared (binary): nodejs-module-not-declared node-bson [usr/share/nodejs/bson/package.json]
+nodejs-module-not-declared (binary): nodejs-module mongodb 3.5.2 [usr/share/nodejs/mongodb/package.json]
+nodejs-module-not-declared (binary): nodejs-module bson undef [usr/share/nodejs/bson/browser_build/package.json]
+nodejs-module-not-declared (binary): nodejs-module bson 1.1.3 [usr/share/nodejs/bson/package.json]
+nodejs-module-not-declared (binary): nodejs-module @foo/bar 1.2.0 [usr/share/nodejs/@foo/bar/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/control.in b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/control.in
new file mode 100644
index 0000000..7a2fe23
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Testsuite: autopkgtest-pkg-nodejs
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+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.
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/files b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/files
new file mode 100644
index 0000000..34577ab
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/files
@@ -0,0 +1,5 @@
+test*
+lib/a
+lib/*/*.js
+lib/*/*.json
+la/test
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/test b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/test
new file mode 100644
index 0000000..802e05f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/debian/tests/pkg-js/test
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/bin/ls
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/fill-values
new file mode 100644
index 0000000..232821a
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: pkg-js-autopkgtest-file-does-not-exist
+Skeleton: upload-native
+Description: Test if files in debian/tests/pkg-js/files exists
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/lib/a/file.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/lib/a/file.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/lib/a/file.js
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/package.json
new file mode 100644
index 0000000..889ee8e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "version": "0.1",
+ "main": "index.js"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/test/test.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/test/test.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/build-spec/orig/test/test.js
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/desc b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/desc
new file mode 100644
index 0000000..9dc738c
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/desc
@@ -0,0 +1,2 @@
+Testname: pkg-js-autopkgtest-file-does-not-exist
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/hints b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/hints
new file mode 100644
index 0000000..f969845
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-file-does-not-exist/eval/hints
@@ -0,0 +1,2 @@
+pkg-js-autopkgtest-file-does-not-exist (source): pkg-js-autopkgtest-file-does-not-exist lib/*/*.json
+pkg-js-autopkgtest-file-does-not-exist (source): pkg-js-autopkgtest-file-does-not-exist la/test
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/control.in b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/control.in
new file mode 100644
index 0000000..7a2fe23
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Testsuite: autopkgtest-pkg-nodejs
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+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.
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/tests/pkg-js/test b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/tests/pkg-js/test
new file mode 100644
index 0000000..bc7b127
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/debian/tests/pkg-js/test
@@ -0,0 +1,3 @@
+# Does nothing
+
+
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/fill-values
new file mode 100644
index 0000000..b141e9c
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: pkg-js-autopkgtest-test-is-empty
+Skeleton: upload-native
+Description: Test if debian/tests/pkg-js/test contains a command
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/package.json
new file mode 100644
index 0000000..889ee8e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/build-spec/orig/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "version": "0.1",
+ "main": "index.js"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/desc b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/desc
new file mode 100644
index 0000000..20643c4
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/desc
@@ -0,0 +1,2 @@
+Testname: pkg-js-autopkgtest-test-is-empty
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/hints b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/hints
new file mode 100644
index 0000000..f22cc4f
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-empty/eval/hints
@@ -0,0 +1 @@
+pkg-js-autopkgtest-test-is-empty (source): pkg-js-autopkgtest-test-is-empty [debian/tests/pkg-js/test]
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/debian/control.in b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/debian/control.in
new file mode 100644
index 0000000..7a2fe23
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Testsuite: autopkgtest-pkg-nodejs
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+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.
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/fill-values
new file mode 100644
index 0000000..73868a8
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: pkg-js-autopkgtest-test-is-missing
+Skeleton: upload-native
+Description: Test if debian/tests/pkg-js/test exists
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/package.json
new file mode 100644
index 0000000..889ee8e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/build-spec/orig/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "version": "0.1",
+ "main": "index.js"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/desc b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/desc
new file mode 100644
index 0000000..ed9aeee
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/desc
@@ -0,0 +1,2 @@
+Testname: pkg-js-autopkgtest-test-is-missing
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/hints b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/hints
new file mode 100644
index 0000000..b0d5fdc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-autopkgtest-test-is-missing/eval/hints
@@ -0,0 +1 @@
+pkg-js-autopkgtest-test-is-missing (source): pkg-js-autopkgtest-test-is-missing
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/rules
new file mode 100644
index 0000000..9edc8dc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/tests/pkg-js/test b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/tests/pkg-js/test
new file mode 100644
index 0000000..bc7b127
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/debian/tests/pkg-js/test
@@ -0,0 +1,3 @@
+# Does nothing
+
+
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/fill-values
new file mode 100644
index 0000000..eb4db3b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: pkg-js-tools-test-is-empty
+Skeleton: upload-native
+Description: Test if debian/tests/pkg-js/test contains a command
+Extra-Build-Depends: pkg-js-tools (>= 0.9.6~), nodejs (>= 8.11.1)
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/package.json
new file mode 100644
index 0000000..889ee8e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/build-spec/orig/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "version": "0.1",
+ "main": "index.js"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/desc b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/desc
new file mode 100644
index 0000000..8b4e403
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/desc
@@ -0,0 +1,2 @@
+Testname: pkg-js-tools-test-is-empty
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/hints b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/hints
new file mode 100644
index 0000000..b5a1c1e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-empty/eval/hints
@@ -0,0 +1,3 @@
+pkg-js-tools-test-is-empty (source): pkg-js-tools-test-is-empty [debian/tests/pkg-js/test]
+pkg-js-tools-test-is-empty (binary): nodejs-module-not-declared node-test [usr/share/nodejs/test/package.json]
+pkg-js-tools-test-is-empty (binary): nodejs-module test 0.1 [usr/share/nodejs/test/package.json]
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/debian/rules b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/debian/rules
new file mode 100644
index 0000000..9edc8dc
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --with nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/fill-values b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/fill-values
new file mode 100644
index 0000000..652b02b
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: pkg-js-tools-test-is-missing
+Skeleton: upload-native
+Description: Test if debian/tests/pkg-js/test exists
+Extra-Build-Depends: pkg-js-tools (>= 0.9.6~), nodejs (>= 8.11.1)
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/index.js b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/index.js
new file mode 100644
index 0000000..3710888
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/index.js
@@ -0,0 +1 @@
+console.log('ok');
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/package.json b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/package.json
new file mode 100644
index 0000000..889ee8e
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/build-spec/orig/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "version": "0.1",
+ "main": "index.js"
+}
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/desc b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/desc
new file mode 100644
index 0000000..5820878
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/desc
@@ -0,0 +1,2 @@
+Testname: pkg-js-tools-test-is-missing
+Check: languages/javascript/nodejs
diff --git a/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/hints b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/hints
new file mode 100644
index 0000000..1cc9594
--- /dev/null
+++ b/t/recipes/checks/languages/javascript/nodejs/pkg-js-tools-test-is-missing/eval/hints
@@ -0,0 +1,3 @@
+pkg-js-tools-test-is-missing (source): pkg-js-tools-test-is-missing
+pkg-js-tools-test-is-missing (binary): nodejs-module-not-declared node-test [usr/share/nodejs/test/package.json]
+pkg-js-tools-test-is-missing (binary): nodejs-module test 0.1 [usr/share/nodejs/test/package.json]
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/desc
new file mode 100644
index 0000000..2c20db4
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/byte-code/compiled
diff --git a/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/hints
new file mode 100644
index 0000000..61a70b3
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/compiled/ocaml-general/eval/hints
@@ -0,0 +1,2 @@
+libocaml-general-ocaml-dev (binary): ocaml-dangling-cmx [usr/lib/ocaml/symbol2.cmx]
+libocaml-general-ocaml (binary): ocaml-dangling-cmx [usr/lib/ocaml/symbol.cmx]
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/desc
new file mode 100644
index 0000000..ae0ab3d
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/byte-code/interface
diff --git a/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/hints
new file mode 100644
index 0000000..66168b0
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/interface/ocaml-general/eval/hints
@@ -0,0 +1,5 @@
+libocaml-general-ocaml-dev (binary): ocaml-dangling-cmi [usr/lib/ocaml/foo.cmi]
+libocaml-general-ocaml-dev (binary): ocaml-dangling-cmi [usr/lib/ocaml/boo.cmi]
+libocaml-general-ocaml-dev (binary): ocaml-dangling-cmi [usr/lib/ocaml/baz.cmi]
+libocaml-general-ocaml-dev (binary): ocaml-dangling-cmi [usr/lib/ocaml/bar.cmi]
+libocaml-general-ocaml-dev (binary): ocaml-dangling-cmi [usr/lib/foo.cmi]
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/desc
new file mode 100644
index 0000000..2c1ce32
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/byte-code/library
diff --git a/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/hints
new file mode 100644
index 0000000..17e0257
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/library/ocaml-general/eval/hints
@@ -0,0 +1,2 @@
+libocaml-general-ocaml-dev (binary): ocaml-stray-cmo [usr/lib/ocaml/bleh.cma]
+libocaml-general-ocaml (binary): ocaml-dangling-cmxa [usr/lib/ocaml/foo.cmxa]
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/desc
new file mode 100644
index 0000000..a2ca616
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/byte-code/misplaced/package
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/hints
new file mode 100644
index 0000000..6444622
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/package/ocaml-general/eval/hints
@@ -0,0 +1 @@
+libocaml-general-ocaml (binary): ocaml-dev-file-in-nondev-package 2 files in usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/desc
new file mode 100644
index 0000000..a3693fc
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/byte-code/misplaced/path
diff --git a/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/hints
new file mode 100644
index 0000000..2bd1c18
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/misplaced/path/ocaml-general/eval/hints
@@ -0,0 +1 @@
+libocaml-general-ocaml-dev (binary): ocaml-dev-file-not-in-usr-lib-ocaml 1 file in usr/lib
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/desc
new file mode 100644
index 0000000..fed6496
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/byte-code/plugin
diff --git a/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/hints
new file mode 100644
index 0000000..d68e985
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/byte-code/plugin/ocaml-general/eval/hints
@@ -0,0 +1 @@
+libocaml-general-ocaml (binary): ocaml-dangling-cmxs [usr/lib/ocaml/bar.cmxs]
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/debian/rules b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/debian/rules
new file mode 100644
index 0000000..3ea7a63
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/debian/rules
@@ -0,0 +1,12 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+
+%:
+ dh $@
+
+override_dh_strip:
+ dh_strip -X usr/lib/debug -X unstripped -X ocaml
+
+override_dh_dwz:
+ # Can error with "deadbeefdeadbeef.debug: Found compressed .debug_info section, not attempting dwz compression"
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/fill-values
new file mode 100644
index 0000000..a24247d
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: binaries-general
+Description: Misc errors related to binaries
+Package-Architecture: any
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..cf0f211
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile
@@ -0,0 +1,64 @@
+# turn off PIE in CC in case we have a PIEful toolchain:
+ifneq ($(findstring -no-pie,$(shell gcc -no-pie 2>&1)),)
+ CC := gcc
+else
+ CC := gcc -fno-pie -no-pie
+endif
+
+NOPIE_CFLAGS = $(filter-out -fPIE,$(CFLAGS))
+NOPIE_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS))
+COMPILE:= $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
+COMPILE_NOPIE:= $(CC) $(NOPIE_CFLAGS) $(CPPFLAGS) $(NOPIE_LDFLAGS)
+# extract from readelf
+GETBUILDID:=./getbuildid
+
+all:
+ # rpath not matching any of the exceptions to the rpath checks
+ # - with profiling enabled.
+ $(COMPILE_NOPIE) -o basic basic.c -pg -Wl,--rpath,/usr/local/lib
+ # rpath shipped in the package, but one of {/usr}?/lib
+ $(COMPILE) -o basiclibrpath basic.c -Wl,--rpath,/usr/lib
+ # non-special rpath shipped in the package
+ $(COMPILE) -o basicshippedrpath basic.c -Wl,--rpath,/usr/share/foo
+ # special rpath shipped in the package, multiple paths
+ $(COMPILE) -o basicshippedrpathmore basic.c -Wl,--rpath,/usr/lib/binaries-general:/usr/lib/binaries-general/bar
+ # static version of basic for debugging checks
+ $(COMPILE_NOPIE) -static -o basic.static basic.c
+ # static executable to trigger ocaml check
+ $(COMPILE_NOPIE) -o ocaml-exec ocaml.c
+ # version with debug
+ $(COMPILE) -o basicdebug -g3 -Wl,--build-id basic.c
+
+install:
+ # according to local debian rules /usr/lib/debug is unstripped
+ install -d $(DESTDIR)/usr/share/foo/
+ install -d $(DESTDIR)/usr/lib/debug/usr/share/foo/
+ install -d $(DESTDIR)/usr/lib/foo/
+ install -d $(DESTDIR)/usr/bin
+
+ install -m 755 -c basic $(DESTDIR)/usr/share/foo/basic
+ objcopy --only-keep-debug basic $(DESTDIR)/usr/lib/debug/usr/share/foo/basic
+ strip -s $(DESTDIR)/usr/lib/debug/usr/share/foo/basic
+ install -m 755 -c basiclibrpath $(DESTDIR)/usr/lib/foo/basiclibrpath
+ install -m 755 -c basicshippedrpath $(DESTDIR)/usr/lib/foo/basicshippedrpath
+ install -m 755 -c ocaml-exec $(DESTDIR)/usr/lib/foo/ocaml-exec
+ install -m 744 -c basicshippedrpathmore $(DESTDIR)/usr/lib/foo/basicshippedrpathmore
+ objcopy --only-keep-debug basic $(DESTDIR)/usr/lib/debug/basic
+ install -d "$(DESTDIR)/usr/lib/debug/.build-id/"`$(GETBUILDID) -s basicdebug`
+ install -m 755 -c basicdebug $(DESTDIR)/usr/share/foo/basicdebug
+ # force fake buildid in order to have tag matching ok (deadbeefdeadbeef)
+ install -d "$(DESTDIR)/usr/lib/debug/.build-id/de"
+ objcopy --compress-debug-sections basicdebug \
+ "$(DESTDIR)/usr/lib/debug/.build-id/de/deadbeefdeadbeef.debug"
+ install -d "$(DESTDIR)/usr/lib/debug/.build-id/"`$(GETBUILDID) -s basicdebug`
+ objcopy --compress-debug-sections --only-keep-debug basicdebug \
+ "$(DESTDIR)/usr/lib/debug/.build-id/"`$(GETBUILDID) -s basicdebug`"/"`$(GETBUILDID) -f basicdebug`.debug
+ install -m 755 -c basic.static $(DESTDIR)/usr/lib/debug/
+ # according to local debian rules unstripped in name avoid dh_strip to do the work
+ install -m 755 basicdebug $(DESTDIR)/usr/bin/unstripped
+ install -m 755 basic.static $(DESTDIR)/usr/bin/static
+
+clean distclean:
+ rm -f basic
+
+check test:
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/basic.c b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/basic.c
new file mode 100644
index 0000000..3618004
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/basic.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main(int argc, char *argv[])
+{
+ char t[10];
+ printf("Hello world!\n");
+ /* forces a stack protector */
+ (void) strcpy(t,argv[0]);
+ return (int) t[0];
+}
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/getbuildid b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/getbuildid
new file mode 100755
index 0000000..0060d2b
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/getbuildid
@@ -0,0 +1,30 @@
+#!/bin/sh
+# get build-id of binary
+
+set -e
+
+usage() {
+ echo "Usage: getbuildid [flag] file";
+ echo " print build-id of an object file"
+ echo "flags:"
+ echo " -f : full build-id (default)."
+ echo " -s : short build-id aka the first two characters."
+}
+
+if test $# -lt 1; then usage; exit 77; fi
+if test $# -gt 3; then usage; exit 77; fi
+
+if test $# -eq 1; then
+ LC_ALL=C readelf -n "$1" | grep -i 'Build Id:' | sed 's/.*:[[:blank:]]*\([[:digit:]|abcdef]*\).*/\1/g'
+else
+ case "x$1" in
+ 'x-f')
+ LC_ALL=C readelf -n "$2" | grep -i 'Build Id:' | sed 's/.*:[[:blank:]]*\([[:digit:]|abcdef]*\).*/\1/g' ;;
+ 'x-s')
+ LC_ALL=C readelf -n "$2" | grep -i 'Build Id:' | sed 's/.*:[[:blank:]]*\([[:digit:]|abcdef]\{2\}\).*/\1/g' ;;
+ *)
+ exit 2;
+ esac
+fi
+
+exit 0;
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/ocaml.c b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/ocaml.c
new file mode 100644
index 0000000..370d17d
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/ocaml.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int
+main(int argc, char **argv)
+{
+ if (argc > 2) {
+ puts("Caml1999X000");
+ }
+ puts("\n");
+ return 0;
+}
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/desc b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/desc
new file mode 100644
index 0000000..bcd8254
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: binaries-general
+Check: languages/ocaml/custom-executable
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/hints b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/hints
new file mode 100644
index 0000000..30a0d71
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/hints
@@ -0,0 +1 @@
+binaries-general (binary): ocaml-custom-executable [usr/lib/foo/ocaml-exec]
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/post-test b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/post-test
new file mode 100755
index 0000000..11ad2c8
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/eval/post-test
@@ -0,0 +1 @@
+/: hardening-.*/ d
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/control.in b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/control.in
new file mode 100644
index 0000000..345bc0f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libocaml-general-ocaml
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml library package for tests
+ 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.
+ .
+ A library package for OCaml checks.
+
+Package: libocaml-general-ocaml-dev
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: OCaml dev package for tests
+ 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.
+ .
+ A development package for OCaml checks.
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
new file mode 100644
index 0000000..870611a
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml-dev.install
@@ -0,0 +1,12 @@
+symbol-dev.a usr/lib/ocaml/
+libbaz.a usr/lib/ocaml/
+ocaml/foo.cmi usr/lib/
+ocaml/foo.cmi usr/lib/ocaml/
+ocaml/bar.cmi usr/lib/ocaml/
+ocaml/baz.cmi usr/lib/ocaml/
+ocaml/boo.cmi usr/lib/ocaml/
+ocaml/symbol2.cmx usr/lib/ocaml/
+ocaml/symbol-dev.cmx usr/lib/ocaml/
+ocaml/bleh.cmo usr/lib/ocaml/
+ocaml/bleh.cma usr/lib/ocaml/
+ocaml/META usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
new file mode 100644
index 0000000..00a96ae
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.dirs
@@ -0,0 +1 @@
+usr/lib/ocaml
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.install b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
new file mode 100644
index 0000000..ebd6194
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/debian/libocaml-general-ocaml.install
@@ -0,0 +1,3 @@
+ocaml/foo.cmxa usr/lib/ocaml/
+ocaml/bar.cmxs usr/lib/ocaml/
+ocaml/symbol.cmx usr/lib/ocaml/
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/fill-values b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/fill-values
new file mode 100644
index 0000000..91956e2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: ocaml-general
+Package-Architecture: any
+Section: ocaml
+Description: Test the OCaml-related tags
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..da8b039
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/Makefile
@@ -0,0 +1,17 @@
+# A simple makefile to build a *.o file and a *.a file to install to test
+# the OCaml checks for dangling *.cmx files.
+all: symbol.a symbol-dev.a libbaz.a
+
+%.a: %.o
+ ar rv $@ $<
+ # Not entirely sure this is acceptable for a normal OCaml
+ # library, but for this test the library does not need
+ # to work and it avoids a warning about unneeded sections.
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $@
+
+symbol-dev.o: symbol.c
+ cc -c $< -o $@
+
+libbaz.a: symbol-dev.o
+ ar r $@ $<
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/META b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/META
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/META
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmi b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmxs b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmxs
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bar.cmxs
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/baz.cmi b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/baz.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/baz.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cma b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cma
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cma
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cmo b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cmo
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/bleh.cmo
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/boo.cmi b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/boo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/boo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmi b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmi
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmi
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmxa b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmxa
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/foo.cmxa
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol-dev.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol.cmx b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol2.cmx b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
new file mode 100644
index 0000000..72885c2
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/ocaml/symbol2.cmx
@@ -0,0 +1 @@
+MEANINGLESS CONTENT
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/symbol.c b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/symbol.c
new file mode 100644
index 0000000..79a896f
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/build-spec/orig/symbol.c
@@ -0,0 +1,5 @@
+int
+symbol(void)
+{
+ return 42;
+}
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/desc b/t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/desc
new file mode 100644
index 0000000..5a6bca5
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/desc
@@ -0,0 +1,2 @@
+Testname: ocaml-general
+Check: languages/ocaml/meta
diff --git a/t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/hints b/t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/hints
new file mode 100644
index 0000000..db55eaf
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/meta/ocaml-general/eval/hints
@@ -0,0 +1 @@
+libocaml-general-ocaml-dev (binary): ocaml-meta-without-suggesting-findlib
diff --git a/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/control.in b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/control.in
new file mode 100644
index 0000000..42dccfc
--- /dev/null
+++ b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libtest-simple-perl
+Section: perl
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}
+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.
+
+Package: libversion-perl
+Section: perl
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: another [% $description %]
+ This is another test package, designed to exercise epoch handling
+ in the 'package-superseded-by-perl' check. 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.
diff --git a/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/rules b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/rules
new file mode 100755
index 0000000..c965de0
--- /dev/null
+++ b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/debian/rules
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_gencontrol:
+ dh_gencontrol -plibversion-perl -- -v9:999
+ dh_gencontrol -i -Nlibversion-perl
+
diff --git a/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/fill-values b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/fill-values
new file mode 100644
index 0000000..33091fe
--- /dev/null
+++ b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: fields-perl-provides
+Version: 0.26
+Description: Test for packages provided by perl
diff --git a/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/desc b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/desc
new file mode 100644
index 0000000..2e8f861
--- /dev/null
+++ b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/desc
@@ -0,0 +1,2 @@
+Testname: fields-perl-provides
+Check: languages/perl/core/provides
diff --git a/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/hints b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/hints
new file mode 100644
index 0000000..a2ffa85
--- /dev/null
+++ b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/hints
@@ -0,0 +1 @@
+libtest-simple-perl (binary): package-superseded-by-perl with VERSION
diff --git a/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/post-test b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/post-test
new file mode 100644
index 0000000..a96fc76
--- /dev/null
+++ b/t/recipes/checks/languages/perl/core/provides/fields-perl-provides/eval/post-test
@@ -0,0 +1 @@
+s/(with )[0-9.]*/\1VERSION/
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/clean b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/clean
new file mode 100644
index 0000000..be4ae72
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/clean
@@ -0,0 +1,5 @@
+bar.1*
+Bar.pm
+bar.png
+perllocal.pod
+preferences
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/dirs b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/dirs
new file mode 100644
index 0000000..e8759c9
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/dirs
@@ -0,0 +1,15 @@
+etc/apt/preferences.d
+etc/apt
+etc/init
+bin/foo
+mnt/foo
+tmp/foo
+usr/bin/foo
+usr/foo
+usr/lib/debug
+usr/local/foo
+usr/lib/site-python/foo
+usr/share/doc/files-foo-in-bar/examples/examples
+var/foo
+var/lock/foo
+var/run/foo
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/install b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/install
new file mode 100644
index 0000000..ba46865
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/install
@@ -0,0 +1,61 @@
+bar bin/foo
+bar emul
+bar etc/apt/preferences.d
+bar etc/apt/sources.list.d
+bar etc/apt/trusted.gpg.d
+bar etc/gconf/schemas/
+bar etc/init
+bar etc/rc.boot
+bar etc/rc.d
+bar etc/udev/rules.d
+bar lib32
+bar lib64
+bar libx32
+bar mnt/foo
+bar run/foo
+bar srv/foo
+bar tmp/foo
+bar usr/bin/foo
+bar usr/foo
+bar usr/lib/debug/
+bar usr/lib32
+bar usr/lib64
+bar usr/libexec
+bar usr/libx32
+bar usr/lib/perl/
+bar usr/lib/python2.7/
+bar usr/lib/sgml
+bar usr/lib/site-python/foo
+bar usr/local/foo
+bar usr/share
+bar usr/share/doc
+bar usr/share/doc/files-foo-in-bar/.xvpics/
+bar usr/share/doc/files-foo-in-bar/.thumbnails/
+bar usr/share/doc/files-foo-in-bar/examples/examples
+bar usr/share/mime/foo/
+bar usr/share/mime/packages/
+bar usr/share/perl/
+bar usr/share/vim/vimcurrent/
+bar usr/share/vim/vim73/
+bar usr/X11R6/bin
+bar usr/X11R6/lib/X11/fonts/
+bar var/foo
+bar var/lock/foo
+bar var/run/foo
+bar var/www/foo
+bar home/johndoe
+bar root
+bar etc/opt
+bar var/cache/pbuilder/build
+bar var/lib/sbuild
+bar var/lib/buildd
+bar build/dir/foo
+bar tmp/buildd/dir/foo
+bar etc/dhcp3
+
+Bar.pm usr/lib/perl5/Foo
+bar.png usr/lib/files-foo-in-bar
+
+perllocal.pod usr/lib/perl-foo
+.packlist usr/lib/perl5
+preferences etc/apt
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/manpages b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/manpages
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/manpages
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/rules b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/rules
new file mode 100755
index 0000000..69a61df
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_auto_build:
+ pod2man --section 1 bar.pod > bar.1
+ gzip -n --best bar.1
+ cp bar Bar.pm
+ cp bar bar.png
+ cp bar perllocal.pod
+ touch .packlist
+ touch preferences
+
+override_dh_auto_install:
+ dh_install bar.1.gz usr/X11R6/man/man1/
+
+# skip
+override_dh_usrlocal override_dh_gconf:
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/fill-values b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/fill-values
new file mode 100644
index 0000000..17ea927
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-foo-in-bar
+Description: Test tags about files or dirs in given paths
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar
new file mode 100644
index 0000000..980a0d5
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar
@@ -0,0 +1 @@
+Hello World!
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar.pod b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar.pod
new file mode 100644
index 0000000..4144a36
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/build-spec/orig/bar.pod
@@ -0,0 +1,18 @@
+
+=head1 NAME
+
+bar - does stuff
+
+=head1 SYNOPSIS
+
+bar
+
+=head1 DESCRIPTION
+
+Does nothing.
+
+=head1 AUTHOR
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/eval/desc b/t/recipes/checks/languages/perl/files-foo-in-bar/eval/desc
new file mode 100644
index 0000000..39b2926
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-foo-in-bar
+Check: languages/perl
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/eval/hints b/t/recipes/checks/languages/perl/files-foo-in-bar/eval/hints
new file mode 100644
index 0000000..b9ba6b3
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/eval/hints
@@ -0,0 +1,5 @@
+files-foo-in-bar (binary): perl-module-in-core-directory [usr/share/perl/bar]
+files-foo-in-bar (binary): perl-module-in-core-directory [usr/lib/perl/bar]
+files-foo-in-bar (binary): package-installs-perllocal-pod [usr/lib/perl-foo/perllocal.pod]
+files-foo-in-bar (binary): package-installs-packlist [usr/lib/perl5/.packlist]
+files-foo-in-bar (binary): package-installs-nonbinary-perl-in-usr-lib-perl5 [usr/lib/perl5/Foo/Bar.pm]
diff --git a/t/recipes/checks/languages/perl/files-foo-in-bar/eval/post-test b/t/recipes/checks/languages/perl/files-foo-in-bar/eval/post-test
new file mode 100644
index 0000000..5af7ea2
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-foo-in-bar/eval/post-test
@@ -0,0 +1,2 @@
+# Ignore all duplicate-files tags
+/[^ ]* \([^)]*\): duplicate-files .*/ d
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/control.in b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/control.in
new file mode 100644
index 0000000..275b801
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/control.in
@@ -0,0 +1,17 @@
+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: ${shlibs:Depends}, ${misc:Depends},
+ libperl4-corelibs-perl | perl (<< 5.12.3-7)
+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.
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/install b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/install
new file mode 100644
index 0000000..595d5ed
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/debian/install
@@ -0,0 +1 @@
+Naughty.pm usr/share/perl5
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/fill-values b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/fill-values
new file mode 100644
index 0000000..2eb1bd8
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-uses-perl4-libs-with-dep
+Description: Check that script-uses-perl4-libs-without-dep works (negative)
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/orig/Naughty.pm b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/orig/Naughty.pm
new file mode 100644
index 0000000..f4a8c51
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/build-spec/orig/Naughty.pm
@@ -0,0 +1,7 @@
+package Naughty;
+use strict;
+use warnings;
+
+require 'assert.pl';
+
+1;
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/desc b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/desc
new file mode 100644
index 0000000..ae522e5
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-uses-perl4-libs-with-dep
+Test-Against: perl-module-uses-perl4-libs-without-dep
+Check: languages/perl
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/hints b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-with-dep/eval/hints
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/debian/install b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/debian/install
new file mode 100644
index 0000000..595d5ed
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/debian/install
@@ -0,0 +1 @@
+Naughty.pm usr/share/perl5
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/fill-values b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/fill-values
new file mode 100644
index 0000000..7c7335b
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: files-uses-perl4-libs-without-dep
+Description: Check that script-uses-perl4-libs-without-dep works (positive)
+Extra-Build-Depends: perl
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/orig/Naughty.pm b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/orig/Naughty.pm
new file mode 100644
index 0000000..f4a8c51
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/build-spec/orig/Naughty.pm
@@ -0,0 +1,7 @@
+package Naughty;
+use strict;
+use warnings;
+
+require 'assert.pl';
+
+1;
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/desc b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/desc
new file mode 100644
index 0000000..de74b29
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-uses-perl4-libs-without-dep
+Check: languages/perl
diff --git a/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/hints b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/hints
new file mode 100644
index 0000000..7dafbb5
--- /dev/null
+++ b/t/recipes/checks/languages/perl/files-uses-perl4-libs-without-dep/eval/hints
@@ -0,0 +1 @@
+files-uses-perl4-libs-without-dep (binary): perl-module-uses-perl4-libs-without-dep assert.pl [usr/share/perl5/Naughty.pm:5]
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/changelog.in b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/changelog.in
new file mode 100644
index 0000000..b79c4ca
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/changelog.in
@@ -0,0 +1,78 @@
+filenames ([% $version %]) [% $distribution %]; urgency=low
+
+ * /me is doing a correct NMU of this package, bumping the epoch too.
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:04:39 +0200
+
+filenames (11) unstable; urgency=low
+
+ * Add a README.macos.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Mon, 12 Apr 2004 23:35:24 +0200
+
+filenames (10) unstable; urgency=low
+
+ * Some new files to check the checks for the use of /usr/*/X11 and
+ /usr/X11R6/*.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 17:35:20 +0200
+
+filenames (9) unstable; urgency=low
+
+ * Add a two *.ali files, one with the right permission, one with
+ the more common, but false one.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 00:18:16 +0200
+
+filenames (8) unstable; urgency=low
+
+ * Add a real ancient file
+
+ -- Frank Lichtenheld <djpig@debian.org> Thu, 8 Apr 2004 22:22:40 +0200
+
+filenames (7) unstable; urgency=low
+
+ * Add a dozen symlinks, some correct, some not
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 27 Feb 2004 01:28:42 +0100
+
+filenames (6) unstable; urgency=low
+
+ * Add perl files to check if
+ package-installs-nonbinary-perl-in-usr-lib-perl5 is correctly
+ issued even after attempting to suppress it in some cases
+
+ -- Frank Lichtenheld <djpig@debian.org> Fri, 27 Feb 2004 00:49:44 +0100
+
+filenames (5) unstable; urgency=low
+
+ * Added check for too long symlink
+
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 3 Jan 2001 13:20:31 -0800
+
+filenames (4) unstable; urgency=low
+
+ * Add /usr/lib/menu/menu file to test the bad-menu-file-name tag.
+ * Add /usr/lib/menu/README to test the new execption for it.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 22 Oct 1998 15:42:52 +0200
+
+filenames (3) unstable; urgency=low
+
+ * Don't rely on the installer's umask.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 20 Aug 1998 12:45:47 +0200
+
+filenames (2) unstable; urgency=low
+
+ * Noted more limitations on what filenames lintian handles.
+ * Added Changes.gz in /usr/doc/filenames and made a symlink from changelog.gz
+ to Changes.gz.
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:46:11 +0200
+
+filenames (1) unstable; urgency=low
+
+ * Initial version
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:25:01 +0200
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/control b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/control
new file mode 100644
index 0000000..1ff9c50
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/control
@@ -0,0 +1,42 @@
+Source: filenames
+Maintainer: Lintian Maintainer <lintian-maint@debian.org>
+Standards-Version: 3.1.1
+Rules-Requires-Root: binary-targets
+
+Package: filenames
+Architecture: any
+Description: see how lintian reacts to weird filenames
+ This package contains files with the most evil names I could find,
+ except for ones that lintian is explicitly not designed to handle.
+ .
+ Lintian does not handle filenames containing newlines, or filenames
+ that contain the strings " link to ", " -> ", or ": ". The last one
+ is used as a separator by the file command, the others are used as
+ separators by tar.
+ .
+ Lintian also does not handle filenames that contain backslashes, or
+ other characters that are mangled by tar's -tv output.
+
+Package: filename-games
+Architecture: all
+Depends: filenames
+Section: games
+Description: Test game filename/location checks
+ This package contains files with slightly less evil names than
+ filenames.
+ .
+ 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.
+
+Package: more-filename-games
+Architecture: all
+Depends: filenames, filename-games
+Section: games
+Priority: optional
+Description: More test for game filename/location checks
+ This package contains no evil names, only evil locations.
+ .
+ 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.
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/doc-base b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/doc-base
new file mode 100644
index 0000000..e5a611b
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/doc-base
@@ -0,0 +1,11 @@
+Document: testing
+Title: Working doc-base control file
+Author: Russ Allbery
+Abstract: This control file ensures that we don't get false positives for
+ correct doc-base files.
+ .
+ There isn't anything wrong with this one.
+Section: Education
+
+Format: Text
+Files: /usr/share/doc/filenames/README.macosx
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/rules b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/rules
new file mode 100755
index 0000000..0b9e87c
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/debian/rules
@@ -0,0 +1,231 @@
+#!/usr/bin/make -f
+
+# Copyright (C) 1998 Richard Braakman
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, you can find it on the World Wide
+# Web at https://www.gnu.org/copyleft/gpl.html, or write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)')
+
+clean:
+ mkdir -p .svn CVS "{arch}" .arch-ids .bzr
+ touch data/.cvsignore data/svn-commit.tmp data/svk-commitsEr9P.tmp
+ touch data/.arch-inventory
+ touch 'data/.#Maelstrom Sound.1.1.1' 'data/Maelstrom Sounce.r121'
+ touch 'data/Maelstrom Sound.mine'
+ touch "data/'\\ "
+ touch filenames.c~
+
+build-arch:
+
+build-indep:
+
+build: build-arch build-indep
+
+
+binary-arch:
+
+binary-indep:
+ install -d debian/tmp/DEBIAN
+ cp -a data debian/tmp/files
+ chmod -R go=rX debian/tmp/files
+
+ install -d debian/tmp/usr/lib/filenames
+ install -m 555 -d debian/tmp/usr/lib/filenames/readonly
+ touch debian/tmp/usr/lib/filenames/readonly/test
+
+ install -d debian/tmp/usr/lib/menu
+ install -d debian/tmp/usr/share/menu
+ touch debian/tmp/usr/lib/menu/README
+ touch debian/tmp/usr/share/menu/README
+ touch debian/tmp/usr/lib/menu/menu
+ touch debian/tmp/usr/share/menu/menu
+ chmod 644 debian/tmp/usr/lib/menu/*
+
+ install -d debian/tmp/$(VENDORARCH)/foo
+ mkdir debian/tmp/$(VENDORARCH)/.svn
+ mkdir debian/tmp/$(VENDORARCH)/CVS
+ mkdir "debian/tmp/$(VENDORARCH)/{arch}"
+ mkdir debian/tmp/$(VENDORARCH)/.arch-ids
+ mkdir debian/tmp/$(VENDORARCH)/.bzr
+ mkdir debian/tmp/$(VENDORARCH)/.be
+ mkdir debian/tmp/$(VENDORARCH)/.ditrack
+ install -d debian/tmp/usr/share/perl5
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.gitignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgtags
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hg_archival.txt
+
+ touch debian/tmp/$(VENDORARCH)/foo/.packlist
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/.packlist
+ touch debian/tmp/$(VENDORARCH)/foo/bar.pm
+ TZ=UTC touch -t 197501010101 debian/tmp/$(VENDORARCH)/foo/ancient.pm
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/bar.pm
+
+ install -d debian/tmp/usr/share/pixmaps
+ install -d debian/tmp/usr/share/pixmaps/foo
+ touch debian/tmp/usr/share/pixmaps/license.jpeg
+ touch debian/tmp/usr/share/pixmaps/licence.jpg
+ touch debian/tmp/usr/share/pixmaps/copying.xpm
+ touch debian/tmp/usr/share/pixmaps/foo/COPYING.svg
+ touch debian/tmp/usr/share/pixmaps/foo/copying.png
+ touch debian/tmp/usr/share/pixmaps/license.txt
+ touch debian/tmp/usr/share/pixmaps/license.foo
+ touch debian/tmp/usr/share/pixmaps/COPYING
+
+ install -d debian/tmp/usr/share/linda/overrides
+ echo 'foo' > debian/tmp/usr/share/linda/overrides/filenames
+
+ install -d debian/tmp/usr/share/doc/filenames
+ touch debian/tmp/usr/share/doc/filenames/README.macosx
+
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\Ã¥l
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\ål
+
+ echo foo > debian/tmp/usr/share/doc/filenames/Thumbs.db
+ echo foo > debian/tmp/usr/share/doc/filenames/.DS_Store
+ echo foo > debian/tmp/usr/share/doc/filenames/._NEWS.Debian
+
+ touch debian/tmp/usr/share/doc/filenames/news.debian
+ gzip -n debian/tmp/usr/share/doc/filenames/news.debian
+ touch debian/tmp/usr/share/doc/filenames/NEWS.Debian
+
+ echo foo > debian/tmp/usr/share/doc/filenames/link-one
+ ln debian/tmp/usr/share/doc/filenames/link-one \
+ debian/tmp/usr/share/doc/filenames/link-two
+
+ install -d debian/tmp/usr/share/doc/filenames/examples
+ touch debian/tmp/usr/share/doc/filenames/examples/__init__.py
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+ gzip -n debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+
+ install -d debian/tmp/usr/lib/ada/adalib/
+ touch debian/tmp/usr/lib/ada/adalib/test.ali debian/tmp/usr/lib/ada/adalib/test2.ali
+ chmod 0644 debian/tmp/usr/lib/ada/adalib/test.ali
+ chmod 0444 debian/tmp/usr/lib/ada/adalib/test2.ali
+
+ install -d debian/tmp/usr/bin/X11/
+ touch debian/tmp/usr/bin/X11/testxbin
+ install -d debian/tmp/usr/X11R6/bin
+ touch debian/tmp/usr/X11R6/bin/testxbin2
+ install -d debian/tmp/usr/include/X11
+ touch debian/tmp/usr/include/X11/foo.h
+
+ install -d debian/tmp/usr/bin/mh
+ touch debian/tmp/usr/bin/mh/read
+ chmod 755 debian/tmp/usr/bin/mh/read
+ install -d debian/tmp/usr/bin/bin
+ touch debian/tmp/usr/bin/bin/bad
+ chmod 755 debian/tmp/usr/bin/bin/bad
+
+ install -m 644 debian/changelog debian/tmp/usr/share/doc/filenames/Changes
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/Changes
+ ln -s Changes.gz debian/tmp/usr/share/doc/filenames/changelog.gz
+
+ install -d debian/tmp/var/www
+ echo foo > debian/tmp/var/www/foo
+
+ install -d debian/tmp/srv/foo
+ touch debian/tmp/srv/foo/bar
+ install -d debian/tmp/opt/foo
+ touch debian/tmp/opt/foo/bar
+
+ install -d debian/tmp/etc/gconf/schemas
+ touch debian/tmp/etc/gconf/schemas/test.schema
+
+ install -d debian/tmp/usr/lib/sgml
+ touch debian/tmp/usr/lib/sgml/package
+
+ install -d debian/tmp/usr/share/gnome/apps/System
+ touch debian/tmp/usr/share/gnome/apps/System/foo.desktop
+
+ install -d debian/tmp/usr/share/filenames
+ touch debian/tmp/usr/share/filenames/jquery.js
+ touch debian/tmp/usr/share/filenames/jquery.lite.js
+ touch debian/tmp/usr/share/filenames/jquery.min.js
+ touch debian/tmp/usr/share/filenames/jquery.pack.js
+ touch debian/tmp/usr/share/filenames/mochikit.js
+ touch debian/tmp/usr/share/filenames/prototype-1.2.3.4.js
+ touch debian/tmp/usr/share/filenames/prototype.js
+ touch debian/tmp/usr/share/filenames/prototype.js.gz
+ touch debian/tmp/usr/share/filenames/scriptaculous.js
+ touch debian/tmp/usr/share/filenames/yahoo-dom-event.js
+ touch debian/tmp/usr/share/filenames/yahoo-min.js
+
+ ln -s '../filenames/doc/version6.txt.gz' debian/tmp/usr/share/doc/filenames/version.txt.gz
+ ln -s ../../share/symlink debian/tmp/usr/lib/filenames/symlink1ok
+ ln -s ../../../etc/symlink debian/tmp/usr/lib/filenames/symlink1wrong
+ ln -s ../../../../etc/symlink debian/tmp/usr/lib/filenames/symlink2wrong
+ ln -s /etc/symlink debian/tmp/usr/lib/filenames/symlink2ok
+ ln -s /usr/lib/filenames/symlink2 debian/tmp/usr/lib/filenames/symlink3wrong
+ ln -s test debian/tmp/usr/lib/filenames/symlink3ok
+ ln -s ../filenames/symlink2 debian/tmp/usr/lib/filenames/symlink4wrong
+ ln -s ../menu/../somethingelse debian/tmp/usr/lib/filenames/symlink5wrong
+ ln -s ../menu/somethingelse debian/tmp/usr/lib/filenames/symlink4ok
+ ln -s ./file4 debian/tmp/usr/lib/filenames/symlink6wrong
+ ln -s ../menu/./something debian/tmp/usr/lib/filenames/symlink7wrong
+ ln -s ../menu//something debian/tmp/usr/lib/filenames/symlink8wrong
+ ln -s ../menu/something/ debian/tmp/usr/lib/filenames/symlink9wrong
+ ln -s .. debian/tmp/usr/lib/filenames/symlink5ok+warn
+ ln -s . debian/tmp/usr/lib/filenames/symlink6ok+warn
+ ln -s / debian/tmp/usr/lib/filenames/symlink7ok+warn
+ ln -s ../../.. debian/tmp/usr/lib/filenames/symlink10wrong
+
+# devhelp tests. Files in /usr/share/gtk-doc/html or /usr/share/devhelp/books
+# are okay. Files elsewhere are okay iff their parent path is symlinked into
+# one of those paths.
+ install -d debian/tmp/usr/share/devhelp/books/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/a.devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ gzip -n -9 debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ install -d debian/tmp/usr/share/gtk-doc/html/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ gzip -n -9 debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ install -d debian/tmp/usr/share/doc/filenames/good-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/good-devhelp/.devhelp2
+ install -d debian/tmp/usr/share/doc/filenames/bad-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ ln -s ../../doc/filenames/good-devhelp debian/tmp/usr/share/gtk-doc/html/good
+ ln -s ../doc/filenames/bad-devhelp debian/tmp/usr/share/gtk-doc/html/bad
+
+ install -d debian/tmp/usr/share/doc-base
+ install -m 644 debian/doc-base debian/tmp/usr/share/doc-base/filenames
+
+ dpkg-gencontrol -pfilenames -Pdebian/tmp
+ dpkg --build debian/tmp ..
+
+ install -d debian/filename-games debian/filename-games/DEBIAN
+ install -d debian/filename-games/usr debian/filename-games/usr/games debian/filename-games/usr/bin
+ echo '#! /bin/sh' > debian/filename-games/usr/bin/test-game
+ chmod 755 debian/filename-games/usr/bin/test-game
+ dpkg-gencontrol -pfilename-games -Pdebian/filename-games
+ dpkg --build debian/filename-games ..
+
+ install -d debian/more-filename-games debian/more-filename-games/DEBIAN
+ install -d debian/more-filename-games/usr debian/more-filename-games/usr/games debian/more-filename-games/usr/bin
+ echo '#! /bin/sh' > debian/more-filename-games/usr/bin/another-test-game
+ echo '#! /bin/sh' > debian/more-filename-games/usr/games/yet-another-test-game
+ chmod 755 debian/more-filename-games/usr/bin/another-test-game debian/more-filename-games/usr/games/yet-another-test-game
+ dpkg-gencontrol -pmore-filename-games -Pdebian/more-filename-games
+ dpkg --build debian/more-filename-games ..
+
+binary: binary-arch binary-indep
+
+.PHONY: build-indep build-arch build binary-arch binary-indep binary clean
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/fill-values b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/fill-values
new file mode 100644
index 0000000..062a1ea
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-non-native
+Testname: legacy-filenames
+Source: filenames
+Version: 1:12-0.1
+Description: Legacy test "filenames"
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/ .tif b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/ .tif
new file mode 100644
index 0000000..07fd914
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/ .tif
@@ -0,0 +1,2 @@
+This filename was inspired by the ".tif used by fnlib. The real package
+uses space.tif.
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/".tif b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/".tif
new file mode 100644
index 0000000..e005775
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/".tif
@@ -0,0 +1 @@
+This filename is really used, by fnlib.
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/Maelstrom Sound b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/Maelstrom Sound
new file mode 100644
index 0000000..4110410
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/build-spec/orig/data/Maelstrom Sound
@@ -0,0 +1 @@
+This filename occurs in the maelstrom package.
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/eval/desc b/t/recipes/checks/languages/perl/legacy-filenames/eval/desc
new file mode 100644
index 0000000..6a1b7f6
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-filenames
+Check: languages/perl
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/eval/hints b/t/recipes/checks/languages/perl/legacy-filenames/eval/hints
new file mode 100644
index 0000000..f87332f
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/eval/hints
@@ -0,0 +1,2 @@
+filenames (binary): package-installs-nonbinary-perl-in-usr-lib-perl5 [usr/lib/ma-dir/perl/version/foo/bar.pm]
+filenames (binary): package-installs-nonbinary-perl-in-usr-lib-perl5 [usr/lib/ma-dir/perl/version/foo/ancient.pm]
diff --git a/t/recipes/checks/languages/perl/legacy-filenames/eval/post-test b/t/recipes/checks/languages/perl/legacy-filenames/eval/post-test
new file mode 100644
index 0000000..571e35d
--- /dev/null
+++ b/t/recipes/checks/languages/perl/legacy-filenames/eval/post-test
@@ -0,0 +1,3 @@
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
+s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g
+/package-installs-packlist/ d
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/control.in b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/control.in
new file mode 100644
index 0000000..34fc039
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/control.in
@@ -0,0 +1,17 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], perl
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libperl4-corelibs-perl | perl (<< 5.12.3-7)
+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.
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/install b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/install
new file mode 100644
index 0000000..1cd0e18
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/install
@@ -0,0 +1 @@
+naughty-script usr/bin
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/manpages b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/manpages
new file mode 100644
index 0000000..36ff204
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/debian/manpages
@@ -0,0 +1 @@
+naughty-script.1
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/fill-values b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/fill-values
new file mode 100644
index 0000000..11b5f91
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: scripts-uses-perl4-libs-with-dep
+Description: Check that script-uses-perl4-libs-without-dep works (negative)
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/Makefile b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/Makefile
new file mode 100644
index 0000000..a7ddd36
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/Makefile
@@ -0,0 +1,7 @@
+all: naughty-script.1
+
+%.1: %
+ pod2man --section 1 "$<" > "$@"
+
+clean:
+ rm -f naughty-script.1
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/naughty-script b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/naughty-script
new file mode 100644
index 0000000..50f342e
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/build-spec/orig/naughty-script
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+naughty-script -- uses obsolete perl4 libs
+
+=head1 SYNOPSIS
+
+ naught-script
+
+=head1 DESCRIPTION
+
+This manpage is present to avoid a "binary-without-manpage" warning. :)
+
+=cut
+
+use strict;
+use warnings;
+
+do 'newgetopt.pl';
+
+NGetOpt();
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/desc b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/desc
new file mode 100644
index 0000000..4c34f70
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/desc
@@ -0,0 +1,4 @@
+Testname: scripts-uses-perl4-libs-with-dep
+Check: languages/perl/perl4/prerequisites
+Test-Against:
+ script-uses-perl4-libs-without-dep
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/hints b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-with-dep/eval/hints
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/install b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/install
new file mode 100644
index 0000000..1cd0e18
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/install
@@ -0,0 +1 @@
+naughty-script usr/bin
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/manpages b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/manpages
new file mode 100644
index 0000000..36ff204
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/debian/manpages
@@ -0,0 +1 @@
+naughty-script.1
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/fill-values b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/fill-values
new file mode 100644
index 0000000..3174317
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: scripts-uses-perl4-libs-without-dep
+Description: Check that script-uses-perl4-libs-without-dep works (positive)
+Extra-Build-Depends: perl
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/Makefile b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/Makefile
new file mode 100644
index 0000000..a7ddd36
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/Makefile
@@ -0,0 +1,7 @@
+all: naughty-script.1
+
+%.1: %
+ pod2man --section 1 "$<" > "$@"
+
+clean:
+ rm -f naughty-script.1
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/naughty-script b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/naughty-script
new file mode 100644
index 0000000..50f342e
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/build-spec/orig/naughty-script
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+naughty-script -- uses obsolete perl4 libs
+
+=head1 SYNOPSIS
+
+ naught-script
+
+=head1 DESCRIPTION
+
+This manpage is present to avoid a "binary-without-manpage" warning. :)
+
+=cut
+
+use strict;
+use warnings;
+
+do 'newgetopt.pl';
+
+NGetOpt();
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/desc b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/desc
new file mode 100644
index 0000000..524f84e
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/desc
@@ -0,0 +1,2 @@
+Testname: scripts-uses-perl4-libs-without-dep
+Check: languages/perl/perl4/prerequisites
diff --git a/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/hints b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/hints
new file mode 100644
index 0000000..5853f15
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl4/prerequisites/scripts-uses-perl4-libs-without-dep/eval/hints
@@ -0,0 +1 @@
+scripts-uses-perl4-libs-without-dep (binary): script-uses-perl4-libs-without-dep (does not satisfy libperl4-corelibs-perl:any | perl:any (<< 5.12.3-7)) newgetopt.pl [usr/bin/naughty-script:20]
diff --git a/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/pkg.install b/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/pkg.install
new file mode 100644
index 0000000..bcf6074
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/pkg.install
@@ -0,0 +1 @@
+usr/lib/perl5/* targetdir/
diff --git a/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/rules b/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/rules
new file mode 100755
index 0000000..b039fd4
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+
+%:
+ echo This file mentions /usr/lib/perl5/. qed.
+ dh $@
diff --git a/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/fill-values b/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/fill-values
new file mode 100644
index 0000000..851b2cb
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl5/cruft-perl/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: cruft-perl
+Description: Misc errors related to Perl
diff --git a/t/recipes/checks/languages/perl/perl5/cruft-perl/eval/desc b/t/recipes/checks/languages/perl/perl5/cruft-perl/eval/desc
new file mode 100644
index 0000000..4f79e74
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl5/cruft-perl/eval/desc
@@ -0,0 +1,2 @@
+Testname: cruft-perl
+Check: languages/perl/perl5
diff --git a/t/recipes/checks/languages/perl/perl5/cruft-perl/eval/hints b/t/recipes/checks/languages/perl/perl5/cruft-perl/eval/hints
new file mode 100644
index 0000000..ae7fd7f
--- /dev/null
+++ b/t/recipes/checks/languages/perl/perl5/cruft-perl/eval/hints
@@ -0,0 +1 @@
+cruft-perl (source): mentions-deprecated-usr-lib-perl5-directory [debian/rules]
diff --git a/t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/fill-values b/t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/fill-values
new file mode 100644
index 0000000..dfcfe2f
--- /dev/null
+++ b/t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: yapp-parser
+Skeleton: source-non-native
+Description: Source package with a prebuilt Parse::Yapp parser
diff --git a/t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/orig/perl/Dot.pm b/t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/orig/perl/Dot.pm
new file mode 100644
index 0000000..898b70b
--- /dev/null
+++ b/t/recipes/checks/languages/perl/yapp/yapp-parser/build-spec/orig/perl/Dot.pm
@@ -0,0 +1,14 @@
+####################################################################
+#
+# This file was generated using Parse::Yapp version 1.02.
+#
+# Don't edit this file, use source file instead.
+#
+# ANY CHANGE MADE HERE WILL BE LOST !
+#
+####################################################################
+
+Taken from lib/Graph/Reader/Dot.pm in libgraph-readwrite-perl-2.09
+on 1/22/20
+
+Felix Lechner
diff --git a/t/recipes/checks/languages/perl/yapp/yapp-parser/eval/desc b/t/recipes/checks/languages/perl/yapp/yapp-parser/eval/desc
new file mode 100644
index 0000000..3195837
--- /dev/null
+++ b/t/recipes/checks/languages/perl/yapp/yapp-parser/eval/desc
@@ -0,0 +1,3 @@
+Testname: yapp-parser
+Check: languages/perl/yapp
+See-Also: #921080
diff --git a/t/recipes/checks/languages/perl/yapp/yapp-parser/eval/hints b/t/recipes/checks/languages/perl/yapp/yapp-parser/eval/hints
new file mode 100644
index 0000000..a275624
--- /dev/null
+++ b/t/recipes/checks/languages/perl/yapp/yapp-parser/eval/hints
@@ -0,0 +1 @@
+yapp-parser (source): source-contains-prebuilt-yapp-parser [perl/Dot.pm]
diff --git a/t/recipes/checks/languages/php/composer/depends-composer/build-spec/debian/control.in b/t/recipes/checks/languages/php/composer/depends-composer/build-spec/debian/control.in
new file mode 100644
index 0000000..fc07151
--- /dev/null
+++ b/t/recipes/checks/languages/php/composer/depends-composer/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: [% $priority %]
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: [% $rules_requires_root %]
+Homepage: [% $homepage %]
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, composer
+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.
+ .
+ This package probably has no meaningful contents.
diff --git a/t/recipes/checks/languages/php/composer/depends-composer/build-spec/fill-values b/t/recipes/checks/languages/php/composer/depends-composer/build-spec/fill-values
new file mode 100644
index 0000000..b58213e
--- /dev/null
+++ b/t/recipes/checks/languages/php/composer/depends-composer/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: depends-composer
+Description: Installation package depends on composer
diff --git a/t/recipes/checks/languages/php/composer/depends-composer/eval/desc b/t/recipes/checks/languages/php/composer/depends-composer/eval/desc
new file mode 100644
index 0000000..108c8ec
--- /dev/null
+++ b/t/recipes/checks/languages/php/composer/depends-composer/eval/desc
@@ -0,0 +1,2 @@
+Testname: depends-composer
+Check: languages/php/composer
diff --git a/t/recipes/checks/languages/php/composer/depends-composer/eval/hints b/t/recipes/checks/languages/php/composer/depends-composer/eval/hints
new file mode 100644
index 0000000..924907b
--- /dev/null
+++ b/t/recipes/checks/languages/php/composer/depends-composer/eval/hints
@@ -0,0 +1 @@
+depends-composer (source): composer-prerequisite Depends (in section for depends-composer) [debian/control:13]
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/debian/install b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/debian/install
new file mode 100644
index 0000000..104313f
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/debian/install
@@ -0,0 +1,10 @@
+jquery* usr/share/php
+mocha.* usr/share/javascript/mocha
+bootstrap-* usr/share/php
+bootstrap.js usr/share/xul-ext/lintian
+streams.php usr/share/php
+streams.php usr/share/php/pomo
+rss_parse.php usr/share/php
+tiny_mce_popup.js usr/share/php
+jquery.js usr/share/doxygen-test/
+doxygen.css usr/share/doxygen-test
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/fill-values b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/fill-values
new file mode 100644
index 0000000..8c48bea
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-embedded
+Description: Check for detection of embedded PEAR modules
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js
new file mode 100644
index 0000000..d9c3762
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap-1.1.js
@@ -0,0 +1 @@
+This is an embedded javascript library from Twitter that uses "var Carousel";
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap.js b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap.js
new file mode 100644
index 0000000..896075b
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/bootstrap.js
@@ -0,0 +1 @@
+// https://developer.mozilla.org/en-US/docs/Extensions/bootstrap.js false positive
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/doxygen.css b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/doxygen.css
new file mode 100644
index 0000000..43dd760
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/doxygen.css
@@ -0,0 +1 @@
+Dummy CSS file so that we do not emit embedded-javascript-library in jQuery docs.
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.js b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.min.js b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.min.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/jquery.min.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.css b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.css
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.css
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.js b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/mocha.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/rss_parse.php b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/rss_parse.php
new file mode 100644
index 0000000..95afc6a
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/rss_parse.php
@@ -0,0 +1 @@
+This is not a php file.
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/streams.php b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/streams.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/streams.php
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/build-spec/orig/tiny_mce_popup.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/eval/desc b/t/recipes/checks/languages/php/embedded/files-embedded/eval/desc
new file mode 100644
index 0000000..76bfab6
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-embedded
+See-Also: <g8t2fb$r9t$4@ger.gmane.org>
+Check: languages/php/embedded
diff --git a/t/recipes/checks/languages/php/embedded/files-embedded/eval/hints b/t/recipes/checks/languages/php/embedded/files-embedded/eval/hints
new file mode 100644
index 0000000..613116c
--- /dev/null
+++ b/t/recipes/checks/languages/php/embedded/files-embedded/eval/hints
@@ -0,0 +1,2 @@
+files-embedded (binary): embedded-php-library please use php-php-gettext [usr/share/php/streams.php]
+files-embedded (binary): embedded-php-library please use libphp-magpierss [usr/share/php/rss_parse.php]
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/clean b/t/recipes/checks/languages/php/files-general/build-spec/debian/clean
new file mode 100644
index 0000000..222b726
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/clean
@@ -0,0 +1 @@
+é³¥ã®è©©.1
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/dirs b/t/recipes/checks/languages/php/files-general/build-spec/debian/dirs
new file mode 100644
index 0000000..b76fb64
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/dirs
@@ -0,0 +1,13 @@
+etc
+etc/skel
+usr/bin
+usr/doc
+usr/lib/python3/dist-packages/foo
+usr/share/foo
+usr/share/fonts/X11/misc
+usr/share/glib-2.0/schemas
+usr/share/hal
+usr/share/man/man1/random
+var/catman
+var/lock/lintian
+var/run/lintian
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/examples b/t/recipes/checks/languages/php/files-general/build-spec/debian/examples
new file mode 100644
index 0000000..18fb10f
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/examples
@@ -0,0 +1 @@
+foo.vcproj
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/install b/t/recipes/checks/languages/php/files-general/build-spec/debian/install
new file mode 100644
index 0000000..dccb61e
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/install
@@ -0,0 +1,18 @@
+lintian-16x16.png usr/share/apps/lintian/icons/hicolor/22x22
+lintian-16x16.png usr/share/icons/hicolor/22x22/apps
+lintian-22x22.png usr/share/apps/lintian/icons/hicolor/22x22
+lintian-22x22.png usr/share/apps/lintian/icons/hicolor/20x20
+lintian-16x16.png usr/share/doc/lintian/
+lintian-22x22.png usr/share/games/icons/hicolor/22x22
+lintian-16x16.png usr/share/icons/hicolor/scalable/apps
+lintian-22x22.png usr/share/icons/16x16/animations/
+--lzma etc/modprobe.d
+lintian.conf etc/modprobe.d
+dir usr/share/info
+foo.vcproj usr/lib/foo
+lintian-lib.conf etc/ld.so.conf.d
+php-foo.ini etc/php/7.0/mods-available
+types usr/share/mime
+mimeinfo.cache usr/share/applications
+file-in-new-top-level-dir new-top-level-dir/
+sudotest etc/sudoers.d/
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/links b/t/recipes/checks/languages/php/files-general/build-spec/debian/links
new file mode 100644
index 0000000..f3e425d
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/links
@@ -0,0 +1 @@
+usr/share/apps/lintian/icons/hicolor/22x22/lintian-22x22.png usr/share/apps/lintian/icons/hicolor/64x64/lintian-64x64.png
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/manpages b/t/recipes/checks/languages/php/files-general/build-spec/debian/manpages
new file mode 100644
index 0000000..e8af11b
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/manpages
@@ -0,0 +1,2 @@
+foo.5
+é³¥ã®è©©.1
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/debian/rules b/t/recipes/checks/languages/php/files-general/build-spec/debian/rules
new file mode 100755
index 0000000..798f01e
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/debian/rules
@@ -0,0 +1,67 @@
+#!/usr/bin/make -f
+
+tmp := $(CURDIR)/debian/$(shell dh_listpackages)
+
+%:
+ dh $@
+
+override_dh_install:
+ dh_install
+ echo "#fake conf file" > $(tmp)/etc/pam.conf
+ # true positives
+ touch $(tmp)/etc/skel/.lintianrc
+ # false positives
+ touch $(tmp)/etc/skel/.bashrc
+ touch $(tmp)/etc/skel/.bash_logout
+ touch $(tmp)/etc/skel/.profile
+ touch $(tmp)/etc/skel/.kshrc
+ touch $(tmp)/etc/skel/.mkshrc
+ echo "Back-up file" > $(tmp)/usr/share/foo/file~
+ # The name of the "binary" is "Tori no Uta"
+ # If it is ever messed up, it can be restored by
+ # using something like:
+ # perl -pe 's/\@FILE\@/\xe9\xb3\xa5\xe3\x81\xae\xe8\xa9\xa9\x0a/'
+ echo "#!/bin/sh" > $(tmp)/usr/bin/é³¥ã®è©©
+ chmod +x $(tmp)/usr/bin/é³¥ã®è©©
+ # Copy the manpage to its correct name so dh_installman can
+ # find it.
+ # - d/clean will remove it again
+ cp -a tnu.1 é³¥ã®è©©.1
+ touch $(tmp)/usr/doc/FSSTND
+ touch $(tmp)/usr/share/foo/'*'
+ touch $(tmp)/usr/share/foo/'ws '
+ touch $(tmp)/usr/share/fonts/X11/misc/fonts.dir
+ touch $(tmp)/usr/share/fonts/X11/misc/fonts.scale
+ touch $(tmp)/usr/share/fonts/X11/misc/fonts.alias
+ touch $(tmp)/usr/share/fonts/X11/misc/encodings.dir
+ touch $(tmp)/usr/share/fonts/X11/misc/false-positive
+ touch $(tmp)/usr/share/foo/.nfs-fake-tmpfile
+ touch $(tmp)/usr/share/foo/foo.doctree
+ touch $(tmp)/usr/share/foo/gschemas.compiled
+ touch $(tmp)/usr/share/glib-2.0/schemas/gschemas.compiled
+ touch $(tmp)/usr/share/hal/foo.fdi
+ touch $(tmp)/usr/lib/python3/dist-packages/test_foo.py
+ touch $(tmp)/usr/lib/python3/dist-packages/foo/test_falsepositive.py
+ # If the following line gets messed up, it can be
+ # restored with something like:
+ # sed -i 's/@FILE@/bokm\xe5l/'
+ touch $(tmp)/usr/share/foo/bokmål
+ touch $(tmp)/var/catman/do
+
+override_dh_fixperms:
+ dh_fixperms
+ chmod 755 $(tmp)/usr/share/man/man5/foo.5.gz
+ chmod 644 $(tmp)/etc/sudoers.d/*
+
+override_dh_compress:
+ dh_compress
+ # create a .png and .png.gz
+ gzip -n -1 $(tmp)/usr/share/doc/lintian/lintian-16x16.png
+ zcat $(tmp)/usr/share/doc/lintian/lintian-16x16.png.gz > \
+ $(tmp)/usr/share/doc/lintian/lintian-16x16.png
+
+override_dh_link:
+ dh_link
+ mkdir -p $(tmp)/usr/share/doc/bar
+ echo "Hallo World" > $(tmp)/usr/share/doc/bar/foo
+ ln -s ../bar/foo $(tmp)/usr/share/doc/bar/star
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/fill-values b/t/recipes/checks/languages/php/files-general/build-spec/fill-values
new file mode 100644
index 0000000..45de709
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: files-general
+Description: Test tags for file paths, names, and modes
+# tar -t is buggy and does not list \\\ filename
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/--lzma b/t/recipes/checks/languages/php/files-general/build-spec/orig/--lzma
new file mode 100644
index 0000000..5241aaa
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/--lzma
@@ -0,0 +1,2 @@
+Test file to check that various parts of Lintian correctly handle files with names that look
+like options
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/dir b/t/recipes/checks/languages/php/files-general/build-spec/orig/dir
new file mode 100644
index 0000000..e465d26
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/dir
@@ -0,0 +1,18 @@
+This is the file .../info/dir, which contains the
+topmost node of the Info hierarchy, called (dir)Top.
+The first time you invoke Info you start off looking at this node.
+
+File: dir, Node: Top This is the top of the INFO tree
+
+ This (the Directory node) gives a menu of major topics.
+ Typing "q" exits, "?" lists all Info commands, "d" returns here,
+ "h" gives a primer for first-timers,
+ "mEmacs<Return>" visits the Emacs manual, etc.
+
+ In Emacs, you can click mouse button 2 on a menu item or cross reference
+ to select it.
+
+* Menu:
+
+Archiving
+* Cpio: (cpio). Copy-in-copy-out archiver to tape or disk.
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/file-in-new-top-level-dir b/t/recipes/checks/languages/php/files-general/build-spec/orig/file-in-new-top-level-dir
new file mode 100644
index 0000000..ae82d42
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/file-in-new-top-level-dir
@@ -0,0 +1,2 @@
+Since an empty file triggers "empty-dir" tags; we might as well
+test file-in-unusual-dir together with non-standard-toplevel-dir.
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/foo.5 b/t/recipes/checks/languages/php/files-general/build-spec/orig/foo.5
new file mode 100644
index 0000000..718eae1
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/foo.5
@@ -0,0 +1,5 @@
+.TH FOO "5"
+.SH NAME
+foo \- file format for foo
+.SH DESCRIPTION
+This file can store anything.
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/foo.vcproj b/t/recipes/checks/languages/php/files-general/build-spec/orig/foo.vcproj
new file mode 100644
index 0000000..6ec1ca6
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/foo.vcproj
@@ -0,0 +1 @@
+Not actually a VC project file.
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-16x16.png b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-16x16.png
new file mode 100644
index 0000000..cd7355d
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-16x16.png
Binary files differ
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-22x22.png b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-22x22.png
new file mode 100644
index 0000000..efc9af0
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-22x22.png
Binary files differ
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-lib.conf b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-lib.conf
new file mode 100644
index 0000000..e2b41a8
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian-lib.conf
@@ -0,0 +1 @@
+/usr/lib/lintian
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian.conf b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian.conf
new file mode 100644
index 0000000..7f6693c
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/lintian.conf
@@ -0,0 +1 @@
+Test file which should not be flagged by the modprobe.d checks
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/mimeinfo.cache b/t/recipes/checks/languages/php/files-general/build-spec/orig/mimeinfo.cache
new file mode 100644
index 0000000..f3067c5
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/mimeinfo.cache
@@ -0,0 +1,2 @@
+[MIME Cache]
+text/plain=foo-editor.desktop
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/php-foo.ini b/t/recipes/checks/languages/php/files-general/build-spec/orig/php-foo.ini
new file mode 100644
index 0000000..6a33666
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/php-foo.ini
@@ -0,0 +1 @@
+# this style of comments are obsolete
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/sudotest b/t/recipes/checks/languages/php/files-general/build-spec/orig/sudotest
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/sudotest
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/tnu.1 b/t/recipes/checks/languages/php/files-general/build-spec/orig/tnu.1
new file mode 100644
index 0000000..147dc1a
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/tnu.1
@@ -0,0 +1,5 @@
+.TH é³¥ã®è©© "1"
+.SH NAME
+é³¥ã®è©© \- command in PATH written in UTF-8
+.SH DESCRIPTION
+é³¥ã®è©© (Tori no uta) is not really a useful command.
diff --git a/t/recipes/checks/languages/php/files-general/build-spec/orig/types b/t/recipes/checks/languages/php/files-general/build-spec/orig/types
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/build-spec/orig/types
diff --git a/t/recipes/checks/languages/php/files-general/eval/desc b/t/recipes/checks/languages/php/files-general/eval/desc
new file mode 100644
index 0000000..08c0224
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-general
+Check: languages/php
+# tar -t is buggy and does not list \\\ filename
diff --git a/t/recipes/checks/languages/php/files-general/eval/hints b/t/recipes/checks/languages/php/files-general/eval/hints
new file mode 100644
index 0000000..ca5f75c
--- /dev/null
+++ b/t/recipes/checks/languages/php/files-general/eval/hints
@@ -0,0 +1 @@
+files-general (binary): obsolete-comments-style-in-php-ini [etc/php/7.0/mods-available/php-foo.ini]
diff --git a/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/fill-values b/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/fill-values
new file mode 100644
index 0000000..e887351
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: phppear-composer
+Description: Composer phppear tests
+Skeleton: upload-non-native
diff --git a/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/composer.json b/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/composer.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/composer.json
diff --git a/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/foo.php b/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/foo.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composer/build-spec/orig/foo.php
diff --git a/t/recipes/checks/languages/php/pear/phppear-composer/eval/desc b/t/recipes/checks/languages/php/pear/phppear-composer/eval/desc
new file mode 100644
index 0000000..bd290c8
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composer/eval/desc
@@ -0,0 +1,4 @@
+Testname: phppear-composer
+Test-Against:
+ missing-pkg-php-tools-addon
+Check: languages/php/pear
diff --git a/t/recipes/checks/languages/php/pear/phppear-composer/eval/hints b/t/recipes/checks/languages/php/pear/phppear-composer/eval/hints
new file mode 100644
index 0000000..053998c
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composer/eval/hints
@@ -0,0 +1 @@
+phppear-composer (source): composer-package-without-pkg-php-tools-builddep [composer.json]
diff --git a/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/debian/control.in b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/debian/control.in
new file mode 100644
index 0000000..d4d8130
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composerok/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 %], dh-sequence-phpcomposer, php-dev, dh-php
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, ${phppear:Debian-Depends}
+Recommends: ${phppear:Debian-Recommends}
+Breaks: ${phppear:Debian-Breaks}
+Description: ${phppear:summary}
+ 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.
+ .
+ ${phppear:description}
diff --git a/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/fill-values b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/fill-values
new file mode 100644
index 0000000..2999d86
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: phppear-composerok
+Description: Composer phppear tests with dh-sequence-phpcomposer
+Skeleton: upload-non-native
diff --git a/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/composer.json b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/composer.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/composer.json
@@ -0,0 +1 @@
+{}
diff --git a/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/foo.php b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/foo.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composerok/build-spec/orig/foo.php
diff --git a/t/recipes/checks/languages/php/pear/phppear-composerok/eval/desc b/t/recipes/checks/languages/php/pear/phppear-composerok/eval/desc
new file mode 100644
index 0000000..589e12b
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composerok/eval/desc
@@ -0,0 +1,4 @@
+Testname: phppear-composerok
+Test-Against:
+ missing-pkg-php-tools-addon
+Check: languages/php/pear
diff --git a/t/recipes/checks/languages/php/pear/phppear-composerok/eval/hints b/t/recipes/checks/languages/php/pear/phppear-composerok/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-composerok/eval/hints
diff --git a/t/recipes/checks/languages/php/pear/phppear-general/build-spec/fill-values b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/fill-values
new file mode 100644
index 0000000..9b8bcd0
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: phppear-general
+Description: General phppear tests
+Skeleton: upload-non-native
diff --git a/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/channel.xml b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/channel.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/channel.xml
diff --git a/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/foo.php b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/foo.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/foo.php
diff --git a/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/package.xml b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/package.xml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-general/build-spec/orig/package.xml
@@ -0,0 +1 @@
+
diff --git a/t/recipes/checks/languages/php/pear/phppear-general/eval/desc b/t/recipes/checks/languages/php/pear/phppear-general/eval/desc
new file mode 100644
index 0000000..af1274d
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-general/eval/desc
@@ -0,0 +1,4 @@
+Testname: phppear-general
+Test-Against:
+ missing-pkg-php-tools-buildsystem
+Check: languages/php/pear
diff --git a/t/recipes/checks/languages/php/pear/phppear-general/eval/hints b/t/recipes/checks/languages/php/pear/phppear-general/eval/hints
new file mode 100644
index 0000000..25b02e1
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-general/eval/hints
@@ -0,0 +1,2 @@
+phppear-general (source): pear-package-without-pkg-php-tools-builddep
+phppear-general (source): pear-channel-without-pkg-php-tools-builddep [channel.xml]
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/debian/pkg-php-tools-overrides b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/debian/pkg-php-tools-overrides
new file mode 100644
index 0000000..1837cbe
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/debian/pkg-php-tools-overrides
@@ -0,0 +1 @@
+pear.example.org Any_Dummy php-test-dummy
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/fill-values b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/fill-values
new file mode 100644
index 0000000..fdf722e
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: phppear-pear
+Description: phppear tests for PEAR packages
+Extra-Build-Depends: pkg-php-tools
+Skeleton: upload-non-native
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/foo.php b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/foo.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/foo.php
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package.xml b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package.xml
new file mode 100644
index 0000000..1076ad7
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package packagerversion="1.8.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
+ <name>MyProject_Packages</name>
+ <channel>pear.php.net</channel>
+ <summary>this is a wrapper package for installing dependencies for MyProject</summary>
+ <description>&lt;Some random notes&gt;</description>
+ <lead>
+ <name>fred</name>
+ <user>fred</user>
+ <email>fred@example.com</email>
+ <active>yes</active>
+ </lead>
+ <date>2009-05-08</date>
+ <time>00:58:09</time>
+ <version>
+ <release>0.0.1</release>
+ <api>0.0.1</api>
+ </version>
+ <stability>
+ <release>alpha</release>
+ <api>alpha</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/lgpl.html">LGPL</license>
+ <notes>
+&lt;none&gt;
+ </notes>
+ <contents>
+ <dir baseinstalldir="/dev/null" name="/">
+ <file baseinstalldir="/dev/null" md5sum="d41d8cd98f00b204e9800998ecf8427e" name="empty.php" role="php"/>
+ </dir>
+ </contents>
+ <dependencies>
+ <required>
+ <php>
+ <min>5.2.1</min>
+ </php>
+ <pearinstaller>
+ <min>1.8.0</min>
+ </pearinstaller>
+ </required>
+ </dependencies>
+ <extsrcrelease/>
+ <changelog>
+ <release>
+ <version>
+ <release>0.0.1</release>
+ <api>0.0.1</api>
+ </version>
+ <stability>
+ <release>alpha</release>
+ <api>alpha</api>
+ </stability>
+ <date>2009-05-08</date>
+ <license uri="http://www.gnu.org/licenses/lgpl.html">LGPL</license>
+ <notes>
+&lt;none&gt;
+ </notes>
+ </release>
+ </changelog>
+</package>
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package2.xml b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package2.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/build-spec/orig/package2.xml
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/eval/desc b/t/recipes/checks/languages/php/pear/phppear-pear/eval/desc
new file mode 100644
index 0000000..9b8ffa9
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/eval/desc
@@ -0,0 +1,2 @@
+Testname: phppear-pear
+Check: languages/php/pear
diff --git a/t/recipes/checks/languages/php/pear/phppear-pear/eval/hints b/t/recipes/checks/languages/php/pear/phppear-pear/eval/hints
new file mode 100644
index 0000000..e6692ab
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pear/eval/hints
@@ -0,0 +1,10 @@
+phppear-pear (source): pecl-package-requires-build-dependency php-dev [package.xml]
+phppear-pear (source): pecl-package-requires-build-dependency dh-php [package.xml]
+phppear-pear (source): pear-package-not-using-substvar ${phppear:summary}
+phppear-pear (source): pear-package-not-using-substvar ${phppear:description}
+phppear-pear (source): pear-package-but-missing-dependency Recommends
+phppear-pear (source): pear-package-but-missing-dependency Depends
+phppear-pear (source): pear-package-but-missing-dependency Breaks
+phppear-pear (source): missing-pkg-php-tools-buildsystem phppear [debian/rules]
+phppear-pear (source): missing-pkg-php-tools-addon phppear [debian/rules]
+phppear-pear (source): missing-pkg-php-tools-addon php [debian/rules]
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/control.in b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/control.in
new file mode 100644
index 0000000..edf2cde
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/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 %], pkg-php-tools, php-dev, dh-php
+Rules-Requires-Root: no
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, ${phppear:Debian-Depends}
+Recommends: ${phppear:Debian-Recommends}
+Breaks: ${phppear:Debian-Breaks}
+Description: ${phppear:summary}
+ 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.
+ .
+ ${phppear:description}
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/rules b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/rules
new file mode 100755
index 0000000..02621c3
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/debian/rules
@@ -0,0 +1,3 @@
+#!/usr/bin/make -f
+%:
+ dh $@ --with phppear --buildsystem phppear
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/fill-values b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/fill-values
new file mode 100644
index 0000000..2b7c209
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: phppear-pearok
+Description: phppear tests for PEAR packages
+Extra-Build-Depends: uglifyjs
+Skeleton: upload-non-native
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/MyProject_Packages-0.0.1/empty.php b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/MyProject_Packages-0.0.1/empty.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/MyProject_Packages-0.0.1/empty.php
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/foo.php b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/foo.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/foo.php
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/package.xml b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/package.xml
new file mode 100644
index 0000000..57af010
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/build-spec/orig/package.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package packagerversion="1.8.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
+ <name>MyProject_Packages</name>
+ <channel>pear.php.net</channel>
+ <summary>this is a wrapper package for installing dependencies for MyProject</summary>
+ <description>&lt;Some random notes&gt;</description>
+ <lead>
+ <name>fred</name>
+ <user>fred</user>
+ <email>fred@example.com</email>
+ <active>yes</active>
+ </lead>
+ <date>2009-05-08</date>
+ <time>00:58:09</time>
+ <version>
+ <release>0.0.1</release>
+ <api>0.0.1</api>
+ </version>
+ <stability>
+ <release>alpha</release>
+ <api>alpha</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/lgpl.html">LGPL</license>
+ <notes>
+&lt;none&gt;
+ </notes>
+ <contents>
+ <dir baseinstalldir="Test" name="/">
+ <file baseinstalldir="Test" md5sum="d41d8cd98f00b204e9800998ecf8427e" name="empty.php" role="php"/>
+ </dir>
+ </contents>
+ <dependencies>
+ <required>
+ <php>
+ <min>5.2.1</min>
+ </php>
+ <pearinstaller>
+ <min>1.8.0</min>
+ </pearinstaller>
+ </required>
+ </dependencies>
+ <phprelease/>
+ <changelog>
+ <release>
+ <version>
+ <release>0.0.1</release>
+ <api>0.0.1</api>
+ </version>
+ <stability>
+ <release>alpha</release>
+ <api>alpha</api>
+ </stability>
+ <date>2009-05-08</date>
+ <license uri="http://www.gnu.org/licenses/lgpl.html">LGPL</license>
+ <notes>
+&lt;none&gt;
+ </notes>
+ </release>
+ </changelog>
+</package>
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/eval/desc b/t/recipes/checks/languages/php/pear/phppear-pearok/eval/desc
new file mode 100644
index 0000000..ecae0c2
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/eval/desc
@@ -0,0 +1,8 @@
+Testname: phppear-pearok
+Test-Against:
+ missing-pkg-php-tools-addon
+ missing-pkg-php-tools-buildsystem
+ pear-package-but-missing-dependency
+ pear-package-not-using-substvar
+ pecl-package-requires-build-dependency
+Check: languages/php/pear
diff --git a/t/recipes/checks/languages/php/pear/phppear-pearok/eval/hints b/t/recipes/checks/languages/php/pear/phppear-pearok/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/php/pear/phppear-pearok/eval/hints
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values
new file mode 100644
index 0000000..84051f4
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: what-is-python-build-depends
+Skeleton: source-native
+Extra-Build-Depends: python-dev-is-python3
+Descriptions: Build-Depends on python-is-python3-dev
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc
new file mode 100644
index 0000000..e2cbf55
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc
@@ -0,0 +1,3 @@
+Testname: what-is-python-build-depends
+Check: languages/python/bogus-prerequisites
+See-Also: Debian Bug #973011
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints
new file mode 100644
index 0000000..c331f2b
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints
@@ -0,0 +1 @@
+what-is-python-build-depends (source): bogus-python-prerequisite Build-Depends (satisfies python-dev-is-python3:any)
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in
new file mode 100644
index 0000000..30a24a9
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: [% $priority %]
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: [% $rules_requires_root %]
+Homepage: [% $homepage %]
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, python-is-python3
+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.
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values
new file mode 100644
index 0000000..1b3816c
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: what-is-python-depends
+Skeleton: upload-native
+Descriptions: Depends on python-is-python3
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc
new file mode 100644
index 0000000..34cd4e1
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc
@@ -0,0 +1,3 @@
+Testname: what-is-python-depends
+Check: languages/python/bogus-prerequisites
+See-Also: Debian Bug #973011
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints
new file mode 100644
index 0000000..0425694
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints
@@ -0,0 +1 @@
+what-is-python-depends (binary): bogus-python-prerequisite Depends (satisfies python-is-python3:any)
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides
new file mode 100644
index 0000000..9e1c71d
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides
@@ -0,0 +1,2 @@
+gi.repository.Gst gir1.2-gst-plugins-base-1.0
+gi.repository.Gst gir1.2-gstreamer-1.0
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values
new file mode 100644
index 0000000..881cb56
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: duplicate-identifier
+Description: Duplicate identifier in d/py3dist-overrides
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc
new file mode 100644
index 0000000..2c1e04d
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc
@@ -0,0 +1,2 @@
+Testname: duplicate-identifier
+Check: languages/python/dist-overrides
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints
new file mode 100644
index 0000000..c90c63d
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints
@@ -0,0 +1 @@
+duplicate-identifier (source): duplicate-p3dist-override gi.repository.Gst
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in
new file mode 100644
index 0000000..8d38d33
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values
new file mode 100644
index 0000000..bc3d5c9
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-imports-distutils
+Description: Check packages that have python files importing distutils
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py
new file mode 100644
index 0000000..2c545b0
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py
@@ -0,0 +1,7 @@
+#!/usr/bin/python3
+
+import os
+import time
+import argparse
+
+from distutils.version import StrictVersion
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py
new file mode 100644
index 0000000..52f9843
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py
@@ -0,0 +1,3 @@
+#!/usr/bin/python3
+
+import distutils
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc
new file mode 100644
index 0000000..cf33da9
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-imports-distutils
+Check: languages/python/distutils
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints
new file mode 100644
index 0000000..92c2b6b
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints
@@ -0,0 +1,2 @@
+python-imports-distutils (source): uses-python-distutils [import.py:3]
+python-imports-distutils (source): uses-python-distutils [from.py:7]
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install
new file mode 100644
index 0000000..c18d2a0
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install
@@ -0,0 +1,11 @@
+jquery* usr/share/php
+mocha.* usr/share/javascript/mocha
+bootstrap-* usr/share/php
+bootstrap.js usr/share/xul-ext/lintian
+feedparser.py usr/share/php
+streams.php usr/share/php
+streams.php usr/share/php/pomo
+rss_parse.php usr/share/php
+tiny_mce_popup.js usr/share/php
+jquery.js usr/share/doxygen-test/
+doxygen.css usr/share/doxygen-test
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values
new file mode 100644
index 0000000..8c48bea
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-embedded
+Description: Check for detection of embedded PEAR modules
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js
new file mode 100644
index 0000000..d9c3762
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js
@@ -0,0 +1 @@
+This is an embedded javascript library from Twitter that uses "var Carousel";
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js
new file mode 100644
index 0000000..896075b
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js
@@ -0,0 +1 @@
+// https://developer.mozilla.org/en-US/docs/Extensions/bootstrap.js false positive
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css
new file mode 100644
index 0000000..43dd760
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css
@@ -0,0 +1 @@
+Dummy CSS file so that we do not emit embedded-javascript-library in jQuery docs.
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py
new file mode 100644
index 0000000..c6a4922
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py
@@ -0,0 +1 @@
+This is not the "Universal feed parser", but it will do for this test. :)
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php
new file mode 100644
index 0000000..95afc6a
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php
@@ -0,0 +1 @@
+This is not a php file.
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc
new file mode 100644
index 0000000..ccb08e2
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-embedded
+See-Also: <g8t2fb$r9t$4@ger.gmane.org>
+Check: languages/python/feedparser
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints
new file mode 100644
index 0000000..47bca39
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints
@@ -0,0 +1 @@
+files-embedded (binary): embedded-feedparser-library [usr/share/php/feedparser.py]
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in
new file mode 100644
index 0000000..b79c4ca
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in
@@ -0,0 +1,78 @@
+filenames ([% $version %]) [% $distribution %]; urgency=low
+
+ * /me is doing a correct NMU of this package, bumping the epoch too.
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:04:39 +0200
+
+filenames (11) unstable; urgency=low
+
+ * Add a README.macos.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Mon, 12 Apr 2004 23:35:24 +0200
+
+filenames (10) unstable; urgency=low
+
+ * Some new files to check the checks for the use of /usr/*/X11 and
+ /usr/X11R6/*.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 17:35:20 +0200
+
+filenames (9) unstable; urgency=low
+
+ * Add a two *.ali files, one with the right permission, one with
+ the more common, but false one.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 00:18:16 +0200
+
+filenames (8) unstable; urgency=low
+
+ * Add a real ancient file
+
+ -- Frank Lichtenheld <djpig@debian.org> Thu, 8 Apr 2004 22:22:40 +0200
+
+filenames (7) unstable; urgency=low
+
+ * Add a dozen symlinks, some correct, some not
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 27 Feb 2004 01:28:42 +0100
+
+filenames (6) unstable; urgency=low
+
+ * Add perl files to check if
+ package-installs-nonbinary-perl-in-usr-lib-perl5 is correctly
+ issued even after attempting to suppress it in some cases
+
+ -- Frank Lichtenheld <djpig@debian.org> Fri, 27 Feb 2004 00:49:44 +0100
+
+filenames (5) unstable; urgency=low
+
+ * Added check for too long symlink
+
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 3 Jan 2001 13:20:31 -0800
+
+filenames (4) unstable; urgency=low
+
+ * Add /usr/lib/menu/menu file to test the bad-menu-file-name tag.
+ * Add /usr/lib/menu/README to test the new execption for it.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 22 Oct 1998 15:42:52 +0200
+
+filenames (3) unstable; urgency=low
+
+ * Don't rely on the installer's umask.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 20 Aug 1998 12:45:47 +0200
+
+filenames (2) unstable; urgency=low
+
+ * Noted more limitations on what filenames lintian handles.
+ * Added Changes.gz in /usr/doc/filenames and made a symlink from changelog.gz
+ to Changes.gz.
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:46:11 +0200
+
+filenames (1) unstable; urgency=low
+
+ * Initial version
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:25:01 +0200
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control
new file mode 100644
index 0000000..1ff9c50
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control
@@ -0,0 +1,42 @@
+Source: filenames
+Maintainer: Lintian Maintainer <lintian-maint@debian.org>
+Standards-Version: 3.1.1
+Rules-Requires-Root: binary-targets
+
+Package: filenames
+Architecture: any
+Description: see how lintian reacts to weird filenames
+ This package contains files with the most evil names I could find,
+ except for ones that lintian is explicitly not designed to handle.
+ .
+ Lintian does not handle filenames containing newlines, or filenames
+ that contain the strings " link to ", " -> ", or ": ". The last one
+ is used as a separator by the file command, the others are used as
+ separators by tar.
+ .
+ Lintian also does not handle filenames that contain backslashes, or
+ other characters that are mangled by tar's -tv output.
+
+Package: filename-games
+Architecture: all
+Depends: filenames
+Section: games
+Description: Test game filename/location checks
+ This package contains files with slightly less evil names than
+ filenames.
+ .
+ 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.
+
+Package: more-filename-games
+Architecture: all
+Depends: filenames, filename-games
+Section: games
+Priority: optional
+Description: More test for game filename/location checks
+ This package contains no evil names, only evil locations.
+ .
+ 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.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base
new file mode 100644
index 0000000..e5a611b
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base
@@ -0,0 +1,11 @@
+Document: testing
+Title: Working doc-base control file
+Author: Russ Allbery
+Abstract: This control file ensures that we don't get false positives for
+ correct doc-base files.
+ .
+ There isn't anything wrong with this one.
+Section: Education
+
+Format: Text
+Files: /usr/share/doc/filenames/README.macosx
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules
new file mode 100755
index 0000000..0b9e87c
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules
@@ -0,0 +1,231 @@
+#!/usr/bin/make -f
+
+# Copyright (C) 1998 Richard Braakman
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, you can find it on the World Wide
+# Web at https://www.gnu.org/copyleft/gpl.html, or write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)')
+
+clean:
+ mkdir -p .svn CVS "{arch}" .arch-ids .bzr
+ touch data/.cvsignore data/svn-commit.tmp data/svk-commitsEr9P.tmp
+ touch data/.arch-inventory
+ touch 'data/.#Maelstrom Sound.1.1.1' 'data/Maelstrom Sounce.r121'
+ touch 'data/Maelstrom Sound.mine'
+ touch "data/'\\ "
+ touch filenames.c~
+
+build-arch:
+
+build-indep:
+
+build: build-arch build-indep
+
+
+binary-arch:
+
+binary-indep:
+ install -d debian/tmp/DEBIAN
+ cp -a data debian/tmp/files
+ chmod -R go=rX debian/tmp/files
+
+ install -d debian/tmp/usr/lib/filenames
+ install -m 555 -d debian/tmp/usr/lib/filenames/readonly
+ touch debian/tmp/usr/lib/filenames/readonly/test
+
+ install -d debian/tmp/usr/lib/menu
+ install -d debian/tmp/usr/share/menu
+ touch debian/tmp/usr/lib/menu/README
+ touch debian/tmp/usr/share/menu/README
+ touch debian/tmp/usr/lib/menu/menu
+ touch debian/tmp/usr/share/menu/menu
+ chmod 644 debian/tmp/usr/lib/menu/*
+
+ install -d debian/tmp/$(VENDORARCH)/foo
+ mkdir debian/tmp/$(VENDORARCH)/.svn
+ mkdir debian/tmp/$(VENDORARCH)/CVS
+ mkdir "debian/tmp/$(VENDORARCH)/{arch}"
+ mkdir debian/tmp/$(VENDORARCH)/.arch-ids
+ mkdir debian/tmp/$(VENDORARCH)/.bzr
+ mkdir debian/tmp/$(VENDORARCH)/.be
+ mkdir debian/tmp/$(VENDORARCH)/.ditrack
+ install -d debian/tmp/usr/share/perl5
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.gitignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgtags
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hg_archival.txt
+
+ touch debian/tmp/$(VENDORARCH)/foo/.packlist
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/.packlist
+ touch debian/tmp/$(VENDORARCH)/foo/bar.pm
+ TZ=UTC touch -t 197501010101 debian/tmp/$(VENDORARCH)/foo/ancient.pm
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/bar.pm
+
+ install -d debian/tmp/usr/share/pixmaps
+ install -d debian/tmp/usr/share/pixmaps/foo
+ touch debian/tmp/usr/share/pixmaps/license.jpeg
+ touch debian/tmp/usr/share/pixmaps/licence.jpg
+ touch debian/tmp/usr/share/pixmaps/copying.xpm
+ touch debian/tmp/usr/share/pixmaps/foo/COPYING.svg
+ touch debian/tmp/usr/share/pixmaps/foo/copying.png
+ touch debian/tmp/usr/share/pixmaps/license.txt
+ touch debian/tmp/usr/share/pixmaps/license.foo
+ touch debian/tmp/usr/share/pixmaps/COPYING
+
+ install -d debian/tmp/usr/share/linda/overrides
+ echo 'foo' > debian/tmp/usr/share/linda/overrides/filenames
+
+ install -d debian/tmp/usr/share/doc/filenames
+ touch debian/tmp/usr/share/doc/filenames/README.macosx
+
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\Ã¥l
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\ål
+
+ echo foo > debian/tmp/usr/share/doc/filenames/Thumbs.db
+ echo foo > debian/tmp/usr/share/doc/filenames/.DS_Store
+ echo foo > debian/tmp/usr/share/doc/filenames/._NEWS.Debian
+
+ touch debian/tmp/usr/share/doc/filenames/news.debian
+ gzip -n debian/tmp/usr/share/doc/filenames/news.debian
+ touch debian/tmp/usr/share/doc/filenames/NEWS.Debian
+
+ echo foo > debian/tmp/usr/share/doc/filenames/link-one
+ ln debian/tmp/usr/share/doc/filenames/link-one \
+ debian/tmp/usr/share/doc/filenames/link-two
+
+ install -d debian/tmp/usr/share/doc/filenames/examples
+ touch debian/tmp/usr/share/doc/filenames/examples/__init__.py
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+ gzip -n debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+
+ install -d debian/tmp/usr/lib/ada/adalib/
+ touch debian/tmp/usr/lib/ada/adalib/test.ali debian/tmp/usr/lib/ada/adalib/test2.ali
+ chmod 0644 debian/tmp/usr/lib/ada/adalib/test.ali
+ chmod 0444 debian/tmp/usr/lib/ada/adalib/test2.ali
+
+ install -d debian/tmp/usr/bin/X11/
+ touch debian/tmp/usr/bin/X11/testxbin
+ install -d debian/tmp/usr/X11R6/bin
+ touch debian/tmp/usr/X11R6/bin/testxbin2
+ install -d debian/tmp/usr/include/X11
+ touch debian/tmp/usr/include/X11/foo.h
+
+ install -d debian/tmp/usr/bin/mh
+ touch debian/tmp/usr/bin/mh/read
+ chmod 755 debian/tmp/usr/bin/mh/read
+ install -d debian/tmp/usr/bin/bin
+ touch debian/tmp/usr/bin/bin/bad
+ chmod 755 debian/tmp/usr/bin/bin/bad
+
+ install -m 644 debian/changelog debian/tmp/usr/share/doc/filenames/Changes
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/Changes
+ ln -s Changes.gz debian/tmp/usr/share/doc/filenames/changelog.gz
+
+ install -d debian/tmp/var/www
+ echo foo > debian/tmp/var/www/foo
+
+ install -d debian/tmp/srv/foo
+ touch debian/tmp/srv/foo/bar
+ install -d debian/tmp/opt/foo
+ touch debian/tmp/opt/foo/bar
+
+ install -d debian/tmp/etc/gconf/schemas
+ touch debian/tmp/etc/gconf/schemas/test.schema
+
+ install -d debian/tmp/usr/lib/sgml
+ touch debian/tmp/usr/lib/sgml/package
+
+ install -d debian/tmp/usr/share/gnome/apps/System
+ touch debian/tmp/usr/share/gnome/apps/System/foo.desktop
+
+ install -d debian/tmp/usr/share/filenames
+ touch debian/tmp/usr/share/filenames/jquery.js
+ touch debian/tmp/usr/share/filenames/jquery.lite.js
+ touch debian/tmp/usr/share/filenames/jquery.min.js
+ touch debian/tmp/usr/share/filenames/jquery.pack.js
+ touch debian/tmp/usr/share/filenames/mochikit.js
+ touch debian/tmp/usr/share/filenames/prototype-1.2.3.4.js
+ touch debian/tmp/usr/share/filenames/prototype.js
+ touch debian/tmp/usr/share/filenames/prototype.js.gz
+ touch debian/tmp/usr/share/filenames/scriptaculous.js
+ touch debian/tmp/usr/share/filenames/yahoo-dom-event.js
+ touch debian/tmp/usr/share/filenames/yahoo-min.js
+
+ ln -s '../filenames/doc/version6.txt.gz' debian/tmp/usr/share/doc/filenames/version.txt.gz
+ ln -s ../../share/symlink debian/tmp/usr/lib/filenames/symlink1ok
+ ln -s ../../../etc/symlink debian/tmp/usr/lib/filenames/symlink1wrong
+ ln -s ../../../../etc/symlink debian/tmp/usr/lib/filenames/symlink2wrong
+ ln -s /etc/symlink debian/tmp/usr/lib/filenames/symlink2ok
+ ln -s /usr/lib/filenames/symlink2 debian/tmp/usr/lib/filenames/symlink3wrong
+ ln -s test debian/tmp/usr/lib/filenames/symlink3ok
+ ln -s ../filenames/symlink2 debian/tmp/usr/lib/filenames/symlink4wrong
+ ln -s ../menu/../somethingelse debian/tmp/usr/lib/filenames/symlink5wrong
+ ln -s ../menu/somethingelse debian/tmp/usr/lib/filenames/symlink4ok
+ ln -s ./file4 debian/tmp/usr/lib/filenames/symlink6wrong
+ ln -s ../menu/./something debian/tmp/usr/lib/filenames/symlink7wrong
+ ln -s ../menu//something debian/tmp/usr/lib/filenames/symlink8wrong
+ ln -s ../menu/something/ debian/tmp/usr/lib/filenames/symlink9wrong
+ ln -s .. debian/tmp/usr/lib/filenames/symlink5ok+warn
+ ln -s . debian/tmp/usr/lib/filenames/symlink6ok+warn
+ ln -s / debian/tmp/usr/lib/filenames/symlink7ok+warn
+ ln -s ../../.. debian/tmp/usr/lib/filenames/symlink10wrong
+
+# devhelp tests. Files in /usr/share/gtk-doc/html or /usr/share/devhelp/books
+# are okay. Files elsewhere are okay iff their parent path is symlinked into
+# one of those paths.
+ install -d debian/tmp/usr/share/devhelp/books/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/a.devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ gzip -n -9 debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ install -d debian/tmp/usr/share/gtk-doc/html/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ gzip -n -9 debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ install -d debian/tmp/usr/share/doc/filenames/good-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/good-devhelp/.devhelp2
+ install -d debian/tmp/usr/share/doc/filenames/bad-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ ln -s ../../doc/filenames/good-devhelp debian/tmp/usr/share/gtk-doc/html/good
+ ln -s ../doc/filenames/bad-devhelp debian/tmp/usr/share/gtk-doc/html/bad
+
+ install -d debian/tmp/usr/share/doc-base
+ install -m 644 debian/doc-base debian/tmp/usr/share/doc-base/filenames
+
+ dpkg-gencontrol -pfilenames -Pdebian/tmp
+ dpkg --build debian/tmp ..
+
+ install -d debian/filename-games debian/filename-games/DEBIAN
+ install -d debian/filename-games/usr debian/filename-games/usr/games debian/filename-games/usr/bin
+ echo '#! /bin/sh' > debian/filename-games/usr/bin/test-game
+ chmod 755 debian/filename-games/usr/bin/test-game
+ dpkg-gencontrol -pfilename-games -Pdebian/filename-games
+ dpkg --build debian/filename-games ..
+
+ install -d debian/more-filename-games debian/more-filename-games/DEBIAN
+ install -d debian/more-filename-games/usr debian/more-filename-games/usr/games debian/more-filename-games/usr/bin
+ echo '#! /bin/sh' > debian/more-filename-games/usr/bin/another-test-game
+ echo '#! /bin/sh' > debian/more-filename-games/usr/games/yet-another-test-game
+ chmod 755 debian/more-filename-games/usr/bin/another-test-game debian/more-filename-games/usr/games/yet-another-test-game
+ dpkg-gencontrol -pmore-filename-games -Pdebian/more-filename-games
+ dpkg --build debian/more-filename-games ..
+
+binary: binary-arch binary-indep
+
+.PHONY: build-indep build-arch build binary-arch binary-indep binary clean
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values
new file mode 100644
index 0000000..062a1ea
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-non-native
+Testname: legacy-filenames
+Source: filenames
+Version: 1:12-0.1
+Description: Legacy test "filenames"
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif
new file mode 100644
index 0000000..07fd914
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif
@@ -0,0 +1,2 @@
+This filename was inspired by the ".tif used by fnlib. The real package
+uses space.tif.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif
new file mode 100644
index 0000000..e005775
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif
@@ -0,0 +1 @@
+This filename is really used, by fnlib.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound
new file mode 100644
index 0000000..4110410
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound
@@ -0,0 +1 @@
+This filename occurs in the maelstrom package.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py
new file mode 100644
index 0000000..c1c2c2e
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+"""Universal feed parser
+
+Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds
+
+Visit http://feedparser.org/ for the latest version
+Visit http://feedparser.org/docs/ for the latest documentation
+
+Required: Python 2.1 or later
+Recommended: Python 2.3 or later
+Recommended: CJKCodecs and iconv_codec <http://cjkpython.i18n.org/>
+"""
+
+__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs"
+
+# (snip)
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc
new file mode 100644
index 0000000..a78a963
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-filenames
+Check: languages/python/feedparser
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints
new file mode 100644
index 0000000..0616e5f
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints
@@ -0,0 +1 @@
+filenames (binary): embedded-feedparser-library [files/feedparser.py]
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test
new file mode 100644
index 0000000..571e35d
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test
@@ -0,0 +1,3 @@
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
+s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g
+/package-installs-packlist/ d
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean
new file mode 100644
index 0000000..be4ae72
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean
@@ -0,0 +1,5 @@
+bar.1*
+Bar.pm
+bar.png
+perllocal.pod
+preferences
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs
new file mode 100644
index 0000000..e8759c9
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs
@@ -0,0 +1,15 @@
+etc/apt/preferences.d
+etc/apt
+etc/init
+bin/foo
+mnt/foo
+tmp/foo
+usr/bin/foo
+usr/foo
+usr/lib/debug
+usr/local/foo
+usr/lib/site-python/foo
+usr/share/doc/files-foo-in-bar/examples/examples
+var/foo
+var/lock/foo
+var/run/foo
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install
new file mode 100644
index 0000000..ba46865
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install
@@ -0,0 +1,61 @@
+bar bin/foo
+bar emul
+bar etc/apt/preferences.d
+bar etc/apt/sources.list.d
+bar etc/apt/trusted.gpg.d
+bar etc/gconf/schemas/
+bar etc/init
+bar etc/rc.boot
+bar etc/rc.d
+bar etc/udev/rules.d
+bar lib32
+bar lib64
+bar libx32
+bar mnt/foo
+bar run/foo
+bar srv/foo
+bar tmp/foo
+bar usr/bin/foo
+bar usr/foo
+bar usr/lib/debug/
+bar usr/lib32
+bar usr/lib64
+bar usr/libexec
+bar usr/libx32
+bar usr/lib/perl/
+bar usr/lib/python2.7/
+bar usr/lib/sgml
+bar usr/lib/site-python/foo
+bar usr/local/foo
+bar usr/share
+bar usr/share/doc
+bar usr/share/doc/files-foo-in-bar/.xvpics/
+bar usr/share/doc/files-foo-in-bar/.thumbnails/
+bar usr/share/doc/files-foo-in-bar/examples/examples
+bar usr/share/mime/foo/
+bar usr/share/mime/packages/
+bar usr/share/perl/
+bar usr/share/vim/vimcurrent/
+bar usr/share/vim/vim73/
+bar usr/X11R6/bin
+bar usr/X11R6/lib/X11/fonts/
+bar var/foo
+bar var/lock/foo
+bar var/run/foo
+bar var/www/foo
+bar home/johndoe
+bar root
+bar etc/opt
+bar var/cache/pbuilder/build
+bar var/lib/sbuild
+bar var/lib/buildd
+bar build/dir/foo
+bar tmp/buildd/dir/foo
+bar etc/dhcp3
+
+Bar.pm usr/lib/perl5/Foo
+bar.png usr/lib/files-foo-in-bar
+
+perllocal.pod usr/lib/perl-foo
+.packlist usr/lib/perl5
+preferences etc/apt
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules
new file mode 100755
index 0000000..69a61df
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_auto_build:
+ pod2man --section 1 bar.pod > bar.1
+ gzip -n --best bar.1
+ cp bar Bar.pm
+ cp bar bar.png
+ cp bar perllocal.pod
+ touch .packlist
+ touch preferences
+
+override_dh_auto_install:
+ dh_install bar.1.gz usr/X11R6/man/man1/
+
+# skip
+override_dh_usrlocal override_dh_gconf:
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values
new file mode 100644
index 0000000..17ea927
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-foo-in-bar
+Description: Test tags about files or dirs in given paths
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar
new file mode 100644
index 0000000..980a0d5
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar
@@ -0,0 +1 @@
+Hello World!
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod
new file mode 100644
index 0000000..4144a36
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod
@@ -0,0 +1,18 @@
+
+=head1 NAME
+
+bar - does stuff
+
+=head1 SYNOPSIS
+
+bar
+
+=head1 DESCRIPTION
+
+Does nothing.
+
+=head1 AUTHOR
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/eval/desc b/t/recipes/checks/languages/python/files-foo-in-bar/eval/desc
new file mode 100644
index 0000000..d76975b
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-foo-in-bar
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/eval/hints b/t/recipes/checks/languages/python/files-foo-in-bar/eval/hints
new file mode 100644
index 0000000..e8f7115
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/eval/hints
@@ -0,0 +1,3 @@
+files-foo-in-bar (binary): third-party-package-in-python-dir [usr/lib/python2.7/bar]
+files-foo-in-bar (binary): file-in-usr-lib-site-python [usr/lib/site-python/foo/bar]
+files-foo-in-bar (binary): file-in-usr-lib-site-python [usr/lib/site-python/foo/]
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test b/t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test
new file mode 100644
index 0000000..5af7ea2
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test
@@ -0,0 +1,2 @@
+# Ignore all duplicate-files tags
+/[^ ]* \([^)]*\): duplicate-files .*/ d
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in
new file mode 100644
index 0000000..cbad865
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in
@@ -0,0 +1,53 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], dpkg-dev (>= 1.16.1~)
+Rules-Requires-Root: no
+
+Package: python-kinterbasdb
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+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.
+
+Package: python-kinterbasdb-dbg
+Architecture: any
+Section: debug
+Depends: ${misc:Depends}, python-kinterbasdb (= ${binary:Version}),
+ ${shlibs:Depends}
+Description: [% $description %] - debug
+ 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.
+ .
+ This is a fake debug package.
+
+Package: python3-modulename
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: [% $description %] (Python 3.x)
+ 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.
+ .
+ Python 3.x version.
+
+Package: python3-modulename-dbg
+Architecture: any
+Section: debug
+Depends: ${misc:Depends}, python3-modulename (= ${binary:Version}),
+ ${shlibs:Depends}
+Description: [% $description %] - debug (Python 3.x) version
+ 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.
+ .
+ This is a fake Python 3.x debug package.
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install
new file mode 100644
index 0000000..ad14f96
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install
@@ -0,0 +1,7 @@
+code.pyc usr/share/python-kinterbasdb/
+code.pyo usr/share/python-kinterbasdb/
+code.pyc usr/share/python-kinterbasdb/__pycache__/
+code.pyo usr/share/python-kinterbasdb/__pycache__/
+objects.inv usr/share/doc/python-kinterbasdb/docs/
+python.egg usr/share/python-kinterbasdb/
+python-module.so usr/lib/pyshared/python2.7
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules
new file mode 100644
index 0000000..1648ccd
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+DPKG_EXPORT_BUILDFLAGS:=1
+include /usr/share/dpkg/buildflags.mk
+
+DOCS:=debian/python-kinterbasdb/usr/share/doc/python-kinterbasdb/docs
+%:
+ dh $@
+
+override_dh_strip:
+ dh_strip -ppython-kinterbasdb --dbg-package=python-kinterbasdb-dbg
+ dh_strip --remaining-packages
+
+override_dh_compress:
+ dh_compress
+ # Manually compress it, since debhelper will fix #608907
+ # in the "near" future.
+ [ -f "$(DOCS)/objects.inv.gz" ] || gzip -n --best "$(DOCS)/objects.inv"
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/fill-values b/t/recipes/checks/languages/python/files-python-general/build-spec/fill-values
new file mode 100644
index 0000000..4177acc
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: files-python-general
+Dh-Compat-Level: 7
+Description: Test general Python related tags
+Default-Build-Depends: debhelper (>= [% $dh_compat_level %]~)
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..e246faf
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile
@@ -0,0 +1,7 @@
+all: lib.c
+ echo 'Hallo World' > code.pyc
+ echo 'Hallo World' > code.pyo
+ gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -fPIC -shared -o python-module.so lib.c
+
+distclean:
+ rm -f code.pyc code.pyo python-module.so
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c
new file mode 100644
index 0000000..30d6ed5
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c
@@ -0,0 +1,4 @@
+int do_something(int (*a)(char *)){
+ char test[10];
+ return a(test);
+}
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv
new file mode 100644
index 0000000..2dcebcb
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv
@@ -0,0 +1,199 @@
+# Sphinx inventory version 1
+# Project: KInterbasDB
+# Version: 3.3
+kinterbasdb.typeconv_23plus_lowmem mod beyond-python-db-api.html
+kinterbasdb mod index.html
+kinterbasdb.typeconv_naked mod beyond-python-db-api.html
+kinterbasdb.typeconv_fixed_fixedpoint mod beyond-python-db-api.html
+kinterbasdb.typeconv_23plus mod beyond-python-db-api.html
+kinterbasdb.typeconv_fixed_decimal mod beyond-python-db-api.html
+kinterbasdb.typeconv_fixed_stdlib mod beyond-python-db-api.html
+kinterbasdb.typeconv_datetime_stdlib mod beyond-python-db-api.html
+kinterbasdb.typeconv_text_unicode mod beyond-python-db-api.html
+kinterbasdb.typeconv_datetime_mx mod beyond-python-db-api.html
+kinterbasdb.typeconv_backcompat mod beyond-python-db-api.html
+kinterbasdb.services mod beyond-python-db-api.html
+kinterbasdb.typeconv_24plus mod beyond-python-db-api.html
+kinterbasdb.services.Connection.getArchitecture method beyond-python-db-api.html
+kinterbasdb.connect function python-db-api-compliance.html
+kinterbasdb.Cursor.transaction attribute beyond-python-db-api.html
+Cursor.executemany method Python-DB-API-2.0.html
+kinterbasdb.TableReservation.render method beyond-python-db-api.html
+Error exception Python-DB-API-2.0.html
+kinterbasdb.PreparedStatement.description attribute beyond-python-db-api.html
+kinterbasdb.DATETIME data python-db-api-compliance.html
+kinterbasdb.Connection.prepare method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.sql attribute beyond-python-db-api.html
+kinterbasdb.Transaction.cursors attribute beyond-python-db-api.html
+kinterbasdb.Connection.trans method beyond-python-db-api.html
+kinterbasdb.services.Conenction.setWriteMode method beyond-python-db-api.html
+kinterbasdb.Connection.event_conduit method beyond-python-db-api.html
+kinterbasdb.BlobReader.chunks method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.prepare method beyond-python-db-api.html
+kinterbasdb.TableReservation class beyond-python-db-api.html
+Cursor.close method Python-DB-API-2.0.html
+kinterbasdb.Transaction.n_physical attribute beyond-python-db-api.html
+TimestampFromTicks function Python-DB-API-2.0.html
+kinterbasdb.CT_NONTRANSPARENT data beyond-python-db-api.html
+kinterbasdb.TPB.isolation_level attribute beyond-python-db-api.html
+kinterbasdb.Transaction.close method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.n_output_params attribute beyond-python-db-api.html
+Cursor.nextset method Python-DB-API-2.0.html
+DATETIME data Python-DB-API-2.0.html
+kinterbasdb.Cursor.rowcount attribute python-db-api-compliance.html
+kinterbasdb.Connection.database_info method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.remove method beyond-python-db-api.html
+kinterbasdb.TPB.render method beyond-python-db-api.html
+kinterbasdb.services.Conenction.modifyUser method beyond-python-db-api.html
+kinterbasdb.services.Conenction.rollbackLimboTransaction method beyond-python-db-api.html
+kinterbasdb.Transaction.__init__ method beyond-python-db-api.html
+kinterbasdb.services.Connection.getHomeDir method beyond-python-db-api.html
+kinterbasdb.Cursor.setinputsizes method python-db-api-compliance.html
+paramstyle data Python-DB-API-2.0.html
+kinterbasdb.TPB.lock_timeout attribute beyond-python-db-api.html
+Connection.rollback method Python-DB-API-2.0.html
+kinterbasdb.EventConduit.close method beyond-python-db-api.html
+kinterbasdb.Cursor.arraysize attribute python-db-api-compliance.html
+DatabaseError exception Python-DB-API-2.0.html
+kinterbasdb.Cursor.description attribute python-db-api-compliance.html
+kinterbasdb.EventConduit.flush method beyond-python-db-api.html
+kinterbasdb.services.Connection.close method beyond-python-db-api.html
+kinterbasdb.services.Conenction.activateShadowFile method beyond-python-db-api.html
+kinterbasdb.Cursor.setoutputsize method python-db-api-compliance.html
+kinterbasdb.ConnectionGroup.commit method beyond-python-db-api.html
+kinterbasdb.services.Conenction.setSQLDialect method beyond-python-db-api.html
+connect function Python-DB-API-2.0.html
+Cursor.setinputsizes method Python-DB-API-2.0.html
+kinterbasdb.Connection.dialect attribute python-db-api-compliance.html
+kinterbasdb.Connection.execute_immediate method python-db-api-compliance.html
+kinterbasdb.create_database function beyond-python-db-api.html
+kinterbasdb.Connection.get_type_trans_in method beyond-python-db-api.html
+kinterbasdb.TPB class beyond-python-db-api.html
+kinterbasdb.services.connect function beyond-python-db-api.html
+kinterbasdb.Transaction.commit method beyond-python-db-api.html
+kinterbasdb.Connection.charset attribute python-db-api-compliance.html
+TimeFromTicks function Python-DB-API-2.0.html
+kinterbasdb.Connection.savepoint method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchallmap method python-db-api-compliance.html
+kinterbasdb.PreparedStatement.statement_type attribute beyond-python-db-api.html
+kinterbasdb.Cursor class beyond-python-db-api.html
+kinterbasdb.services.Conenction.setShouldReservePageSpace method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup class beyond-python-db-api.html
+Cursor.callproc method Python-DB-API-2.0.html
+kinterbasdb.services.Connection class beyond-python-db-api.html
+kinterbasdb.services.Connection.getServiceManagerVersion method beyond-python-db-api.html
+IntegrityError exception Python-DB-API-2.0.html
+kinterbasdb.Transaction class beyond-python-db-api.html
+Cursor class Python-DB-API-2.0.html
+kinterbasdb.Connection.drop_database method beyond-python-db-api.html
+Connection.commit method Python-DB-API-2.0.html
+kinterbasdb.services.Conenction.userExists method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchone method python-db-api-compliance.html
+kinterbasdb.Connection.transactions attribute beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.disband method beyond-python-db-api.html
+InterfaceError exception Python-DB-API-2.0.html
+kinterbasdb.Transaction.connection attribute beyond-python-db-api.html
+kinterbasdb.Connection.rollback method python-db-api-compliance.html
+kinterbasdb.services.Connection.getStatistics method beyond-python-db-api.html
+kinterbasdb.TPB.access_mode attribute beyond-python-db-api.html
+kinterbasdb.services.Connection.getCapabilityMask method beyond-python-db-api.html
+kinterbasdb.Connection.precision_mode attribute python-db-api-compliance.html
+kinterbasdb.Connection.transaction_info method beyond-python-db-api.html
+kinterbasdb.EventConduit class beyond-python-db-api.html
+BINARY data Python-DB-API-2.0.html
+kinterbasdb.Connection.db_info method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.add method beyond-python-db-api.html
+Binary function Python-DB-API-2.0.html
+kinterbasdb.init function beyond-python-db-api.html
+Cursor.setoutputsize method Python-DB-API-2.0.html
+kinterbasdb.CT_COMMIT data beyond-python-db-api.html
+kinterbasdb.services.Connection.getConnectionCount method beyond-python-db-api.html
+kinterbasdb.services.Connection.getLockFileDir method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.contains method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.rollback method beyond-python-db-api.html
+kinterbasdb.Connection.set_type_trans_in method beyond-python-db-api.html
+kinterbasdb.Transaction.trans_info method beyond-python-db-api.html
+Cursor.rowcount attribute Python-DB-API-2.0.html
+threadsafety data Python-DB-API-2.0.html
+kinterbasdb.services.Connection.restore method beyond-python-db-api.html
+Warning exception Python-DB-API-2.0.html
+kinterbasdb.services.Connection.getSecurityDatabasePath method beyond-python-db-api.html
+Timestamp function Python-DB-API-2.0.html
+kinterbasdb.Cursor.fetchmanymap method python-db-api-compliance.html
+kinterbasdb.Transaction.closed attribute beyond-python-db-api.html
+kinterbasdb.Cursor.fetchonemap method python-db-api-compliance.html
+Date function Python-DB-API-2.0.html
+kinterbasdb.ConnectionGroup.count method beyond-python-db-api.html
+kinterbasdb.services.Connection.setSweepInterval method beyond-python-db-api.html
+ProgrammingError exception Python-DB-API-2.0.html
+kinterbasdb.Transaction.begin method beyond-python-db-api.html
+kinterbasdb.CT_ROLLBACK data beyond-python-db-api.html
+kinterbasdb.Cursor.set_type_trans_in method beyond-python-db-api.html
+kinterbasdb.services.Conenction.shutdown method beyond-python-db-api.html
+kinterbasdb.services.Connection.getAttachedDatabaseNames method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchall method python-db-api-compliance.html
+kinterbasdb.services.Connection.backup method beyond-python-db-api.html
+Connection class Python-DB-API-2.0.html
+kinterbasdb.ConnectionGroup.begin method beyond-python-db-api.html
+Time function Python-DB-API-2.0.html
+kinterbasdb.services.Connection.getMessageFileDir method beyond-python-db-api.html
+kinterbasdb.Transaction.resolution attribute beyond-python-db-api.html
+Connection.cursor method Python-DB-API-2.0.html
+kinterbasdb.ConnectionGroup.__init__ method beyond-python-db-api.html
+kinterbasdb.Cursor.itermap method python-db-api-compliance.html
+kinterbasdb.services.User class beyond-python-db-api.html
+DataError exception Python-DB-API-2.0.html
+kinterbasdb.CT_VETO data beyond-python-db-api.html
+kinterbasdb.services.Conenction.bringOnline method beyond-python-db-api.html
+apilevel data Python-DB-API-2.0.html
+kinterbasdb.Cursor.get_type_trans_in method beyond-python-db-api.html
+InternalError exception Python-DB-API-2.0.html
+NUMBER data Python-DB-API-2.0.html
+kinterbasdb.services.Conenction.repair method beyond-python-db-api.html
+Cursor.fetchall method Python-DB-API-2.0.html
+kinterbasdb.Transaction.prepare method beyond-python-db-api.html
+kinterbasdb.Transaction.rollback method beyond-python-db-api.html
+kinterbasdb.services.Conenction.setAccessMode method beyond-python-db-api.html
+Cursor.fetchmany method Python-DB-API-2.0.html
+kinterbasdb.services.Connection.getServerVersion method beyond-python-db-api.html
+kinterbasdb.Transaction.cursor method beyond-python-db-api.html
+kinterbasdb.services.Conenction.commitLimboTransaction method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchmany method python-db-api-compliance.html
+Cursor.execute method Python-DB-API-2.0.html
+kinterbasdb.services.Conenction.removeUser method beyond-python-db-api.html
+kinterbasdb.Cursor.name attribute beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.clear method beyond-python-db-api.html
+kinterbasdb.Connection class beyond-python-db-api.html
+kinterbasdb.Connection.main_transaction attribute beyond-python-db-api.html
+kinterbasdb.Cursor.prep method beyond-python-db-api.html
+kinterbasdb.Cursor.nextset method python-db-api-compliance.html
+kinterbasdb.BlobReader class beyond-python-db-api.html
+kinterbasdb.TPB.lock_resolution attribute beyond-python-db-api.html
+kinterbasdb.services.Conenction.getLimboTransactionIDs method beyond-python-db-api.html
+STRING data Python-DB-API-2.0.html
+Cursor.description attribute Python-DB-API-2.0.html
+NotSupportedError exception Python-DB-API-2.0.html
+kinterbasdb.PreparedStatement class beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.members method beyond-python-db-api.html
+kinterbasdb.services.Conenction.addUser method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.n_input_params attribute beyond-python-db-api.html
+kinterbasdb.services.Conenction.setDefaultPageBuffers method beyond-python-db-api.html
+kinterbasdb.Connection.server_version attribute python-db-api-compliance.html
+Connection.close method Python-DB-API-2.0.html
+kinterbasdb.Connection.trans_info method beyond-python-db-api.html
+kinterbasdb.Cursor.iter method python-db-api-compliance.html
+DateFromTicks function Python-DB-API-2.0.html
+kinterbasdb.EventConduit.wait method beyond-python-db-api.html
+kinterbasdb.EventConduit.__init__ method beyond-python-db-api.html
+Cursor.fetchone method Python-DB-API-2.0.html
+kinterbasdb.Transaction.savepoint method beyond-python-db-api.html
+kinterbasdb.services.Conenction.getUsers method beyond-python-db-api.html
+kinterbasdb.TPB.table_reservation attribute beyond-python-db-api.html
+kinterbasdb.Transaction.transaction_info method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.plan attribute beyond-python-db-api.html
+kinterbasdb.services.Connection.getLog method beyond-python-db-api.html
+ROWID data Python-DB-API-2.0.html
+kinterbasdb.Connection.begin method beyond-python-db-api.html
+kinterbasdb.services.Connection.sweep method beyond-python-db-api.html
+kinterbasdb.Connection.commit method python-db-api-compliance.html
+OperationalError exception Python-DB-API-2.0.html
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg
new file mode 100644
index 0000000..336f590
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg
@@ -0,0 +1 @@
+Hallo World
diff --git a/t/recipes/checks/languages/python/files-python-general/eval/desc b/t/recipes/checks/languages/python/files-python-general/eval/desc
new file mode 100644
index 0000000..ec10a93
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-python-general
+See-Also: Debian Bug#608810, Debian Bug#756005
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-python-general/eval/hints b/t/recipes/checks/languages/python/files-python-general/eval/hints
new file mode 100644
index 0000000..a9db459
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/eval/hints
@@ -0,0 +1,7 @@
+files-python-general (source): python-foo-but-no-python3-foo python-kinterbasdb-dbg
+files-python-general (source): python-foo-but-no-python3-foo python-kinterbasdb
+python-kinterbasdb-dbg (binary): python-debug-in-wrong-location better: usr/lib/debug/usr/lib/pymodules/python2.7/python-module.so [usr/lib/debug/usr/lib/pyshared/python2.7/python-module.so]
+python-kinterbasdb (binary): package-installs-python-pycache-dir [usr/share/python-kinterbasdb/__pycache__/]
+python-kinterbasdb (binary): package-installs-python-egg [usr/share/python-kinterbasdb/python.egg]
+python-kinterbasdb (binary): package-installs-python-bytecode [usr/share/python-kinterbasdb/code.pyo]
+python-kinterbasdb (binary): package-installs-python-bytecode [usr/share/python-kinterbasdb/code.pyc]
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in
new file mode 100644
index 0000000..29bb9c6
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-foo
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends},
+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.
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install
new file mode 100644
index 0000000..ddf8315
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install
@@ -0,0 +1,9 @@
+site.py /usr/lib/python3/dist-packages
+tests.py /usr/lib/python3/dist-packages
+__init__.py /usr/lib/python3/dist-packages/doc/
+__init__.py /usr/lib/python3/dist-packages/docs/
+__init__.py /usr/lib/python3/dist-packages/test/
+__init__.py /usr/lib/python3/dist-packages/tests/
+__init__.py /usr/lib/python3/dist-packages/example/
+__init__.py /usr/lib/python3/dist-packages/examples/
+__init__.py /usr/lib/python3/dist-packages/false_positive/
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules
new file mode 100644
index 0000000..abde6ef
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@
+
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values
new file mode 100644
index 0000000..57ceb09
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-python-module-has-overly-generic-name
+Description: Test tags for Python modules with overly generic names
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc
new file mode 100644
index 0000000..e2c469a
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc
@@ -0,0 +1,4 @@
+Testname: files-python-module-has-overly-generic-name
+Test-Against:
+ unknown-file-in-python-module-directory
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints
new file mode 100644
index 0000000..b3b6ee6
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints
@@ -0,0 +1,9 @@
+python3-foo (binary): python-package-missing-depends-on-python
+python3-foo (binary): python-module-has-overly-generic-name (tests) [usr/lib/python3/dist-packages/tests/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (tests) [usr/lib/python3/dist-packages/tests.py]
+python3-foo (binary): python-module-has-overly-generic-name (test) [usr/lib/python3/dist-packages/test/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (site) [usr/lib/python3/dist-packages/site.py]
+python3-foo (binary): python-module-has-overly-generic-name (examples) [usr/lib/python3/dist-packages/examples/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (example) [usr/lib/python3/dist-packages/example/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (docs) [usr/lib/python3/dist-packages/docs/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (doc) [usr/lib/python3/dist-packages/doc/__init__.py]
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in
new file mode 100644
index 0000000..a4f2d34
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-foo
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends},
+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.
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install
new file mode 100644
index 0000000..165f0c2
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install
@@ -0,0 +1,13 @@
+# GOOD
+python-foo /usr/lib/python2.5/site-packages/
+python-foo /usr/lib/python2.6/dist-packages/
+python-foo /usr/lib/python2.7/dist-packages/
+python-foo /usr/lib/python3/dist-packages/
+
+# BAD
+python-foo usr/lib/python2.5/dist-packages/
+python-foo usr/lib/python2.6/site-packages/
+python-foo usr/lib/python2.7/site-packages/
+python-foo usr/lib/python3.2/dist-packages/
+python-foo usr/lib/python3.2/site-packages/
+
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules
new file mode 100644
index 0000000..abde6ef
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@
+
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values b/t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values
new file mode 100644
index 0000000..a4afe04
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-python-modules
+Description: Test tags for misplaced Python modules
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo b/t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo
new file mode 100644
index 0000000..336f590
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo
@@ -0,0 +1 @@
+Hallo World
diff --git a/t/recipes/checks/languages/python/files-python-modules/eval/desc b/t/recipes/checks/languages/python/files-python-modules/eval/desc
new file mode 100644
index 0000000..25b7e1b
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-python-modules
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-python-modules/eval/hints b/t/recipes/checks/languages/python/files-python-modules/eval/hints
new file mode 100644
index 0000000..cfc6801
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/eval/hints
@@ -0,0 +1,16 @@
+files-python-modules (source): python-foo-but-no-python3-foo python-foo
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3.2/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3.2/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.7/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.7/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.6/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.6/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.5/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.5/dist-packages/python-foo]
+python-foo (binary): python-package-missing-depends-on-python
+python-foo (binary): python-module-in-wrong-location usr/lib/python3.2/site-packages/python-foo -> usr/lib/python3/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python3.2/dist-packages/python-foo -> usr/lib/python3/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python2.7/site-packages/python-foo -> usr/lib/python2.7/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python2.6/site-packages/python-foo -> usr/lib/python2.6/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python2.5/dist-packages/python-foo -> usr/lib/python2.5/site-packages/python-foo
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in
new file mode 100644
index 0000000..dce800f
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-foo
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python3:any
+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.
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install
new file mode 100644
index 0000000..a073f04
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install
@@ -0,0 +1,4 @@
+bad /usr/lib/python3/dist-packages
+good /usr/lib/python3/dist-packages/subdir
+good.py /usr/lib/python3/dist-packages
+good.py /usr/lib/python3/dist-packages/subdir
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values
new file mode 100644
index 0000000..af35625
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-unknown-file-in-python-module-directory
+Description: Test for invalid files in Python module directory
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc
new file mode 100644
index 0000000..3ef5d5c
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-unknown-file-in-python-module-directory
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints
new file mode 100644
index 0000000..f6b2598
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints
@@ -0,0 +1 @@
+python3-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3/dist-packages/bad]
diff --git a/t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values b/t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values
new file mode 100644
index 0000000..215d964
--- /dev/null
+++ b/t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: source-native
+Testname: pypi
+Description: Homepage points to PyPI
+Homepage: https://pypi.org/project/some-name/
diff --git a/t/recipes/checks/languages/python/homepage/pypi/eval/desc b/t/recipes/checks/languages/python/homepage/pypi/eval/desc
new file mode 100644
index 0000000..87224e0
--- /dev/null
+++ b/t/recipes/checks/languages/python/homepage/pypi/eval/desc
@@ -0,0 +1,4 @@
+Testname: pypi
+Check: languages/python/homepage
+See-Also:
+ Bug#981932
diff --git a/t/recipes/checks/languages/python/homepage/pypi/eval/hints b/t/recipes/checks/languages/python/homepage/pypi/eval/hints
new file mode 100644
index 0000000..9dde452
--- /dev/null
+++ b/t/recipes/checks/languages/python/homepage/pypi/eval/hints
@@ -0,0 +1 @@
+pypi (source): pypi-homepage https://pypi.org/project/some-name/
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py
new file mode 100644
index 0000000..6e883de
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py
@@ -0,0 +1 @@
+# a fake module source \ No newline at end of file
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions
new file mode 100644
index 0000000..6f290b0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions
@@ -0,0 +1 @@
+>= 2.7
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values
new file mode 100644
index 0000000..37c65d1
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: cruft-python
+Description: Misc errors related to Python
+Extra-Build-Depends: python
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build
new file mode 100755
index 0000000..a5ee0a0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Create all the various junk that shouldn't exist in the diff so that we can
+# trigger all the tags.
+
+set -e
+dir="$1"
+fake="$dir/debian/missing-sources/fake.py"
+
+cp "$fake" "$dir"
+echo 'import fake' > "${dir}/main.py"
+unset PYTHONDONTWRITEBYTECODE
+PYTHONPATH="${dir}" python "${dir}/main.py" > /dev/null
+PYTHONPATH="${dir}" python -O "${dir}/main.py" > /dev/null
+# now remove source
+rm -f "${dir}"/main.py
+rm -f "${dir}"/fake.py
+
+cp "$fake" "$dir/fake2.py"
+echo 'import fake2' > "${dir}/main.py"
+unset PYTHONDONTWRITEBYTECODE
+PYTHONPATH="${dir}" python "${dir}/main.py" > /dev/null
+PYTHONPATH="${dir}" python -O "${dir}/main.py" > /dev/null
+# now remove source
+rm -f "${dir}"/main.py
+rm -f "${dir}"/fake2.py
+
+
+
+
+
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc
new file mode 100644
index 0000000..19f9ef0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc
@@ -0,0 +1,2 @@
+Testname: cruft-python
+Check: languages/python/obsolete
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints
new file mode 100644
index 0000000..fc427e1
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints
@@ -0,0 +1,2 @@
+cruft-python (source): debian-pyversions-is-obsolete
+cruft-python (source): debian-pycompat-is-obsolete
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in
new file mode 100644
index 0000000..f5e308e
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in
@@ -0,0 +1,6 @@
+debconf ([% $version %]) [% $distribution %]; urgency=low
+
+ * Initial Release
+ * Changelog line with exactly 80 characters which tests the line-too-long tag.
+
+ -- Lintian Maintainers <debian-lint-maint@debian.org> Wed, 3 May 2006 18:07:19 -0500
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control
new file mode 100644
index 0000000..bf9f4e9
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control
@@ -0,0 +1,52 @@
+Source: debconf
+Section: utils
+Priority: optional
+Build-Depends: debhelper (>= 4), dpatch
+Maintainer: Lintian Maintainers <debian-lint-maint@debian.org>
+Standards-Version: 3.7.2
+
+Package: debconf-test
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (dummy)
+
+Package: debconf-test-noscripts
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (noscripts)
+ Package missing postinst/postrm/config.
+ .
+ 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.
+
+Package: debconf-test-preinst
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (preinst)
+ Package uses debconf only in preinst.
+ .
+ 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.
+
+Package: debconf-test-postinst
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (postinst)
+ Package uses debconf only in postinst.
+ .
+ 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.
+
+Package: debconf-udeb
+Section: debian-installer
+XC-Package-Type: udeb
+XB-Installer-Menu-Item: 100
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: Test udeb package for the debconf checks of lintian (dummy)
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright
new file mode 100644
index 0000000..84843ee
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright
@@ -0,0 +1,10 @@
+Copyright (C) 2004 Frank Lichtenheld <djpig@debian.org>
+
+Test for really old FSF address:
+
+Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
+MA 02139, USA.
+
+Test for a dh-make boilerplate:
+# Please also look if there are files or directories which have a
+# different copyright/license attached and list them here.
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates
new file mode 100644
index 0000000..93f8071
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates
@@ -0,0 +1,3 @@
+Template: debconf/test
+Type: text
+_description: Foo bar (1)
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst
new file mode 100644
index 0000000..56ab871
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_input medium debconf/test
+
+#DEBHELPER#
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm
new file mode 100644
index 0000000..cbf5e3b
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+fi
+#DEBHELPER#
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates
new file mode 100644
index 0000000..2a2a8ab
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates
@@ -0,0 +1,3 @@
+Template: debconf/test
+Type: text
+_description: Enter something:
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm
new file mode 100644
index 0000000..cbf5e3b
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+fi
+#DEBHELPER#
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst
new file mode 100644
index 0000000..bf6f074
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -e
+
+# Obsolete name for the confmodule
+. /usr/share/debconf/confmodule.sh
+
+. /usr/share/debconf/confmodule
+
+db_input medium debconf/test
+
+#DEBHELPER#
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates
new file mode 100644
index 0000000..2a2a8ab
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates
@@ -0,0 +1,3 @@
+Template: debconf/test
+Type: text
+_description: Enter something:
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config
new file mode 100644
index 0000000..9e32d06
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_settitle "Funky lintian test"
+
+# Bad priorities.
+db_text LOW debconf/test
+db_input normal debconf/test
+
+# Valid priorities.
+db_text \
+high debconf/test
+foo=medium
+db_input $foo debconf/test
+db_input "$foo" debconf/test
+db_input 'medium' debconf/test
+
+# debconf/transtring should not be flagged as unused
+# (it's aliased to debconf/alias, which is used)
+db_register debconf/transtring debconf/alias
+db_input medium debconf/alias
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst
new file mode 100644
index 0000000..b387037
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+# Not supposed to do this here.
+db_input medium debconf/test
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates
new file mode 100644
index 0000000..811bb6c
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates
@@ -0,0 +1,101 @@
+Template: debconf/test
+Type: text
+_description: Foo bar (1)
+
+Template: debconf/testmulti
+Type: multiselect
+__Choices: foo, bar, boo
+_Description: test comma usages in choices fields
+
+Template: debconf/testmulti-escape
+Type: multiselect
+_Choices: foo\, bar, boo
+_Description: test escaped comma usages in choices fields:
+
+Template: debconf/testboolean
+Type: boolean
+_Description: Enter yes or no:
+ Do you want to answer this question?
+
+Template: debconf/teststring
+Type: string
+_Description: This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+
+Template: debconf/testnote
+Type: note
+Description: This should be a title and not a really long sentence that ends in a regular period.
+
+Template: debconf/1st-person
+Type: select
+__Choices: one, two
+_Description: Select one of these:
+ I am a stupid test of first-person syntax that tells you to select yes
+ even though yes isn't an option in this prompt.
+
+Template: debconf/internal
+Type: boolean
+Description: For internal use only
+ We are testing that style checks are not applied to templates that are
+ marked as internal.
+
+Template: debconf/no-description
+Type: string
+
+Template: debconf/translate
+Type: boolean
+_Default: false
+_Description: Should this really be translated?
+
+Template: debconf/transtring
+Type: string
+_Default: 1
+_Description: Count of templates:
+ The number of useless numbers that a translator would have to translate
+ for this template.
+
+Template: debconf/language
+__Choices: English, Spanish, German, French
+# This is the default choice. Translators should put their own language,
+# if available, here instead, but the value MUST be the English version
+# of the value for the package scripts to work properly.
+_Default: English[ translators, see the comment in the PO files]
+_Description: The default language, an example of a default that should
+ be translated.
+
+Template: debconf/error
+Type: error
+_Description: An error occurred
+ This is a sample Debconf error template.
+
+Template: debconf/should-be-boolean
+Type: select
+__Choices: yes, no
+_Description: Choose:
+ Pick yes or no.
+
+Template: debconf/should-be-no-longer-a-problem
+Type: boolean
+_Description: Decide, lintian
+ Using "no longer" should no longer be detected as
+ making-assumptions-about-interfaces-in-templates by lintian.
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de
new file mode 100644
index 0000000..f9ea121
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de
@@ -0,0 +1,3 @@
+Template: debconf/testmulti
+Type: multiselect
+Choices: foo, bar\, boo, boo
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst
new file mode 100644
index 0000000..4ce41f0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+ldconfig
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates
new file mode 100644
index 0000000..5d7cf5a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates
@@ -0,0 +1,3 @@
+Template: debian-installer/debconf-udeb/title
+Type: text
+_description: This is just a test
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in
new file mode 100644
index 0000000..d0c82f0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in
@@ -0,0 +1,2 @@
+[type: gettext/rfc822deb] debconf-test.templates
+[type: gettext/rfc822deb] debconf-udeb.templates
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po
new file mode 100644
index 0000000..86c5796
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po
@@ -0,0 +1,66 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2004-12-06 01:01+0100\n"
+"Last-Translator: Frank Lichtenheld <djpig@debian.org>\n"
+"Language-Team: debian-l10n-german@l.d.o\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "foo"
+msgstr "foo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "bar"
+msgstr "bar, boo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "boo"
+msgstr "boo"
+
+#. Type: multiselect
+#. Description
+#: ../debconf-test.templates:8
+msgid "test comma usages in choices fields"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:11
+msgid "foo\\, bar, boo"
+msgstr "foo, bar, boo"
+
+#. Type: text
+#. description
+#: ../debconf-udeb.templates:3
+msgid "This is just a test"
+msgstr "Dies ist nur ein Test"
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po
new file mode 100644
index 0000000..c74deb2
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po
@@ -0,0 +1,60 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"Last-Translator: Frank Lichtenheld <djpig@debian.org>\n"
+"Language-Team: debian-l10n-german@l.d.o\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "foo"
+msgstr "foo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "bar"
+msgstr "bar, boo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "boo"
+msgstr "boo"
+
+#. Type: multiselect
+#. Description
+#: ../debconf-test.templates:8
+msgid "test comma usages in choices fields"
+msgstr ""
+
+#. Type: text
+#. description
+#: ../debconf-udeb.templates:3
+msgid "This is just a test"
+msgstr "
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po
new file mode 100644
index 0000000..7ac498a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po
new file mode 100644
index 0000000..7ac498a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output
new file mode 100644
index 0000000..c3df1a5
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output
@@ -0,0 +1 @@
+2 utf8
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po
new file mode 100644
index 0000000..7ac498a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po
new file mode 100644
index 0000000..8dcc0ff
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po
@@ -0,0 +1 @@
+This is some file that isn't actually a valid .po file.
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot
new file mode 100644
index 0000000..914c77f
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot
@@ -0,0 +1,61 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "foo"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "bar"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "boo"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../debconf-test.templates:8
+msgid "test comma usages in choices fields"
+msgstr ""
+
+#. Type: text
+#. description
+#: ../debconf-udeb.templates:3
+msgid "This is just a test"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat
@@ -0,0 +1 @@
+2
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions
new file mode 100644
index 0000000..6f290b0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions
@@ -0,0 +1 @@
+>= 2.7
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules
new file mode 100755
index 0000000..933901a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules
@@ -0,0 +1,64 @@
+#!/usr/bin/make -f
+
+deb_dir = debian/debconf
+udeb_dir = debian/debconf-udeb
+build_dirs = $(deb_dir) $(udeb_dir)
+
+build-indep:
+# There are no architecture-independent files to be built
+# by this package. If there were any they would be made
+# here.
+
+build-arch:
+ dh_testdir
+ touch build
+
+build: build-indep build-arch
+
+clean:
+ dh_testdir
+ dh_testroot
+ -rm -f build
+
+ dh_clean
+
+binary-indep: build
+# There are no architecture-independent files to be uploaded
+# generated by this package. If there were any they would be
+# made here.
+
+binary-arch: build
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs -a
+
+ dh_installchangelogs -a
+ dh_installdocs -a
+ dh_installdebconf -pdebconf-test
+ dh_installdebconf -pdebconf-test-noscripts --noscripts
+ dh_installdebconf -pdebconf-test-preinst --noscripts
+ dh_installdebconf -pdebconf-test-postinst --noscripts
+ dh_installdebconf -pdebconf-udeb
+
+
+
+
+ dh_compress -a
+ dh_fixperms -a
+
+# The shlibs stuff doesn't matter here so do it in a weird order to
+# test warnings.
+ dh_installdeb -a
+ dh_shlibdeps -a
+ dh_makeshlibs -a
+ dh_gencontrol -a
+ dh_md5sums
+ dh_builddeb -a
+ dh_makeshlibs -a
+
+# Below here is fairly generic really
+
+binary: binary-indep binary-arch
+
+.PHONY: build-arch build-indep build binary binary-arch binary-indep clean checkroot
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values
new file mode 100644
index 0000000..186615f
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values
@@ -0,0 +1,6 @@
+Skeleton: upload-native
+Testname: legacy-debconf
+Source: debconf
+Version: 1~rc1
+Description: Legacy test "debconf"
+Default-Build-Depends: debhelper (>= [% $dh_compat_level %]~)
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc
new file mode 100644
index 0000000..360e9fa
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-debconf
+Check: languages/python/obsolete
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints
new file mode 100644
index 0000000..b01d66c
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints
@@ -0,0 +1,2 @@
+debconf (source): debian-pyversions-is-obsolete [debian/pyversions]
+debconf (source): debian-pycompat-is-obsolete [debian/pycompat]
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test
new file mode 100644
index 0000000..faeef0b
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test
@@ -0,0 +1 @@
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in
new file mode 100644
index 0000000..92bcd84
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+X-Python3-Version: >= 3.4
+XS-Python-Version: >= 2.7
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: not-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+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.
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install
new file mode 100644
index 0000000..6c37889
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install
@@ -0,0 +1 @@
+some-file usr/share/lintian
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values
new file mode 100644
index 0000000..555004a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-ancient-python-version-field
+Description: Test for ancient python-version fields
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file
new file mode 100644
index 0000000..7bf08f7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file
@@ -0,0 +1,2 @@
+This file is installed into /usr/share/lintian just to ensure that this
+package doesn't look like a metapackage for the dependency checks.
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc
new file mode 100644
index 0000000..fd951d4
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-ancient-python-version-field
+Test-Against:
+ old-python-version-field
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints
new file mode 100644
index 0000000..3170d17
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints
@@ -0,0 +1,2 @@
+python-ancient-python-version-field (source): ancient-python-version-field XS-Python-Version 2.7
+python-ancient-python-version-field (source): ancient-python-version-field X-Python3-Version 3.4
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in
new file mode 100644
index 0000000..cdf3e6a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python-sphinx | python3-sphinx
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python3
+Description: Test package
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values
new file mode 100644
index 0000000..9d30d65
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-build-depends-on-sphinx-alternative
+Description: Check packages that Build-Depend on python-sphinx | python3-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc
new file mode 100644
index 0000000..367bf9d
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-build-depends-on-sphinx-alternative
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints
new file mode 100644
index 0000000..2ebac75
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints
@@ -0,0 +1 @@
+python-build-depends-on-sphinx-alternative (source): alternatively-build-depends-on-python-sphinx-and-python3-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in
new file mode 100644
index 0000000..b32c5cc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-sphinx
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, ${python3::Depends}
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values
new file mode 100644
index 0000000..6acca95
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-build-depends-on-sphinx-unrel
+Description: Check packages that Build-Depend on python-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc
new file mode 100644
index 0000000..60e2314
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc
@@ -0,0 +1,5 @@
+Testname: python-build-depends-on-sphinx-unrel
+Test-Against:
+ alternatively-build-depends-on-python-sphinx-and-python3-sphinx
+ build-depends-on-python-sphinx-only
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in
new file mode 100644
index 0000000..0e34e9f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python-sphinx
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Test package
+ 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.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values
new file mode 100644
index 0000000..cbaf987
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-build-depends-on-sphinx
+Description: Check packages that Build-Depend on python-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc
new file mode 100644
index 0000000..c50652c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-build-depends-on-sphinx
+Test-Against:
+ alternatively-build-depends-on-python-sphinx-and-python3-sphinx
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints
new file mode 100644
index 0000000..100246a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints
@@ -0,0 +1 @@
+python-build-depends-on-sphinx (source): build-depends-on-python-sphinx-only
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values
new file mode 100644
index 0000000..4d980c0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-flit
+Description: Check for a package not built using pyproject flit, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..96d29cf
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml
@@ -0,0 +1,7 @@
+[build-system]
+requires = ["flit_core"]
+build-backend = "flit_core.buildapi"
+
+[tool.flit.metadata]
+module = "foo"
+author = "Louis-Philippe Véronneau"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc
new file mode 100644
index 0000000..7a67830
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-flit
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints
new file mode 100644
index 0000000..287ec5f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-flit (source): missing-prerequisite-for-pyproject-backend flit_core.buildapi (does not satisfy flit:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values
new file mode 100644
index 0000000..32b8599
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-hatchling
+Description: Check for a package not built using pyproject hatchling, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..99e23bc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc
new file mode 100644
index 0000000..d041bcf
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-hatchling
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints
new file mode 100644
index 0000000..5fc6c8c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-hatchling (source): missing-prerequisite-for-pyproject-backend hatchling.build (does not satisfy python3-hatchling:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values
new file mode 100644
index 0000000..6c65bb6
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-mesonpy
+Description: Check for a package not built using pyproject meson, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..4c6d158
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ['meson-python']
+build-backend = 'mesonpy'
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc
new file mode 100644
index 0000000..e94e8b9
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-mesonpy
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints
new file mode 100644
index 0000000..9d0bcdb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-mesonpy (source): missing-prerequisite-for-pyproject-backend mesonpy (does not satisfy python3-mesonpy:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values
new file mode 100644
index 0000000..ef4a012
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-pdm-pep517
+Description: Check for a package not built using pyproject pdm-pep517, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..161e831
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = []
+build-backend = "pdm.pep517.api"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc
new file mode 100644
index 0000000..c6fbaba
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-pdm-pep517
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints
new file mode 100644
index 0000000..aef0fb0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-pdm-pep517 (source): missing-prerequisite-for-pyproject-backend pdm.pep517.api (does not satisfy python3-pdm-pep517:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values
new file mode 100644
index 0000000..06efd81
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-poetry
+Description: Check for a package not built using pyproject poetry, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..cb6ebaa
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml
@@ -0,0 +1,17 @@
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "foo"
+description = "an example module"
+version = "0.1"
+authors = ["Stefano Rivera <stefanor@debian.org>"]
+license = "Expat"
+
+[tool.poetry.dependencies]
+tomli = "^1.0.0"
+importlib-metadata = { version="*", python = "<3.5" }
+
+[tool.poetry.scripts]
+foo = 'foo:main'
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc
new file mode 100644
index 0000000..c1b69de
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-poetry
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints
new file mode 100644
index 0000000..3fd8894
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-poetry (source): missing-prerequisite-for-pyproject-backend poetry.core.masonry.api (does not satisfy python3-poetry-core:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values
new file mode 100644
index 0000000..e63a7eb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-setuptools
+Description: Check for a package not built using pyproject setuptools, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..e0f6edc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools", "wheel", "sphinx"]
+build-backend = "setuptools.build_meta"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc
new file mode 100644
index 0000000..15f5c76
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-setuptools
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints
new file mode 100644
index 0000000..ab706cd
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-setuptools (source): missing-prerequisite-for-pyproject-backend setuptools.build_meta (does not satisfy python3-setuptools:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values
new file mode 100644
index 0000000..abb7502
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-sipbuild
+Description: Check for a package not built using pyproject sipbuild, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..dcd9dba
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["sip >=5, <6"]
+build-backend = "sipbuild.api"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc
new file mode 100644
index 0000000..76fb8d3
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-sipbuild
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints
new file mode 100644
index 0000000..11629dd
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-sipbuild (source): missing-prerequisite-for-pyproject-backend sipbuild.api (does not satisfy python3-sipbuild:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in
new file mode 100644
index 0000000..2017443
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python:any, python3:any, python2.7
+Description: Depends on both Python 2.x and Python 3.x
+ 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.
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values
new file mode 100644
index 0000000..d1ade98
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-depends-python2-and-python3
+Description: Check for packages that depend on Python 2.x and Python 3.x
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc
new file mode 100644
index 0000000..a2ba88e
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-depends-python2-and-python3
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints
new file mode 100644
index 0000000..618976a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints
@@ -0,0 +1 @@
+python3-python-depends-python2-and-python3 (binary): depends-on-python2-and-python3 Depends (satisfies python2.7:any, python3:any)
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in
new file mode 100644
index 0000000..81556b8
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in
@@ -0,0 +1,61 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-django-positive
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package without corresponding python-django dependency
+ 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.
+
+Package: python2-django-positive
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package without corresponding python-django dependency (explicit)
+ 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.
+ .
+ Explicit Python 2 variant.
+
+Package: python3-django-positive
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 3 package without corresponding python3-django dependency
+ 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.
+ .
+ Python 3 variant.
+
+Package: python-django-false-positive
+Architecture: all
+Depends: ${misc:Depends}, python2.7, python-django
+Description: Python 2 package with corresponding python3-django dependency
+ 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.
+ .
+ This is a false positive.
+
+Package: python3-django-false-positive
+Architecture: all
+Pre-Depends: python3-django
+Depends: ${misc:Depends}, python3
+Description: Python 3 package with corresponding python3-django dependency
+ 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.
+ .
+ Python 3 variant of the false positive.
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values
new file mode 100644
index 0000000..3c28985
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-django-package-does-not-depend-on-django
+Description: Check for Django packages that do not specify a Django Depends
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc
new file mode 100644
index 0000000..09cdb4a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-django-package-does-not-depend-on-django
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints
new file mode 100644
index 0000000..5041e0b
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints
@@ -0,0 +1,3 @@
+python3-django-positive (binary): django-package-does-not-depend-on-django python3-django
+python2-django-positive (binary): django-package-does-not-depend-on-django python-django
+python-django-positive (binary): django-package-does-not-depend-on-django python-django
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in
new file mode 100644
index 0000000..96ba835
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: optional
+Section: java
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+XS-Python-Version: current 2.7
+X-Python3-Version: invalid
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: not-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+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.
+
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install
new file mode 100644
index 0000000..6c37889
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install
@@ -0,0 +1 @@
+some-file usr/share/lintian
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values
new file mode 100644
index 0000000..92f69c4
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-malformed-py-version
+Description: Test for malformed python-version field
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file
new file mode 100644
index 0000000..7bf08f7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file
@@ -0,0 +1,2 @@
+This file is installed into /usr/share/lintian just to ensure that this
+package doesn't look like a metapackage for the dependency checks.
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/eval/desc b/t/recipes/checks/languages/python/python-malformed-py-version/eval/desc
new file mode 100644
index 0000000..a7d43a8
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-malformed-py-version
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/eval/hints b/t/recipes/checks/languages/python/python-malformed-py-version/eval/hints
new file mode 100644
index 0000000..0d9b010
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/eval/hints
@@ -0,0 +1,4 @@
+python-malformed-py-version (source): python-version-current-is-deprecated XS-Python-Version
+python-malformed-py-version (source): malformed-python-version XS-Python-Version current 2.7
+python-malformed-py-version (source): malformed-python-version X-Python3-Version invalid
+python-malformed-py-version (source): ancient-python-version-field XS-Python-Version 2.7
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in
new file mode 100644
index 0000000..0c0f9db
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in
@@ -0,0 +1,67 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Mismatched substvar for Python 2.X
+ 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.
+ .
+ For Python 2.X.
+
+Package: python3-[% $source %]
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}
+Description: Mismatched substvar for Python 3.X
+ 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.
+ .
+ For Python 3.X.
+
+Package: python-[% $source %]-nonrel
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}
+Description: False positive for Python 2.X
+ 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.
+ .
+ False positive package For Python 2.X.
+
+Package: python3-[% $source %]-nonrel
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: False positive Python 3.X
+ 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.
+ .
+ False positive package for Python 3.X.
+
+Package: python-[% $source %]-tools
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Generic tools package
+ 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.
+ .
+ Generic -tools packages are allowed.
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values
new file mode 100644
index 0000000..1132b5e
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-mismatched-python-substvar
+Description: Check for Python packages with mismatched substvars.
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc
new file mode 100644
index 0000000..f0867d1
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-mismatched-python-substvar
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints
new file mode 100644
index 0000000..f6cc507
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints
@@ -0,0 +1,2 @@
+python-mismatched-python-substvar (source): mismatched-python-substvar python3-python-mismatched-python-substvar ${python:Depends}
+python-mismatched-python-substvar (source): mismatched-python-substvar python-python-mismatched-python-substvar ${python3:Depends}
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in
new file mode 100644
index 0000000..0da0986
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in
@@ -0,0 +1,10 @@
+[% $source %] ([% $version %]) [% $distribution %]; urgency=low
+
+ * Lintian Test Suite.
+ * Test: [% $testname %]
+ * python-[% $source %] is packaged because...
+
+ * Suppress "should close ITP bug" messages. (Closes: #123456)
+
+ -- [% $author %] [% $date %]
+
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in
new file mode 100644
index 0000000..9cb5bbc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with no corresponding Python 3 package
+ 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.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 2 package with corresponding Python 3 package
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values
new file mode 100644
index 0000000..fee0239
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-new-python2-package-unrel
+Description: Check various Python 2 issues (false positives)
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc
new file mode 100644
index 0000000..4625837
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-new-python2-package-unrel
+Test-Against:
+ new-package-should-not-package-python2-module
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in
new file mode 100644
index 0000000..7cab2cb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in
@@ -0,0 +1,9 @@
+[% $source %] ([% $version %]) [% $distribution %]; urgency=low
+
+ * Lintian Test Suite.
+ * Test: [% $testname %]
+
+ * Suppress "should close ITP bug" messages. (Closes: #123456)
+
+ -- [% $author %] [% $date %]
+
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in
new file mode 100644
index 0000000..9cb5bbc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with no corresponding Python 3 package
+ 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.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 2 package with corresponding Python 3 package
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values
new file mode 100644
index 0000000..6442cdb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-new-python2-package
+Description: Check various Python 2 issues
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/eval/desc b/t/recipes/checks/languages/python/python-new-python2-package/eval/desc
new file mode 100644
index 0000000..c97d25b
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-new-python2-package
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/eval/hints b/t/recipes/checks/languages/python/python-new-python2-package/eval/hints
new file mode 100644
index 0000000..185e930
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/eval/hints
@@ -0,0 +1 @@
+python-python-new-python2-package (binary): new-package-should-not-package-python2-module python-python-new-python2-package
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in
new file mode 100644
index 0000000..4727f6c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+X-Python3-Version: >= 3.5
+XS-Python-Version: >= 2.7
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: not-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+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.
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install
new file mode 100644
index 0000000..6c37889
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install
@@ -0,0 +1 @@
+some-file usr/share/lintian
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values
new file mode 100644
index 0000000..022bd12
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-old-python-version-field
+Description: Test for old python-version fields
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file
new file mode 100644
index 0000000..7bf08f7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file
@@ -0,0 +1,2 @@
+This file is installed into /usr/share/lintian just to ensure that this
+package doesn't look like a metapackage for the dependency checks.
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/eval/desc b/t/recipes/checks/languages/python/python-old-python-version-field/eval/desc
new file mode 100644
index 0000000..014cb1f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-old-python-version-field
+Test-Against:
+ old-python-version-field
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/eval/hints b/t/recipes/checks/languages/python/python-old-python-version-field/eval/hints
new file mode 100644
index 0000000..29a5676
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/eval/hints
@@ -0,0 +1,2 @@
+python-old-python-version-field (source): ancient-python-version-field XS-Python-Version 2.7
+python-old-python-version-field (source): ancient-python-version-field X-Python3-Version 3.5
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in
new file mode 100644
index 0000000..624d38c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in
@@ -0,0 +1,38 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-foo
+Architecture: all
+Depends: ${misc:Depends}, python2.7, python3-foo, python3-foo, python3-bar, python-falsepositive
+Description: Python 2 package depending on python3-foo
+ 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.
+
+Package: python2-foo
+Architecture: all
+Depends: ${misc:Depends}, python2.7, python3-foo, python2-bar, python2-falsepositive
+Description: Python 2 package depending on python3-foo (explicit)
+ 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.
+ .
+ Explicit Python 2.x variant.
+
+Package: python3-foo
+Architecture: all
+Depends: ${misc:Depends}, python3, python-foo, python2-foo, python2-bar, python3-falsepositive, python-foo-doc, python-foo-common
+Description: Python 3 package depending on python-foo and python2-foo
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values
new file mode 100644
index 0000000..f7b42f8
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-package-depends-on-package-from-other-python-variant
+Description: Check for Python packages that depend on variants of themselves
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc
new file mode 100644
index 0000000..54a6284
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-package-depends-on-package-from-other-python-variant
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints
new file mode 100644
index 0000000..b424c11
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints
@@ -0,0 +1,6 @@
+python3-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python2-foo
+python3-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python2-bar
+python3-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python-foo
+python2-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python3-foo
+python-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python3-foo
+python-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python3-bar
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in
new file mode 100644
index 0000000..3f3616f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: Python package with no Python dependencies
+ 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.
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules
new file mode 100755
index 0000000..ffbb59d
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules
@@ -0,0 +1,10 @@
+#!/usr/bin/make -f
+
+TARGET = debian/$(shell dh_listpackages)/usr/lib/python3/dist-packages
+
+%:
+ dh $@
+
+override_dh_auto_install:
+ mkdir -p $(TARGET)
+ touch $(TARGET)/lintian.py
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values
new file mode 100644
index 0000000..5898494
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-package-missing-depends-on-python
+Description: Check for packages missing depends on Python
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc
new file mode 100644
index 0000000..04a6f12
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-package-missing-depends-on-python
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints
new file mode 100644
index 0000000..be51dd6
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints
@@ -0,0 +1 @@
+python3-python-package-missing-depends-on-python (binary): python-package-missing-depends-on-python
diff --git a/t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in
new file mode 100644
index 0000000..9fa4e88
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in
@@ -0,0 +1,87 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Build-Depends: [% $build_depends %]
+Standards-Version: [% $standards_version %]
+Rules-Requires-Root: no
+
+Package: pkg-depends
+Architecture: all
+Depends: ${misc:Depends}, python2
+Description: Test package with Python 2.x in Depends
+ 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.
+ .
+ Description: Test package with Python 2.x in Depends.
+
+Package: pkg-pre-depends
+Architecture: all
+Depends: ${misc:Depends}
+Pre-Depends: python2.7
+Description: Test package with Python 2.x in Pre-Suggests
+ 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.
+ .
+ Description: Test package with Python 2.x in Pre-Depends.
+
+Package: pkg-recommends
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: python2-dev
+Description: Test package with Python 2.x in Recommends
+ 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.
+ .
+ Description: Test package with Python 2.x in Recommends.
+
+Package: pkg-suggests
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: python2, python2.7
+Description: Test package with Python 2.x in Suggests
+ 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.
+ .
+ Description: Test package with Python 2.x in Suggests.
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2
+Description: Python 3 module with Python 3.x in Depends
+ 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.
+ .
+ Python module with Python 2.x in Depends.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 module with Python 3.x in Depends.
+
+Package: pkg-depends-any
+Architecture: all
+Depends: ${misc:Depends}, python2:any
+Description: Test package with Python 2.x with :any suffix in Depends
+ 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.
+ .
+ Description: Test package with Python 2.x with :any suffix in Depends.
diff --git a/t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values b/t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values
new file mode 100644
index 0000000..eb6243a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-python2-apps
+Description: Check packages that Depend/Suggest etc. on Python 2.x
diff --git a/t/recipes/checks/languages/python/python-python2-apps/eval/desc b/t/recipes/checks/languages/python/python-python2-apps/eval/desc
new file mode 100644
index 0000000..0172879
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-python2-apps
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-python2-apps/eval/hints b/t/recipes/checks/languages/python/python-python2-apps/eval/hints
new file mode 100644
index 0000000..b10f957
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/eval/hints
@@ -0,0 +1,6 @@
+pkg-suggests (binary): dependency-on-python-version-marked-for-end-of-life Suggests (satisfies python2:any)
+pkg-suggests (binary): dependency-on-python-version-marked-for-end-of-life Suggests (satisfies python2.7:any)
+pkg-recommends (binary): dependency-on-python-version-marked-for-end-of-life Recommends (satisfies python2-dev:any)
+pkg-pre-depends (binary): dependency-on-python-version-marked-for-end-of-life Pre-Depends (satisfies python2.7:any)
+pkg-depends-any (binary): dependency-on-python-version-marked-for-end-of-life Depends (satisfies python2:any)
+pkg-depends (binary): dependency-on-python-version-marked-for-end-of-life Depends (satisfies python2:any)
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in
new file mode 100644
index 0000000..1b8d6e5
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in
@@ -0,0 +1,84 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with corresponding Python 3 package
+ 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.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 2 package with corresponding Python 3 package (Python 3)
+ 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.
+ .
+ Python 3 package.
+
+Package: python-[% $source %]-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (documentation)
+ 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.
+ .
+ This package contains documentation.
+
+Package: python-[% $source %]-common
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (common files)
+ 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.
+ .
+ This package contains files common to both packages.
+
+Package: python-[% $source %]-tools
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (tools)
+ 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.
+ .
+ This package contains tools.
+
+Package: python-[% $source %]-2
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (2)
+ 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.
+ .
+ This package is another module.
+
+Package: entirely-unrelated-name
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Python 3 version of python-[% $source %]-2
+ 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.
+ .
+ This package is the Python 3 variant of the previous package but with a
+ different name.
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values
new file mode 100644
index 0000000..78e15f0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-python2-no-python3-unrel
+Description: Check for Python packages that only ship a Python 2.x module
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc
new file mode 100644
index 0000000..fab43d0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc
@@ -0,0 +1,3 @@
+Testname: python-python2-no-python3-unrel
+Test-Against: python-foo-but-no-python3-foo
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints
@@ -0,0 +1 @@
+
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in
new file mode 100644
index 0000000..11ed24c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with no corresponding Python 3 package
+ 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.
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values
new file mode 100644
index 0000000..e48cc1a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-python2-no-python3
+Description: Check for Python packages that only ship a Python 2.x module
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/eval/desc b/t/recipes/checks/languages/python/python-python2-no-python3/eval/desc
new file mode 100644
index 0000000..89d3f7a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-python2-no-python3
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/eval/hints b/t/recipes/checks/languages/python/python-python2-no-python3/eval/hints
new file mode 100644
index 0000000..03ff5b7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/eval/hints
@@ -0,0 +1 @@
+python-python2-no-python3 (source): python-foo-but-no-python3-foo python-python-python2-no-python3
diff --git a/t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values
new file mode 100644
index 0000000..7cb70a2
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: python-source-package-encodes-python-version
+Source: python3-foo
+Description: Check packages that encode their Python version in their name
diff --git a/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc
new file mode 100644
index 0000000..4d45222
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-source-package-encodes-python-version
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints
new file mode 100644
index 0000000..1fa0850
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints
@@ -0,0 +1 @@
+python3-foo (source): source-package-encodes-python-version
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in
new file mode 100644
index 0000000..049363e
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-pdm-pep517
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values
new file mode 100644
index 0000000..732f422
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-valid-pdm
+Description: Check packages that build-depend on python3-pdm-pep517.
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..161e831
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = []
+build-backend = "pdm.pep517.api"
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/eval/desc b/t/recipes/checks/languages/python/python-valid-pdm/eval/desc
new file mode 100644
index 0000000..a50cb40
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-valid-pdm
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/eval/hints b/t/recipes/checks/languages/python/python-valid-pdm/eval/hints
new file mode 100644
index 0000000..2c5e8cb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/eval/hints
@@ -0,0 +1 @@
+python-valid-pdm (source): missing-prerequisite-for-pyproject-backend pdm.pep517.api (does not satisfy python3-pdm-pep517:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in
new file mode 100644
index 0000000..cc955c3
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-poetry-core
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values
new file mode 100644
index 0000000..0cfca42
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-valid-poetry
+Description: Check packages that build-depend on python3-poetry-core.
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..cb6ebaa
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml
@@ -0,0 +1,17 @@
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "foo"
+description = "an example module"
+version = "0.1"
+authors = ["Stefano Rivera <stefanor@debian.org>"]
+license = "Expat"
+
+[tool.poetry.dependencies]
+tomli = "^1.0.0"
+importlib-metadata = { version="*", python = "<3.5" }
+
+[tool.poetry.scripts]
+foo = 'foo:main'
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/eval/desc b/t/recipes/checks/languages/python/python-valid-poetry/eval/desc
new file mode 100644
index 0000000..5160485
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-valid-poetry
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/eval/hints b/t/recipes/checks/languages/python/python-valid-poetry/eval/hints
new file mode 100644
index 0000000..1c82652
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/eval/hints
@@ -0,0 +1 @@
+python-valid-poetry (source): missing-prerequisite-for-pyproject-backend poetry.core.masonry.api (does not satisfy python3-poetry-core:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in
new file mode 100644
index 0000000..1e5863c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-pdm
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values
new file mode 100644
index 0000000..cc29107
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-wrong-pdm
+Description: Check packages that build-depend on python3-pdm.
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..161e831
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = []
+build-backend = "pdm.pep517.api"
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/eval/desc b/t/recipes/checks/languages/python/python-wrong-pdm/eval/desc
new file mode 100644
index 0000000..3f142dc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-wrong-pdm
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/eval/hints b/t/recipes/checks/languages/python/python-wrong-pdm/eval/hints
new file mode 100644
index 0000000..0c09107
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/eval/hints
@@ -0,0 +1,2 @@
+python-wrong-pdm (source): uses-pdm-cli [pyproject.toml:3]
+python-wrong-pdm (source): missing-prerequisite-for-pyproject-backend pdm.pep517.api (does not satisfy python3-pdm-pep517:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in
new file mode 100644
index 0000000..3084d99
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-poetry, pybuild-plugin-pyproject
+Build-Depends-Indep: python3-poetry-core
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ 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.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values
new file mode 100644
index 0000000..135776b
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: source-native
+Testname: python-wrong-poetry
+Description: Check packages that build-depend on python3-poetry. Also acts as a
+ test for packages that have the pyproject dependencies in Build-Depends-Indep.
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..cb6ebaa
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml
@@ -0,0 +1,17 @@
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "foo"
+description = "an example module"
+version = "0.1"
+authors = ["Stefano Rivera <stefanor@debian.org>"]
+license = "Expat"
+
+[tool.poetry.dependencies]
+tomli = "^1.0.0"
+importlib-metadata = { version="*", python = "<3.5" }
+
+[tool.poetry.scripts]
+foo = 'foo:main'
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/eval/desc b/t/recipes/checks/languages/python/python-wrong-poetry/eval/desc
new file mode 100644
index 0000000..f0b7ac1
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-wrong-poetry
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/eval/hints b/t/recipes/checks/languages/python/python-wrong-poetry/eval/hints
new file mode 100644
index 0000000..235932a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/eval/hints
@@ -0,0 +1 @@
+python-wrong-poetry (source): uses-poetry-cli [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in
new file mode 100644
index 0000000..8c005aa
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: mail
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: prog-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Package with Python script with bad shebang
+ 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.
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install
new file mode 100644
index 0000000..05e2b78
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install
@@ -0,0 +1 @@
+debian/script-* /usr/bin
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules
new file mode 100755
index 0000000..2d33f6a
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad1 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad1
new file mode 100644
index 0000000..013e4b7
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad1
@@ -0,0 +1 @@
+#!/usr/bin/python
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad2 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad2
new file mode 100644
index 0000000..ee3ecd2
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad2
@@ -0,0 +1 @@
+#! /usr/bin/env python
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good1 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good1
new file mode 100644
index 0000000..e5a0d9b
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good1
@@ -0,0 +1 @@
+#!/usr/bin/env python3
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good2 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good2
new file mode 100644
index 0000000..a93a4bf
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good2
@@ -0,0 +1 @@
+#!/usr/bin/python3
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values
new file mode 100644
index 0000000..20ac55b
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-script-uses-unversioned-python-in-shebang
+Description: Check for unversioned python in shebang
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc
new file mode 100644
index 0000000..e2c3be3
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-script-uses-unversioned-python-in-shebang
+Check: languages/python/scripts
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints
new file mode 100644
index 0000000..15ce9d3
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints
@@ -0,0 +1,2 @@
+prog-python-script-uses-unversioned-python-in-shebang (binary): script-uses-unversioned-python-in-shebang [usr/bin/script-bad2]
+prog-python-script-uses-unversioned-python-in-shebang (binary): script-uses-unversioned-python-in-shebang [usr/bin/script-bad1]
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/control.in b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/control.in
new file mode 100644
index 0000000..6b125db
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/control.in
@@ -0,0 +1,29 @@
+Source: [% $source %]
+Priority: optional
+Section: gnu-r
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: r-cran-positive
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: [% $description %] (wrong)
+ 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.
+ .
+ This package has an incorrect Architecture field.
+
+Package: r-cran-false-positive
+Architecture: all
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: [% $description %] (right)
+ 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.
+ .
+ This package has the correct Architecture field.
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-false-positive.install b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-false-positive.install
new file mode 100644
index 0000000..613f993
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-false-positive.install
@@ -0,0 +1 @@
+DESCRIPTION usr/lib/R/site-library/false-positive
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-positive.install b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-positive.install
new file mode 100644
index 0000000..9464141
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/debian/r-cran-positive.install
@@ -0,0 +1 @@
+DESCRIPTION usr/lib/R/site-library/positive
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/fill-values b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/fill-values
new file mode 100644
index 0000000..276affc
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: fields-r-package-not-arch-all
+Skeleton: upload-non-native
+Description: Tests for Architecture of an R package
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/orig/DESCRIPTION b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/orig/DESCRIPTION
new file mode 100644
index 0000000..48a7223
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/build-spec/orig/DESCRIPTION
@@ -0,0 +1,19 @@
+Package: urca
+Version: 1.3-0
+Date: 2016-09-06
+Title: Unit Root and Cointegration Tests for Time Series Data
+Authors@R: c(person("Bernhard", "Pfaff", email = "bernhard@pfaffikus.de", role = c("aut", "cre")), person("Eric", "Zivot",email = "ezivot@u.washington.edu", role = "ctb"), person("Matthieu", "Stigler", role = "ctb"))
+Depends: R (>= 2.0.0), methods
+Imports: nlme, graphics, stats
+LazyLoad: yes
+Description: Unit root and cointegration tests encountered in applied
+ econometric analysis are implemented.
+License: GPL (>= 2)
+NeedsCompilation: no
+Packaged: 2016-09-06 20:57:19 UTC; bp
+Author: Bernhard Pfaff [aut, cre],
+ Eric Zivot [ctb],
+ Matthieu Stigler [ctb]
+Maintainer: Bernhard Pfaff <bernhard@pfaffikus.de>
+Repository: CRAN
+Date/Publication: 2016-09-06 23:26:02
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/desc b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/desc
new file mode 100644
index 0000000..ec766f6
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/desc
@@ -0,0 +1,2 @@
+Testname: fields-r-package-not-arch-all
+Check: languages/r/architecture
diff --git a/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/hints b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/hints
new file mode 100644
index 0000000..89c7803
--- /dev/null
+++ b/t/recipes/checks/languages/r/architecture/fields-r-package-not-arch-all/eval/hints
@@ -0,0 +1 @@
+r-cran-positive (binary): r-package-not-arch-all
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/debian/install b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/debian/install
new file mode 100644
index 0000000..7cd27d5
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/debian/install
@@ -0,0 +1 @@
+src/* usr/lib/R/site-library/files-r-data
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/fill-values b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/fill-values
new file mode 100644
index 0000000..fb4d856
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-r-data-unrel
+Description: Checks for R statistical data files (false positives)
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rda b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rda
new file mode 100644
index 0000000..ac654ef
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rda
@@ -0,0 +1 @@
+Not an R file.
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rdata b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rdata
new file mode 100644
index 0000000..ac654ef
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.Rdata
@@ -0,0 +1 @@
+Not an R file.
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rda b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rda
new file mode 100644
index 0000000..ac654ef
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rda
@@ -0,0 +1 @@
+Not an R file.
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rdata b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rdata
new file mode 100644
index 0000000..ac654ef
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/build-spec/orig/src/test.rdata
@@ -0,0 +1 @@
+Not an R file.
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/eval/desc b/t/recipes/checks/languages/r/files-r-data-unrel/eval/desc
new file mode 100644
index 0000000..91993ea
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/eval/desc
@@ -0,0 +1,4 @@
+Testname: files-r-data-unrel
+Test-Against:
+ r-data-without-readme-source
+Check: languages/r
diff --git a/t/recipes/checks/languages/r/files-r-data-unrel/eval/hints b/t/recipes/checks/languages/r/files-r-data-unrel/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data-unrel/eval/hints
diff --git a/t/recipes/checks/languages/r/files-r-data/build-spec/debian/install b/t/recipes/checks/languages/r/files-r-data/build-spec/debian/install
new file mode 100644
index 0000000..7cd27d5
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/build-spec/debian/install
@@ -0,0 +1 @@
+src/* usr/lib/R/site-library/files-r-data
diff --git a/t/recipes/checks/languages/r/files-r-data/build-spec/fill-values b/t/recipes/checks/languages/r/files-r-data/build-spec/fill-values
new file mode 100644
index 0000000..d93508c
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-r-data
+Description: Checks for R statistical data files
diff --git a/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rda b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rda
new file mode 100644
index 0000000..6c6b186
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rda
Binary files differ
diff --git a/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rdata b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rdata
new file mode 100644
index 0000000..6c6b186
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.Rdata
Binary files differ
diff --git a/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rda b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rda
new file mode 100644
index 0000000..6c6b186
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rda
Binary files differ
diff --git a/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rdata b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rdata
new file mode 100644
index 0000000..6c6b186
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/build-spec/orig/src/test.rdata
Binary files differ
diff --git a/t/recipes/checks/languages/r/files-r-data/eval/desc b/t/recipes/checks/languages/r/files-r-data/eval/desc
new file mode 100644
index 0000000..f2c1209
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-r-data
+Check: languages/r
diff --git a/t/recipes/checks/languages/r/files-r-data/eval/hints b/t/recipes/checks/languages/r/files-r-data/eval/hints
new file mode 100644
index 0000000..f836553
--- /dev/null
+++ b/t/recipes/checks/languages/r/files-r-data/eval/hints
@@ -0,0 +1,4 @@
+files-r-data (source): r-data-without-readme-source [src/test.rdata]
+files-r-data (source): r-data-without-readme-source [src/test.rda]
+files-r-data (source): r-data-without-readme-source [src/test.Rdata]
+files-r-data (source): r-data-without-readme-source [src/test.Rda]
diff --git a/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/control.in b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/control.in
new file mode 100644
index 0000000..c73927f
--- /dev/null
+++ b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: gnu-r
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: r-cran-isospecr
+Architecture: all
+Depends: ${misc:Depends}, ${shlibs:Depends}
+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.
+ .
+ This package has an incorrect Depends field.
diff --git a/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/rules b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/rules
new file mode 100644
index 0000000..68d9a36
--- /dev/null
+++ b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@ --buildsystem R
diff --git a/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/fill-values b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/fill-values
new file mode 100644
index 0000000..569ce10
--- /dev/null
+++ b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-non-native
+Testname: lacks-depends-on-r-api
+Description: Ships R site library but lacks Depends on r-api-N
+Package-Architecture: all
+Extra-Build-Depends: dh-r
diff --git a/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/orig/DESCRIPTION b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/orig/DESCRIPTION
new file mode 100644
index 0000000..62f6ec8
--- /dev/null
+++ b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/build-spec/orig/DESCRIPTION
@@ -0,0 +1,21 @@
+Encoding: UTF-8
+Package: IsoSpecR
+Type: Package
+Title: The IsoSpec Algorithm
+Version: 2.0.1
+Date: 2019-05-21
+Author: Mateusz Krzysztof Lacki and Michal Startek
+Maintainer: Matteo Lacki <matteo.lacki@gmail.com>
+Description: IsoSpec is a fine structure calculator used for obtaining the most
+ probable masses of a chemical compound given the frequencies of the composing
+ isotopes and their masses. It finds the smallest set of isotopologues with
+ a given probability. The probability is assumed to be that of the product of
+ multinomial distributions, each corresponding to one particular element and
+ parametrized by the frequencies of finding these elements in nature. These
+ numbers are supplied by IUPAC - the International Union of Pure and Applied
+ Chemistry.
+License: BSD_2_clause + file LICENCE
+URL: http://matteolacki.github.io/IsoSpec/
+Depends:
+ R (>= 3.0.0)
+NeedsCompilation: no
diff --git a/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/desc b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/desc
new file mode 100644
index 0000000..8999e6a
--- /dev/null
+++ b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/desc
@@ -0,0 +1,4 @@
+Testname: lacks-depends-on-r-api
+Check: languages/r/site-library
+See-Also:
+ https://wiki.debian.org/Teams/r-pkg-team
diff --git a/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/hints b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/hints
new file mode 100644
index 0000000..473fb96
--- /dev/null
+++ b/t/recipes/checks/languages/r/site-library/lacks-depends-on-r-api/eval/hints
@@ -0,0 +1,2 @@
+r-cran-isospecr (binary): ships-r-site-library IsoSpecR
+r-cran-isospecr (binary): requires-r-api
diff --git a/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/debian/control.in b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/debian/control.in
new file mode 100644
index 0000000..3314890
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: [% $priority %]
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: [% $rules_requires_root %]
+Homepage: [% $homepage %]
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ ruby-interpreter
+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.
diff --git a/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/fill-values b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/fill-values
new file mode 100644
index 0000000..c5145db
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: depends-on-ruby-interpreter
+Description: Depends on ruby-interpreter
diff --git a/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/desc b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/desc
new file mode 100644
index 0000000..d93d1cc
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/desc
@@ -0,0 +1,2 @@
+Testname: depends-on-ruby-interpreter
+Check: languages/ruby
diff --git a/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/hints b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/hints
new file mode 100644
index 0000000..205367a
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/depends-on-ruby-interpreter/eval/hints
@@ -0,0 +1 @@
+depends-on-ruby-interpreter (binary): ruby-interpreter-is-deprecated ruby-interpreter
diff --git a/t/recipes/checks/languages/ruby/gem-homepage/build-spec/fill-values b/t/recipes/checks/languages/ruby/gem-homepage/build-spec/fill-values
new file mode 100644
index 0000000..068c444
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/gem-homepage/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: source-native
+Testname: gem-homepage
+Description: Homepage points to a Rubygem
+Homepage: https://rubygems.org/gems/some-gem/
diff --git a/t/recipes/checks/languages/ruby/gem-homepage/eval/desc b/t/recipes/checks/languages/ruby/gem-homepage/eval/desc
new file mode 100644
index 0000000..724a15d
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/gem-homepage/eval/desc
@@ -0,0 +1,4 @@
+Testname: gem-homepage
+Check: languages/ruby
+See-Also:
+ Bug#981935
diff --git a/t/recipes/checks/languages/ruby/gem-homepage/eval/hints b/t/recipes/checks/languages/ruby/gem-homepage/eval/hints
new file mode 100644
index 0000000..cc499af
--- /dev/null
+++ b/t/recipes/checks/languages/ruby/gem-homepage/eval/hints
@@ -0,0 +1 @@
+gem-homepage (source): rubygem-homepage https://rubygems.org/gems/some-gem/
diff --git a/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/debian/control.in b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/debian/control.in
new file mode 100644
index 0000000..7a39883
--- /dev/null
+++ b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/debian/control.in
@@ -0,0 +1,17 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: librust-path-abs+serde-derive-dev
+Architecture: [% $package_architecture %]
+Depends: librust-path-abs-dev (= 0.5.0-1), librust-serde-derive-1+default-dev
+Provides: librust-path-abs-0+serde-derive-dev (= 0.5.0-1),
+ librust-path-abs-0.5+serde-derive-dev (= 0.5.0-1),
+ librust-path-abs-0.5.0+serde-derive-dev (= 0.5.0-1)
+Description: Ergonomic paths and files in rust - feature "serde_derive"
+ This metapackage enables feature "serde_derive" for the Rust path_abs crate, by
+ pulling in any additional dependencies needed by that feature.
diff --git a/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/fill-values b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/fill-values
new file mode 100644
index 0000000..08ab6a4
--- /dev/null
+++ b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: empty-rust-library-declares-provides
+Description: Empty Rust library that declares a Provides field
diff --git a/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/desc b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/desc
new file mode 100644
index 0000000..72665ea
--- /dev/null
+++ b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/desc
@@ -0,0 +1,4 @@
+Testname: empty-rust-library-declares-provides
+Check: languages/rust
+See-Also:
+ Bug#942898, Bug#945542
diff --git a/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/hints b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/hints
new file mode 100644
index 0000000..6362d7f
--- /dev/null
+++ b/t/recipes/checks/languages/rust/empty-rust-library-declares-provides/eval/hints
@@ -0,0 +1 @@
+librust-path-abs+serde-derive-dev (binary): empty-rust-library-declares-provides
diff --git a/t/recipes/checks/languages/rust/template-description/build-spec/fill-values b/t/recipes/checks/languages/rust/template-description/build-spec/fill-values
new file mode 100644
index 0000000..041a769
--- /dev/null
+++ b/t/recipes/checks/languages/rust/template-description/build-spec/fill-values
@@ -0,0 +1,6 @@
+Skeleton: source-native
+Testname: template-description
+Description: Debcargo's default description for Rust installables
+ This package contains the following binaries built from the Rust crate
+ "hyperfine":
+ - hyperfine
diff --git a/t/recipes/checks/languages/rust/template-description/eval/desc b/t/recipes/checks/languages/rust/template-description/eval/desc
new file mode 100644
index 0000000..db7c7fd
--- /dev/null
+++ b/t/recipes/checks/languages/rust/template-description/eval/desc
@@ -0,0 +1,2 @@
+Testname: template-description
+Check: languages/rust
diff --git a/t/recipes/checks/languages/rust/template-description/eval/hints b/t/recipes/checks/languages/rust/template-description/eval/hints
new file mode 100644
index 0000000..65561d7
--- /dev/null
+++ b/t/recipes/checks/languages/rust/template-description/eval/hints
@@ -0,0 +1 @@
+template-description (source): rust-boilerplate template-description