b7ad0aa771
Adapted from Gentoo.
523 lines
15 KiB
Bash
523 lines
15 KiB
Bash
# Template file for 'qt5'
|
|
pkgname=qt5
|
|
version=5.6.0
|
|
revision=10
|
|
wrksrc="qt-everywhere-opensource-src-${version}"
|
|
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=76a95cf6c1503290f75a641aa25079cd0c5a8fcd7cff07ddebff80a955b07de7
|
|
|
|
nocross=yes
|
|
hostmakedepends="flex ruby gperf python perl pkg-config"
|
|
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 libxshmfence-devel xcb-util-keysyms-devel
|
|
xcb-util-image-devel xcb-util-wm-devel libSM-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"
|
|
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"
|
|
|
|
# Work around SSLv3_{client,server}_method missing in libressl-2.3.3
|
|
CFLAGS="-DOPENSSL_NO_SSL3_METHOD"
|
|
CXXFLAGS="-DOPENSSL_NO_SSL3_METHOD"
|
|
|
|
_move_examples() {
|
|
if [ -d ${PKGDESTDIR}/usr/share/qt5/examples ]; then
|
|
# Copy examples to /destdir/qt5-examples-${version} subpackage
|
|
mkdir -p /destdir/qt5-examples-${version}/usr/share/qt5
|
|
cp -pR ${PKGDESTDIR}/usr/share/qt5/examples \
|
|
/destdir/qt5-examples-${version}/usr/share/qt5
|
|
rm -rf ${PKGDESTDIR}/usr/share/qt5/examples
|
|
# The help files (*.qch) are in qt5-doc
|
|
find /destdir/qt5-examples-${version}/usr/share/qt5/examples -iname "*.qch" -delete
|
|
fi
|
|
}
|
|
|
|
_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/*.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=$(basename $f)
|
|
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
|
|
done
|
|
fi
|
|
_move_examples
|
|
}
|
|
|
|
_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.*
|
|
# Remove QMAKE_PRL_BUILD_DIR from *.prl files because it is the internal builddir
|
|
find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" -e "/^QMAKE_PRL_BUILD_DIR/d" \;
|
|
}
|
|
|
|
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
|
|
esac
|
|
# qmake CFLAGS/LDFLAGS
|
|
sed -i -e '/outpath\/qmake\".*\"\$MAKE\")/s/)/ QMAKE_CFLAGS="$CFLAGS" QMAKE_CXXFLAGS="$CXXFLAGS" QMAKE_LFLAGS="$LDFLAGS" )/' \
|
|
-e 's/\(setBootstrapVariable\s\+\|EXTRA_C\(XX\)\?FLAGS=.*\)QMAKE_C\(XX\)\?FLAGS_\(DEBUG\|RELEASE\).*/:/' \
|
|
qtbase/configure
|
|
}
|
|
do_configure() {
|
|
export LD="$CXX"
|
|
unset CPP AR AS RANLIB
|
|
local opts="-confirm-license -opensource \
|
|
-prefix /usr \
|
|
-bindir /usr/lib/qt5/bin \
|
|
-datadir /usr/share/qt5 \
|
|
-headerdir /usr/include/qt5 \
|
|
-sysconfdir /etc/xdg \
|
|
-plugindir /usr/lib/qt5/plugins \
|
|
-docdir /usr/share/doc/qt5 \
|
|
-importdir /usr/lib/qt5/imports \
|
|
-translationdir /usr/share/qt5/translations \
|
|
-examplesdir /usr/share/qt5/examples \
|
|
-archdatadir /usr/lib/qt5 \
|
|
-accessibility -fontconfig -icu \
|
|
-openssl-linked -dbus-linked \
|
|
-silent -no-pch -no-strip -optimized-qmake \
|
|
-system-libjpeg -system-libpng -system-zlib \
|
|
-system-sqlite -system-harfbuzz -v"
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
arm*|*-musl) # -reduce-relocations is experimental; may cause linker errors
|
|
;;
|
|
*) opts+=" -reduce-relocations"
|
|
;;
|
|
esac
|
|
QMAKE_CFLAGS="${CFLAGS}" \
|
|
QMAKE_CXXFLAGS="${CXXFLAGS}" \
|
|
QMAKE_LFLAGS="${LDFLAGS}" \
|
|
./configure ${opts}
|
|
}
|
|
do_build() {
|
|
export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
|
|
export LD="$CXX"
|
|
unset CPP AR AS RANLIB
|
|
make ${makejobs}
|
|
}
|
|
do_install() {
|
|
local f base
|
|
cd ${wrksrc}/qtbase
|
|
make INSTALL_ROOT=${DESTDIR} install
|
|
vlicense 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
|
|
_move_examples
|
|
}
|
|
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-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-enginio-devel_package() {
|
|
short_desc+=" - Enginio component (development)"
|
|
depends="qt5-enginio-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtenginio
|
|
}
|
|
}
|
|
qt5-enginio_package() {
|
|
short_desc+=" - Enginio component"
|
|
pkg_install() {
|
|
_install_subpkg qtenginio
|
|
}
|
|
}
|
|
qt5-examples_package() {
|
|
short_desc+=" - Examples"
|
|
depends="qt5-devel-${version}_${revision} qt5-qmake-${version}_${revision}"
|
|
pkg_install() {
|
|
# In case any examples are still left in $DESTDIR
|
|
if [ -d ${DESTDIR}/usr/share/qt5/examples ]; then
|
|
vmkdir usr/share/qt5
|
|
cp -pR ${DESTDIR}/usr/share/qt5/examples \
|
|
${PKGDESTDIR}/usr/share/qt5
|
|
rm -rf ${DESTDIR}/usr/share/qt5/examples
|
|
fi
|
|
}
|
|
}
|
|
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-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-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-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() {
|
|
_install_subpkg qttranslations
|
|
}
|
|
}
|
|
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 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 src/assistant/assistant/images/assistant.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/assistant-qt5.png
|
|
install -Dm644 src/assistant/assistant/images/assistant-128.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/assistant-qt5.png
|
|
install -Dm644 src/designer/src/designer/images/designer.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/designer-qt5.png
|
|
install -Dm644 src/qdbus/qdbusviewer/images/qdbusviewer.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt5.png
|
|
install -Dm644 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-plugin-gtk-${version}_${revision}
|
|
qt5-qmake-${version}_${revision}"
|
|
short_desc+=" - Development files"
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove usr/lib/*.a
|
|
vmove usr/lib/*.prl
|
|
vmove usr/lib/cmake
|
|
vmove usr/lib/pkgconfig
|
|
# Remove QMAKE_PRL_BUILD_DIR from *.prl files because it is the internal builddir
|
|
find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" -e "/^QMAKE_PRL_BUILD_DIR/d" \;
|
|
}
|
|
}
|
|
qt5-plugin-gtk_package() {
|
|
short_desc+=" - GTK+ theme plugin"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/plugins/platformthemes/libqgtk2.so
|
|
}
|
|
}
|
|
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
|
|
}
|
|
}
|