summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/fields/section/legacy-libbaz/build-spec/debian/rules
blob: fa99bc8adbde94a1d49bd212efa98a0ff7986379 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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