aboutsummaryrefslogtreecommitdiffstats
path: root/community/qt5-qtbase
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2017-04-14 14:23:19 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2017-04-14 14:47:01 +0000
commit5b4b0cf8681f025b7f690669d88f2244e3ac0773 (patch)
treeef48215c2fa012e655ee6b731a7e696e92b7ec32 /community/qt5-qtbase
parent8e6d806d685d7ac7b6543f0b1a91b3ca1e327ac1 (diff)
community/qt5-qt*: move from main
Diffstat (limited to 'community/qt5-qtbase')
-rw-r--r--community/qt5-qtbase/APKBUILD215
-rw-r--r--community/qt5-qtbase/hack-openssl_test.patch11
-rw-r--r--community/qt5-qtbase/libressl-compat.patch118
-rw-r--r--community/qt5-qtbase/qt-musl-iconv-no-bom.patch11
4 files changed, 355 insertions, 0 deletions
diff --git a/community/qt5-qtbase/APKBUILD b/community/qt5-qtbase/APKBUILD
new file mode 100644
index 00000000000..36a8f41573c
--- /dev/null
+++ b/community/qt5-qtbase/APKBUILD
@@ -0,0 +1,215 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=qt5-qtbase
+pkgver=5.8.0
+_ver=${pkgver/_p/-}
+_ver=${_ver/_/-}
+_ver=${_ver/beta0/beta}
+_ver=${_ver/rc0/rc}
+_V=${_ver/rc/RC}
+pkgrel=0
+pkgdesc="Qt5 - QtBase components"
+url="http://qt-project.org/"
+arch="all"
+license="LGPLv2 with exceptions or GPLv3 with exceptions"
+_sub="$pkgname-sqlite $pkgname-odbc $pkgname-postgresql $pkgname-mysql
+ $pkgname-tds $pkgname-x11"
+depends=""
+depends_dev="mesa-dev libice-dev libsm-dev libx11-dev libxext-dev
+ libressl-dev fontconfig-dev freetype-dev glib-dev libpng-dev zlib-dev
+ sqlite-dev dbus-dev perl $_sub"
+makedepends="$depends_dev
+ bison
+ cups-dev
+ eudev-dev
+ flex
+ freetds-dev
+ gawk
+ gperf
+ gtk+2.0-dev
+ hicolor-icon-theme
+ icu-dev
+ libinput-dev
+ libjpeg-turbo-dev
+ libxkbcommon-dev
+ libxi-dev
+ libxrandr-dev
+ libxrender-dev
+ libxslt-dev
+ libxv-dev
+ mariadb-dev
+ mtdev-dev
+ pcre-dev
+ postgresql-dev
+ unixodbc-dev
+ xcb-util-dev
+ xcb-util-image-dev
+ xcb-util-keysyms-dev
+ xcb-util-wm-dev
+ xcb-util-renderutil-dev
+ "
+install=""
+subpackages="$pkgname-dev $pkgname-doc $_sub"
+case $pkgver in
+*_beta*|*_rc*) _rel=development_releases;;
+*) _rel=official_releases;;
+esac
+source="http://download.qt-project.org/$_rel/qt/${pkgver%.*}/$_ver/submodules/qtbase-opensource-src-$_V.tar.xz
+ qt-musl-iconv-no-bom.patch
+ libressl-compat.patch
+ hack-openssl_test.patch
+ "
+
+_qt5_prefix=/usr/lib/qt5
+_qt5_datadir=/usr/share/qt5
+
+builddir="$srcdir"/qtbase-opensource-src-${_V%-*}
+prepare() {
+ cd "$builddir"
+ for i in $source; do
+ case $i in
+ *.patch)
+ msg "Applying $i"
+ patch -p1 -i "$srcdir"/$i || return 1
+ ;;
+ esac
+ done
+ sed -i -e "s|-O2|$CXXFLAGS|" \
+ -e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \
+ -e "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" \
+ mkspecs/common/*.conf || return 1
+}
+
+build() {
+ local _arch
+
+ cd "$builddir"
+
+ ./configure -confirm-license -opensource \
+ -archdatadir "$_qt5_prefix" \
+ -bindir "$_qt5_prefix"/bin \
+ -datadir "$_qt5_datadir" \
+ -dbus-linked \
+ -docdir /usr/share/doc/qt5 \
+ -examplesdir /usr/share/doc/qt5/examples \
+ -glib \
+ -icu \
+ -importdir "$_qt5_prefix"/imports \
+ -libexecdir "$_qt5_prefix"/libexec \
+ -no-rpath \
+ -no-separate-debug-info \
+ -nomake examples \
+ -opengl \
+ -openssl-linked \
+ -optimized-qmake \
+ -plugin-sql-mysql \
+ -plugin-sql-odbc \
+ -plugin-sql-psql \
+ -plugin-sql-sqlite \
+ -plugin-sql-tds \
+ -plugindir "$_qt5_prefix"/plugins \
+ -prefix /usr \
+ -silent \
+ -sysconfdir /etc/xdg \
+ -system-libjpeg \
+ -system-libpng \
+ -system-pcre \
+ -system-sqlite \
+ -system-xcb \
+ -system-zlib \
+ -translationdir "$_qt5_datadir"/translations \
+ -no-reduce-relocations \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$builddir"
+ make INSTALL_ROOT="$pkgdir" install || return 1
+ mkdir -p "$pkgdir"/usr/bin/
+ for i in "$pkgdir"/$_qt5_prefix/bin/*; do
+ _name=${i##*/}
+ case $_name in
+ *.*) _dest="$pkgdir"/usr/bin/${_name%.*}-qt5.${_name##*.};;
+ *) _dest="$pkgdir"/usr/bin/${_name%.*}-qt5;;
+ esac
+ ln -s ../lib/qt5/bin/"${_name}" "$_dest"
+ done
+}
+
+_mv_files() {
+ local i
+ for i; do
+ mkdir -p "$subpkgdir"/${i%/*}
+ mv "$pkgdir"/$i "$subpkgdir"/$i || return 1
+ done
+}
+
+dev() {
+ cd "$pkgdir"
+ _mv_files usr/lib/qt5/mkspecs \
+ usr/lib/cmake \
+ usr/lib/qt5/bin \
+ usr/bin \
+ $(find usr/ -name '*.prl') \
+ || return 1
+ default_dev
+}
+
+sqlite() {
+ pkgdesc="SQLite driver for Qt5's SQL classes"
+ cd "$pkgdir"
+ _mv_files usr/lib/qt5/plugins/sqldrivers/libqsqlite*
+}
+
+odbc() {
+ pkgdesc="ODBC driver for Qt5's SQL classes"
+ cd "$pkgdir"
+ _mv_files usr/lib/qt5/plugins/sqldrivers/libqsqlodbc*
+}
+
+postgresql() {
+ pkgdesc="PostgreSQL driver for Qt5's SQL classes"
+ cd "$pkgdir"
+ _mv_files usr/lib/qt5/plugins/sqldrivers/libqsqlpsql*
+}
+
+mysql() {
+ pkgdesc="MySQL driver for Qt5's SQL classes"
+ cd "$pkgdir"
+ _mv_files usr/lib/qt5/plugins/sqldrivers/libqsqlmysql*
+}
+
+tds() {
+ pkgdesc="TDS driver for Qt5's SQL classes"
+ cd "$pkgdir"
+ _mv_files usr/lib/qt5/plugins/sqldrivers/libqsqltds*
+}
+
+x11() {
+ pkgdesc="Qt5 GUI-related libraries"
+ depends="hicolor-icon-theme"
+ cd "$pkgdir"
+ _mv_files \
+ usr/lib/libQt5EglFSDeviceIntegration.so.* \
+ usr/lib/libQt5EglFsKmsSupport.so.* \
+ usr/lib/libQt5Gui.so.* \
+ usr/lib/libQt5OpenGL.so.* \
+ usr/lib/libQt5PrintSupport.so.* \
+ usr/lib/libQt5Widgets.so.* \
+ usr/lib/libQt5XcbQpa.so.* \
+ usr/lib/qt5/plugins/egldeviceintegrations \
+ usr/lib/qt5/plugins/generic \
+ usr/lib/qt5/plugins/image* \
+ usr/lib/qt5/plugins/platform* \
+ usr/lib/qt5/plugins/printsupport* \
+ usr/lib/qt5/plugins/xcbglintegrations \
+ || return 1
+
+ scanelf -Rn usr/ | egrep '(libX|libQt5Gui|libGL)' && return 1
+ return 0
+}
+
+sha512sums="36a1ba4b0dba02ae65c3b2b0aa3fb3767cbee4dbdf204c9ded7d1700e70144ce85a3a66167f86cc716a1fdd38d832962b2a752e803b0647d03032b2685da5ced qtbase-opensource-src-5.8.0.tar.xz
+7d68421a14f0259535c977d8a521c98918193c107b76ac664571b12f5b0d7588a0d0e1297af412a26753a393b21f3f44c3274fa8ab5bc87f03705a3a03acb444 qt-musl-iconv-no-bom.patch
+af284ebb51e3d903275f0f43901755fee0d0071a2fa4f5d6e8a4b00d9185d9d9fffba8e5cbda8c4aa2b3acde69fd26a449b23ad104f509fd4156f6908e0b43da libressl-compat.patch
+3bc1380268f077587114cfa535c58403f59c4c931902d0599633e1365f075d2e253b6f461e22ed3fe3adb12ef45ea97e1dbcbc1bbe0d151435703986f25c44c6 hack-openssl_test.patch"
diff --git a/community/qt5-qtbase/hack-openssl_test.patch b/community/qt5-qtbase/hack-openssl_test.patch
new file mode 100644
index 00000000000..fdf31b45df9
--- /dev/null
+++ b/community/qt5-qtbase/hack-openssl_test.patch
@@ -0,0 +1,11 @@
+--- qtbase/config.tests/unix/openssl/openssl.cpp 2016-09-16 07:49:42.000000000 +0200
++++ qtbase/config.tests/unix/openssl/openssl.cpp 2016-10-21 19:05:10.099362793 +0200
+@@ -39,7 +39,7 @@
+
+ #include <openssl/ssl.h>
+
+-#if OPENSSL_VERSION_NUMBER-0 >= 0x10002000L && !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES)
++#if (OPENSSL_VERSION_NUMBER-0 >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES)
+ # error "OpenSSL was reported as >= 1.0.2 but is missing required features, possibly it's libressl which is unsupported"
+ #endif
+
diff --git a/community/qt5-qtbase/libressl-compat.patch b/community/qt5-qtbase/libressl-compat.patch
new file mode 100644
index 00000000000..c9f2e33f50c
--- /dev/null
+++ b/community/qt5-qtbase/libressl-compat.patch
@@ -0,0 +1,118 @@
+--- qtbase/src/network/ssl/qsslellipticcurve_openssl.cpp 2017-01-18 15:20:58.000000000 +0100
++++ qtbase/src/network/ssl/qsslellipticcurve_openssl.cpp 2017-02-21 16:25:56.477986158 +0100
+@@ -82,7 +82,7 @@
+
+ int nid = q_OBJ_sn2nid(curveNameLatin1.data());
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ if (nid == 0 && q_SSLeay() >= 0x10002000L)
+ nid = q_EC_curve_nist2nid(curveNameLatin1.data());
+ #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
+--- qtbase/src/network/ssl/qsslsocket_openssl.cpp 2017-01-18 15:20:58.000000000 +0100
++++ qtbase/src/network/ssl/qsslsocket_openssl.cpp 2017-02-21 19:12:22.200604090 +0100
+@@ -1626,7 +1626,7 @@
+ }
+ #endif // OPENSSL_VERSION_NUMBER >= 0x1000100fL ...
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ if (q_SSLeay() >= 0x10002000L && mode == QSslSocket::SslClientMode) {
+ EVP_PKEY *key;
+ if (q_SSL_get_server_tmp_key(ssl, &key))
+--- qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-01-18 15:20:58.000000000 +0100
++++ qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-02-21 19:14:32.805677245 +0100
+@@ -151,7 +151,7 @@
+ DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
+ DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return)
+ DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return)
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return)
+ #endif
+ DEFINEFUNC2(BN_ULONG, BN_mod_word, const BIGNUM *a, a, BN_ULONG w, w, return -1, return)
+@@ -451,7 +451,7 @@
+ DEFINEFUNC(EC_KEY *, EC_KEY_new_by_curve_name, int nid, nid, return 0, return)
+ DEFINEFUNC(void, EC_KEY_free, EC_KEY *ecdh, ecdh, return, DUMMYARG)
+ DEFINEFUNC2(size_t, EC_get_builtin_curves, EC_builtin_curve * r, r, size_t nitems, nitems, return 0, return)
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ DEFINEFUNC(int, EC_curve_nist2nid, const char *name, name, return 0, return)
+ #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
+ #endif // OPENSSL_NO_EC
+@@ -791,7 +791,7 @@
+ RESOLVEFUNC(EC_GROUP_get_degree)
+ #endif
+ RESOLVEFUNC(BN_num_bits)
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ RESOLVEFUNC(BN_is_word)
+ #endif
+ RESOLVEFUNC(BN_mod_word)
+@@ -1020,7 +1020,7 @@
+ RESOLVEFUNC(EC_KEY_new_by_curve_name)
+ RESOLVEFUNC(EC_KEY_free)
+ RESOLVEFUNC(EC_get_builtin_curves)
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ if (q_SSLeay() >= 0x10002000L)
+ RESOLVEFUNC(EC_curve_nist2nid)
+ #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
+--- qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h 2017-01-18 15:20:58.000000000 +0100
++++ qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h 2017-02-21 19:15:38.083714302 +0100
+@@ -228,7 +228,7 @@
+ Q_AUTOTEST_EXPORT BIO_METHOD *q_BIO_s_mem();
+ Q_AUTOTEST_EXPORT int q_BIO_write(BIO *a, const void *b, int c);
+ int q_BN_num_bits(const BIGNUM *a);
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ int q_BN_is_word(BIGNUM *a, BN_ULONG w);
+ #else
+ // BN_is_word is implemented purely as a
+@@ -241,7 +241,7 @@
+ //
+ // Users are required to include <openssl/bn.h>.
+ #define q_BN_is_word BN_is_word
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10100000L
++#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w);
+ #ifndef OPENSSL_NO_EC
+ const EC_GROUP* q_EC_KEY_get0_group(const EC_KEY* k);
+@@ -509,13 +509,13 @@
+
+ // EC curves management
+ size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ int q_EC_curve_nist2nid(const char *name);
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
++#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ #endif // OPENSSL_NO_EC
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ #define q_SSL_get_server_tmp_key(ssl, key) q_SSL_ctrl((ssl), SSL_CTRL_GET_SERVER_TMP_KEY, 0, (char *)key)
+-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
++#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+
+ // PKCS#12 support
+ int q_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
+--- qtbase/src/network/ssl/qsslcontext_openssl.cpp 2017-01-18 15:20:58.000000000 +0100
++++ qtbase/src/network/ssl/qsslcontext_openssl.cpp 2017-02-21 19:23:04.291975945 +0100
+@@ -344,7 +344,7 @@
+
+ const QVector<QSslEllipticCurve> qcurves = sslContext->sslConfiguration.ellipticCurves();
+ if (!qcurves.isEmpty()) {
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+ // Set the curves to be used
+ if (q_SSLeay() >= 0x10002000L) {
+ // SSL_CTX_ctrl wants a non-const pointer as last argument,
+@@ -462,7 +462,7 @@
+ m_npnContext.data = reinterpret_cast<unsigned char *>(m_supportedNPNVersions.data());
+ m_npnContext.len = m_supportedNPNVersions.count();
+ m_npnContext.status = QSslConfiguration::NextProtocolNegotiationNone;
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
++#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+ if (q_SSLeay() >= 0x10002000L) {
+ // Callback's type has a parameter 'const unsigned char ** out'
+ // since it was introduced in 1.0.2. Internally, OpenSSL's own code
diff --git a/community/qt5-qtbase/qt-musl-iconv-no-bom.patch b/community/qt5-qtbase/qt-musl-iconv-no-bom.patch
new file mode 100644
index 00000000000..8bf35ec1ec8
--- /dev/null
+++ b/community/qt5-qtbase/qt-musl-iconv-no-bom.patch
@@ -0,0 +1,11 @@
+--- qtbase/src/corelib/codecs/qiconvcodec.cpp 2017-01-18 15:20:58.000000000 +0100
++++ qtbase/src/corelib/codecs/qiconvcodec.cpp 2017-02-21 14:33:32.423808603 +0100
+@@ -64,7 +64,7 @@
+ #elif defined(Q_OS_AIX)
+ # define NO_BOM
+ # define UTF16 "UCS-2"
+-#elif defined(Q_OS_FREEBSD)
++#elif defined(Q_OS_FREEBSD) || (defined(Q_OS_LINUX) && !defined(__GLIBC__))
+ # define NO_BOM
+ # if Q_BYTE_ORDER == Q_BIG_ENDIAN
+ # define UTF16 "UTF-16BE"