summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/languages/ocaml
diff options
context:
space:
mode:
Diffstat (limited to 't/recipes/checks/languages/ocaml')
-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
163 files changed, 745 insertions, 0 deletions
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