mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-01-27 23:44:04 +00:00
removed extra/qt4
This commit is contained in:
parent
46f6a4cbea
commit
b2f40b14fc
19 changed files with 0 additions and 3072 deletions
|
@ -1,227 +0,0 @@
|
|||
# Felix Yan <felixonmars@archlinux.org>
|
||||
# Contributor: Andrea Scarpino <andrea@archlinux.org>
|
||||
# Contributor: Pierre Schmitz <pierre@archlinux.de>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - Just say NO to x86 optimizations, and no neon
|
||||
# - disabled distcc - bad things happen
|
||||
# - added -fno-strict-volatile-bitfields to CXXFLAGS to fix ARM bug
|
||||
# - no libfbclient/ibase, issues building on ARM
|
||||
# - patch for AArch64, define platform as linux-g++, reduce concurrency
|
||||
|
||||
pkgname=qt4
|
||||
pkgver=4.8.7
|
||||
pkgrel=28
|
||||
arch=('x86_64')
|
||||
url='https://www.qt.io'
|
||||
license=('GPL3' 'LGPL' 'FDL' 'custom')
|
||||
pkgdesc='A cross-platform application and UI framework'
|
||||
depends=('sqlite' 'ca-certificates' 'fontconfig' 'libgl' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
|
||||
'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'libmng' 'dbus')
|
||||
makedepends=('postgresql-libs' 'mariadb-libs' 'unixodbc' 'cups' 'gtk2'
|
||||
'mesa')
|
||||
optdepends=('postgresql-libs: PostgreSQL driver'
|
||||
'mariadb-libs: MariaDB driver'
|
||||
'unixodbc: ODBC driver'
|
||||
'libxinerama: Xinerama support'
|
||||
'libxcursor: Xcursor support'
|
||||
'libxfixes: Xfixes support'
|
||||
'icu: Unicode support'
|
||||
'sni-qt: StatusNotifierItem (AppIndicators) support')
|
||||
options=('!distcc')
|
||||
replaces=('qt<=4.8.4')
|
||||
conflicts=('qt')
|
||||
_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
|
||||
source=("https://download.qt.io/archive/qt/4.8/${pkgver}/${_pkgfqn}.tar.gz"
|
||||
'qtconfig-qt4.desktop' 'assistant-qt4.desktop' 'designer-qt4.desktop'
|
||||
'linguist-qt4.desktop' 'qdbusviewer-qt4.desktop'
|
||||
'improve-cups-support.patch'
|
||||
'moc-boost-workaround.patch'
|
||||
'kubuntu_14_systemtrayicon.diff'
|
||||
'kde4-settings.patch'
|
||||
'glib-honor-ExcludeSocketNotifiers-flag.diff'
|
||||
'disable-sslv3.patch'
|
||||
'l-qclipboard_fix_recursive.patch'
|
||||
'l-qclipboard_delay.patch'
|
||||
'qt4-gcc6.patch' 'qt4-glibc-2.25.patch' 'qt4-icu59.patch' 'qt4-openssl-1.1.patch'
|
||||
'qt-aarch64.patch')
|
||||
sha256sums=('e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0'
|
||||
'157eb47865f0b43e4717819783823c569127a2e9fc48309982ca0f2b753517a1'
|
||||
'd63f22858174489068c30a12b9115d1b4e23ade00c31c117513212e9a225c1ce'
|
||||
'c154de65da1b81564fa68f29c773b5f1751e0ee821e858ee8f0684b8d027da58'
|
||||
'22bd69ee3ba986448a63e41f529a7d28d0f2e6d83d6114e763eba761db302e01'
|
||||
'915a1cb0f7328840cac742c03f5121dc6e19498952c082b46c0bf7263bf6676d'
|
||||
'3ccfefb432015e4a4ea967b030c51b10dcdfb1f63445557908ddae5e75012d33'
|
||||
'876c681ef8fbcc25f28cd4ad6c697abf8a4165d540bae37433bc40256dbf9d62'
|
||||
'9fad22674c5eec835613a7f16c11b865aa793b448e90974c0f804105284a548b'
|
||||
'ce97da195445f145d9f82df8f8e5d8716128e869ec6632db66c7125be663d813'
|
||||
'e7f8d1c906640b836454e8202a48602352609d8e44a33a3de05dc1d20f5b1a8a'
|
||||
'829b02ba10f208c2beba8e8a0110b6d10c63932612dabc08d536f099b9f66101'
|
||||
'5db36cbb0686b8a503941779c821febc4a0330dc260e51d603f7aa1e4d8860ad'
|
||||
'af3648ddb2372333b0e428788fd2ffbcfe571653fb46f898a55ae5a202f7e242'
|
||||
'51da49e41edac66559d3ec8dd0a152995a51a53e5d1f63f09fa089a8af7e3112'
|
||||
'e6555f4a681227447e94e9f14e11626d50b7e5108aad06088311e87063bc0347'
|
||||
'61d6bf45649c728dec5f8d22be5b496ed9d40f52c2c70102696d07133cd1750d'
|
||||
'ff3ddb5428cd2ff243558dc0c75b35f470077e9204bbc989ddcba04c866c1b68'
|
||||
'9269bd8552688b75be1468eaca6afdc0c054e644a73a9cffddb6855a96faf86f')
|
||||
|
||||
prepare() {
|
||||
cd ${_pkgfqn}
|
||||
|
||||
# AArch64 support
|
||||
patch -p1 -i "${srcdir}"/qt-aarch64.patch
|
||||
|
||||
# (FS#28381) (KDEBUG#180051)
|
||||
patch -p1 -i "${srcdir}"/improve-cups-support.patch
|
||||
|
||||
# QTBUG#22829
|
||||
patch -p1 -i "${srcdir}"/moc-boost-workaround.patch
|
||||
|
||||
# http://blog.martin-graesslin.com/blog/2014/06/where-are-my-systray-icons/
|
||||
patch -p1 -i "${srcdir}"/kubuntu_14_systemtrayicon.diff
|
||||
|
||||
export CXXFLAGS="$CXXFLAGS -fno-strict-volatile-bitfields"
|
||||
|
||||
# FS#45106
|
||||
patch -p0 -i "${srcdir}"/kde4-settings.patch
|
||||
|
||||
# fixes for LibreOffice from the upstream Qt bug tracker FS#46436, FS#41648, FS#39819
|
||||
# https://bugreports.qt.io/browse/QTBUG-37380
|
||||
patch -p1 -i "${srcdir}"/glib-honor-ExcludeSocketNotifiers-flag.diff
|
||||
# https://bugreports.qt.io/browse/QTBUG-34614
|
||||
patch -p0 -i "${srcdir}"/l-qclipboard_fix_recursive.patch
|
||||
# https://bugreports.qt.io/browse/QTBUG-38585
|
||||
patch -p0 -i "${srcdir}"/l-qclipboard_delay.patch
|
||||
|
||||
# React to OpenSSL's OPENSSL_NO_SSL3 define
|
||||
patch -p1 -i "${srcdir}"/disable-sslv3.patch
|
||||
|
||||
sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/{g++,gcc}-base.conf
|
||||
sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
|
||||
sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" mkspecs/common/gcc-base.conf
|
||||
|
||||
cp mkspecs/common/linux{,32}.conf
|
||||
sed -i "/^QMAKE_LIBDIR\s/s|=|= /usr/lib32|g" mkspecs/common/linux32.conf
|
||||
sed -i "s|common/linux.conf|common/linux32.conf|" mkspecs/linux-g++-32/qmake.conf
|
||||
|
||||
# Fix build with GCC6 (Fedora)
|
||||
patch -p1 -i "$srcdir"/qt4-gcc6.patch
|
||||
|
||||
# Fix build of Qt4 applications with glibc 2.25 (Fedora)
|
||||
patch -p1 -i "$srcdir"/qt4-glibc-2.25.patch
|
||||
|
||||
# Fix build with ICU 59 (pld-linux)
|
||||
patch -p1 -i "$srcdir"/qt4-icu59.patch
|
||||
|
||||
# Fix build with OpenSSL 1.1 (Debian + OpenMandriva)
|
||||
patch -p1 -i "$srcdir"/qt4-openssl-1.1.patch
|
||||
|
||||
echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
|
||||
echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/plugins/accessible/qaccessiblebase.pri
|
||||
}
|
||||
|
||||
build() {
|
||||
export QT4DIR="${srcdir}"/${_pkgfqn}
|
||||
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
|
||||
|
||||
cd ${_pkgfqn}
|
||||
|
||||
if [[ $CARCH == "aarch64" ]]; then
|
||||
MAKEFLAGS="-j3"
|
||||
CONFIG="-platform linux-g++"
|
||||
fi
|
||||
|
||||
./configure -confirm-license -opensource \
|
||||
-prefix /usr \
|
||||
-bindir /usr/lib/qt4/bin \
|
||||
-headerdir /usr/include/qt4 \
|
||||
-docdir /usr/share/doc/qt4 \
|
||||
-plugindir /usr/lib/qt4/plugins \
|
||||
-importdir /usr/lib/qt4/imports \
|
||||
-datadir /usr/share/qt4 \
|
||||
-translationdir /usr/share/qt4/translations \
|
||||
-sysconfdir /etc/xdg \
|
||||
-examplesdir /usr/share/doc/qt4/examples \
|
||||
-demosdir /usr/share/doc/qt4/demos \
|
||||
-plugin-sql-{psql,mysql,sqlite,odbc} \
|
||||
-system-sqlite \
|
||||
-no-phonon \
|
||||
-no-phonon-backend \
|
||||
-no-webkit \
|
||||
-graphicssystem raster \
|
||||
-openssl-linked \
|
||||
-nomake demos \
|
||||
-nomake examples \
|
||||
-nomake docs \
|
||||
-silent \
|
||||
-no-rpath \
|
||||
-optimized-qmake \
|
||||
-no-reduce-relocations \
|
||||
-dbus-linked \
|
||||
-no-openvg \
|
||||
-no-mmx \
|
||||
-no-3dnow \
|
||||
-no-sse \
|
||||
-no-sse2 \
|
||||
-no-sse3 \
|
||||
-no-ssse3 \
|
||||
-no-sse4.1 \
|
||||
-no-sse4.2 \
|
||||
-no-avx \
|
||||
-no-neon $CONFIG
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${_pkgfqn}
|
||||
make INSTALL_ROOT="${pkgdir}" install
|
||||
|
||||
# install missing icons and desktop files
|
||||
install -D -m644 src/gui/dialogs/images/qtlogo-64.png \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/64x64/apps/qt4logo.png
|
||||
install -D -m644 tools/assistant/tools/assistant/images/assistant.png \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/32x32/apps/assistant-qt4.png
|
||||
install -D -m644 tools/assistant/tools/assistant/images/assistant-128.png \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/128x128/apps/assistant-qt4.png
|
||||
install -D -m644 tools/designer/src/designer/images/designer.png \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/128x128/apps/designer-qt4.png
|
||||
for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
|
||||
size=$(echo $(basename ${icon}) | cut -d- -f2)
|
||||
install -D -m644 ${icon} \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt4.png
|
||||
done
|
||||
install -D -m644 tools/qdbus/qdbusviewer/images/qdbusviewer.png \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt4.png
|
||||
install -D -m644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
|
||||
"${pkgdir}"/usr/share/icons/hicolor/128x128/apps/qdusviewer-qt4.png
|
||||
|
||||
install -d "${pkgdir}"/usr/share/applications
|
||||
install -m644 "${srcdir}"/{assistant,designer,linguist,qtconfig,qdbusviewer}-qt4.desktop \
|
||||
"${pkgdir}"/usr/share/applications/
|
||||
|
||||
# Useful symlinks for cmake and configure scripts
|
||||
install -d "${pkgdir}"/usr/bin
|
||||
for b in "${pkgdir}"/usr/lib/qt4/bin/*; do
|
||||
ln -s /usr/lib/qt4/bin/$(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt4
|
||||
done
|
||||
|
||||
# install license addition
|
||||
install -D -m644 LGPL_EXCEPTION.txt \
|
||||
${pkgdir}/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt
|
||||
|
||||
# Fix wrong libs path in pkgconfig files
|
||||
find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \
|
||||
-exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
|
||||
|
||||
# Fix wrong bins path in pkgconfig files
|
||||
find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \
|
||||
-exec sed -i 's|/usr/bin/|/usr/lib/qt4/bin/|g' {} \;
|
||||
|
||||
# Fix wrong path in prl files
|
||||
find "${pkgdir}/usr/lib" -type f -name '*.prl' \
|
||||
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
|
||||
|
||||
# The TGA plugin is broken (FS#33568)
|
||||
rm "${pkgdir}"/usr/lib/qt4/plugins/imageformats/libqtga.so
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Qt4 Assistant
|
||||
Comment=Shows Qt4 documentation and examples
|
||||
Exec=assistant-qt4
|
||||
Icon=assistant-qt4
|
||||
Terminal=false
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Categories=Qt;Development;Documentation;
|
|
@ -1,11 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Qt4 Designer
|
||||
GenericName=Interface Designer
|
||||
Comment=Design GUIs for Qt4 applications
|
||||
Exec=designer-qt4
|
||||
Icon=designer-qt4
|
||||
MimeType=application/x-designer;
|
||||
Terminal=false
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Categories=Qt;Development;
|
|
@ -1,54 +0,0 @@
|
|||
diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2015-05-07 16:14:44.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp 2016-03-04 11:29:17.119300898 +0100
|
||||
@@ -267,7 +267,11 @@
|
||||
#endif
|
||||
break;
|
||||
case QSsl::SslV3:
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
|
||||
+#else
|
||||
+ ctx = 0; // SSL 3 not supported by the system, but chosen deliberately -> error
|
||||
+#endif
|
||||
break;
|
||||
case QSsl::SecureProtocols: // SslV2 will be disabled below
|
||||
case QSsl::TlsV1SslV3: // SslV2 will be disabled below
|
||||
diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2015-05-07 16:14:44.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp 2016-03-04 11:28:52.806050135 +0100
|
||||
@@ -228,13 +228,17 @@
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
+#endif
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
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
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
+#endif
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
#else
|
||||
@@ -822,13 +826,17 @@
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
RESOLVEFUNC(SSLv2_client_method)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
RESOLVEFUNC(SSLv3_client_method)
|
||||
+#endif
|
||||
RESOLVEFUNC(SSLv23_client_method)
|
||||
RESOLVEFUNC(TLSv1_client_method)
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
RESOLVEFUNC(SSLv2_server_method)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
RESOLVEFUNC(SSLv3_server_method)
|
||||
+#endif
|
||||
RESOLVEFUNC(SSLv23_server_method)
|
||||
RESOLVEFUNC(TLSv1_server_method)
|
||||
RESOLVEFUNC(X509_NAME_entry_count)
|
|
@ -1,63 +0,0 @@
|
|||
Author: Jan-Marek Glogowski <glogow@fbihome.de>
|
||||
Date: Thu Mar 06 18:44:43 2014 +0100
|
||||
|
||||
Honor QEventLoop::ExcludeSocketNotifiers in glib event loop.
|
||||
|
||||
Implements QEventLoop::ExcludeSocketNotifiers in the same way
|
||||
QEventLoop::X11ExcludeTimers is already implemented for the glib
|
||||
event loop.
|
||||
|
||||
--- qt4-x11-4.8.1.orig/src/corelib/kernel/qeventdispatcher_glib.cpp
|
||||
+++ qt4-x11-4.8.1/src/corelib/kernel/qeventdispatcher_glib.cpp
|
||||
@@ -65,6 +65,7 @@ struct GPollFDWithQSocketNotifier
|
||||
struct GSocketNotifierSource
|
||||
{
|
||||
GSource source;
|
||||
+ QEventLoop::ProcessEventsFlags processEventsFlags;
|
||||
QList<GPollFDWithQSocketNotifier *> pollfds;
|
||||
};
|
||||
|
||||
@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceChec
|
||||
GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
|
||||
|
||||
bool pending = false;
|
||||
+ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
|
||||
+ return pending;
|
||||
+
|
||||
for (int i = 0; !pending && i < src->pollfds.count(); ++i) {
|
||||
GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
|
||||
|
||||
@@ -103,6 +107,9 @@ static gboolean socketNotifierSourceDisp
|
||||
QEvent event(QEvent::SockAct);
|
||||
|
||||
GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
|
||||
+ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
|
||||
+ return true;
|
||||
+
|
||||
for (int i = 0; i < src->pollfds.count(); ++i) {
|
||||
GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
|
||||
|
||||
@@ -330,6 +337,7 @@ QEventDispatcherGlibPrivate::QEventDispa
|
||||
reinterpret_cast<GSocketNotifierSource *>(g_source_new(&socketNotifierSourceFuncs,
|
||||
sizeof(GSocketNotifierSource)));
|
||||
(void) new (&socketNotifierSource->pollfds) QList<GPollFDWithQSocketNotifier *>();
|
||||
+ socketNotifierSource->processEventsFlags = QEventLoop::AllEvents;
|
||||
g_source_set_can_recurse(&socketNotifierSource->source, true);
|
||||
g_source_attach(&socketNotifierSource->source, mainContext);
|
||||
|
||||
@@ -415,6 +423,7 @@ bool QEventDispatcherGlib::processEvents
|
||||
// tell postEventSourcePrepare() and timerSource about any new flags
|
||||
QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
|
||||
d->timerSource->processEventsFlags = flags;
|
||||
+ d->socketNotifierSource->processEventsFlags = flags;
|
||||
|
||||
if (!(flags & QEventLoop::EventLoopExec)) {
|
||||
// force timers to be sent at normal priority
|
||||
@@ -426,6 +435,7 @@ bool QEventDispatcherGlib::processEvents
|
||||
result = g_main_context_iteration(d->mainContext, canWait);
|
||||
|
||||
d->timerSource->processEventsFlags = savedFlags;
|
||||
+ d->socketNotifierSource->processEventsFlags = savedFlags;
|
||||
|
||||
if (canWait)
|
||||
emit awake();
|
|
@ -1,84 +0,0 @@
|
|||
diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-11 16:55:22.000000000 +0100
|
||||
+++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-28 04:34:16.000000000 +0100
|
||||
@@ -569,6 +569,32 @@
|
||||
void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
|
||||
{
|
||||
options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
|
||||
+
|
||||
+ if (cups) {
|
||||
+ const ppd_option_t* duplex = cups->ppdOption("Duplex");
|
||||
+ if (duplex) {
|
||||
+ // copy default ppd duplex to qt dialog
|
||||
+ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
|
||||
+ options.duplexShort->setChecked(true);
|
||||
+ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
|
||||
+ options.duplexLong->setChecked(true);
|
||||
+ else
|
||||
+ options.noDuplex->setChecked(true);
|
||||
+ }
|
||||
+
|
||||
+ if (cups->currentPPD()) {
|
||||
+ // set default color
|
||||
+ if (cups->currentPPD()->color_device)
|
||||
+ options.color->setChecked(true);
|
||||
+ else
|
||||
+ options.grayscale->setChecked(true);
|
||||
+ }
|
||||
+
|
||||
+ // set collation
|
||||
+ const ppd_option_t *collate = cups->ppdOption("Collate");
|
||||
+ if (collate)
|
||||
+ options.collate->setChecked(qstrcmp(collate->defchoice, "True")==0);
|
||||
+ }
|
||||
}
|
||||
#endif
|
||||
|
||||
diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp 2010-02-11 16:55:22.000000000 +0100
|
||||
+++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp 2010-02-28 04:55:15.000000000 +0100
|
||||
@@ -627,6 +627,44 @@
|
||||
&& d_ptr->paintEngine->type() != QPaintEngine::MacPrinter) {
|
||||
setOutputFormat(QPrinter::PdfFormat);
|
||||
}
|
||||
+
|
||||
+#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
|
||||
+ // fill in defaults from ppd file
|
||||
+ QCUPSSupport cups;
|
||||
+
|
||||
+ int printernum = -1;
|
||||
+ for (int i = 0; i < cups.availablePrintersCount(); i++) {
|
||||
+ if (printerName().toLocal8Bit() == cups.availablePrinters()[i].name)
|
||||
+ printernum = i;
|
||||
+ }
|
||||
+ if (printernum >= 0) {
|
||||
+ cups.setCurrentPrinter(printernum);
|
||||
+
|
||||
+ const ppd_option_t* duplex = cups.ppdOption("Duplex");
|
||||
+ if (duplex) {
|
||||
+ // copy default ppd duplex to qt dialog
|
||||
+ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
|
||||
+ setDuplex(DuplexShortSide);
|
||||
+ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
|
||||
+ setDuplex(DuplexLongSide);
|
||||
+ else
|
||||
+ setDuplex(DuplexNone);
|
||||
+ }
|
||||
+
|
||||
+ if (cups.currentPPD()) {
|
||||
+ // set default color
|
||||
+ if (cups.currentPPD()->color_device)
|
||||
+ setColorMode(Color);
|
||||
+ else
|
||||
+ setColorMode(GrayScale);
|
||||
+ }
|
||||
+
|
||||
+ // set collation
|
||||
+ const ppd_option_t *collate = cups.ppdOption("Collate");
|
||||
+ if (collate)
|
||||
+ setCollateCopies(qstrcmp(collate->defchoice, "True")==0);
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*!
|
|
@ -1,11 +0,0 @@
|
|||
--- src/gui/kernel/qkde.cpp.orig 2015-05-27 11:42:02.507129332 +0200
|
||||
+++ src/gui/kernel/qkde.cpp 2015-05-27 11:43:26.182875729 +0200
|
||||
@@ -63,7 +63,7 @@
|
||||
kdeHomePath = QString::fromLocal8Bit(qgetenv("KDEHOME"));
|
||||
if (kdeHomePath.isEmpty()) {
|
||||
QDir homeDir(QDir::homePath());
|
||||
- QString kdeConfDir(QLatin1String("/.kde"));
|
||||
+ QString kdeConfDir(QLatin1String("/.kde4"));
|
||||
if (4 == X11->desktopVersion && homeDir.exists(QLatin1String(".kde4")))
|
||||
kdeConfDir = QLatin1String("/.kde4");
|
||||
kdeHomePath = QDir::homePath() + kdeConfDir;
|
File diff suppressed because it is too large
Load diff
|
@ -1,12 +0,0 @@
|
|||
--- src/gui/kernel/qclipboard_x11.cpp.sav 2014-04-25 09:52:03.855693228 +0200
|
||||
+++ src/gui/kernel/qclipboard_x11.cpp 2014-04-25 09:51:58.038693777 +0200
|
||||
@@ -548,7 +548,8 @@ bool QX11Data::clipboardWaitForEvent(Win
|
||||
return false;
|
||||
|
||||
XSync(X11->display, false);
|
||||
- usleep(50000);
|
||||
+ if (!XPending(X11->display))
|
||||
+ usleep(5000);
|
||||
|
||||
now.start();
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
--- src/corelib/kernel/qeventdispatcher_glib.cpp.sav 2014-03-28 15:26:37.000000000 +0100
|
||||
+++ src/corelib/kernel/qeventdispatcher_glib.cpp 2014-04-24 09:44:09.358659204 +0200
|
||||
@@ -255,22 +255,30 @@ struct GPostEventSource
|
||||
GSource source;
|
||||
QAtomicInt serialNumber;
|
||||
int lastSerialNumber;
|
||||
+ QEventLoop::ProcessEventsFlags processEventsFlags;
|
||||
QEventDispatcherGlibPrivate *d;
|
||||
};
|
||||
|
||||
static gboolean postEventSourcePrepare(GSource *s, gint *timeout)
|
||||
{
|
||||
+ GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
|
||||
QThreadData *data = QThreadData::current();
|
||||
if (!data)
|
||||
return false;
|
||||
|
||||
+ QEventLoop::ProcessEventsFlags excludeAllFlags
|
||||
+ = QEventLoop::ExcludeUserInputEvents
|
||||
+ | QEventLoop::ExcludeSocketNotifiers
|
||||
+ | QEventLoop::X11ExcludeTimers;
|
||||
+ if ((source->processEventsFlags & excludeAllFlags) == excludeAllFlags)
|
||||
+ return false;
|
||||
+
|
||||
gint dummy;
|
||||
if (!timeout)
|
||||
timeout = &dummy;
|
||||
const bool canWait = data->canWaitLocked();
|
||||
*timeout = canWait ? -1 : 0;
|
||||
|
||||
- GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
|
||||
return (!canWait
|
||||
|| (source->serialNumber != source->lastSerialNumber));
|
||||
}
|
||||
@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch(
|
||||
{
|
||||
GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
|
||||
source->lastSerialNumber = source->serialNumber;
|
||||
- QCoreApplication::sendPostedEvents();
|
||||
- source->d->runTimersOnceWithNormalPriority();
|
||||
+ QEventLoop::ProcessEventsFlags excludeAllFlags
|
||||
+ = QEventLoop::ExcludeUserInputEvents
|
||||
+ | QEventLoop::ExcludeSocketNotifiers
|
||||
+ | QEventLoop::X11ExcludeTimers;
|
||||
+ if ((source->processEventsFlags & excludeAllFlags) != excludeAllFlags) {
|
||||
+ QCoreApplication::sendPostedEvents();
|
||||
+ source->d->runTimersOnceWithNormalPriority();
|
||||
+ }
|
||||
return true; // i dunno, george...
|
||||
}
|
||||
|
||||
@@ -329,6 +343,7 @@ QEventDispatcherGlibPrivate::QEventDispa
|
||||
postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs,
|
||||
sizeof(GPostEventSource)));
|
||||
postEventSource->serialNumber = 1;
|
||||
+ postEventSource->processEventsFlags = QEventLoop::AllEvents;
|
||||
postEventSource->d = this;
|
||||
g_source_set_can_recurse(&postEventSource->source, true);
|
||||
g_source_attach(&postEventSource->source, mainContext);
|
||||
@@ -423,6 +438,7 @@ bool QEventDispatcherGlib::processEvents
|
||||
|
||||
// tell postEventSourcePrepare() and timerSource about any new flags
|
||||
QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
|
||||
+ d->postEventSource->processEventsFlags = flags;
|
||||
d->timerSource->processEventsFlags = flags;
|
||||
d->socketNotifierSource->processEventsFlags = flags;
|
||||
|
||||
@@ -435,6 +451,7 @@ bool QEventDispatcherGlib::processEvents
|
||||
while (!result && canWait)
|
||||
result = g_main_context_iteration(d->mainContext, canWait);
|
||||
|
||||
+ d->postEventSource->processEventsFlags = savedFlags;
|
||||
d->timerSource->processEventsFlags = savedFlags;
|
||||
d->socketNotifierSource->processEventsFlags = savedFlags;
|
||||
|
||||
--- src/corelib/kernel/qeventdispatcher_unix.cpp.sav 2013-06-07 07:16:52.000000000 +0200
|
||||
+++ src/corelib/kernel/qeventdispatcher_unix.cpp 2014-04-24 09:43:06.927589535 +0200
|
||||
@@ -905,7 +905,15 @@ bool QEventDispatcherUNIX::processEvents
|
||||
|
||||
// we are awake, broadcast it
|
||||
emit awake();
|
||||
- QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
|
||||
+
|
||||
+ QEventLoop::ProcessEventsFlags excludeAllFlags
|
||||
+ = QEventLoop::ExcludeUserInputEvents
|
||||
+ | QEventLoop::ExcludeSocketNotifiers
|
||||
+ | QEventLoop::X11ExcludeTimers;
|
||||
+ if ((flags & excludeAllFlags) == excludeAllFlags)
|
||||
+ return false;
|
||||
+ if(( flags & excludeAllFlags ) != excludeAllFlags )
|
||||
+ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
|
||||
|
||||
int nevents = 0;
|
||||
const bool canWait = (d->threadData->canWaitLocked()
|
|
@ -1,10 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Qt4 Linguist
|
||||
Comment=Add translations to Qt4 applications
|
||||
Exec=linguist-qt4
|
||||
Icon=linguist-qt4
|
||||
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
|
||||
Terminal=false
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Categories=Qt;Development;
|
|
@ -1,12 +0,0 @@
|
|||
diff -upr qt-everywhere-opensource-src-4.8.6.orig/src/tools/moc/main.cpp qt-everywhere-opensource-src-4.8.6/src/tools/moc/main.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6.orig/src/tools/moc/main.cpp 2014-04-10 21:37:12.000000000 +0300
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/tools/moc/main.cpp 2014-11-06 02:24:44.287305916 +0200
|
||||
@@ -190,6 +190,8 @@ int runMoc(int _argc, char **_argv)
|
||||
|
||||
// Workaround a bug while parsing the boost/type_traits/has_operator.hpp header. See QTBUG-22829
|
||||
pp.macros["BOOST_TT_HAS_OPERATOR_HPP_INCLUDED"];
|
||||
+ pp.macros["BOOST_LEXICAL_CAST_INCLUDED"];
|
||||
+ pp.macros["BOOST_NEXT_PRIOR_HPP_INCLUDED"];
|
||||
|
||||
QByteArray filename;
|
||||
QByteArray output;
|
|
@ -1,10 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Qt4 QDbusViewer
|
||||
GenericName=D-Bus Debugger
|
||||
Comment=Debug D-Bus applications
|
||||
Exec=qdbusviewer-qt4
|
||||
Icon=qdbusviewer-qt4
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Qt;Development;Debugger;
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -1,36 +0,0 @@
|
|||
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:
|
|
@ -1,30 +0,0 @@
|
|||
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 -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,10 +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;
|
|
@ -1,11 +0,0 @@
|
|||
--- 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"
|
||||
|
|
@ -1,409 +0,0 @@
|
|||
Description: Compile with openssl-1.1.0
|
||||
* Most changes are related to openssl structures are now opaque.
|
||||
* The network/ssl threading setup has been disabled because the
|
||||
old openssl threading model has been removed and is apparently
|
||||
no longer needed.
|
||||
* A number of new functions had to be imported (see changes to
|
||||
src/network/ssl/qsslsocket_openssl_symbols.cpp)
|
||||
Author: Gert Wollny <gw.fossdev@gmail.com>
|
||||
Last-Update: 2016-06-28
|
||||
Bug-Debian: http://bugs.debian.org/828522
|
||||
|
||||
--- a/src/network/ssl/qsslcertificate.cpp
|
||||
+++ b/src/network/ssl/qsslcertificate.cpp
|
||||
@@ -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;
|
||||
}
|
||||
--- a/src/network/ssl/qsslkey.cpp
|
||||
+++ b/src/network/ssl/qsslkey.cpp
|
||||
@@ -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
|
||||
+
|
||||
}
|
||||
|
||||
/*!
|
||||
--- a/src/network/ssl/qsslsocket_openssl.cpp
|
||||
+++ b/src/network/ssl/qsslsocket_openssl.cpp
|
||||
@@ -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;
|
||||
}
|
||||
@@ -367,7 +373,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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -504,8 +510,10 @@
|
||||
*/
|
||||
void QSslSocketPrivate::deinitialize()
|
||||
{
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
q_CRYPTO_set_id_callback(0);
|
||||
q_CRYPTO_set_locking_callback(0);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -526,13 +534,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();
|
||||
@@ -571,7 +583,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;
|
||||
@@ -663,13 +677,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
|
||||
}
|
||||
}
|
||||
|
||||
--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
+++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
@@ -399,7 +399,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 +428,15 @@
|
||||
#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_get_notAfter(X509 *x);
|
||||
+ASN1_TIME *q_X509_get_notBefore(X509 *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,\
|
||||
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
@@ -290,6 +290,22 @@
|
||||
DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
|
||||
DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
|
||||
DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
|
||||
+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)
|
||||
+DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return)
|
||||
+DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return)
|
||||
+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) \
|
||||
@@ -801,6 +817,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)
|
||||
@@ -823,6 +840,23 @@
|
||||
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)
|
||||
+ RESOLVEFUNC(X509_get_notAfter)
|
||||
+ RESOLVEFUNC(X509_get_notBefore)
|
||||
+#endif
|
||||
+
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
RESOLVEFUNC(SSLv2_client_method)
|
||||
#endif
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp.0131~ 2017-03-15 02:22:37.053244125 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2017-03-15 02:22:37.055244057 +0100
|
||||
@@ -328,7 +328,7 @@ int QSslKey::length() const
|
||||
if (d->algorithm == QSsl::Rsa) {
|
||||
return q_RSA_bits(d->rsa);
|
||||
}else{
|
||||
- BIGNUM *p = NULL;
|
||||
+ const BIGNUM *p = NULL;
|
||||
q_DSA_get0_pqg(d->dsa, &p, NULL, NULL);
|
||||
return q_BN_num_bits(p);
|
||||
}
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp.0131~ 2017-03-15 02:22:37.054244091 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-03-15 02:29:41.155236836 +0100
|
||||
@@ -111,16 +111,16 @@ DEFINEFUNC(int, ASN1_STRING_length, ASN1
|
||||
DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return);
|
||||
DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
|
||||
DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
|
||||
-DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
|
||||
+DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return)
|
||||
DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return)
|
||||
DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return)
|
||||
-DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
|
||||
+DEFINEFUNC(const 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)
|
||||
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)
|
||||
-DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
|
||||
+DEFINEFUNC(void, OPENSSL_free, void *a, a, return, DUMMYARG)
|
||||
DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
|
||||
#if OPENSSL_VERSION_NUMBER < 0x00908000L
|
||||
DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return)
|
||||
@@ -300,7 +300,7 @@ DEFINEFUNC(int, RSA_bits, const RSA *rs
|
||||
DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
|
||||
DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return)
|
||||
DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return)
|
||||
-DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return)
|
||||
+DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return)
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_SYMBIAN
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h.0131~ 2017-03-15 02:22:37.054244091 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2017-03-15 02:29:50.192986268 +0100
|
||||
@@ -59,6 +59,9 @@
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#define DUMMYARG
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
+#define OPENSSL_NO_SSL2 1
|
||||
+#endif
|
||||
|
||||
#if !defined QT_LINKED_OPENSSL
|
||||
// **************** Shared declarations ******************
|
||||
@@ -207,16 +210,16 @@ int q_ASN1_STRING_length(ASN1_STRING *a)
|
||||
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
|
||||
long q_BIO_ctrl(BIO *a, int b, long c, void *d);
|
||||
int q_BIO_free(BIO *a);
|
||||
-BIO *q_BIO_new(BIO_METHOD *a);
|
||||
+BIO *q_BIO_new(const BIO_METHOD *a);
|
||||
BIO *q_BIO_new_mem_buf(void *a, int b);
|
||||
int q_BIO_read(BIO *a, void *b, int c);
|
||||
-BIO_METHOD *q_BIO_s_mem();
|
||||
+const 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);
|
||||
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)());
|
||||
-void q_CRYPTO_free(void *a);
|
||||
+void q_OPENSSL_free(void *a);
|
||||
void q_DSA_free(DSA *a);
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x00908000L
|
||||
// 0.9.8 broke SC and BC by changing this function's signature.
|
||||
@@ -326,7 +329,6 @@ void q_SSL_set_accept_state(SSL *a);
|
||||
void q_SSL_set_connect_state(SSL *a);
|
||||
int q_SSL_shutdown(SSL *a);
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
||||
-const SSL_METHOD *q_SSLv2_client_method();
|
||||
const SSL_METHOD *q_SSLv3_client_method();
|
||||
const SSL_METHOD *q_SSLv23_client_method();
|
||||
const SSL_METHOD *q_TLSv1_client_method();
|
||||
@@ -335,7 +337,6 @@ const SSL_METHOD *q_SSLv3_server_method(
|
||||
const SSL_METHOD *q_SSLv23_server_method();
|
||||
const SSL_METHOD *q_TLSv1_server_method();
|
||||
#else
|
||||
-SSL_METHOD *q_SSLv2_client_method();
|
||||
SSL_METHOD *q_SSLv3_client_method();
|
||||
SSL_METHOD *q_SSLv23_client_method();
|
||||
SSL_METHOD *q_TLSv1_client_method();
|
||||
@@ -415,7 +416,7 @@ 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);
|
||||
+void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
|
||||
#endif
|
||||
|
||||
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp.omv~ 2017-03-15 02:27:18.143322736 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2017-03-15 02:29:56.215819741 +0100
|
||||
@@ -696,7 +696,7 @@
|
||||
unsigned char *data = 0;
|
||||
int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
|
||||
info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size);
|
||||
- q_CRYPTO_free(data);
|
||||
+ q_OPENSSL_free(data);
|
||||
}
|
||||
return info;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Qt4 Config
|
||||
Comment=Configure Qt4 behavior, styles, fonts
|
||||
Exec=qtconfig-qt4
|
||||
Icon=qt4logo
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Qt;Settings;
|
||||
NoDisplay=true
|
Loading…
Reference in a new issue