summaryrefslogtreecommitdiffstats
path: root/source/l/qt
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-05-28 19:12:29 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 23:39:35 +0200
commit646a5c1cbfd95873950a87b5f75d52073a967023 (patch)
treeb8b8d2ab3b0d432ea69ad1a64d1c789649d65020 /source/l/qt
parentd31c50870d0bee042ce660e445c9294a59a3a65b (diff)
downloadcurrent-646a5c1cbfd95873950a87b5f75d52073a967023.tar.gz
current-646a5c1cbfd95873950a87b5f75d52073a967023.tar.xz
Mon May 28 19:12:29 UTC 201820180528191229
a/pkgtools-15.0-noarch-13.txz: Rebuilt. installpkg: default line length for --terselength is the number of columns. removepkg: added --terse mode. upgradepkg: default line length for --terselength is the number of columns. upgradepkg: accept -option in addition to --option. ap/vim-8.1.0026-x86_64-1.txz: Upgraded. d/bison-3.0.5-x86_64-1.txz: Upgraded. e/emacs-26.1-x86_64-1.txz: Upgraded. kde/kopete-4.14.3-x86_64-8.txz: Rebuilt. Recompiled against libidn-1.35. n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded. n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded. n/libnftnl-1.1.0-x86_64-1.txz: Upgraded. n/links-2.16-x86_64-2.txz: Rebuilt. Rebuilt to enable X driver for -g mode. n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded. n/nftables-0.8.5-x86_64-1.txz: Upgraded. n/p11-kit-0.23.11-x86_64-1.txz: Upgraded. n/ulogd-2.0.7-x86_64-1.txz: Upgraded. n/whois-5.3.1-x86_64-1.txz: Upgraded. xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded. xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/l/qt')
-rwxr-xr-xsource/l/qt/qt-nowebkit.SlackBuild57
-rw-r--r--source/l/qt/qt.QTBUG-22829.diff17
-rw-r--r--source/l/qt/qt.QTBUG-35459.diff12
-rw-r--r--source/l/qt/qt.QT_VERSION_CHECK.diff12
-rwxr-xr-xsource/l/qt/qt.SlackBuild28
-rw-r--r--source/l/qt/qt.alsa-1.1.diff12
-rw-r--r--source/l/qt/qt.gcc6.diff35
-rw-r--r--source/l/qt/qt.icu4c.nodebug.diff23
-rw-r--r--source/l/qt/qt.icu59.c++11.diff28
-rw-r--r--source/l/qt/qt.icu59.patch11
-rw-r--r--source/l/qt/qt.qtreeview.crash.diff12
-rw-r--r--source/l/qt/qt4.openssl-1.1.diff646
-rwxr-xr-xsource/l/qt/qtwebkit/qtwebkit.SlackBuild15
-rw-r--r--source/l/qt/qtwebkit/slack-desc8
-rwxr-xr-xsource/l/qt/slack-desc6
15 files changed, 899 insertions, 23 deletions
diff --git a/source/l/qt/qt-nowebkit.SlackBuild b/source/l/qt/qt-nowebkit.SlackBuild
index cb25ba647..8637d20e6 100755
--- a/source/l/qt/qt-nowebkit.SlackBuild
+++ b/source/l/qt/qt-nowebkit.SlackBuild
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2018 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -39,9 +39,11 @@
# Modifications 2010, 2011, 2012 Eric Hameleers, Eindhoven, NL
# qt 4.7.3, 4.7.4, 4.8.0, 4.8.1, 4.8.2, 4.8.4, 4.8.5, 4.8.6 are built from original nokia sources.
+cd $(dirname $0) ; CWD=$(pwd)
+
PKGNAM=qt
VERSION=$(ls qt-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-10}
NUMJOBS=${NUMJOBS:--j7}
@@ -57,6 +59,14 @@ if [ -z "$ARCH" ]; then
esac
fi
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@@ -85,7 +95,6 @@ case "$ARCH" in
*) TARGET=$ARCH-slackware-linux ;;
esac
-CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
@@ -125,19 +134,51 @@ zcat $CWD/qt.glib-honor-ExcludeSocketNotifiers-flag.diff.gz | patch -p1 --verbos
zcat $CWD/qt.qclipboard_fix_recursive.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/qt.qclipboard_delay.patch.gz | patch -p1 --verbose || exit 1
+# Fix for moc with glibc-2.25+:
+zcat $CWD/qt.QTBUG-22829.diff.gz | patch -p1 --verbose || exit 1
+
+# Another macro definition workaround with newer libraries:
+zcat $CWD/qt.QT_VERSION_CHECK.diff.gz | patch -p1 --verbose || exit 1
+
+# Fix build with gcc 6 or gcc 7:
+zcat $CWD/qt.gcc6.diff.gz | patch -p1 --verbose || exit 1
+
+# Fix test with ALSA 1.1.x:
+zcat $CWD/qt.alsa-1.1.diff.gz | patch -p1 --verbose || exit 1
+
+# Fix QTreeView crash:
+zcat $CWD/qt.qtreeview.crash.diff.gz | patch -p1 --verbose || exit 1
+
+# Increase entity limit:
+zcat $CWD/qt.QTBUG-35459.diff.gz | patch -p1 --verbose || exit 1
+
+# Don't emit a misleading icu4c debug error:
+zcat $CWD/qt.icu4c.nodebug.diff.gz | patch -p1 --verbose || exit 1
+
+## Fix building with icu4c >= 59
+#zcat $CWD/qt.icu59.patch.gz | patch -p1 --verbose || exit 1
+
+# The header files for icu59+ require C++11, so compile only the source file
+# that uses them with that C++ standard:
+zcat $CWD/qt.icu59.c++11.diff.gz | patch -p1 --verbose || exit 1
+
+# Support OpenSSL 1.1.x:
+zcat $CWD/qt4.openssl-1.1.diff.gz | patch -p1 --verbose || exit 1
+
# All other distros I checked build with -no-webkit. But this has the downside of
# breaking the build when QtWebKit is present on the build system and some things
# (assistant for one) are built without support for QtWebKit. So let's go with
# -webkit and remove the built files later from the package. -HW
export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS"
-export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
+export OPENSOURCE_CXXFLAGS="$SLKCFLAGS -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
./configure \
-confirm-license \
-opensource \
-prefix /usr/lib${LIBDIRSUFFIX}/qt \
-fast \
+ -release \
-system-libpng \
-system-libjpeg \
-system-zlib \
@@ -192,8 +233,8 @@ EOF
sed -i "s,-ljscore,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
sed -i "s,-L../JavaScriptCore/release,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
-# Make sure that .la and .pc files use the correct $LIBDIRSUFFIX:
-sed -i "s,-L/usr/X11R6/lib,-L/usr/X11R6/lib${LIBDIRSUFFIX},g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
+# Make sure that .la, .pc, and .prl files use the correct $LIBDIRSUFFIX:
+sed -i "s,-L/usr/X11R6/lib ,-L/usr/X11R6/lib${LIBDIRSUFFIX} ,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.prl
# Link the shared libraries into /usr/lib:
( cd $PKG/usr/lib${LIBDIRSUFFIX}
diff --git a/source/l/qt/qt.QTBUG-22829.diff b/source/l/qt/qt.QTBUG-22829.diff
new file mode 100644
index 000000000..b6f5525dc
--- /dev/null
+++ b/source/l/qt/qt.QTBUG-22829.diff
@@ -0,0 +1,17 @@
+diff -up qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp.QTBUG-22829 qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp
+--- qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp.QTBUG-22829 2015-05-07 09:14:44.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp 2016-12-08 12:32:46.638962448 -0600
+@@ -188,8 +188,12 @@ int runMoc(int _argc, char **_argv)
+ pp.macros["Q_MOC_RUN"];
+ pp.macros["__cplusplus"];
+
+- // Workaround a bug while parsing the boost/type_traits/has_operator.hpp header. See QTBUG-22829
++ // Workaround a bugs while parsing some boost headers. See QTBUG-22829
+ pp.macros["BOOST_TT_HAS_OPERATOR_HPP_INCLUDED"];
++ pp.macros["BOOST_LEXICAL_CAST_INCLUDED"];
++ pp.macros["BOOST_NEXT_PRIOR_HPP_INCLUDED"];
++ pp.macros["BOOST_TYPE_TRAITS_HPP"];
++ pp.macros["_SYS_SYSMACROS_H_OUTER"];
+
+ QByteArray filename;
+ QByteArray output;
diff --git a/source/l/qt/qt.QTBUG-35459.diff b/source/l/qt/qt.QTBUG-35459.diff
new file mode 100644
index 000000000..dede8324d
--- /dev/null
+++ b/source/l/qt/qt.QTBUG-35459.diff
@@ -0,0 +1,12 @@
+diff -ur qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp qt-everywhere-opensource-src-4.8.5-QTBUG-35459/src/xml/sax/qxml.cpp
+--- qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp 2013-12-05 19:23:33.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.5-QTBUG-35459/src/xml/sax/qxml.cpp 2014-01-13 20:13:59.000000000 +0100
+@@ -428,7 +428,7 @@
+ // for the DTD currently being parsed.
+ static const int dtdRecursionLimit = 2;
+ // The maximum amount of characters an entity value may contain, after expansion.
+- static const int entityCharacterLimit = 1024;
++ static const int entityCharacterLimit = 65536;
+
+ const QString &string();
+ void stringClear();
diff --git a/source/l/qt/qt.QT_VERSION_CHECK.diff b/source/l/qt/qt.QT_VERSION_CHECK.diff
new file mode 100644
index 000000000..9bce98ff8
--- /dev/null
+++ b/source/l/qt/qt.QT_VERSION_CHECK.diff
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h.majmin qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h
+--- qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h.majmin 2015-05-07 09:14:48.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h 2016-12-08 12:10:29.677359701 -0600
+@@ -52,7 +52,7 @@
+ /*
+ can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0))
+ */
+-#define QT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
++#define QT_VERSION_CHECK(qt_version_check_major, qt_version_check_minor, qt_version_check_patch) ((qt_version_check_major<<16)|(qt_version_check_minor<<8)|(qt_version_check_patch))
+
+ #define QT_PACKAGEDATE_STR "2015-05-07"
+
diff --git a/source/l/qt/qt.SlackBuild b/source/l/qt/qt.SlackBuild
index 3c4ca01d1..01ddf720e 100755
--- a/source/l/qt/qt.SlackBuild
+++ b/source/l/qt/qt.SlackBuild
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
@@ -24,6 +24,9 @@
# a WebKit-less Qt, builds a WebKit package, merges the two packages, and
# finally upgrades the machine to a combined package.
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=qt
QTVERSION=$(ls qt-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
# Adjust the combined package $BUILD in qt-nowebkit.SlackBuild:
QTBUILD=$(grep BUILD= qt-nowebkit.SlackBuild | cut -f 2 -d - | cut -f 1 -d \})
@@ -43,6 +46,20 @@ if [ -z "$ARCH" ]; then
esac
fi
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-${QTVERSION}-${ARCH}-${QTBUILD}.txz"
+ exit 0
+fi
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
TMP=${TMP:-/tmp}
# Build Qt and package it without WebKit:
@@ -74,6 +91,15 @@ mkdir -p $TMP/package-qt
/sbin/explodepkg $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
cat $TMP/package-qtwebkit/install/doinst.sh | grep '^(' >> install/doinst.sh
mv usr/doc/qtwebkit-* usr/doc/qt-*
+ # Remove rpaths:
+ for file in $(find . | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : 2> /dev/null) ; do
+ if [ ! "$(patchelf --print-rpath $file 2> /dev/null)" = "" ]; then
+ patchelf --remove-rpath $file
+ fi
+ done
+ # Don't ship .la files:
+ rm -f usr/lib${LIBDIRSUFFIX}/*.la
+ rm -f usr/lib${LIBDIRSUFFIX}/qt/lib/*.la
/sbin/makepkg -l y -c n ../qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
)
diff --git a/source/l/qt/qt.alsa-1.1.diff b/source/l/qt/qt.alsa-1.1.diff
new file mode 100644
index 000000000..aaa15cb77
--- /dev/null
+++ b/source/l/qt/qt.alsa-1.1.diff
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp.than qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp
+--- qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp.than 2016-02-10 16:31:02.450152334 +0100
++++ qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp 2016-02-10 16:31:51.495307579 +0100
+@@ -40,7 +40,7 @@
+ ****************************************************************************/
+
+ #include <alsa/asoundlib.h>
+-#if(!(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 10))
++#if(!(SND_LIB_MAJOR == 1 && (SND_LIB_MINOR > 0 || SND_LIB_SUBMINOR >= 10)))
+ #error "Alsa version found too old, require >= 1.0.10"
+ #endif
+
diff --git a/source/l/qt/qt.gcc6.diff b/source/l/qt/qt.gcc6.diff
new file mode 100644
index 000000000..aaf1c497f
--- /dev/null
+++ b/source/l/qt/qt.gcc6.diff
@@ -0,0 +1,35 @@
+diff -up qt-everywhere-opensource-src-4.8.7/configure.gcc6 qt-everywhere-opensource-src-4.8.7/configure
+--- qt-everywhere-opensource-src-4.8.7/configure.gcc6 2016-04-15 07:04:19.430268222 -0500
++++ qt-everywhere-opensource-src-4.8.7/configure 2016-04-15 07:05:22.157568689 -0500
+@@ -7744,7 +7744,7 @@ case "$XPLATFORM" in
+ *-g++*)
+ # Check gcc's version
+ case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
+- 5*|4*|3.4*)
++ 8*|7*|6*|5*|4*|3.4*)
+ ;;
+ 3.3*)
+ canBuildWebKit="no"
+@@ -8060,7 +8060,7 @@ g++*)
+ 3.*)
+ COMPILER_VERSION="3.*"
+ ;;
+- 5*|4.*)
++ 8*|7*|6*|5*|4.*)
+ COMPILER_VERSION="4"
+ ;;
+ *)
+diff -up qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.gcc6 qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h
+--- qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.gcc6 2015-05-07 09:14:48.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h 2016-04-15 07:04:19.431268227 -0500
+@@ -70,8 +70,8 @@ namespace QPatternist
+ ForegroundShift = 10,
+ BackgroundShift = 20,
+ SpecialShift = 20,
+- ForegroundMask = ((1 << ForegroundShift) - 1) << ForegroundShift,
+- BackgroundMask = ((1 << BackgroundShift) - 1) << BackgroundShift
++ ForegroundMask = 0x1f << ForegroundShift,
++ BackgroundMask = 0x7 << BackgroundShift
+ };
+
+ public:
diff --git a/source/l/qt/qt.icu4c.nodebug.diff b/source/l/qt/qt.icu4c.nodebug.diff
new file mode 100644
index 000000000..9c53f3c26
--- /dev/null
+++ b/source/l/qt/qt.icu4c.nodebug.diff
@@ -0,0 +1,23 @@
+diff -up qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp.icu_no_debug qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp
+--- qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp.icu_no_debug 2012-09-06 02:33:45.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp 2012-09-11 09:04:21.542379795 -0500
+@@ -84,7 +84,9 @@ bool qt_initIcu(const QString &localeStr
+ QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT));
+ lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
+ if (!lib.load()) {
++#ifndef QT_NO_DEBUG
+ qWarning() << "Unable to load library icui18n" << lib.errorString();
++#endif
+ status = ErrorLoading;
+ return false;
+ }
+@@ -114,7 +116,9 @@ bool qt_initIcu(const QString &localeStr
+ QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT));
+ ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
+ if (!ucLib.load()) {
++#ifndef QT_NO_DEBUG
+ qWarning() << "Unable to load library icuuc" << ucLib.errorString();
++#endif
+ status = ErrorLoading;
+ return false;
+ }
diff --git a/source/l/qt/qt.icu59.c++11.diff b/source/l/qt/qt.icu59.c++11.diff
new file mode 100644
index 000000000..3edcdef02
--- /dev/null
+++ b/source/l/qt/qt.icu59.c++11.diff
@@ -0,0 +1,28 @@
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Subject: Fix build with ICU >= 59
+
+ICU >= 59 requires C++11 for its header files.
+Qt can't be compiled with -std=c++11 as a whole, so only enable
+it for qlocale_icu.cpp.
+
+Index: qt-everywhere-opensource-src-4.8.7/src/corelib/tools/tools.pri
+===================================================================
+--- qt-everywhere-opensource-src-4.8.7.orig/src/corelib/tools/tools.pri
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/tools/tools.pri
+@@ -102,7 +102,15 @@ contains(QT_CONFIG, zlib):include($$PWD/
+ else:include($$PWD/../../3rdparty/zlib_dependency.pri)
+
+ contains(QT_CONFIG,icu) {
+- SOURCES += tools/qlocale_icu.cpp
++ cpp11.name = cpp11
++ cpp11.input = SOURCES_CPP11
++ cpp11.dependency_type = TYPE_C
++ cpp11.variable_out = OBJECTS
++ cpp11.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_IN_BASE}$${first(QMAKE_EXT_OBJ)}
++ cpp11.commands = $${QMAKE_CXX} $(CXXFLAGS) -std=c++11 $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
++ QMAKE_EXTRA_COMPILERS += cpp11
++
++ SOURCES_CPP11 += tools/qlocale_icu.cpp
+ DEFINES += QT_USE_ICU
+ }
+
diff --git a/source/l/qt/qt.icu59.patch b/source/l/qt/qt.icu59.patch
new file mode 100644
index 000000000..ed6a8b52b
--- /dev/null
+++ b/source/l/qt/qt.icu59.patch
@@ -0,0 +1,11 @@
+--- qt-everywhere-opensource-src-4.8.7/src/corelib/tools/qlocale_icu.cpp~ 2017-04-25 07:42:22.000000000 +0000
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/tools/qlocale_icu.cpp 2017-04-25 07:44:34.675363008 +0000
+@@ -43,6 +43,8 @@
+ #include "qlibrary.h"
+ #include "qdebug.h"
+
++#define UCHAR_TYPE unsigned short
++
+ #include "unicode/uversion.h"
+ #include "unicode/ucol.h"
+
diff --git a/source/l/qt/qt.qtreeview.crash.diff b/source/l/qt/qt.qtreeview.crash.diff
new file mode 100644
index 000000000..947f7582d
--- /dev/null
+++ b/source/l/qt/qt.qtreeview.crash.diff
@@ -0,0 +1,12 @@
+diff -up qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp.qtreeview-kpackagekit-crash qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp
+--- qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp.qtreeview-kpackagekit-crash 2011-05-23 12:26:21.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp 2011-05-25 13:24:33.137315194 +0200
+@@ -3215,7 +3215,7 @@ int QTreeViewPrivate::itemHeight(int ite
+ return defaultItemHeight;
+ if (viewItems.isEmpty())
+ return 0;
+- const QModelIndex &index = viewItems.at(item).index;
++ QModelIndex index = viewItems.at(item).index;
+ if (!index.isValid())
+ return 0;
+ int height = viewItems.at(item).height;
diff --git a/source/l/qt/qt4.openssl-1.1.diff b/source/l/qt/qt4.openssl-1.1.diff
new file mode 100644
index 000000000..607613e58
--- /dev/null
+++ b/source/l/qt/qt4.openssl-1.1.diff
@@ -0,0 +1,646 @@
+--- ./src/network/ssl/qsslsocket_openssl_symbols_p.h.orig 2015-05-07 09:14:44.000000000 -0500
++++ ./src/network/ssl/qsslsocket_openssl_symbols_p.h 2018-05-06 14:40:01.247000361 -0500
+@@ -213,9 +213,15 @@
+ BIO_METHOD *q_BIO_s_mem();
+ int q_BIO_write(BIO *a, const void *b, int c);
+ int q_BN_num_bits(const BIGNUM *a);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ int q_CRYPTO_num_locks();
+ void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
+ void q_CRYPTO_set_id_callback(unsigned long (*a)());
++#else
++#define q_CRYPTO_num_locks() 1
++#define q_CRYPTO_set_locking_callback(a)
++#define q_CRYPTO_set_id_callback(a)
++#endif
+ void q_CRYPTO_free(void *a);
+ void q_DSA_free(DSA *a);
+ #if OPENSSL_VERSION_NUMBER >= 0x00908000L
+@@ -258,6 +264,7 @@
+ void q_RAND_seed(const void *a, int b);
+ int q_RAND_status();
+ void q_RSA_free(RSA *a);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ int q_sk_num(STACK *a);
+ void q_sk_pop_free(STACK *a, void (*b)(void *));
+ #if OPENSSL_VERSION_NUMBER >= 0x10000000L
+@@ -267,6 +274,16 @@
+ void q_sk_free(STACK *a);
+ char * q_sk_value(STACK *a, int b);
+ #endif
++#else
++int q_OPENSSL_sk_num(STACK *a);
++void q_OPENSSL_sk_pop_free(STACK *a, void (*b)(void *));
++void q_OPENSSL_sk_free(_STACK *a);
++void * q_OPENSSL_sk_value(STACK *a, int b);
++#define q_sk_num q_OPENSSL_sk_num
++#define q_sk_pop_free q_OPENSSL_sk_pop_free
++#define q_sk_free q_OPENSSL_sk_free
++#define q_sk_value q_OPENSSL_sk_value
++#endif
+ int q_SSL_accept(SSL *a);
+ int q_SSL_clear(SSL *a);
+ char *q_SSL_CIPHER_description(SSL_CIPHER *a, char *b, int c);
+@@ -314,8 +331,14 @@
+ #else
+ long q_SSL_get_verify_result(SSL *a);
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ int q_SSL_library_init();
+ void q_SSL_load_error_strings();
++#else
++int q_OPENSSL_init_ssl(uint64_t opts, void *settings);
++#define q_SSL_library_init() q_OPENSSL_init_ssl(0, NULL)
++#define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
++#endif
+ SSL *q_SSL_new(SSL_CTX *a);
+ #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
+ long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
+@@ -328,11 +351,21 @@
+ #if OPENSSL_VERSION_NUMBER >= 0x10000000L
+ const SSL_METHOD *q_SSLv2_client_method();
+ const SSL_METHOD *q_SSLv3_client_method();
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ const SSL_METHOD *q_SSLv23_client_method();
++#else
++const SSL_METHOD *q_TLS_client_method();
++#define q_SSLv23_client_method q_TLS_client_method
++#endif
+ const SSL_METHOD *q_TLSv1_client_method();
+ const SSL_METHOD *q_SSLv2_server_method();
+ const SSL_METHOD *q_SSLv3_server_method();
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ const SSL_METHOD *q_SSLv23_server_method();
++#else
++const SSL_METHOD *q_TLS_server_method();
++#define q_SSLv23_server_method q_TLS_server_method
++#endif
+ const SSL_METHOD *q_TLSv1_server_method();
+ #else
+ SSL_METHOD *q_SSLv2_client_method();
+@@ -377,7 +410,12 @@
+ int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
+ int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
+ X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
++#else
++STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
++#define q_X509_STORE_CTX_get_chain q_X509_STORE_CTX_get0_chain
++#endif
+
+ #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
+ #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
+@@ -399,7 +437,25 @@
+ PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
+ bp,(char *)x,enc,kstr,klen,cb,u)
+ #endif
++
++X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx);
++ASN1_INTEGER * q_X509_get_serialNumber(X509 *x);
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
++#define q_X509_get_version(x) X509_get_version(x)
++#else
++int q_EVP_PKEY_id(const EVP_PKEY *pkey);
++int q_EVP_PKEY_base_id(const EVP_PKEY *pkey);
++int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
++long q_SSL_CTX_set_options(SSL_CTX *ctx, long options);
++long q_X509_get_version(X509 *x);
++X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x);
++int q_RSA_bits(const RSA *rsa);
++int q_DSA_security_bits(const DSA *dsa);
++void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g);
++#endif
++
+ #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
+ #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
+ #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
+@@ -410,8 +466,17 @@
+ #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
+ #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
+ q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ #define q_X509_get_notAfter(x) X509_get_notAfter(x)
+ #define q_X509_get_notBefore(x) X509_get_notBefore(x)
++#else
++ASN1_TIME *q_X509_getm_notAfter(X509 *x);
++ASN1_TIME *q_X509_getm_notBefore(X509 *x);
++#define q_X509_get_notAfter(x) q_X509_getm_notAfter(x)
++#define q_X509_get_notBefore(x) q_X509_getm_notBefore(x)
++#endif
++
+ #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
+ (char *)(rsa))
+ #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
+@@ -421,10 +486,21 @@
+ #else
+ #define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_noconf()
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ void q_OPENSSL_add_all_algorithms_noconf();
+ void q_OPENSSL_add_all_algorithms_conf();
++#else
++int q_OPENSSL_init_crypto(uint64_t opts, void *settings);
++#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, NULL)
++# define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
++#endif
+ int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ long q_SSLeay();
++#else
++unsigned long q_OpenSSL_version_num();
++#define q_SSLeay q_OpenSSL_version_num
++#endif
+
+ // Helper function
+ class QDateTime;
+--- ./src/network/ssl/qsslcertificate.cpp.orig 2015-05-07 09:14:44.000000000 -0500
++++ ./src/network/ssl/qsslcertificate.cpp 2018-05-06 14:40:01.246000361 -0500
+@@ -259,10 +259,10 @@
+ QByteArray QSslCertificate::version() const
+ {
+ QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
+- if (d->versionString.isEmpty() && d->x509)
++ if (d->versionString.isEmpty() && d->x509) {
+ d->versionString =
+- QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
+-
++ QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1);
++ }
+ return d->versionString;
+ }
+
+@@ -276,7 +276,7 @@
+ {
+ QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
+ if (d->serialNumberString.isEmpty() && d->x509) {
+- ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
++ ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509);
+ // if we cannot convert to a long, just output the hexadecimal number
+ if (serialNumber->length > 4) {
+ QByteArray hexString;
+@@ -489,24 +489,33 @@
+ QSslKey key;
+
+ key.d->type = QSsl::PublicKey;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ X509_PUBKEY *xkey = d->x509->cert_info->key;
++#else
++ X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509);
++#endif
+ EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey);
+ Q_ASSERT(pkey);
+
+- if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
++ int key_id;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ key_id = q_EVP_PKEY_type(pkey->type);
++#else
++ key_id = q_EVP_PKEY_base_id(pkey);
++#endif
++ if (key_id == EVP_PKEY_RSA) {
+ key.d->rsa = q_EVP_PKEY_get1_RSA(pkey);
+ key.d->algorithm = QSsl::Rsa;
+ key.d->isNull = false;
+- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
++ } else if (key_id == EVP_PKEY_DSA) {
+ key.d->dsa = q_EVP_PKEY_get1_DSA(pkey);
+ key.d->algorithm = QSsl::Dsa;
+ key.d->isNull = false;
+- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
++ } else if (key_id == EVP_PKEY_DH) {
+ // DH unsupported
+ } else {
+ // error?
+ }
+-
+ q_EVP_PKEY_free(pkey);
+ return key;
+ }
+--- ./src/network/ssl/qsslkey.cpp.orig 2015-05-07 09:14:44.000000000 -0500
++++ ./src/network/ssl/qsslkey.cpp 2018-05-06 14:40:01.246000361 -0500
+@@ -321,8 +321,19 @@
+ {
+ if (d->isNull)
+ return -1;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return (d->algorithm == QSsl::Rsa)
+ ? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p);
++#else
++ if (d->algorithm == QSsl::Rsa) {
++ return q_RSA_bits(d->rsa);
++ }else{
++ BIGNUM *p = NULL;
++ q_DSA_get0_pqg(d->dsa, &p, NULL, NULL);
++ return q_BN_num_bits(p);
++ }
++#endif
++
+ }
+
+ /*!
+--- ./src/network/ssl/qsslsocket_openssl_symbols.cpp.orig 2015-05-07 09:14:44.000000000 -0500
++++ ./src/network/ssl/qsslsocket_openssl_symbols.cpp 2018-05-06 14:48:20.109000379 -0500
+@@ -117,9 +117,11 @@
+ 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
+ DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
+ DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
+ DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
++#endif
+ DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
+ DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
+ #if OPENSSL_VERSION_NUMBER < 0x00908000L
+@@ -157,6 +159,7 @@
+ DEFINEFUNC2(void, RAND_seed, const void *a, a, int b, b, return, DUMMYARG)
+ DEFINEFUNC(int, RAND_status, void, DUMMYARG, return -1, return)
+ DEFINEFUNC(void, RSA_free, RSA *a, a, return, DUMMYARG)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
+ DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
+ #if OPENSSL_VERSION_NUMBER >= 0x10000000L
+@@ -166,6 +169,12 @@
+ DEFINEFUNC(void, sk_free, STACK *a, a, return, DUMMYARG)
+ DEFINEFUNC2(char *, sk_value, STACK *a, a, int b, b, return 0, return)
+ #endif
++#else
++DEFINEFUNC(int, OPENSSL_sk_num, STACK *a, a, return -1, return)
++DEFINEFUNC2(void, OPENSSL_sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
++DEFINEFUNC(void, OPENSSL_sk_free, _STACK *a, a, return, DUMMYARG)
++DEFINEFUNC2(void *, OPENSSL_sk_value, STACK *a, a, int b, b, return 0, return)
++#endif
+ DEFINEFUNC(int, SSL_accept, SSL *a, a, return -1, return)
+ DEFINEFUNC(int, SSL_clear, SSL *a, a, return -1, return)
+ DEFINEFUNC3(char *, SSL_CIPHER_description, SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
+@@ -213,8 +222,12 @@
+ #else
+ DEFINEFUNC(long, SSL_get_verify_result, SSL *a, a, return -1, return)
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(int, SSL_library_init, void, DUMMYARG, return -1, return)
+ DEFINEFUNC(void, SSL_load_error_strings, void, DUMMYARG, return, DUMMYARG)
++#else
++DEFINEFUNC2(int, OPENSSL_init_ssl, uint64_t opts, opts, void *settings, settings, return -1, return)
++#endif
+ DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return 0, return)
+ #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
+ DEFINEFUNC4(long, SSL_ctrl, SSL *a, a, int cmd, cmd, long larg, larg, void *parg, parg, return -1, return)
+@@ -229,13 +242,21 @@
+ DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
+ #endif
+ DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#else
++DEFINEFUNC(const SSL_METHOD *, TLS_client_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
+ DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
+ #ifndef OPENSSL_NO_SSL2
+ DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
+ #endif
+ DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#else
++DEFINEFUNC(const SSL_METHOD *, TLS_server_method, DUMMYARG, DUMMYARG, return 0, return)
++#endif
+ DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
+ #else
+ DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
+@@ -274,7 +295,11 @@
+ DEFINEFUNC(int, X509_STORE_CTX_get_error, X509_STORE_CTX *a, a, return -1, return)
+ DEFINEFUNC(int, X509_STORE_CTX_get_error_depth, X509_STORE_CTX *a, a, return -1, return)
+ DEFINEFUNC(X509 *, X509_STORE_CTX_get_current_cert, X509_STORE_CTX *a, a, return 0, return)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return)
++#else
++DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return)
++#endif
+ DEFINEFUNC(X509_STORE_CTX *, X509_STORE_CTX_new, DUMMYARG, DUMMYARG, return 0, return)
+ #ifdef SSLEAY_MACROS
+ DEFINEFUNC2(int, i2d_DSAPrivateKey, const DSA *a, a, unsigned char **b, b, return -1, return)
+@@ -282,10 +307,39 @@
+ DEFINEFUNC3(RSA *, d2i_RSAPrivateKey, RSA **a, a, unsigned char **b, b, long c, c, return 0, return)
+ DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a, unsigned char **b, b, long c, c, return 0, return)
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG)
+ DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
++#else
++DEFINEFUNC2(int, OPENSSL_init_crypto, uint64_t opts, opts, void *settings, settings, return -1, return)
++#endif
+ DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
++#else
++DEFINEFUNC(unsigned long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
++#endif
++DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return)
++
++DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return)
++DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return)
++DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return)
++DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return)
++DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return)
++DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return)
++DEFINEFUNC(int, RSA_bits, const RSA *rsa, rsa, return 0, return)
++DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return)
++DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return)
++#else
++DEFINEFUNC(ASN1_TIME *, X509_getm_notAfter, X509 *x, x, return 0, return)
++DEFINEFUNC(ASN1_TIME *, X509_getm_notBefore, X509 *x, x, return 0, return)
++#endif
++DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return)
++#endif
+
+ #ifdef Q_OS_SYMBIAN
+ #define RESOLVEFUNC(func, ordinal, lib) \
+@@ -580,7 +634,11 @@
+ static volatile bool symbolsResolved = false;
+ static volatile bool triedToResolveSymbols = false;
+ #ifndef QT_NO_THREAD
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_SSL_library_init));
++#else
++ QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_OPENSSL_init_ssl));
++#endif
+ #endif
+ if (symbolsResolved)
+ return true;
+@@ -614,9 +672,11 @@
+ RESOLVEFUNC(BIO_write, 269, libs.second )
+ RESOLVEFUNC(BN_num_bits, 387, libs.second )
+ RESOLVEFUNC(CRYPTO_free, 469, libs.second )
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(CRYPTO_num_locks, 500, libs.second )
+ RESOLVEFUNC(CRYPTO_set_id_callback, 513, libs.second )
+ RESOLVEFUNC(CRYPTO_set_locking_callback, 516, libs.second )
++#endif
+ RESOLVEFUNC(DSA_free, 594, libs.second )
+ RESOLVEFUNC(ERR_error_string, 744, libs.second )
+ RESOLVEFUNC(ERR_get_error, 749, libs.second )
+@@ -674,8 +734,10 @@
+ RESOLVEFUNC(SSL_get_peer_cert_chain, 117, libs.first )
+ RESOLVEFUNC(SSL_get_peer_certificate, 118, libs.first )
+ RESOLVEFUNC(SSL_get_verify_result, 132, libs.first )
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(SSL_library_init, 137, libs.first )
+ RESOLVEFUNC(SSL_load_error_strings, 139, libs.first )
++#endif
+ RESOLVEFUNC(SSL_new, 140, libs.first )
+ #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
+ RESOLVEFUNC(SSL_ctrl, 95, libs.first )
+@@ -747,9 +809,11 @@
+ RESOLVEFUNC(BIO_write)
+ RESOLVEFUNC(BN_num_bits)
+ RESOLVEFUNC(CRYPTO_free)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(CRYPTO_num_locks)
+ RESOLVEFUNC(CRYPTO_set_id_callback)
+ RESOLVEFUNC(CRYPTO_set_locking_callback)
++#endif
+ RESOLVEFUNC(DSA_free)
+ RESOLVEFUNC(ERR_error_string)
+ RESOLVEFUNC(ERR_get_error)
+@@ -779,10 +843,17 @@
+ RESOLVEFUNC(RAND_seed)
+ RESOLVEFUNC(RAND_status)
+ RESOLVEFUNC(RSA_free)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(sk_free)
+ RESOLVEFUNC(sk_num)
+ RESOLVEFUNC(sk_pop_free)
+ RESOLVEFUNC(sk_value)
++#else
++ RESOLVEFUNC(OPENSSL_sk_free)
++ RESOLVEFUNC(OPENSSL_sk_num)
++ RESOLVEFUNC(OPENSSL_sk_pop_free)
++ RESOLVEFUNC(OPENSSL_sk_value)
++#endif
+ RESOLVEFUNC(SSL_CIPHER_description)
+ RESOLVEFUNC(SSL_CTX_check_private_key)
+ RESOLVEFUNC(SSL_CTX_ctrl)
+@@ -797,6 +868,7 @@
+ RESOLVEFUNC(SSL_CTX_use_PrivateKey)
+ RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
+ RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
++ RESOLVEFUNC(SSL_CTX_get_cert_store)
+ RESOLVEFUNC(SSL_accept)
+ RESOLVEFUNC(SSL_clear)
+ RESOLVEFUNC(SSL_connect)
+@@ -807,8 +879,12 @@
+ RESOLVEFUNC(SSL_get_peer_cert_chain)
+ RESOLVEFUNC(SSL_get_peer_certificate)
+ RESOLVEFUNC(SSL_get_verify_result)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(SSL_library_init)
+ RESOLVEFUNC(SSL_load_error_strings)
++#else
++ RESOLVEFUNC(OPENSSL_init_ssl)
++#endif
+ RESOLVEFUNC(SSL_new)
+ #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
+ RESOLVEFUNC(SSL_ctrl)
+@@ -819,17 +895,47 @@
+ RESOLVEFUNC(SSL_set_connect_state)
+ RESOLVEFUNC(SSL_shutdown)
+ RESOLVEFUNC(SSL_write)
++
++ RESOLVEFUNC(X509_get_serialNumber)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ RESOLVEFUNC(SSL_CTX_ctrl)
++ RESOLVEFUNC(EVP_PKEY_id)
++ RESOLVEFUNC(EVP_PKEY_base_id)
++ RESOLVEFUNC(SSL_CIPHER_get_bits)
++ RESOLVEFUNC(SSL_CTX_set_options)
++ RESOLVEFUNC(X509_get_version)
++ RESOLVEFUNC(X509_get_X509_PUBKEY)
++ RESOLVEFUNC(RSA_bits)
++ RESOLVEFUNC(DSA_security_bits)
++ RESOLVEFUNC(DSA_get0_pqg)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ RESOLVEFUNC(X509_get_notAfter)
++ RESOLVEFUNC(X509_get_notBefore)
++#else
++ RESOLVEFUNC(X509_getm_notAfter)
++ RESOLVEFUNC(X509_getm_notBefore)
++#endif
++#endif
++
+ #ifndef OPENSSL_NO_SSL2
+ RESOLVEFUNC(SSLv2_client_method)
+ #endif
+ RESOLVEFUNC(SSLv3_client_method)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(SSLv23_client_method)
++#else
++ RESOLVEFUNC(TLS_client_method)
++#endif
+ RESOLVEFUNC(TLSv1_client_method)
+ #ifndef OPENSSL_NO_SSL2
+ RESOLVEFUNC(SSLv2_server_method)
+ #endif
+ RESOLVEFUNC(SSLv3_server_method)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(SSLv23_server_method)
++#else
++ RESOLVEFUNC(TLS_server_method)
++#endif
+ RESOLVEFUNC(TLSv1_server_method)
+ RESOLVEFUNC(X509_NAME_entry_count)
+ RESOLVEFUNC(X509_NAME_get_entry)
+@@ -846,7 +952,11 @@
+ RESOLVEFUNC(X509_STORE_CTX_get_error)
+ RESOLVEFUNC(X509_STORE_CTX_get_error_depth)
+ RESOLVEFUNC(X509_STORE_CTX_get_current_cert)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(X509_STORE_CTX_get_chain)
++#else
++ RESOLVEFUNC(X509_STORE_CTX_get0_chain)
++#endif
+ RESOLVEFUNC(X509_cmp)
+ #ifndef SSLEAY_MACROS
+ RESOLVEFUNC(X509_dup)
+@@ -867,10 +977,18 @@
+ RESOLVEFUNC(d2i_DSAPrivateKey)
+ RESOLVEFUNC(d2i_RSAPrivateKey)
+ #endif
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
+ RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
++#else
++ RESOLVEFUNC(OPENSSL_init_crypto)
++#endif
+ RESOLVEFUNC(SSL_CTX_load_verify_locations)
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(SSLeay)
++#else
++ RESOLVEFUNC(OpenSSL_version_num)
++#endif
+ #endif // Q_OS_SYMBIAN
+ symbolsResolved = true;
+ delete libs.first;
+--- ./src/network/ssl/qsslsocket_openssl_p.h.orig 2015-05-07 09:14:44.000000000 -0500
++++ ./src/network/ssl/qsslsocket_openssl_p.h 2018-05-06 14:40:01.249000361 -0500
+@@ -84,6 +84,10 @@
+ #include <openssl/tls1.h>
+ #endif
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#define OPENSSL_NO_SSL2
++#endif
++
+ #if OPENSSL_VERSION_NUMBER >= 0x10000000L
+ typedef _STACK STACK;
+ #endif
+--- ./src/network/ssl/qsslsocket_openssl.cpp.orig 2015-05-07 09:14:44.000000000 -0500
++++ ./src/network/ssl/qsslsocket_openssl.cpp 2018-05-06 14:40:01.247000361 -0500
+@@ -93,6 +93,7 @@
+ bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
+ bool QSslSocketPrivate::s_loadRootCertsOnDemand = false;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ /* \internal
+
+ From OpenSSL's thread(3) manual page:
+@@ -174,6 +175,8 @@
+ }
+ } // extern "C"
+
++#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L
++
+ QSslSocketBackendPrivate::QSslSocketBackendPrivate()
+ : ssl(0),
+ ctx(0),
+@@ -222,9 +225,12 @@
+ ciph.d->encryptionMethod = descriptionList.at(4).mid(4);
+ ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export"));
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ ciph.d->bits = cipher->strength_bits;
+ ciph.d->supportedBits = cipher->alg_bits;
+-
++#else
++ ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits);
++#endif
+ }
+ return ciph;
+ }
+@@ -363,7 +369,7 @@
+ //
+ // See also: QSslContext::fromConfiguration()
+ if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) {
+- q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle());
++ q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle());
+ }
+ }
+
+@@ -500,8 +506,10 @@
+ */
+ void QSslSocketPrivate::deinitialize()
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ q_CRYPTO_set_id_callback(0);
+ q_CRYPTO_set_locking_callback(0);
++#endif
+ }
+
+ /*!
+@@ -522,13 +530,17 @@
+ return false;
+
+ // Check if the library itself needs to be initialized.
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ QMutexLocker locker(openssl_locks()->initLock());
++#endif
+ if (!s_libraryLoaded) {
+ s_libraryLoaded = true;
+
+ // Initialize OpenSSL.
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ q_CRYPTO_set_id_callback(id_function);
+ q_CRYPTO_set_locking_callback(locking_function);
++#endif
+ if (q_SSL_library_init() != 1)
+ return false;
+ q_SSL_load_error_strings();
+@@ -567,7 +579,9 @@
+
+ void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
+ {
+- QMutexLocker locker(openssl_locks()->initLock());
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ QMutexLocker locker(openssl_locks()->initLock());
++#endif
+ if (s_loadedCiphersAndCerts)
+ return;
+ s_loadedCiphersAndCerts = true;
+@@ -659,13 +673,18 @@
+ STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl);
+ for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) {
+ if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) {
+- if (cipher->valid) {
++
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ if (cipher->valid) {
++#endif
+ QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher);
+ if (!ciph.isNull()) {
+ if (!ciph.name().toLower().startsWith(QLatin1String("adh")))
+ ciphers << ciph;
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ }
++#endif
+ }
+ }
+
diff --git a/source/l/qt/qtwebkit/qtwebkit.SlackBuild b/source/l/qt/qtwebkit/qtwebkit.SlackBuild
index 9524d836f..6ba9301f8 100755
--- a/source/l/qt/qtwebkit/qtwebkit.SlackBuild
+++ b/source/l/qt/qtwebkit/qtwebkit.SlackBuild
@@ -23,6 +23,8 @@
#
# Derived from the main qt SlackBuild
+cd $(dirname $0) ; CWD=$(pwd)
+
PKGNAM=qtwebkit
VERSION=$(ls qtwebkit-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
BUILD=${BUILD:-1}
@@ -42,30 +44,30 @@ if [ -z "$ARCH" ]; then
fi
if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686 -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
LIBDIRSUFFIX=""
WEBKITFLAGS="--no-force-sse2"
elif [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686 -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
LIBDIRSUFFIX=""
WEBKITFLAGS="--no-force-sse2"
elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+ SLKCFLAGS="-O2 -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
LIBDIRSUFFIX=""
WEBKITFLAGS="--no-force-sse2"
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -fPIC -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
LIBDIRSUFFIX="64"
WEBKITFLAGS=""
elif [ "$ARCH" = "armv7hl" ]; then
# To prevent "qatomic_armv6.h error: output number 2 not directly addressable"
# More permanent solution is to patch gcc:
# http://bazaar.launchpad.net/~linaro-toolchain-dev/gcc-linaro/4.6/revision/106731
- SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -fno-strict-volatile-bitfields"
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -fno-strict-volatile-bitfields -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
LIBDIRSUFFIX=""
WEBKITFLAGS="--no-force-sse2"
else
- SLKCFLAGS="-O2"
+ SLKCFLAGS="-O2 -std=gnu++98 -fpermissive -fno-delete-null-pointer-checks"
LIBDIRSUFFIX=""
WEBKITFLAGS="--no-force-sse2"
fi
@@ -75,7 +77,6 @@ case "$ARCH" in
*) TARGET=$ARCH-slackware-linux ;;
esac
-CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
diff --git a/source/l/qt/qtwebkit/slack-desc b/source/l/qt/qtwebkit/slack-desc
index 0bd175744..2971354cf 100644
--- a/source/l/qt/qtwebkit/slack-desc
+++ b/source/l/qt/qtwebkit/slack-desc
@@ -1,8 +1,8 @@
# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
+# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
@@ -10,7 +10,7 @@ qtwebkit: QtWebKit (Qt bindings for the WebKit browser engine)
qtwebkit:
qtwebkit: WebKit is an open source web browser engine. WebKit's HTML and
qtwebkit: JavaScript code began as a branch of the KHTML and KJS libraries from
-qtwebkit: KDE. As part of KDE framework KHTML was based on Qt but during their
+qtwebkit: KDE. As part of KDE framework KHTML was based on Qt but during their
qtwebkit: porting efforts Apple's engineers made WebKit toolkit independent.
qtwebkit: QtWebKit is a project aiming at porting this fabulous engine back
qtwebkit: to Qt.
diff --git a/source/l/qt/slack-desc b/source/l/qt/slack-desc
index 4ebd42dfa..7b0bb0dae 100755
--- a/source/l/qt/slack-desc
+++ b/source/l/qt/slack-desc
@@ -1,8 +1,8 @@
# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
+# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|