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
|
#!/usr/bin/make -f
tmp = debian/tmp
at = adequate-test
debian/control: debian/control.in
sed -r 's/#$(shell test "$$(readlink -f /bin)" = "$$(readlink -f /usr/bin)" || echo "non-")merged-usr#//' $< > $@
%: debian/control
dh $@
override_dh_auto_install:
mkdir -p $(tmp)
# library-not-found
$(CC) lib.c -fPIC -shared -Wl,-soname,libadequate-lib.so.0 -o $(tmp)/libadequate-lib.so.0
ln -sf libadequate-lib.so.0 $(tmp)/libadequate-lib.so
$(CC) lib.c -fPIC -shared -Wl,-soname,libadequate-usrlib.so.0 -o $(tmp)/libadequate-usrlib.so.0
ln -sf libadequate-usrlib.so.0 $(tmp)/libadequate-usrlib.so
$(CC) prog.c -L$(tmp) -Wl,--no-as-needed -ladequate-lib -o $(tmp)/adequate-lib1
cd $(tmp) && seq 2 5 | xargs -t -I {} ln -f adequate-lib1 adequate-lib{}
$(CC) prog.c -L$(tmp) -Wl,--no-as-needed -ladequate-usrlib -o $(tmp)/adequate-usrlib1
cd $(tmp) && seq 2 5 | xargs -t -I {} ln -f adequate-usrlib1 adequate-usrlib{}
# missing-version-information
$(CC) -shared -Wl,--soname=lib$(at)-versionless.so.0 -Wl,--version-script=verscript-global lib.c -o $(tmp)/lib$(at)-versionless.so.0
ln -sf lib$(at)-versionless.so.0 $(tmp)/lib$(at)-versionless.so
$(CC) undef.c -L$(tmp) -o $(tmp)/$(at)-msvi -l$(at)-versionless
$(CC) -shared -Wl,--no-as-needed -Wl,--soname=lib$(at)-versionless.so.0 lib.c -o $(tmp)/lib$(at)-versionless.so.0
# symbol-size-mismatch
$(CC) -shared -Wl,--soname=lib$(at)-symsize.so.0 lib.c -o $(tmp)/lib$(at)-symsize.so.0
ln -sf lib$(at)-symsize.so.0 $(tmp)/lib$(at)-symsize.so
$(CC) symsize.c -L$(tmp) -o $(tmp)/$(at)-symsize -l$(at)-symsize
$(CC) -shared -Wl,--soname=lib$(at)-symsize.so.0 -DADEQUATE_SYMBOL_SIZE=42 lib.c -o $(tmp)/lib$(at)-symsize.so.0
readelf --wide --symbols $(tmp)/$(at)-symsize | grep this_symbol_size_varies
test "$$(readelf --wide --symbols $(tmp)/$(at)-symsize | grep this_symbol_size_varies | head -n 1 | awk '{print $$3}')" != "0" || touch $(tmp)/skip-symbol-size-mismatch
# undefined-symbol
$(CC) -shared -Wl,--soname=lib$(at)-versioning.so.0 lib.c -o $(tmp)/lib$(at)-versioning.so.0
ln -sf lib$(at)-versioning.so.0 $(tmp)/lib$(at)-versioning.so
$(CC) undef.c -L$(tmp) -o $(tmp)/$(at)-us1 -l$(at)-versioning
nm $(tmp)/$(at)-us1 | grep 'U this_symbol_might_be_undefined'
$(CC) -shared -Wl,--soname=lib$(at)-versioning.so.0 -Wl,--version-script=verscript-global lib.c -o $(tmp)/lib$(at)-versioning.so.0
$(CC) undef.c -L$(tmp) -o $(tmp)/$(at)-us2 -l$(at)-versioning
nm $(tmp)/$(at)-us2 | grep 'U this_symbol_might_be_undefined@ADEQUATE_TEST'
$(CC) -shared -Wl,--soname=lib$(at)-versioning.so.0 -Wl,--version-script=verscript-local lib.c -o $(tmp)/lib$(at)-versioning.so.0
# py-file-not-bytecompiled; pyshared-file-not-bytecompiled
cp *.py debian/tmp/
python3 -m compileall debian/tmp/
override_dh_installdocs:
dh_installdocs -N adequate-testpkg-missing-copyright-file
override_dh_missing:
dh_missing --list-missing
override_dh_strip:
dh_strip --no-automatic-dbgsym
# we build binaries with missing symbols
override_dh_shlibdeps:
override_dh_gencontrol:
dh_gencontrol $(patsubst $(tmp)/skip-%,-N adequate-testpkg-%,$(wildcard $(tmp)/skip-*))
override_dh_builddeb:
dh_builddeb $(patsubst $(tmp)/skip-%,-N adequate-testpkg-%,$(wildcard $(tmp)/skip-*))
execute_after_dh_builddeb:
rm debian/adequate-testpkg-obsolete-conffile/etc/adequate/test-obsolete-conffile
sed -i -e '/test-obsolete/d' debian/adequate-testpkg-obsolete-conffile/DEBIAN/conffiles
dh_gencontrol -p adequate-testpkg-obsolete-conffile -- -v2 -fdebian/files2
cat debian/files2 >> debian/files
rm -f debian/files2
dh_md5sums -p adequate-testpkg-obsolete-conffile
dh_builddeb -p adequate-testpkg-obsolete-conffile
|