Helmut Pozimski 702b8e1ecd qt5: add fix for font rendering issues in qt-webengine
Since the chromium environment shipped with qt-webengine also bundles
the skia library, it is affected by the same font rendering issues as
the mozilla products with freetype 2.8.1. This commit adds the patch
backported for Firefox ESR from
https://bug1393467.bmoattachments.org/attachment.cgi?id=8904705 which also
applies to the skia version bundled with qt-5.8.
2017-09-19 17:15:35 +02:00

920 lines
26 KiB
Bash

# Template file for 'qt5'
pkgname=qt5
version=5.8.0
revision=8
wrksrc="qt-everywhere-opensource-src-${version}"
build_style=gnu-configure
homepage="http://qt.io/"
short_desc="A cross-platform application and UI framework (QT5)"
maintainer="Juan RP <xtraeme@voidlinux.eu>"
license="GPL-3, LGPL-2.1"
distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/single/qt-everywhere-opensource-src-${version}.tar.xz"
checksum=0f4c54386d3dbac0606a936a7145cebb7b94b0ca2d29bc001ea49642984824b6
if [ "${XBPS_MACHINE%%-musl}" = i686 ]; then
nodebug=yes # prevent OOM
fi
hostmakedepends="flex ruby gperf git python perl pkg-config protobuf re2c"
makedepends="
libressl-devel libpng-devel MesaLib-devel libXrender-devel unixodbc-devel
fontconfig-devel libXi-devel libXv-devel libXinerama-devel libXrandr-devel
libXcursor-devel libXScrnSaver-devel dbus-devel glib-devel icu-devel
cups-devel libjpeg-turbo-devel sqlite-devel alsa-lib-devel tiff-devel
libmng-devel libevent-devel ffmpeg-devel jsoncpp-devel
libsrtp-devel protobuf-devel snappy-devel minizip-devel
libxshmfence-devel libSM-devel xcb-util-keysyms-devel
xcb-util-image-devel xcb-util-renderutil-devel xcb-util-wm-devel
libXcomposite-devel libwebp-devel libxkbcommon-devel harfbuzz-devel gtk+-devel
mtdev-devel freetds-devel libmysqlclient-devel postgresql-libs-devel
pulseaudio-devel libbluetooth-devel gst-plugins-base1-devel libxslt-devel
pciutils-devel nss-devel libcap-devel libinput-devel libproxy-devel
libxcb-devel libxkbcommon-devel tslib-devel wayland-devel libwayland-egl"
depends="qtchooser"
replaces="qt5-doc<5.6.0 qt5-quick1<5.6.0 qt5-quick1-devel<5.6.0 qt5-webkit<5.6.0 qt5-webkit-devel<5.6.0
qt5-enginio<5.7.1 qt5-enginio-devel<5.7.1 qt5-plugin-gtk<5.7.1"
# Work around SSLv3_{client,server}_method missing in libressl-2.3.3
CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG -DOPENSSL_NO_SSL3_METHOD"
CXXFLAGS="${CFLAGS} -D_GLIBCXX_USE_C99_STDLIB=1 -D_GLIBCXX_USE_C99_STDIO=1"
CXXFLAGS+=" -Wno-deprecated-declarations -fno-delete-null-pointer-checks"
# Required for musl libc
LDFLAGS="-pthread -ldl -fPIE"
case "$XBPS_TARGET_MACHINE" in
armv5*) # Cannot cross compile libvpx (?)
makedepends+=" libvpx-devel"
;;
armv6*) # Cannot cross compile libvpx
;;
armv7*) # Force use of neon and enable libvpx
CXXFLAGS+=" -mfpu=neon"
makedepends+=" libvpx-devel"
;;
*) # Other architectures have libvpx (TODO: mips-* too?)
makedepends+=" libvpx-devel"
;;
esac
if [ -n "$CROSS_BUILD" ]; then
# Need some devel packages in the host to build qmake, moc, uic, rcc
# wayland-devel contains /usr/bin/wayland-scanner
# Cross building ninja does not work, thus use the system ninja
hostmakedepends+=" zlib-devel icu-devel wayland-devel ninja"
fi
_cleanup_wrksrc_leak() {
if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
# Replace references to ${wrksrc} in cmake files
sed -i ${PKGDESTDIR}/usr/lib/cmake/*/*.cmake \
-e "s;${wrksrc}/qtbase/host;/usr/lib/qt5;g" \
-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
fi
if [ -d "${PKGDESTDIR}/usr/lib/pkgconfig" ]; then
# Replace references to ${wrksrc} in pkgconfig files
sed -i ${PKGDESTDIR}/usr/lib/pkgconfig/*.pc \
-e "s;${wrksrc}/qtbase/host;/usr/lib/qt5;g" \
-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
fi
# Remove QMAKE_PRL_BUILD_DIR from hint files for static libraries
# and replace references to ${wrksrc}
find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
-e "/^QMAKE_PRL_BUILD_DIR/d" \
-e "s;-L${wrksrc}/qtbase/lib;-L/usr/lib;g" \;
# Replace ${wrksrc} in project include files
find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
}
_install_subpkg() {
local module=$1 f base
cd ${wrksrc}/${module}
make INSTALL_ROOT=${PKGDESTDIR} install
rm -rf ${PKGDESTDIR}/builddir
rm -rf ${PKGDESTDIR}/usr/include
rm -rf ${PKGDESTDIR}/usr/lib/cmake
rm -rf ${PKGDESTDIR}/usr/lib/qt5/mkspecs
rm -rf ${PKGDESTDIR}/usr/lib/pkgconfig
rm -f ${PKGDESTDIR}/usr/lib/*.a
rm -f ${PKGDESTDIR}/usr/lib/*.so
rm -f ${PKGDESTDIR}/usr/lib/*.prl
if [ -d ${PKGDESTDIR}/usr/lib/qt5/bin ]; then
vmkdir usr/bin
for f in ${PKGDESTDIR}/usr/lib/qt5/bin/*; do
base=${f##*/}
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
done
fi
}
_install_devel() {
local module=$1
cd ${wrksrc}/${module}
make INSTALL_ROOT=${PKGDESTDIR} install
rm -rf ${PKGDESTDIR}/builddir
rm -rf ${PKGDESTDIR}/usr/share
rm -rf ${PKGDESTDIR}/usr/lib/qt5/bin
rm -rf ${PKGDESTDIR}/usr/lib/qt5/qml
rm -rf ${PKGDESTDIR}/usr/lib/qt5/libexec
rm -rf ${PKGDESTDIR}/usr/lib/qt5/plugins
rm -f ${PKGDESTDIR}/usr/lib/*.so.*
_cleanup_wrksrc_leak
}
_create_config() {
local specs=${wrksrc}/qtbase/mkspecs/devices device="$1" qmake_conf
mkdir -p ${specs}/${device}
echo "#" > ${specs}/${device}/qmake.conf
echo "# qmake configuration for building with $XBPS_TARGET_MACHINE" >> ${specs}/${device}/qmake.conf
echo "#" >> ${specs}/${device}/qmake.conf
echo >> ${specs}/${device}/qmake.conf
echo "include(../common/linux_device_pre.conf)" >> ${specs}/${device}/qmake.conf
echo >> ${specs}/${device}/qmake.conf
# Fake distro name to tell we want control
echo "DISTRO = arch" >> ${specs}/${device}/qmake.conf
# Hard float on armv6, armv7, not on armv5tel
case "$XBPS_TARGET_MACHINE" in
armv6*|armv7*)
echo "DISTRO_OPTS += hard-float" >> ${specs}/${device}/qmake.conf
;;
esac
echo "QMAKE_CC = ${CC}" >> ${specs}/${device}/qmake.conf
echo "QMAKE_CXX = ${CXX}" >> ${specs}/${device}/qmake.conf
echo "QMAKE_LINK = ${CXX}" >> ${specs}/${device}/qmake.conf
echo "QMAKE_LINK_SHLIB = ${CXX}" >> ${specs}/${device}/qmake.conf
echo "QMAKE_LFLAGS = ${LDFLAGS}" >> ${specs}/${device}/qmake.conf
echo "QMAKE_CFLAGS = ${CFLAGS}" >> ${specs}/${device}/qmake.conf
echo "QMAKE_CXXFLAGS = ${CXXFLAGS}" >> ${specs}/${device}/qmake.conf
# FIXME: is this required?
echo "QMAKE_LIBS_OPENGL_ES2 = -lEGL -lGLESv2" >> ${specs}/${device}/qmake.conf
echo >> ${specs}/${device}/qmake.conf
case "$XBPS_TARGET_MACHINE" in
arm*)
echo "include(../common/linux_arm_device_post.conf)" >> ${specs}/${device}/qmake.conf ;;
*)
echo "include(../common/linux_device_post.conf)" >> ${specs}/${device}/qmake.conf ;;
esac
echo "load(qt_config)" >> ${specs}/${device}/qmake.conf
echo '#include "../../linux-g++/qplatformdefs.h"' > ${specs}/${device}/qplatformdefs.h
}
pre_configure() {
# Compatibility functions res_ninit() and res_nclose() for musl libc
cp ${FILESDIR}/resolv_compat.h ${wrksrc}/qtwebengine/src/3rdparty/chromium/net/dns
case "$XBPS_TARGET_MACHINE" in
*-musl)
# Patch .../linux/*/config.{h,asm} to define HAVE_SYSCTL 0
local config chromium=${wrksrc}/qtwebengine/src/3rdparty/chromium
for config in $(find ${chromium}/third_party/ffmpeg/chromium/config -name "config\.*" | grep linux); do
sed -i ${config} -e "s;HAVE_SYSCTL 1;HAVE_SYSCTL 0;"
done
# Do not use experimental allocator shim (incompatible with musl libc)
sed -i qtwebengine/src/3rdparty/chromium/build/common.gypi \
-e"s;\('use_experimental_allocator_shim%':\) 1,;\1 0,;"
esac
# Cross build patches
if [ -n "$CROSS_BUILD" ]; then
# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${XBPS_CFLAGS}|" \
qtbase/mkspecs/common/gcc-base.conf
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${XBPS_LDFLAGS}|" \
qtbase/mkspecs/common/g++-unix.conf
# Patch to skip non-working check for GCC version
patch -p0 < ${FILESDIR}/cross-gcc.patch
# Create symbolic links for private include directories
for d in $(ls ${wrksrc}/qtbase/include); do
ln -s ${version}/${d}/private qtbase/include/${d}/private
done
# Copy system ninja to 3rdparty path
cp -v /usr/bin/ninja qtwebengine/src/3rdparty/ninja/
else
# Build qmake using Void {C,LD}FLAGS
# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \
qtbase/mkspecs/common/gcc-base.conf
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
qtbase/mkspecs/common/g++-unix.conf
fi
sed -i qtwebengine/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp \
-e "s|'use_system_ffmpeg%': 0,|'use_system_ffmpeg%': 1,|"
}
do_configure() {
local opts spec dirs dir f
opts+=" -confirm-license"
opts+=" -opensource"
opts+=" -prefix /usr"
opts+=" -bindir /usr/lib/qt5/bin"
opts+=" -datadir /usr/share/qt5"
opts+=" -headerdir /usr/include/qt5"
opts+=" -sysconfdir /etc/xdg"
opts+=" -plugindir /usr/lib/qt5/plugins"
opts+=" -docdir /usr/share/doc/qt5"
opts+=" -importdir /usr/lib/qt5/imports"
opts+=" -translationdir /usr/share/qt5/translations"
opts+=" -examplesdir /usr/share/qt5/examples"
opts+=" -archdatadir /usr/lib/qt5"
opts+=" -accessibility -fontconfig -icu"
opts+=" -openssl-linked"
opts+=" -dbus-linked"
opts+=" -no-pch"
opts+=" -no-strip"
opts+=" -nomake examples"
opts+=" -optimized-qmake"
opts+=" -system-libjpeg"
opts+=" -system-libpng"
opts+=" -system-zlib"
opts+=" -system-sqlite"
opts+=" -system-harfbuzz"
# opts+=" -silent"
opts+=" -v"
LDFLAGS+=" -Wl,--no-keep-memory" # needs more than 8GB RAM else
if [ -n "$CROSS_BUILD" ]; then
spec=void-${XBPS_CROSS_TRIPLET}-g++
_create_config ${spec}
opts+=" -device ${spec}"
opts+=" -device-option CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
opts+=" -opengl es2"
opts+=" -sysroot ${XBPS_CROSS_BASE}"
opts+=" -hostprefix host"
opts+=" -extprefix /usr"
fi
CC="cc" CXX="c++" CPP="cpp" LD="c++" AR="ar" AS="as" NM="nm" \
OBJDUMP="objdump" STRIP="strip" RANLIB="ranlib" \
CFLAGS="$XBPS_CFLAGS" CXXFLAGS="$XBPS_CXXFLAGS" \
CPPFLAGS="$XBPS_CPPFLAGS" LDFLAGS="$XBPS_LDFLAGS" \
LFLAGS="$XBPS_LDFLAGS" \
./configure ${opts}
export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
}
do_install() {
local f base dirs
if [ -z "$CROSS_BUILD" ]; then
unset CC CXX LD CPP AR AS RANLIB
fi
cd ${wrksrc}/qtbase
make INSTALL_ROOT=${DESTDIR} install
# Remove the host utilities
rm -rf ${DESTDIR}/builddir
if [ -n "$CROSS_BUILD" ]; then
#
# For some reason qmake and several tools are not built for the target
# but only for the host. Build them for the target architecture by
# replacing or patching their project files (*.pro) and the resulting
# Makefiles and eventually install the targets to ${DESTDIR}/usr/lib/qt5/bin
#
vmkdir usr/lib/qt5/bin
# Make a backup of the host tools
for f in qtbase qt3d qtdeclarative qtscxml qttools; do
mkdir -p ${wrksrc}/host/${f}
cp -ar ${wrksrc}/${f}/bin ${wrksrc}/host/${f}
done
msg_normal "Building qmake for target ${CROSS_BUILD} ...\n"
cd qmake
sed Makefile \
-e "s;^\(CC\\s*=\).*;\1 $CC;" \
-e "s;^\(CXX\\s*=\).*;\1 $CXX;" \
-e "s;^\(QMAKE_CFLAGS\\s*=\).*;\1 $CFLAGS;" \
-e "s;^\(QMAKE_CXXFLAGS\\s*=\).*;\1 $CXXFLAGS;" \
-e "s;^\(QMAKE_LFLAGS\\s*=\).*;\1 $LDFLAGS;" \
-e "s;\$(BUILD_PATH)/bin;${DESTDIR}/usr/lib/qt5/bin;" \
> Makefile.target
make clean
make -f Makefile.target ${makejobs}
# Build various tools for the target
dirs+=" qtbase/src/tools/qdbuscpp2xml"
dirs+=" qtbase/src/tools/qdbusxml2cpp"
dirs+=" qtbase/src/tools/qlalr"
dirs+=" qtbase/src/tools/moc"
dirs+=" qtbase/src/tools/rcc"
dirs+=" qtbase/src/tools/uic"
dirs+=" qt3d/tools/qgltf"
dirs+=" qtdeclarative/src/qmldevtools"
dirs+=" qtdeclarative/tools/qmlimportscanner"
dirs+=" qtdeclarative/tools/qmlmin"
dirs+=" qtdeclarative/tools/qmllint"
dirs+=" qtscxml/tools/qscxmlc"
dirs+=" qttools/src/linguist/lconvert"
dirs+=" qttools/src/linguist/lrelease"
dirs+=" qttools/src/linguist/lupdate"
dirs+=" qttools/src/qdoc"
mkdir -p ${wrksrc}/target/bin
for f in ${dirs}; do
cd ${wrksrc}/${f}
base=${f##*/}
msg_normal "Building ${base} for target ${CROSS_BUILD} ...\n"
make clean
if [ -f "${FILESDIR}/${base}.pro" ]; then
# A specific *.pro file is available, use it.
cp ${FILESDIR}/${base}.pro ${base}.pro
else
# Otherwise strip the option(host_build)
sed -i ${base}.pro -e "/option(host_build)/d"
fi
# Re-create the Makefile
${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
# Now patch the Makefile to not use the bootstrap libs and
# use the compilers, linker, flags, etc. for the target arch
sed -i Makefile \
-e"s; force_bootstrap;;" \
-e"s;^\(CC\\s*=\).*;\1 $CC;" \
-e"s;^\(CXX\\s*=\).*;\1 $CXX;" \
-e"s;^\(LINK\\s*=\).*;\1 $CXX;" \
-e"s;^\(CFLAGS\\s*=.*\);\1 $CFLAGS;" \
-e"s;^\(CXXFLAGS\\s*=.*\);\1 $CXXFLAGS;" \
-e"s;^\(LFLAGS\\s*=.*\);\1 $LDFLAGS;" \
-e"s;^\(AR\\s*=\).*;\1 $AR cqs;" \
-e"s;^\(RANLIB\\s*=\).*;\1 $RANLIB;"
if [ "${base}" != qmldevtools ]; then
# Set target destination and name
find . -name Makefile -exec sed -i "{}" \
-e"s;^\(DESTDIR\\s*=\).*;\1 ${wrksrc}/target/bin/;" \
-e"s;^\(TARGET\\s*=\).*;\1 ${wrksrc}/target/bin/${base};" \
\;
fi
make ${makejobs}
# Install the resulting binary, if any
if [ "${base}" != qmldevtools ]; then
vinstall ${wrksrc}/target/bin/${base} 755 usr/lib/qt5/bin
fi
done
cd ${wrksrc}/qtbase
# Install the mkspecs
vcopy mkspecs usr/lib/qt5
# Restore backup of the host tools
for f in qtbase qt3d qtdeclarative qtscxml qttools; do
rm -rf ${wrksrc}/${f}/bin
cp -pR ${wrksrc}/host/${f}/bin ${wrksrc}/${f}
done
else
msg_normal ">>> Building qmake for host ${XBPS_ARCH} ...\n"
cd qmake
sed Makefile \
-e "s;^\(CC\\s*\)=.*;\1= gcc;" \
-e "s;^\(CXX\\s*\)=.*;\1= g++;" \
-e "s;^\(QMAKE_CFLAGS\\s*\)=.*;\1= $CFLAGS;" \
-e "s;^\(QMAKE_CXXFLAGS\\s*\)=.*;\1= $CXXFLAGS;" \
-e "s;^\(QMAKE_LFLAGS\\s*\)=.*;\1= $LDFLAGS;" \
-e "s;\$(BUILD_PATH)/bin;${DESTDIR}/usr/lib/qt5/bin;" \
> Makefile.host
make clean
make -f Makefile.host ${makejobs}
fi
vlicense ${wrksrc}/LGPL_EXCEPTION.txt
vmkdir usr/bin
for f in ${DESTDIR}/usr/lib/qt5/bin/*; do
base=$(basename $f)
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
done
_cleanup_wrksrc_leak
}
qt5-3d-devel_package() {
short_desc+=" - C++ and QML APIs for 3D graphics (development)"
depends="qt5-3d-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qt3d
}
}
qt5-3d_package() {
short_desc+=" - C++ and QML APIs for 3D graphics"
pkg_install() {
_install_subpkg qt3d
}
}
qt5-canvas3d_package() {
short_desc+=" - Canvas 3D component"
pkg_install() {
_install_subpkg qtcanvas3d
}
}
qt5-charts-devel_package() {
short_desc+=" - Charts component (development)"
depends="qt5-charts-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
pkg_install() {
_install_devel qtcharts
}
}
qt5-charts_package() {
short_desc+=" - Charts component"
pkg_install() {
_install_subpkg qtcharts
}
}
qt5-gamepad-devel_package() {
short_desc+=" - Gamepad component (development)"
depends="qt5-gamepad-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
pkg_install() {
_install_devel qtgamepad
}
}
qt5-gamepad_package() {
short_desc+=" - Gamepad component"
pkg_install() {
_install_subpkg qtgamepad
}
}
qt5-datavis3d-devel_package() {
short_desc+=" - 3D data visualization (development)"
depends="qt5-datavis3d-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
pkg_install() {
_install_devel qtdatavis3d
}
}
qt5-datavis3d_package() {
short_desc+=" - 3D data visualization"
pkg_install() {
_install_subpkg qtdatavis3d
}
}
qt5-connectivity-devel_package() {
short_desc+=" - Connectivity component (development)"
depends="qt5-connectivity-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtconnectivity
}
}
qt5-connectivity_package() {
short_desc+=" - Connectivity component"
pkg_install() {
_install_subpkg qtconnectivity
}
}
qt5-declarative-devel_package() {
short_desc+=" - Declarative component (development)"
depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtdeclarative
}
}
qt5-declarative_package() {
short_desc+=" - Declarative component"
pkg_install() {
_install_subpkg qtdeclarative
}
}
qt5-examples_package() {
short_desc+=" - Examples"
depends="qt5-devel-${version}_${revision} qt5-qmake-${version}_${revision}"
pkg_install() {
local dir mod base=usr/share/qt5/examples
vmkdir ${base}
vcopy qtbase/examples/examples.pro ${base}/
# Copy examples source
for dir in $(find ${wrksrc} -maxdepth 2 -type d -name examples); do
mod=${dir%/examples}
mod=${mod##*/}
vcopy ${dir}/* ${base}/
if [ -e "${PKGDESTDIR}/${base}/README" ]; then
mv ${PKGDESTDIR}/${base}/README{,.${mod}}
fi
done
}
}
qt5-graphicaleffects_package() {
short_desc+=" - Graphicaleffects component"
pkg_install() {
_install_subpkg qtgraphicaleffects
}
}
qt5-imageformats_package() {
short_desc+=" - Plugins for additional image formats"
pkg_install() {
_install_subpkg qtimageformats
}
}
qt5-location-devel_package() {
short_desc+=" - Location and Positioning components (development)"
depends="qt5-location-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtlocation
}
}
qt5-location_package() {
short_desc+=" - Location and Positioning components"
pkg_install() {
_install_subpkg qtlocation
}
}
qt5-multimedia-devel_package() {
short_desc+=" - Multimedia component (development)"
depends="qt5-multimedia-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtmultimedia
}
}
qt5-multimedia_package() {
short_desc+=" - Multimedia component"
pkg_install() {
_install_subpkg qtmultimedia
}
}
qt5-quickcontrols_package() {
short_desc+=" - Quick UI controls"
pkg_install() {
_install_subpkg qtquickcontrols
}
}
qt5-quickcontrols2_package() {
short_desc+=" - Quick UI controls (ver. 2)"
pkg_install() {
_install_subpkg qtquickcontrols2
}
}
qt5-script-devel_package() {
short_desc+=" - Scriptable classes (development)"
depends="qt5-script-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtscript
}
}
qt5-script_package() {
short_desc+=" - Scriptable classes"
pkg_install() {
_install_subpkg qtscript
}
}
qt5-scxml-devel_package() {
short_desc+=" - SCXML model integration (development)"
depends="qt5-scxml-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtscxml
}
}
qt5-scxml_package() {
short_desc+=" - SCXML model integration"
pkg_install() {
_install_subpkg qtscxml
}
}
qt5-sensors-devel_package() {
short_desc+=" - Sensors component (development)"
depends="qt5-sensors-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtsensors
}
}
qt5-sensors_package() {
short_desc+=" - Sensors component"
pkg_install() {
_install_subpkg qtsensors
}
}
qt5-serialbus-devel_package() {
short_desc+=" - Serial bus component (development)"
depends="qt5-serialbus-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtserialbus
}
}
qt5-serialbus_package() {
short_desc+=" - Serial bus component"
pkg_install() {
_install_subpkg qtserialbus
}
}
qt5-serialport-devel_package() {
short_desc+=" - Serial port component (development)"
depends="qt5-serialport-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtserialport
}
}
qt5-serialport_package() {
short_desc+=" - Serial port component"
pkg_install() {
_install_subpkg qtserialport
}
}
qt5-speech-devel_package() {
short_desc+=" - Speech component (development)"
depends="qt5-speech-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtspeech
}
}
qt5-speech_package() {
short_desc+=" - Speech component"
pkg_install() {
_install_subpkg qtspeech
}
}
qt5-svg-devel_package() {
short_desc+=" - Svg component (development)"
depends="qt5-svg-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtsvg
}
}
qt5-svg_package() {
short_desc+=" - Svg component"
pkg_install() {
_install_subpkg qtsvg
}
}
qt5-virtualkeyboard-devel_package() {
short_desc+=" - Virtual keyboard (development)"
depends="qt5-virtualkeyboard-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
pkg_install() {
_install_devel qtvirtualkeyboard
}
}
qt5-virtualkeyboard_package() {
short_desc+=" - Virtual keyboard"
pkg_install() {
_install_subpkg qtvirtualkeyboard
}
}
qt5-wayland-devel_package() {
short_desc+=" - Wayland component (development)"
depends="qt5-wayland-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwayland
}
}
qt5-wayland_package() {
short_desc+=" - Wayland component"
pkg_install() {
_install_subpkg qtwayland
}
}
qt5-webchannel-devel_package() {
short_desc+=" - WebChannel component (development)"
depends="qt5-webchannel-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwebchannel
}
}
qt5-webchannel_package() {
short_desc+=" - WebChannel component"
pkg_install() {
_install_subpkg qtwebchannel
}
}
qt5-webengine-devel_package() {
short_desc+=" - WebEngine component (development)"
depends="qt5-webengine-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwebengine
}
}
qt5-webengine_package() {
short_desc+=" - WebEngine component"
pkg_install() {
_install_subpkg qtwebengine
}
}
qt5-websockets-devel_package() {
short_desc+=" - WebSockets component (development)"
depends="qt5-websockets-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwebsockets
}
}
qt5-websockets_package() {
short_desc+=" - WebSockets component"
pkg_install() {
_install_subpkg qtwebsockets
}
}
qt5-webview-devel_package() {
short_desc+=" - WebView component (development)"
depends="qt5-webview-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtwebview
}
}
qt5-webview_package() {
short_desc+=" - WebView component"
pkg_install() {
_install_subpkg qtwebview
}
}
qt5-x11extras-devel_package() {
short_desc+=" - X11 extras (development)"
depends="qt5-x11extras-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtx11extras
}
}
qt5-x11extras_package() {
short_desc+=" - X11 extras"
pkg_install() {
_install_subpkg qtx11extras
}
}
qt5-xmlpatterns-devel_package() {
short_desc+=" - XML components (development)"
depends="qt5-xmlpatterns-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qtxmlpatterns
}
}
qt5-xmlpatterns_package() {
short_desc+=" - XML components"
pkg_install() {
_install_subpkg qtxmlpatterns
}
}
qt5-translations_package() {
short_desc+=" - Translations"
pkg_install() {
sed -i ${wrksrc}/qttranslations/translations/Makefile \
-e "s;qttranslations/translations/\(.*\)_wrapper.sh;host/qttools/bin/\1;g"
_install_subpkg qttranslations
}
}
qt5-host-tools_package() {
short_desc+=" - Tools required when cross compiling"
pkg_install() {
for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp; do
vmove usr/lib/qt5/bin/${f}
done
}
}
qt5-tools-devel_package() {
short_desc+=" - Development tools (development)"
depends="qt5-tools-${version}_${revision} qt5-devel-${version}_${revision}"
pkg_install() {
_install_devel qttools
}
}
qt5-tools_package() {
short_desc+=" - Development tools"
depends="qt5-translations desktop-file-utils hicolor-icon-theme"
pkg_install() {
_install_subpkg qttools
# install missing icons and desktop files
for icon in ${wrksrc}/qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do
size=$(echo $(basename ${icon}) | cut -d- -f2)
install -p -D -m644 ${icon} \
${PKGDESTDIR}/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt5.png
done
install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant.png \
${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/assistant-qt5.png
install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant-128.png \
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/assistant-qt5.png
install -Dm644 ${wrksrc}/qttools/src/designer/src/designer/images/designer.png \
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/designer-qt5.png
install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png \
${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt5.png
install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/qdbusviewer-qt5.png
# install desktop files
vmkdir usr/share/applications
install -m644 ${FILESDIR}/*.desktop ${PKGDESTDIR}/usr/share/applications
}
}
qt5-devel_package() {
depends="zlib-devel libressl-devel>=2.1.4 libXext-devel libXrender-devel
fontconfig-devel libglib-devel MesaLib-devel mtdev-devel
dbus-devel icu-devel qt5-${version}_${revision}
qt5-qmake-${version}_${revision}
qt5-host-tools-${version}_${revision}"
short_desc+=" - Development files"
# qt5-enginio-devel is gone
pkg_install() {
vmove usr/include
vmove usr/lib/*.a
vmove usr/lib/*.prl
vmove usr/lib/cmake
vmove usr/lib/pkgconfig
_cleanup_wrksrc_leak
}
}
qt5-plugin-odbc_package() {
short_desc+=" - ODBC plugin"
pkg_install() {
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so
}
}
qt5-plugin-pgsql_package() {
short_desc+=" - PostgreSQL plugin"
pkg_install() {
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so
}
}
qt5-plugin-mysql_package() {
short_desc+=" - MySQL plugin"
pkg_install() {
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so
}
}
qt5-plugin-sqlite_package() {
short_desc+=" - SQLite plugin"
pkg_install() {
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlite.so
}
}
qt5-plugin-tds_package() {
short_desc+=" - TDS plugin"
pkg_install() {
vmove usr/lib/qt5/plugins/sqldrivers/libqsqltds.so
}
}
qt5-qmake_package() {
short_desc+=" - Qmake Makefile generator tool"
pkg_install() {
vmove usr/lib/qt5/bin/qmake
vmove usr/lib/qt5/mkspecs
vmove usr/bin/qmake-qt5
# Change -isystem to -I to avoid "#include_next <stdlib.h>" errors
sed -i ${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/gcc-base.conf \
-e '/^QMAKE_CFLAGS_ISYSTEM/s;-isystem;-I;'
# Undo changes to mkspecs/common/gcc-base.conf and g++-unix.conf
if [ -n "$CROSS_BUILD" ]; then
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\) ${XBPS_CFLAGS}|\1|" \
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/gcc-base.conf
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\) ${XBPS_LDFLAGS}|\1|" \
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/g++-unix.conf
else
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\) ${CFLAGS}|\1|" \
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/gcc-base.conf
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\) ${LDFLAGS}|\1|" \
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/g++-unix.conf
fi
}
}