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
|
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
export QT_SELECT := qt5
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@ --with pkgkde_symbolshelper
execute_after_dh_auto_clean:
find examples -type f -executable -and -not -name compile.bat -delete
find examples -name "*.so" -delete
find tests -executable -type f -and -not '(' -name compile.bat -or -path 'tests/auto/qml/ecmascripttests/test262*' ')' -delete
find -name Makefile -delete
override_dh_auto_configure:
dh_auto_configure -- QT_BUILD_PARTS+=tests QMAKE_PYTHON=python3
override_dh_auto_build-indep:
dh_auto_build -- docs
override_dh_auto_build-arch:
# Makefiles need to be regenerated after qmltypes.prf becomes available.
# (The below line seems to be not needed since the bare existence of override
# target makes dh(1) change the build order, but let's keep it to be safe.)
find -name Makefile -and -not -path ./Makefile -delete
dh_auto_build
override_dh_auto_install-arch:
dh_auto_install
# Remove libtool-like files
rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la
# Reproducible builds: remove build paths from prl files.
sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libQt5*.prl
# Fix wrong permissions in examples.
find $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/ -type f \( \
-name '*.png' \
-o -name '*.php' \
-o -name '*.xsl' \
-o -name '*.xml' \
-o -name '*.js' \
-o -name '*.jpg' \
-o -name '*.qml' \
\) -print0 | xargs -0 chmod a-x
# Explicitly remove a .bat file included in examples
# Per Debian Policy, we cannot ship a non-standard executable without recommending a corresponding runtime
rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/examples/quick/shadereffects/content/shaders/rhi/compile.bat
override_dh_auto_install-indep:
dh_auto_build -- INSTALL_ROOT=$(CURDIR)/debian/tmp install_docs
override_dh_link:
dh_link
ls debian/qtdeclarative5-dev-tools/usr/lib/qt5/bin | xargs -t -I {} \
dh_link -pqtdeclarative5-dev-tools usr/lib/qt5/bin/{} usr/lib/$(DEB_HOST_MULTIARCH)/qt5/bin/{}
dh_link -pqmlscene usr/lib/qt5/bin/qmlscene usr/lib/$(DEB_HOST_MULTIARCH)/qt5/bin/qmlscene
dh_link -pqml usr/lib/qt5/bin/qml usr/lib/$(DEB_HOST_MULTIARCH)/qt5/bin/qml
override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
$(MAKE) install INSTALL_ROOT=$(CURDIR)/test_root
mkdir -p $(CURDIR)/.local/share/QtProject/tst_qqmlengine
# - hppa: QML engine is broken, see bug #973659
# - hurd-i386: OpenGL cannot be started because DRI is not available
# - ia64: QML engine is broken, see bug #929682
# - mips*: Some tests are failing because of bug #868745
# - powerpc, ppc64, s390x: item-grabber test fails on big endian, see https://bugreports.qt.io/browse/QTBUG-56806
# - sparc64: QML engine is broken, see bug #894726
ifneq (,$(filter $(DEB_HOST_ARCH),hppa hurd-i386 ia64 mips64el mipsel powerpc ppc64 s390x sparc64))
-xvfb-run -a \
-s "-screen 0 1024x768x24 +extension RANDR +extension RENDER +extension GLX" \
dh_auto_test --max-parallel=1 -- -k -Ctests/auto \
TZ=UTC \
QML2_IMPORT_PATH=$(CURDIR)/test_root/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/qml \
QT_PLUGIN_PATH=$(CURDIR)/plugins \
LD_LIBRARY_PATH=$(CURDIR)/lib
else
xvfb-run -a \
-s "-screen 0 1024x768x24 +extension RANDR +extension RENDER +extension GLX" \
dh_auto_test --max-parallel=1 -- -k -Ctests/auto \
TZ=UTC \
QML2_IMPORT_PATH=$(CURDIR)/test_root/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/qml \
QT_PLUGIN_PATH=$(CURDIR)/plugins \
LD_LIBRARY_PATH=$(CURDIR)/lib
endif
endif
override_dh_auto_test-indep:
|