summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/libraries/shared/links
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 13:42:30 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-14 13:42:30 +0000
commit75808db17caf8b960b351e3408e74142f4c85aac (patch)
tree7989e9c09a4240248bf4658a22208a0a52d991c4 /t/recipes/checks/libraries/shared/links
parentInitial commit. (diff)
downloadlintian-upstream.tar.xz
lintian-upstream.zip
Adding upstream version 2.117.0.upstream/2.117.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/changelog.in6
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/control58
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/copyright8
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.postinst4
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.prerm4
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.postinst10
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.prerm7
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.shlibs8
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.symbols3
-rwxr-xr-xt/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/rules121
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/source.lintian-overrides1
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/fill-values6
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/Makefile55
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/baz.c6
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/extra.c0
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/desc2
-rw-r--r--t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/hints5
-rwxr-xr-xt/recipes/checks/libraries/shared/links/legacy-libbaz/eval/post-test4
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.install2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.symbols7
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-dev.install3
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/fill-values5
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/Makefile27
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.c16
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.h8
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/desc4
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/hints1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo-dev.install1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.install1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.symbols3
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/fill-values5
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/Makefile24
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.c16
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.h8
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/desc2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/hints1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/control.in15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/libfoo1.symbols3
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/fill-values6
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/Makefile20
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/code.c15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/desc2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/hints1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/control.in15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/libfoo1.symbols3
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/fill-values6
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/Makefile22
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/code.c15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/desc2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/hints1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/control.in15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/libexecbit1.symbols2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/fill-values6
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/Makefile19
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/code.c10
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/desc2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/hints1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/control.in15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/libfoo1.symbols3
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/fill-values6
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/Makefile21
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/code.c15
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/desc2
-rw-r--r--t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/hints1
73 files changed, 747 insertions, 0 deletions
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/changelog.in b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/changelog.in
new file mode 100644
index 0000000..91a6bb5
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/changelog.in
@@ -0,0 +1,6 @@
+libbaz ([% $version %]) [% $distribution %]; urgency=low
+
+ * Initial setup
+
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Tue, 30 Jan 2001 15:23:59 -0800
+
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/control b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/control
new file mode 100644
index 0000000..1506687
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/control
@@ -0,0 +1,58 @@
+Source: libbaz
+Section: libs
+Priority: optional
+Maintainer: Lintian Maintainer <lintian-maint@debian.org>
+Build-depends: debhelper (>=4)
+Standards-Version: 3.2.1
+
+Package: libbaz1
+Architecture: any
+Provides: libbaz
+Description: test handling of library packages
+ Regression test for lintian's handling of libraries.
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: libbaz1-dev
+Architecture: any
+Depends: libbaz1 (= ${source:Version}), perlapi-5.8.8
+Description: development package
+ Regression test for lintian's handling of libraries (dev).
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: libbaz2
+Architecture: any
+Depends: ${shlibs:Depends}, libssl0.9.8
+Description: test handling of library packages (good)
+ Regression test for lintian's handling of libraries (good).
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: libbaz2-dev
+Architecture: any
+Depends: ${shlibs:Depends}, libbaz2 (= ${source:Version})
+Description: development package (good)
+ Regression test for lintian's handling of libraries (dev good).
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: libbaz2-dbg
+Architecture: any
+Depends: libbaz2 (= ${binary:Version})
+Priority: optional
+Description: debugging package
+ Regression test for lintian's handling of libraries (debug).
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/copyright b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/copyright
new file mode 100644
index 0000000..a874c87
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/copyright
@@ -0,0 +1,8 @@
+This package is released under public domain. This is distributed in the hope
+that it will be useful, but without any warranty; without even the implied
+warranty of merchantability or fitness for a particular purpose.
+
+A reference to /usr/share/common-licenses/GPL-2 to make it look like this
+package is under the GPL and trigger the OpenSSL warning.
+
+However, this has an OpenSSL exception.
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.postinst b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.postinst
new file mode 100644
index 0000000..683e3cc
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.postinst
@@ -0,0 +1,4 @@
+#!/bin/sh -e
+
+$PKG=libbaz1-dev
+
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.prerm b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.prerm
new file mode 100644
index 0000000..683e3cc
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/dev.prerm
@@ -0,0 +1,4 @@
+#!/bin/sh -e
+
+$PKG=libbaz1-dev
+
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.postinst b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.postinst
new file mode 100644
index 0000000..ec0b98a
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+$PKG=libbaz1
+
+if [ "$1" = "configure" ]; then
+ if [ -d /usr/doc -a ! -e /usr/doc/$PKG -a -d /usr/share/doc/$PKG ]
+; then
+ ln -sf ../share/doc/$PKG /usr/doc/$PKG
+ fi
+fi
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.prerm b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.prerm
new file mode 100644
index 0000000..50e37c3
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.prerm
@@ -0,0 +1,7 @@
+#!/bin/sh -e
+
+$PKG=libbaz1
+
+if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/$PKG ]; then
+ rm -f /usr/doc/$PKG
+fi
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.shlibs b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.shlibs
new file mode 100644
index 0000000..b88e288
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.shlibs
@@ -0,0 +1,8 @@
+libdoesntexist2 1.0 libbaz1
+libdoesntexist2 1.0 libbaz1
+libbaz2 1.1 libbaz
+libbaz3 1 libbaz1 (>> 1-1)
+libbaz4 1 libbaz1 (= 1-1)
+libbaz5 1 libbaz2
+udeb: libdoesntexist2 1.0 libbaz2
+udeb: libdoesntexist2 1.0 libbaz2
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.symbols b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.symbols
new file mode 100644
index 0000000..72f9d8a
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/lib.symbols
@@ -0,0 +1,3 @@
+libbaz.so.2 libbaz1 #MINVER#
+ pw 1-1
+ foo 1.1-1
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/rules b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/rules
new file mode 100755
index 0000000..fa99bc8
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/rules
@@ -0,0 +1,121 @@
+#!/usr/bin/make -f
+
+lib_tmp=debian/tmp-lib
+dev_tmp=debian/tmp-dev
+
+LIB=libbaz1
+DEV=libbaz1-dev
+
+VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)')
+
+build-arch:
+ $(MAKE)
+
+build-indep:
+
+build: build-arch build-indep
+
+clean:
+ $(MAKE) clean
+ dh_clean -plibbaz2 -plibbaz2-dev
+ rm -f debian/files debian/substvars
+ rm -rf $(lib_tmp) $(dev_tmp)
+
+# Now the correct libbaz2-dev package
+binary-correct:
+ install -d debian/libbaz2-dev/usr/lib
+ cp -a libbaz2.a libbaz2.so debian/libbaz2-dev/usr/lib
+ # usually, I'd also include some .h files to /usr/include
+
+ # Now the correct libbaz2 package
+ install -d debian/libbaz2/usr/lib
+ cp -a libbaz2.so.* debian/libbaz2/usr/lib
+ chmod a-x debian/libbaz2/usr/lib/*
+
+ # General stuff that is tested in other testsets:
+ dh_installdocs -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+ dh_compress -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+
+ # Mess up the libbaz2 changelog files to test the symlink handling.
+ ln -s /usr/share/doc/lintian/changelog.gz \
+ debian/libbaz2/usr/share/doc/libbaz2/changelog.gz
+ install -m 644 debian/changelog \
+ debian/libbaz2-dev/usr/share/doc/libbaz2-dev/foo
+ ln -s foo debian/libbaz2-dev/usr/share/doc/libbaz2-dev/changelog
+
+ # Okay, if either line is omitted, it should be noted
+ dh_strip --dbg-package=libbaz2-dbg -plibbaz2 -plibbaz2-dev
+ dh_makeshlibs -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+ dh_shlibdeps -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+
+ # and again, regular packaging stuff
+ dh_installdeb -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+ echo udeb: libbaz2 1.0 libbaz2 >> debian/libbaz2/DEBIAN/shlibs
+ dh_gencontrol -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+ dh_builddeb -plibbaz2 -plibbaz2-dev -plibbaz2-dbg
+
+# and the incorrect one
+binary-arch: build-arch binary-correct
+ # first, the lib package
+ install -d $(lib_tmp)/usr/lib
+ # resp. no soname (check), wrong soname (check), and no-pic (check)
+ cp -a libbaz1.so.1.0* $(lib_tmp)/usr/lib
+ cp -a libbaz2.so.1.0.3b $(lib_tmp)/usr/lib/libfoo2.so.1.0.3b
+ install -m644 libbaz3.so.1.0.3b $(lib_tmp)/usr/lib/libbaz3.so.1.0.3b
+ # let's include the .a in the non-dev too (TODO)
+ # Also, libbaz1.a hasn't a symbol table (TODO)
+ cp -a *.a $(lib_tmp)/usr/lib
+ # And a wrong .so symlink (wrong, only in -dev, TODO)
+ ln -s libfoo3.so.0.9 $(lib_tmp)/usr/lib/libfoo3.so
+ # And a wrong .so.X symlink (wrong, should point to a real existing
+ # shlib, TODO)
+ ln -s libfoo.so.0.9.1 $(lib_tmp)/usr/lib/libfoo.so.0.9
+ # And a plain .so (wrong, TODO)
+ touch $(lib_tmp)/usr/lib/libbar2.so
+ # And a non-versioned SONAME.
+ install -m644 libbaz.so $(lib_tmp)/usr/lib/libbaz.so
+ strip --remove-section=.comment --strip-unneeded $(lib_tmp)/usr/lib/libbaz.so
+ # Pretend to be a Perl module to test a lack of Perl dependencies.
+ install -d $(lib_tmp)/$(VENDORARCH)/auto/Foo
+ install -m 644 libbaz2.so.1.0.3b $(lib_tmp)/$(VENDORARCH)/auto/Foo/Foo.so
+ strip $(lib_tmp)/$(VENDORARCH)/auto/Foo/Foo.so
+
+ install -d $(lib_tmp)/usr/share/doc/$(LIB)
+ install -m 644 debian/copyright $(lib_tmp)/usr/share/doc/$(LIB)
+ install -m 644 debian/changelog $(lib_tmp)/usr/share/doc/$(LIB)
+ gzip -n -9 $(lib_tmp)/usr/share/doc/$(LIB)/changelog
+ install -d $(lib_tmp)/DEBIAN
+ install -m 755 debian/lib.postinst $(lib_tmp)/DEBIAN/postinst
+ install -m 755 debian/lib.prerm $(lib_tmp)/DEBIAN/prerm
+ touch $(lib_tmp)/usr/share/doc/README.Debian
+ #dpkg-shlibdeps $(lib_tmp)/usr/lib/libbaz.so.1.0
+ install -m 755 debian/lib.shlibs $(lib_tmp)/DEBIAN/shlibs
+ install -m 755 debian/lib.symbols $(lib_tmp)/DEBIAN/symbols
+ dpkg-gencontrol -isp -p$(LIB) -P$(lib_tmp)
+ dpkg --build $(lib_tmp) ..
+
+ # now the -dev package
+ install -d $(dev_tmp)/usr/include
+ install -d $(lib_tmp)/usr/lib
+ # let's also install the .so at the same time... (wrong, TODO)
+ cp -a *.a *.so.* $(lib_tmp)/usr/lib
+ # and fuck up permission (TODO)
+ chmod a+x $(lib_tmp)/usr/lib/*.a
+ # Pretend to be a Perl module to test a lack of Perl dependencies.
+ install -d $(dev_tmp)/$(VENDORARCH)/auto/Foo
+ install -m 644 libbaz2.so.1.0.3b $(dev_tmp)/$(VENDORARCH)/auto/Foo/Foo.so
+ strip $(dev_tmp)/$(VENDORARCH)/auto/Foo/Foo.so
+ install -d $(dev_tmp)/usr/share/doc
+ ln -s $(LIB) $(dev_tmp)/usr/share/doc/$(DEV)
+ install -d $(dev_tmp)/DEBIAN
+ install -m 755 debian/dev.postinst $(dev_tmp)/DEBIAN/postinst
+ install -m 755 debian/dev.prerm $(dev_tmp)/DEBIAN/prerm
+ dpkg-gencontrol -isp -p$(DEV) -P$(dev_tmp)
+ dpkg --build $(dev_tmp) ..
+
+
+binary: binary-arch
+
+# The mention of binary-indep here should be sufficient to suppress the
+# warning that it's not present.
+.PHONY: build-arch build-indep build binary-arch binary-indep binary clean
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/source.lintian-overrides b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/source.lintian-overrides
new file mode 100644
index 0000000..6008d27
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/debian/source.lintian-overrides
@@ -0,0 +1 @@
+libbaz source: maintainer-script-lacks-debhelper-token
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/fill-values
new file mode 100644
index 0000000..7effe4f
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/fill-values
@@ -0,0 +1,6 @@
+Skeleton: upload-non-native
+Testname: legacy-libbaz
+Source: libbaz
+Version: 1-1
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Description: Legacy test "libbaz"
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/Makefile
new file mode 100644
index 0000000..657dc2a
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/Makefile
@@ -0,0 +1,55 @@
+# This is the correct way to build a lib
+
+CC=gcc
+CFLAGS=-g -Wall -Winline -O2
+LDFLAGS=-Wl,--no-as-needed
+
+OBJS=baz.o extra.o
+SHOBJS=baz.sho extra.sho
+NOPICOBJS = $(SHOBJS)
+
+all: libbaz1.a libbaz2.a libbaz1.so.1.0.3b libbaz2.so libbaz3.so.1.0.3b \
+ libbaz.so
+
+libbaz2.so: libbaz2.so.1.0
+ ln -sf $^ $@
+libbaz2.so.1.0: libbaz2.so.1.0.3b
+ ln -sf $^ $@
+
+# Oops, forget the soname altogether
+libbaz1.so.1.0.3b: $(NOPICOBJS)
+ $(CC) $(LDFLAGS) -o $@ -shared $^ -lc
+
+libbaz2.so.1.0.3b: $(SHOBJS)
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,libbaz2.so.1.0 $^ -lc
+
+# Non-PIC. We can't test this on all architectures
+libbaz3.so.1.0.3b: $(NOPICOBJS)
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,libbaz3.so.1 $^ -lc
+
+# Non-versioned SONAME.
+libbaz.so: $(SHOBJS)
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,libbaz.so $^ -lc
+
+#%.o-noreentrant: %.c
+# $(CC) $(LDFLAGS) $(CFLAGS) -o $@ -c $<
+
+%.sho: %.c
+ $(CC) $(LDFLAGS) $(CFLAGS) -D_REENTRANT -fPIC -o $@ -c $<
+
+%.o: %.c
+ $(CC) $(LDFLAGS) $(CFLAGS) -D_REENTRANT -o $@ -c $<
+
+libbaz2.a: $(OBJS)
+ ar cq $@ $(OBJS)
+ strip --strip-unneeded --remove-section=.comment \
+ --remove-section=-note $@
+ ranlib $@
+
+# The pic one in the .a (wrong), no archive table
+libbaz1.a: $(SHOBJS)
+ ar cqS $@ $^
+ strip --strip-unneeded --remove-section=.comment \
+ --remove-section=-note $@
+clean:
+ rm -f *.a *.o *.so* *.sho
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/baz.c b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/baz.c
new file mode 100644
index 0000000..4d5fc45
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/baz.c
@@ -0,0 +1,6 @@
+#include <math.h>
+
+double pw(double p)
+{
+ return exp(p);
+}
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/extra.c b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/extra.c
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/build-spec/orig/extra.c
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/desc b/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/desc
new file mode 100644
index 0000000..7a688ab
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-libbaz
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/hints b/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/hints
new file mode 100644
index 0000000..86a3574
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/hints
@@ -0,0 +1,5 @@
+libbaz1 (binary): lacks-versioned-link-to-shared-library usr/lib/libbaz3.so.1 [usr/lib/libbaz3.so.1.0.3b]
+libbaz1 (binary): lacks-versioned-link-to-shared-library usr/lib/libbaz2.so.1.0 [usr/lib/libfoo2.so.1.0.3b]
+libbaz1 (binary): lacks-unversioned-link-to-shared-library example: usr/lib/libbaz3.so [usr/lib/libbaz3.so.1.0.3b]
+libbaz1 (binary): lacks-unversioned-link-to-shared-library example: usr/lib/libbaz2.so [usr/lib/libfoo2.so.1.0.3b]
+libbaz1 (binary): lacks-unversioned-link-to-shared-library example: usr/lib/libbaz.so [usr/lib/libbaz.so]
diff --git a/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/post-test b/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/post-test
new file mode 100755
index 0000000..29dc3f4
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/legacy-libbaz/eval/post-test
@@ -0,0 +1,4 @@
+/: hardening-.*/ d
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
+s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g
+/: file-references-package-build-path / d
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/control.in b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/control.in
new file mode 100644
index 0000000..9ca1147
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo-1
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: libfoo-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libfoo-1 (= ${binary:Version})
+Description: [% $description %] - dev
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+ .
+ Dev package.
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.install b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.install
new file mode 100644
index 0000000..cb060ec
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.install
@@ -0,0 +1,2 @@
+lib/libbar-1.so
+usr/lib/libfoo-1.so
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.symbols b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.symbols
new file mode 100644
index 0000000..910a1e5
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-1.symbols
@@ -0,0 +1,7 @@
+libfoo-1.so libfoo-1 #MINVER#
+ e@Base 1.0
+ energy@Base 0.9
+
+libbar-1.so libfoo-1 #MINVER#
+ e@Base 1.0
+ energy@Base 0.9
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-dev.install b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-dev.install
new file mode 100644
index 0000000..ed7b146
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/debian/libfoo-dev.install
@@ -0,0 +1,3 @@
+usr/include
+usr/lib/libbar.so
+usr/lib/libfoo.so
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/fill-values
new file mode 100644
index 0000000..5240e59
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/fill-values
@@ -0,0 +1,5 @@
+Testname: shared-libs-dev-symlink-fp
+Skeleton: upload-non-native
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Dh-Compat-Level: 9
+Description: Test against dev symlink fp
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/Makefile
new file mode 100644
index 0000000..decdff1
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/Makefile
@@ -0,0 +1,27 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAME:= libfoo-1.so
+LSONAME:= libbar-1.so
+devsymlink=$(shell echo $(1) | perl -pe 's:-[\d\.]*\.so$$:\.so:')
+LIBFILES:=$(SONAME) $(LSONAME)
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,$@ $^ -lc
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/lib
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0755 -d $(DESTDIR)/usr/include
+ install -m 0644 $(LSONAME) $(DESTDIR)/lib
+ install -m 0644 $(SONAME) $(DESTDIR)/usr/lib
+ ln -s /lib/$(LSONAME) $(DESTDIR)/usr/lib/$(call devsymlink,$(LSONAME))
+ ln -s $(SONAME) $(DESTDIR)/usr/lib/$(call devsymlink,$(SONAME))
+ install -m 0644 code.h $(DESTDIR)/usr/include
+
+.PHONY: install clean
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.c b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.c
new file mode 100644
index 0000000..9a88735
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.c
@@ -0,0 +1,16 @@
+#include <stdlib.h>
+#include <math.h>
+#include "code.h"
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
+
+double energy(double mass){
+ return pow(10.0, 8.0) * pow(3.0, 2.0) * mass;
+}
+
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.h b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.h
new file mode 100644
index 0000000..570beae
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/build-spec/orig/code.h
@@ -0,0 +1,8 @@
+#ifndef CODE_H_
+#define CODE_H_
+
+double e(void (*f)(char *));
+
+double energy(double mass);
+
+#endif
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/desc b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/desc
new file mode 100644
index 0000000..4cc6818
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/desc
@@ -0,0 +1,4 @@
+Testname: shared-libs-dev-symlink-fp
+Test-Against:
+ lacks-unversioned-link-to-shared-library
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/hints b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/hints
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink-fp/eval/hints
@@ -0,0 +1 @@
+
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/control.in b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/control.in
new file mode 100644
index 0000000..dfba657
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo1
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: libfoo-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libfoo1 (= ${binary:Version})
+Description: [% $description %] - dev
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+ .
+ Dev package.
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo-dev.install b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo-dev.install
new file mode 100644
index 0000000..e43b95c
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo-dev.install
@@ -0,0 +1 @@
+usr/include
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.install b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.install
new file mode 100644
index 0000000..08fa063
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.install
@@ -0,0 +1 @@
+usr/lib/libfoo.so.*
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.symbols b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.symbols
new file mode 100644
index 0000000..a1f052b
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/debian/libfoo1.symbols
@@ -0,0 +1,3 @@
+libfoo.so.1 libfoo1 #MINVER#
+ e@Base 1.0
+ energy@Base 0.9
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/fill-values
new file mode 100644
index 0000000..9c44aa5
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/fill-values
@@ -0,0 +1,5 @@
+Testname: shared-libs-dev-symlink
+Skeleton: upload-non-native
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Dh-Compat-Level: 9
+Description: Test checks related to dev symlink
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/Makefile
new file mode 100644
index 0000000..a7a50b9
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/Makefile
@@ -0,0 +1,24 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAMES:= libfoo.so.1
+LIBFILES:= $(patsubst %,%.0.1, $(SONAMES))
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,$(patsubst %.0.1,%,$@) $^ -lc
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0755 -d $(DESTDIR)/usr/include
+ install -m 0644 *.so* $(DESTDIR)/usr/lib
+ for FILE in $(SONAMES) ; do \
+ ln -s $${FILE}.0.1 $(DESTDIR)/usr/lib/$$FILE ; \
+ done
+ install -m 0644 code.h $(DESTDIR)/usr/include
+
+.PHONY: install clean
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.c b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.c
new file mode 100644
index 0000000..9a88735
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.c
@@ -0,0 +1,16 @@
+#include <stdlib.h>
+#include <math.h>
+#include "code.h"
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
+
+double energy(double mass){
+ return pow(10.0, 8.0) * pow(3.0, 2.0) * mass;
+}
+
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.h b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.h
new file mode 100644
index 0000000..570beae
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/build-spec/orig/code.h
@@ -0,0 +1,8 @@
+#ifndef CODE_H_
+#define CODE_H_
+
+double e(void (*f)(char *));
+
+double energy(double mass);
+
+#endif
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/desc b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/desc
new file mode 100644
index 0000000..5498340
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/desc
@@ -0,0 +1,2 @@
+Testname: shared-libs-dev-symlink
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/hints b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/hints
new file mode 100644
index 0000000..f612e92
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-dev-symlink/eval/hints
@@ -0,0 +1 @@
+libfoo1 (binary): lacks-unversioned-link-to-shared-library example: usr/lib/libfoo.so [usr/lib/libfoo.so.1.0.1]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/control.in b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/control.in
new file mode 100644
index 0000000..c20a449
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/control.in
@@ -0,0 +1,15 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo1
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/libfoo1.symbols b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/libfoo1.symbols
new file mode 100644
index 0000000..a1f052b
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/debian/libfoo1.symbols
@@ -0,0 +1,3 @@
+libfoo.so.1 libfoo1 #MINVER#
+ e@Base 1.0
+ energy@Base 0.9
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/fill-values
new file mode 100644
index 0000000..b000a7b
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: shared-libs-ldconfig-not-symlink
+Package-Architecture: any
+Skeleton: upload-non-native
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Dh-Compat-Level: 9
+Description: Test ldconfig symlink not being a symlink
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/Makefile
new file mode 100644
index 0000000..2e3306e
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/Makefile
@@ -0,0 +1,20 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAMES:= libfoo.so.1
+LIBFILES:= $(patsubst %,%.0.1, $(SONAMES))
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,$(patsubst %.0.1,%,$@) $^ -lc
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0644 *.so* $(DESTDIR)/usr/lib
+ install -T -m 0644 *.so* $(DESTDIR)/usr/lib/libfoo.so.1
+
+.PHONY: install clean
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/code.c b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/code.c
new file mode 100644
index 0000000..0ed08e0
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/build-spec/orig/code.c
@@ -0,0 +1,15 @@
+#include <stdlib.h>
+#include <math.h>
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
+
+double energy(double mass){
+ return pow(10.0, 8.0) * pow(3.0, 2.0) * mass;
+}
+
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/desc b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/desc
new file mode 100644
index 0000000..c73712e
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/desc
@@ -0,0 +1,2 @@
+Testname: shared-libs-ldconfig-not-symlink
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/hints b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/hints
new file mode 100644
index 0000000..c78dccd
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-not-symlink/eval/hints
@@ -0,0 +1 @@
+libfoo1 (binary): ldconfig-symlink-is-not-a-symlink should point to usr/lib/libfoo.so.1.0.1 [usr/lib/libfoo.so.1]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/control.in b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/control.in
new file mode 100644
index 0000000..c20a449
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/control.in
@@ -0,0 +1,15 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo1
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/libfoo1.symbols b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/libfoo1.symbols
new file mode 100644
index 0000000..a1f052b
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/debian/libfoo1.symbols
@@ -0,0 +1,3 @@
+libfoo.so.1 libfoo1 #MINVER#
+ e@Base 1.0
+ energy@Base 0.9
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/fill-values
new file mode 100644
index 0000000..74b1f2a
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: shared-libs-ldconfig-wrong-file
+Package-Architecture: any
+Skeleton: upload-non-native
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Dh-Compat-Level: 9
+Description: Test ldconfig symlink with wrong target
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/Makefile
new file mode 100644
index 0000000..373cbd2
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/Makefile
@@ -0,0 +1,22 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAMES:= libfoo.so.1
+LIBFILES:= $(patsubst %,%.0.1, $(SONAMES))
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,$(patsubst %.0.1,%,$@) $^ -lc
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0644 *.so* $(DESTDIR)/usr/lib
+ echo "Strauss: Also Sprach Zarathustra" > \
+ $(DESTDIR)/usr/lib/some-other-file
+ ln -s some-other-file $(DESTDIR)/usr/lib/libfoo.so.1
+
+.PHONY: install clean
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/code.c b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/code.c
new file mode 100644
index 0000000..0ed08e0
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/build-spec/orig/code.c
@@ -0,0 +1,15 @@
+#include <stdlib.h>
+#include <math.h>
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
+
+double energy(double mass){
+ return pow(10.0, 8.0) * pow(3.0, 2.0) * mass;
+}
+
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/desc b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/desc
new file mode 100644
index 0000000..5b8f458
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/desc
@@ -0,0 +1,2 @@
+Testname: shared-libs-ldconfig-wrong-file
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/hints b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/hints
new file mode 100644
index 0000000..9dce51a
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-ldconfig-wrong-file/eval/hints
@@ -0,0 +1 @@
+libfoo1 (binary): ldconfig-symlink-referencing-wrong-file should point to some-other-file instead of libfoo.so.1.0.1 [usr/lib/libfoo.so.1]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/control.in b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/control.in
new file mode 100644
index 0000000..86a2064
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/control.in
@@ -0,0 +1,15 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libexecbit1
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/libexecbit1.symbols b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/libexecbit1.symbols
new file mode 100644
index 0000000..0b26833
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/debian/libexecbit1.symbols
@@ -0,0 +1,2 @@
+libexecbit.so.1 libexecbit1 #MINVER#
+ e@Base 1.0
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/fill-values
new file mode 100644
index 0000000..50aa473
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/fill-values
@@ -0,0 +1,6 @@
+Skeleton: upload-native
+Testname: shared-libs-missing-ldconfig-symlink
+Package-Architecture: any
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Dh-Compat-Level: 9
+Description: Test for missing ldconfig symlink for shared libs
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/Makefile
new file mode 100644
index 0000000..6de6868
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/Makefile
@@ -0,0 +1,19 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAMES:= libexecbit.so.1
+LIBFILES:= $(patsubst %,%.0.1, $(SONAMES))
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,$(patsubst %.0.1,%,$@) $^ -lc
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0755 *.so* $(DESTDIR)/usr/lib
+
+.PHONY: install clean
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/code.c b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/code.c
new file mode 100644
index 0000000..65887f3
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/build-spec/orig/code.c
@@ -0,0 +1,10 @@
+#include <stdlib.h>
+#include <math.h>
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/desc b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/desc
new file mode 100644
index 0000000..c5f12a5
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/desc
@@ -0,0 +1,2 @@
+Testname: shared-libs-missing-ldconfig-symlink
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/hints b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/hints
new file mode 100644
index 0000000..7e665b8
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-missing-ldconfig-symlink/eval/hints
@@ -0,0 +1 @@
+libexecbit1 (binary): lacks-versioned-link-to-shared-library usr/lib/libexecbit.so.1 [usr/lib/libexecbit.so.1.0.1]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/compat.in b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/control.in b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/control.in
new file mode 100644
index 0000000..c20a449
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/control.in
@@ -0,0 +1,15 @@
+Source: [% $source %]
+Priority: optional
+Section: libs
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: libfoo1
+Architecture: [% $package_architecture %]
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/libfoo1.symbols b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/libfoo1.symbols
new file mode 100644
index 0000000..a1f052b
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/debian/libfoo1.symbols
@@ -0,0 +1,3 @@
+libfoo.so.1 libfoo1 #MINVER#
+ e@Base 1.0
+ energy@Base 0.9
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/fill-values b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/fill-values
new file mode 100644
index 0000000..cec22d9
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/fill-values
@@ -0,0 +1,6 @@
+Testname: shared-libs-non-dev-symlink
+Package-Architecture: any
+Skeleton: upload-non-native
+Default-Build-Depends: debhelper (>= 9.20151004~)
+Dh-Compat-Level: 9
+Description: Test checks related to dev symlink
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/Makefile b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/Makefile
new file mode 100644
index 0000000..b62fa17
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/Makefile
@@ -0,0 +1,21 @@
+CC=gcc
+CFLAGS+= -fPIC
+
+SONAMES:= libfoo.so.1
+LIBFILES:= $(patsubst %,%.0.1, $(SONAMES))
+
+all: $(LIBFILES)
+
+$(LIBFILES): code.o
+ $(CC) $(LDFLAGS) -o $@ -shared -Wl,-soname,$(patsubst %.0.1,%,$@) $^ -lc
+
+clean:
+ rm -f *.a *.o *.so*
+
+install: all
+ install -m 0755 -d $(DESTDIR)/usr/lib
+ install -m 0644 *.so* $(DESTDIR)/usr/lib
+ ln -s libfoo.so.1.0.1 $(DESTDIR)/usr/lib/libfoo.so.1
+ ln -s libfoo.so.1.0.1 $(DESTDIR)/usr/lib/libfoo.so
+
+.PHONY: install clean
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/code.c b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/code.c
new file mode 100644
index 0000000..0ed08e0
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/build-spec/orig/code.c
@@ -0,0 +1,15 @@
+#include <stdlib.h>
+#include <math.h>
+
+double e(void (*f)(char *)){
+ char tmp[10];
+ double x;
+ f(tmp);
+ x = atof(tmp);
+ return exp(x);
+}
+
+double energy(double mass){
+ return pow(10.0, 8.0) * pow(3.0, 2.0) * mass;
+}
+
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/desc b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/desc
new file mode 100644
index 0000000..818d698
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/desc
@@ -0,0 +1,2 @@
+Testname: shared-libs-non-dev-symlink
+Check: libraries/shared/links
diff --git a/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/hints b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/hints
new file mode 100644
index 0000000..5fde620
--- /dev/null
+++ b/t/recipes/checks/libraries/shared/links/shared-libs-non-dev-symlink/eval/hints
@@ -0,0 +1 @@
+libfoo1 (binary): link-to-shared-library-in-wrong-package usr/lib/libfoo.so.1.0.1 [usr/lib/libfoo.so]