qt4: remove
This commit is contained in:
parent
1b4c4704ce
commit
048adf01c9
|
@ -1,13 +0,0 @@
|
|||
diff --git a/src/gui/text/qfontengine_coretext.mm b/src/gui/text/qfontengine_coretext.mm
|
||||
index 204d685..e05179e 100644
|
||||
--- a/src/gui/text/qfontengine_coretext.mm
|
||||
+++ b/src/gui/text/qfontengine_coretext.mm
|
||||
@@ -886,7 +886,7 @@ void QCoreTextFontEngine::getUnscaledGlyph(glyph_t glyph, QPainterPath *path, gl
|
||||
|
||||
QFixed QCoreTextFontEngine::emSquareSize() const
|
||||
{
|
||||
- return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont)));
|
||||
+ return QFixed(int(CTFontGetUnitsPerEm(ctfont)));
|
||||
}
|
||||
|
||||
QFontEngine *QCoreTextFontEngine::cloneWithSize(qreal pixelSize) const
|
|
@ -1,239 +0,0 @@
|
|||
{ stdenv, lib, fetchurl, fetchpatch, substituteAll
|
||||
, libXrender, libXinerama, libXcursor, libXv, libXext
|
||||
, libXfixes, libXrandr, libSM, freetype, fontconfig, zlib, libjpeg, libpng
|
||||
, libmng, which, libGLU, openssl, dbus, cups, pkg-config
|
||||
, libtiff, glib, icu, libmysqlclient, postgresql, sqlite, perl, coreutils, libXi
|
||||
, alsa-lib
|
||||
, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
|
||||
, gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2, gdk-pixbuf
|
||||
, gnomeStyle ? false, libgnomeui, GConf, gnome_vfs
|
||||
, developerBuild ? false
|
||||
, docs ? false
|
||||
, examples ? false
|
||||
, demos ? false
|
||||
# darwin support
|
||||
, libobjc, ApplicationServices, OpenGL, Cocoa, AGL, libcxx
|
||||
}:
|
||||
|
||||
# TODO:
|
||||
# * move some plugins (e.g., SQL plugins) to dedicated derivations to avoid
|
||||
# false build-time dependencies
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qt" + lib.optionalString ( docs && demos && examples && developerBuild ) "-full";
|
||||
version = "4.8.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.qt-project.org/official_releases/qt/"
|
||||
+ "${lib.versions.majorMinor version}/${version}/qt-everywhere-opensource-src-${version}.tar.gz";
|
||||
sha256 = "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
outputInclude = "out";
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace configure --replace /bin/pwd pwd
|
||||
substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
|
||||
substituteInPlace src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp \
|
||||
--replace 'asm volatile' 'asm'
|
||||
sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i mkspecs/*/*.conf
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
# remove impure reference to /usr/lib/libstdc++.6.dylib
|
||||
# there might be more references, but this is the only one I could find
|
||||
substituteInPlace tools/macdeployqt/tests/tst_deployment_mac.cpp \
|
||||
--replace /usr/lib/libstdc++.6.dylib "${stdenv.cc}/lib/libstdc++.6.dylib"
|
||||
'' + lib.optionalString stdenv.cc.isClang ''
|
||||
substituteInPlace src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp \
|
||||
--replace 'optionalHeight > 0' 'optionalHeight != NULL'
|
||||
'';
|
||||
|
||||
patches =
|
||||
lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
|
||||
./glib-2.32.patch
|
||||
./libressl.patch
|
||||
./parallel-configure.patch
|
||||
./clang-5-darwin.patch
|
||||
./qt-4.8.7-unixmake-darwin.patch
|
||||
./kill-legacy-darwin-apis.patch
|
||||
(substituteAll {
|
||||
src = ./dlopen-absolute-paths.diff;
|
||||
cups = if cups != null then lib.getLib cups else null;
|
||||
icu = icu.out;
|
||||
libXfixes = libXfixes.out;
|
||||
glibc = stdenv.cc.libc.out;
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-medium-font.patch";
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qt4-x11/raw/"
|
||||
+ "21b342d71c19e6d68b649947f913410fe6129ea4/debian/patches/kubuntu_39_fix_medium_font.diff";
|
||||
sha256 = "0bli44chn03c2y70w1n8l7ss4ya0b40jqqav8yxrykayi01yf95j";
|
||||
})
|
||||
# Patches are no longer available from here, so vendoring it for now.
|
||||
#(fetchpatch {
|
||||
# name = "qt4-gcc6.patch";
|
||||
# url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qt4-gcc6.patch?h=packages/qt4&id=ca773a144f5abb244ac4f2749eeee9333cac001f";
|
||||
# sha256 = "07lrva7bjh6i40p7b3ml26a2jlznri8bh7y7iyx5zmvb1gfxmj34";
|
||||
#})
|
||||
./qt4-gcc6.patch
|
||||
./qt4-openssl-1.1.patch
|
||||
(fetchpatch {
|
||||
name = "gcc9-foreach.patch";
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qt4-x11/raw/"
|
||||
+ "0d4a3dd61ccb156dee556c214dbe91c04d44a717/debian/patches/gcc9-qforeach.patch";
|
||||
sha256 = "0dzn6qxrgxb75rvck9kmy5gspawdn970wsjw56026dhkih8cp3pg";
|
||||
})
|
||||
|
||||
# Pull upstream fix for gcc-11 support.
|
||||
(fetchpatch {
|
||||
name = "gcc11-ptr-cmp.patch";
|
||||
url = "https://github.com/qt/qttools/commit/7138c963f9d1258bc1b49cb4d63c3e2b7d0ccfda.patch";
|
||||
sha256 = "1a9g05r267c94qpw3ssb6k4lci200vla3vm5hri1nna6xwdsmrhc";
|
||||
# "src/" -> "tools/"
|
||||
stripLen = 2;
|
||||
extraPrefix = "tools/";
|
||||
})
|
||||
]
|
||||
++ lib.optional gtkStyle (substituteAll ({
|
||||
src = ./dlopen-gtkstyle.diff;
|
||||
# substituteAll ignores env vars starting with capital letter
|
||||
gtk = gtk2.out;
|
||||
} // lib.optionalAttrs gnomeStyle {
|
||||
gconf = GConf.out;
|
||||
libgnomeui = libgnomeui.out;
|
||||
gnome_vfs = gnome_vfs.out;
|
||||
}))
|
||||
++ lib.optional stdenv.isAarch64 (fetchpatch {
|
||||
url = "https://src.fedoraproject.org/rpms/qt/raw/ecf530486e0fb7fe31bad26805cde61115562b2b/f/qt-aarch64.patch";
|
||||
sha256 = "1fbjh78nmafqmj7yk67qwjbhl3f6ylkp6x33b1dqxfw9gld8b3gl";
|
||||
})
|
||||
++ lib.optionals stdenv.hostPlatform.isMusl [
|
||||
./qt-musl.patch
|
||||
./qt-musl-iconv-no-bom.patch
|
||||
./patch-qthread-stacksize.diff
|
||||
./qsettings-recursive-global-mutex.patch
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
export LD_LIBRARY_PATH="`pwd`/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
|
||||
configureFlags+="
|
||||
-docdir $out/share/doc/qt-${version}
|
||||
-plugindir $out/lib/qt4/plugins
|
||||
-importdir $out/lib/qt4/imports
|
||||
-examplesdir $TMPDIR/share/doc/qt-${version}/examples
|
||||
-demosdir $TMPDIR/share/doc/qt-${version}/demos
|
||||
-datadir $out/share/qt-${version}
|
||||
-translationdir $out/share/qt-${version}/translations
|
||||
--jobs=$NIX_BUILD_CORES
|
||||
"
|
||||
unset LD # Makefile uses gcc for linking; setting LD interferes
|
||||
'' + lib.optionalString stdenv.cc.isClang ''
|
||||
sed -i 's/QMAKE_CC = gcc/QMAKE_CC = clang/' mkspecs/common/g++-base.conf
|
||||
sed -i 's/QMAKE_CXX = g++/QMAKE_CXX = clang++/' mkspecs/common/g++-base.conf
|
||||
'' + lib.optionalString stdenv.hostPlatform.isWindows ''
|
||||
sed -i -e 's/ g++/ ${stdenv.cc.targetPrefix}g++/' \
|
||||
-e 's/ gcc/ ${stdenv.cc.targetPrefix}gcc/' \
|
||||
-e 's/ ar/ ${stdenv.cc.targetPrefix}ar/' \
|
||||
-e 's/ strip/ ${stdenv.cc.targetPrefix}strip/' \
|
||||
-e 's/ windres/ ${stdenv.cc.targetPrefix}windres/' \
|
||||
mkspecs/win32-g++/qmake.conf
|
||||
'';
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
|
||||
configurePlatforms = [];
|
||||
configureFlags = let
|
||||
mk = cond: name: "-${lib.optionalString (!cond) "no-"}${name}";
|
||||
platformFlag =
|
||||
if stdenv.hostPlatform != stdenv.buildPlatform
|
||||
then "-xplatform"
|
||||
else "-platform";
|
||||
in (if stdenv.hostPlatform != stdenv.buildPlatform then [
|
||||
# I've not tried any case other than i686-pc-mingw32.
|
||||
# -nomake tools: it fails linking some asian language symbols
|
||||
# -no-svg: it fails to build on mingw64
|
||||
"-static" "-release" "-confirm-license" "-opensource"
|
||||
"-no-opengl" "-no-phonon"
|
||||
"-no-svg"
|
||||
"-make" "qmake" "-make" "libs" "-nomake" "tools"
|
||||
] else [
|
||||
"-v" "-no-separate-debug-info" "-release" "-fast" "-confirm-license" "-opensource"
|
||||
|
||||
(mk (!stdenv.isFreeBSD) "opengl") "-xrender" "-xrandr" "-xinerama" "-xcursor" "-xinput" "-xfixes" "-fontconfig"
|
||||
"-qdbus" (mk (cups != null) "cups") "-glib" "-dbus-linked" "-openssl-linked"
|
||||
|
||||
"-${if libmysqlclient != null then "plugin" else "no"}-sql-mysql" "-system-sqlite"
|
||||
|
||||
"-exceptions" "-xmlpatterns"
|
||||
|
||||
"-make" "libs" "-make" "tools" "-make" "translations"
|
||||
"-no-phonon" "-no-webkit" "-no-multimedia" "-audio-backend"
|
||||
]) ++ [
|
||||
"-${lib.optionalString (!demos) "no"}make" "demos"
|
||||
"-${lib.optionalString (!examples) "no"}make" "examples"
|
||||
"-${lib.optionalString (!docs) "no"}make" "docs"
|
||||
] ++ lib.optional developerBuild "-developer-build"
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ platformFlag "unsupported/macx-clang-libc++" ]
|
||||
++ lib.optionals stdenv.hostPlatform.isWindows [ platformFlag "win32-g++-4.6" ];
|
||||
|
||||
propagatedBuildInputs =
|
||||
[ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
|
||||
libSM zlib libpng openssl dbus freetype fontconfig glib ]
|
||||
# Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
|
||||
++ lib.optional libGLSupported libGLU;
|
||||
|
||||
# The following libraries are only used in plugins
|
||||
buildInputs =
|
||||
[ cups # Qt dlopen's libcups instead of linking to it
|
||||
postgresql sqlite libjpeg libmng libtiff icu ]
|
||||
++ lib.optionals (libmysqlclient != null) [ libmysqlclient ]
|
||||
++ lib.optionals gtkStyle [ gtk2 gdk-pixbuf ]
|
||||
++ lib.optionals stdenv.isDarwin [ ApplicationServices OpenGL Cocoa AGL libcxx libobjc ];
|
||||
|
||||
nativeBuildInputs = [ perl pkg-config which ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString (
|
||||
# with gcc7 the warnings blow the log over Hydra's limit
|
||||
[ "-Wno-expansion-to-defined" "-Wno-unused-local-typedefs" ]
|
||||
++ lib.optional stdenv.isLinux "-std=gnu++98" # gnu++ in (Obj)C flags is no good on Darwin
|
||||
++ lib.optionals (stdenv.isFreeBSD || stdenv.isDarwin)
|
||||
[ "-I${glib.dev}/include/glib-2.0" "-I${glib.out}/lib/glib-2.0/include" ]
|
||||
++ lib.optional stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1");
|
||||
|
||||
NIX_LDFLAGS = lib.optionalString (stdenv.isFreeBSD || stdenv.isDarwin) "-lglib-2.0";
|
||||
|
||||
preBuild = lib.optionalString stdenv.isDarwin ''
|
||||
# resolve "extra qualification on member" error
|
||||
sed -i 's/struct ::TabletProximityRec;/struct TabletProximityRec;/' \
|
||||
src/gui/kernel/qt_cocoa_helpers_mac_p.h
|
||||
find . -name "Makefile*" | xargs sed -i 's/^\(LINK[[:space:]]* = clang++\)/\1 ${NIX_LDFLAGS}/'
|
||||
sed -i 's/^\(LIBS[[:space:]]*=.*$\)/\1 -lobjc/' ./src/corelib/Makefile.Release
|
||||
'';
|
||||
|
||||
doCheck = false; # qwebframe test fails with fontconfig errors
|
||||
|
||||
postInstall = ''
|
||||
rm -rf $out/tests
|
||||
''
|
||||
# I don't know why it does not install qmake
|
||||
+ lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
|
||||
cp bin/qmake* $out/bin
|
||||
'';
|
||||
|
||||
dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||
|
||||
meta = {
|
||||
homepage = "https://qt-project.org/";
|
||||
description = "A cross-platform application framework for C++";
|
||||
license = lib.licenses.lgpl21Plus; # or gpl3
|
||||
maintainers = with lib.maintainers; [ orivej lovek323 sander ];
|
||||
platforms = lib.platforms.unix;
|
||||
badPlatforms = [ "x86_64-darwin" "aarch64-darwin" ];
|
||||
};
|
||||
}
|
|
@ -1,74 +0,0 @@
|
|||
diff --git a/src/corelib/tools/qlocale_icu.cpp b/src/corelib/tools/qlocale_icu.cpp
|
||||
index c3e2907..2fac4e1 100644
|
||||
--- a/src/corelib/tools/qlocale_icu.cpp
|
||||
+++ b/src/corelib/tools/qlocale_icu.cpp
|
||||
@@ -81,7 +81,7 @@ bool qt_initIcu(const QString &localeString)
|
||||
if (status == NotLoaded) {
|
||||
|
||||
// resolve libicui18n
|
||||
- QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT));
|
||||
+ QLibrary lib(QLatin1String("@icu@/lib/libicui18n"), QLatin1String(U_ICU_VERSION_SHORT));
|
||||
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
|
||||
if (!lib.load()) {
|
||||
qWarning() << "Unable to load library icui18n" << lib.errorString();
|
||||
@@ -111,7 +111,7 @@ bool qt_initIcu(const QString &localeString)
|
||||
}
|
||||
|
||||
// resolve libicuuc
|
||||
- QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT));
|
||||
+ QLibrary ucLib(QLatin1String("@icu@/lib/libicuuc"), QLatin1String(U_ICU_VERSION_SHORT));
|
||||
ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
|
||||
if (!ucLib.load()) {
|
||||
qWarning() << "Unable to load library icuuc" << ucLib.errorString();
|
||||
diff --git a/src/gui/painting/qcups.cpp b/src/gui/painting/qcups.cpp
|
||||
index 99ea43f..acdf9c9 100644
|
||||
--- a/src/gui/painting/qcups.cpp
|
||||
+++ b/src/gui/painting/qcups.cpp
|
||||
@@ -87,7 +87,7 @@ static CupsPrintFile _cupsPrintFile = 0;
|
||||
|
||||
static void resolveCups()
|
||||
{
|
||||
- QLibrary cupsLib(QLatin1String("cups"), 2);
|
||||
+ QLibrary cupsLib(QLatin1String("@cups@/lib/libcups"), 2);
|
||||
if(cupsLib.load()) {
|
||||
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
|
||||
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");
|
||||
diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp
|
||||
index 3d15538..f0f5351 100644
|
||||
--- a/src/gui/painting/qprinterinfo_unix.cpp
|
||||
+++ b/src/gui/painting/qprinterinfo_unix.cpp
|
||||
@@ -454,7 +454,7 @@ int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers)
|
||||
char *domain;
|
||||
int err;
|
||||
|
||||
- QLibrary lib(QLatin1String("nsl"));
|
||||
+ QLibrary lib(QLatin1String("@glibc@/lib/libnsl"));
|
||||
typedef int (*ypGetDefaultDomain)(char **);
|
||||
ypGetDefaultDomain _ypGetDefaultDomain = (ypGetDefaultDomain)lib.resolve("yp_get_default_domain");
|
||||
typedef int (*ypAll)(const char *, const char *, const struct ypall_callback *);
|
||||
diff --git a/src/network/kernel/qhostinfo_unix.cpp b/src/network/kernel/qhostinfo_unix.cpp
|
||||
index 6b42d1e..f88b628 100644
|
||||
--- a/src/network/kernel/qhostinfo_unix.cpp
|
||||
+++ b/src/network/kernel/qhostinfo_unix.cpp
|
||||
@@ -95,7 +95,7 @@ static res_state_ptr local_res = 0;
|
||||
static void resolveLibrary()
|
||||
{
|
||||
#if !defined(QT_NO_LIBRARY) && !defined(Q_OS_QNX)
|
||||
- QLibrary lib(QLatin1String("resolv"));
|
||||
+ QLibrary lib(QLatin1String("@glibc@/lib/libresolv"));
|
||||
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
|
||||
if (!lib.load())
|
||||
return;
|
||||
diff --git a/src/plugins/platforms/xlib/qxlibstatic.cpp b/src/plugins/platforms/xlib/qxlibstatic.cpp
|
||||
index f8f3d69..d63c5bc 100644
|
||||
--- a/src/plugins/platforms/xlib/qxlibstatic.cpp
|
||||
+++ b/src/plugins/platforms/xlib/qxlibstatic.cpp
|
||||
@@ -242,7 +242,7 @@ static void* qt_load_library_runtime(const char *library, int vernum,
|
||||
}
|
||||
|
||||
# define XFIXES_LOAD_RUNTIME(vernum, symbol, symbol_type) \
|
||||
- (symbol_type)qt_load_library_runtime("libXfixes", vernum, 4, #symbol);
|
||||
+ (symbol_type)qt_load_library_runtime("@libXfixes@/lib/libXfixes", vernum, 4, #symbol);
|
||||
# define XFIXES_LOAD_V1(symbol) \
|
||||
XFIXES_LOAD_RUNTIME(1, symbol, Ptr##symbol)
|
||||
# define XFIXES_LOAD_V2(symbol) \
|
|
@ -1,37 +0,0 @@
|
|||
diff --git a/src/gui/styles/qgtkstyle_p.cpp b/src/gui/styles/qgtkstyle_p.cpp
|
||||
index 3b128e6..39434db 100644
|
||||
--- a/src/gui/styles/qgtkstyle_p.cpp
|
||||
+++ b/src/gui/styles/qgtkstyle_p.cpp
|
||||
@@ -312,7 +312,7 @@ GtkStyle* QGtkStylePrivate::gtkStyle(const QHashableLatin1Literal &path)
|
||||
void QGtkStylePrivate::resolveGtk() const
|
||||
{
|
||||
// enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
|
||||
- QLibrary libgtk(QLS("gtk-x11-2.0"), 0, 0);
|
||||
+ QLibrary libgtk(QLS("@gtk@/lib/libgtk-x11-2.0"), 0, 0);
|
||||
libgtk.setLoadHints(QLibrary::ImprovedSearchHeuristics);
|
||||
|
||||
gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");
|
||||
@@ -435,8 +435,8 @@ void QGtkStylePrivate::resolveGtk() const
|
||||
pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family");
|
||||
pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style");
|
||||
|
||||
- gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("gnomeui-2"), 0, "gnome_icon_lookup_sync");
|
||||
- gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("gnomevfs-2"), 0, "gnome_vfs_init");
|
||||
+ gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("@libgnomeui@/lib/libgnomeui-2"), 0, "gnome_icon_lookup_sync");
|
||||
+ gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("@gnome_vfs@/lib/libgnomevfs-2"), 0, "gnome_vfs_init");
|
||||
}
|
||||
|
||||
/* \internal
|
||||
@@ -608,9 +608,9 @@ void QGtkStylePrivate::cleanupGtkWidgets()
|
||||
static bool resolveGConf()
|
||||
{
|
||||
if (!QGtkStylePrivate::gconf_client_get_default) {
|
||||
- QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_default");
|
||||
- QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_string");
|
||||
- QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_bool");
|
||||
+ QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_default");
|
||||
+ QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_string");
|
||||
+ QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_bool");
|
||||
}
|
||||
return (QGtkStylePrivate::gconf_client_get_default !=0);
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
diff -Naur qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h qt-everywhere-opensource-src-4.8.2/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
|
||||
--- qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2012-04-26 15:46:22.000000000 -0400
|
||||
+++ qt-everywhere-opensource-src-4.8.2/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2012-07-14 22:47:02.145152876 -0400
|
||||
@@ -89,7 +89,7 @@
|
||||
#include <pthread.h>
|
||||
#elif PLATFORM(GTK)
|
||||
#include <wtf/gtk/GOwnPtr.h>
|
||||
-typedef struct _GMutex GMutex;
|
||||
+typedef union _GMutex GMutex;
|
||||
typedef struct _GCond GCond;
|
||||
#endif
|
||||
|
|
@ -1,330 +0,0 @@
|
|||
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
index 4a9049b..c0ac9db 100644
|
||||
--- a/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
@@ -242,9 +242,8 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
|
||||
#else
|
||||
char *ret = 0;
|
||||
# if defined(Q_OS_MAC) && !defined(Q_OS_IOS)
|
||||
- // When using -mmacosx-version-min=10.4, we get the legacy realpath implementation,
|
||||
- // which does not work properly with the realpath(X,0) form. See QTBUG-28282.
|
||||
- if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) {
|
||||
+ // In Nix-on-Darwin, we don't support ancient macOS anyway, and the deleted branch relies on
|
||||
+ // a symbol that's been deprecated for years and that our CF doesn't have
|
||||
ret = (char*)malloc(PATH_MAX + 1);
|
||||
if (ret && realpath(entry.nativeFilePath().constData(), (char*)ret) == 0) {
|
||||
const int savedErrno = errno; // errno is checked below, and free() might change it
|
||||
@@ -252,19 +251,6 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
|
||||
errno = savedErrno;
|
||||
ret = 0;
|
||||
}
|
||||
- } else {
|
||||
- // on 10.5 we can use FSRef to resolve the file path.
|
||||
- QString path = QDir::cleanPath(entry.filePath());
|
||||
- FSRef fsref;
|
||||
- if (FSPathMakeRef((const UInt8 *)path.toUtf8().data(), &fsref, 0) == noErr) {
|
||||
- CFURLRef urlref = CFURLCreateFromFSRef(NULL, &fsref);
|
||||
- CFStringRef canonicalPath = CFURLCopyFileSystemPath(urlref, kCFURLPOSIXPathStyle);
|
||||
- QString ret = QCFString::toQString(canonicalPath);
|
||||
- CFRelease(canonicalPath);
|
||||
- CFRelease(urlref);
|
||||
- return QFileSystemEntry(ret);
|
||||
- }
|
||||
- }
|
||||
# else
|
||||
# if _POSIX_VERSION >= 200801L
|
||||
ret = realpath(entry.nativeFilePath().constData(), (char*)0);
|
||||
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
|
||||
index 3bf7342..b6bcfc0 100644
|
||||
--- a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
|
||||
+++ b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
|
||||
@@ -43,7 +43,6 @@ BOOL stringIsCaseInsensitiveEqualToString(NSString *first, NSString *second);
|
||||
BOOL hasCaseInsensitiveSuffix(NSString *string, NSString *suffix);
|
||||
BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring);
|
||||
NSString *filenameByFixingIllegalCharacters(NSString *string);
|
||||
-CFStringEncoding stringEncodingForResource(Handle resource);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
|
||||
index d6c3f0c..c88ca76 100644
|
||||
--- a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
|
||||
+++ b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
|
||||
@@ -68,45 +68,4 @@ BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring)
|
||||
return filename;
|
||||
}
|
||||
|
||||
-CFStringEncoding stringEncodingForResource(Handle resource)
|
||||
-{
|
||||
- short resRef = HomeResFile(resource);
|
||||
- if (ResError() != noErr)
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- // Get the FSRef for the current resource file
|
||||
- FSRef fref;
|
||||
- OSStatus error = FSGetForkCBInfo(resRef, 0, NULL, NULL, NULL, &fref, NULL);
|
||||
- if (error != noErr)
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- RetainPtr<CFURLRef> url(AdoptCF, CFURLCreateFromFSRef(NULL, &fref));
|
||||
- if (!url)
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- NSString *path = [(NSURL *)url.get() path];
|
||||
-
|
||||
- // Get the lproj directory name
|
||||
- path = [path stringByDeletingLastPathComponent];
|
||||
- if (!stringIsCaseInsensitiveEqualToString([path pathExtension], @"lproj"))
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- NSString *directoryName = [[path stringByDeletingPathExtension] lastPathComponent];
|
||||
- RetainPtr<CFStringRef> locale(AdoptCF, CFLocaleCreateCanonicalLocaleIdentifierFromString(NULL, (CFStringRef)directoryName));
|
||||
- if (!locale)
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- LangCode lang;
|
||||
- RegionCode region;
|
||||
- error = LocaleStringToLangAndRegionCodes([(NSString *)locale.get() UTF8String], &lang, ®ion);
|
||||
- if (error != noErr)
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- TextEncoding encoding;
|
||||
- error = UpgradeScriptInfoToTextEncoding(kTextScriptDontCare, lang, region, NULL, &encoding);
|
||||
- if (error != noErr)
|
||||
- return NSMacOSRomanStringEncoding;
|
||||
-
|
||||
- return encoding;
|
||||
-}
|
||||
|
||||
diff --git a/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp b/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
|
||||
index 865ea32..20bda8d 100644
|
||||
--- a/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
|
||||
+++ b/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
|
||||
@@ -101,33 +101,6 @@ static WTF::RetainPtr<CFDictionaryRef> readPListFile(CFStringRef fileName, bool
|
||||
return map;
|
||||
}
|
||||
|
||||
-static Vector<String> stringListFromResourceId(SInt16 id)
|
||||
-{
|
||||
- Vector<String> list;
|
||||
-
|
||||
- Handle handle = Get1Resource('STR#', id);
|
||||
- if (!handle)
|
||||
- return list;
|
||||
-
|
||||
- CFStringEncoding encoding = stringEncodingForResource(handle);
|
||||
-
|
||||
- unsigned char* p = (unsigned char*)*handle;
|
||||
- if (!p)
|
||||
- return list;
|
||||
-
|
||||
- SInt16 count = *(SInt16*)p;
|
||||
- p += sizeof(SInt16);
|
||||
-
|
||||
- for (SInt16 i = 0; i < count; ++i) {
|
||||
- unsigned char length = *p;
|
||||
- WTF::RetainPtr<CFStringRef> str = CFStringCreateWithPascalString(0, p, encoding);
|
||||
- list.append(str.get());
|
||||
- p += 1 + length;
|
||||
- }
|
||||
-
|
||||
- return list;
|
||||
-}
|
||||
-
|
||||
bool PluginPackage::fetchInfo()
|
||||
{
|
||||
if (!load())
|
||||
@@ -202,36 +175,8 @@ bool PluginPackage::fetchInfo()
|
||||
m_description = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(m_module, CFSTR("WebPluginDescription"));
|
||||
|
||||
} else {
|
||||
- int resFile = CFBundleOpenBundleResourceMap(m_module);
|
||||
-
|
||||
- UseResFile(resFile);
|
||||
-
|
||||
- Vector<String> mimes = stringListFromResourceId(MIMEListStringStringNumber);
|
||||
-
|
||||
- if (mimes.size() % 2 != 0)
|
||||
- return false;
|
||||
-
|
||||
- Vector<String> descriptions = stringListFromResourceId(MIMEDescriptionStringNumber);
|
||||
- if (descriptions.size() != mimes.size() / 2)
|
||||
- return false;
|
||||
-
|
||||
- for (size_t i = 0; i < mimes.size(); i += 2) {
|
||||
- String mime = mimes[i].lower();
|
||||
- Vector<String> extensions;
|
||||
- mimes[i + 1].lower().split(UChar(','), extensions);
|
||||
-
|
||||
- m_mimeToExtensions.set(mime, extensions);
|
||||
-
|
||||
- m_mimeToDescriptions.set(mime, descriptions[i / 2]);
|
||||
- }
|
||||
-
|
||||
- Vector<String> names = stringListFromResourceId(PluginNameOrDescriptionStringNumber);
|
||||
- if (names.size() == 2) {
|
||||
- m_description = names[0];
|
||||
- m_name = names[1];
|
||||
- }
|
||||
-
|
||||
- CFBundleCloseBundleResourceMap(m_module, resFile);
|
||||
+ LOG(Plugins, "Nix removed ancient code that relies on long-deprecated functionality that we don't want to support!");
|
||||
+ return false;
|
||||
}
|
||||
|
||||
LOG(Plugins, "PluginPackage::fetchInfo(): Found plug-in '%s'", m_name.utf8().data());
|
||||
diff --git a/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm b/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
|
||||
index b206e48..669d442 100644
|
||||
--- a/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
|
||||
+++ b/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
|
||||
@@ -26,7 +26,6 @@
|
||||
#import "config.h"
|
||||
#import "NetscapePluginModule.h"
|
||||
|
||||
-#import <WebCore/WebCoreNSStringExtras.h>
|
||||
#import <wtf/HashSet.h>
|
||||
|
||||
using namespace WebCore;
|
||||
@@ -196,132 +195,6 @@ static bool getPluginInfoFromPropertyLists(CFBundleRef bundle, PluginInfo& plugi
|
||||
return true;
|
||||
}
|
||||
|
||||
-class ResourceMap {
|
||||
-public:
|
||||
- explicit ResourceMap(CFBundleRef bundle)
|
||||
- : m_bundle(bundle)
|
||||
- , m_currentResourceFile(CurResFile())
|
||||
- , m_bundleResourceMap(CFBundleOpenBundleResourceMap(m_bundle))
|
||||
- {
|
||||
- UseResFile(m_bundleResourceMap);
|
||||
- }
|
||||
-
|
||||
- ~ResourceMap()
|
||||
- {
|
||||
- // Close the resource map.
|
||||
- CFBundleCloseBundleResourceMap(m_bundle, m_bundleResourceMap);
|
||||
-
|
||||
- // And restore the old resource.
|
||||
- UseResFile(m_currentResourceFile);
|
||||
- }
|
||||
-
|
||||
- bool isValid() const { return m_bundleResourceMap != -1; }
|
||||
-
|
||||
-private:
|
||||
- CFBundleRef m_bundle;
|
||||
- ResFileRefNum m_currentResourceFile;
|
||||
- ResFileRefNum m_bundleResourceMap;
|
||||
-};
|
||||
-
|
||||
-static bool getStringListResource(ResID resourceID, Vector<String>& stringList) {
|
||||
- Handle stringListHandle = Get1Resource('STR#', resourceID);
|
||||
- if (!stringListHandle || !*stringListHandle)
|
||||
- return false;
|
||||
-
|
||||
- // Get the string list size.
|
||||
- Size stringListSize = GetHandleSize(stringListHandle);
|
||||
- if (stringListSize < static_cast<Size>(sizeof(UInt16)))
|
||||
- return false;
|
||||
-
|
||||
- CFStringEncoding stringEncoding = stringEncodingForResource(stringListHandle);
|
||||
-
|
||||
- unsigned char* ptr = reinterpret_cast<unsigned char*>(*stringListHandle);
|
||||
- unsigned char* end = ptr + stringListSize;
|
||||
-
|
||||
- // Get the number of strings in the string list.
|
||||
- UInt16 numStrings = *reinterpret_cast<UInt16*>(ptr);
|
||||
- ptr += sizeof(UInt16);
|
||||
-
|
||||
- for (UInt16 i = 0; i < numStrings; ++i) {
|
||||
- // We're past the end of the string, bail.
|
||||
- if (ptr >= end)
|
||||
- return false;
|
||||
-
|
||||
- // Get the string length.
|
||||
- unsigned char stringLength = *ptr++;
|
||||
-
|
||||
- RetainPtr<CFStringRef> cfString(AdoptCF, CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, ptr, stringLength, stringEncoding, false, kCFAllocatorNull));
|
||||
- if (!cfString.get())
|
||||
- return false;
|
||||
-
|
||||
- stringList.append(cfString.get());
|
||||
- ptr += stringLength;
|
||||
- }
|
||||
-
|
||||
- if (ptr != end)
|
||||
- return false;
|
||||
-
|
||||
- return true;
|
||||
-}
|
||||
-
|
||||
-static const ResID PluginNameOrDescriptionStringNumber = 126;
|
||||
-static const ResID MIMEDescriptionStringNumber = 127;
|
||||
-static const ResID MIMEListStringStringNumber = 128;
|
||||
-
|
||||
-static bool getPluginInfoFromCarbonResources(CFBundleRef bundle, PluginInfo& pluginInfo)
|
||||
-{
|
||||
- ResourceMap resourceMap(bundle);
|
||||
- if (!resourceMap.isValid())
|
||||
- return false;
|
||||
-
|
||||
- // Get the description and name string list.
|
||||
- Vector<String> descriptionAndName;
|
||||
- if (!getStringListResource(PluginNameOrDescriptionStringNumber, descriptionAndName))
|
||||
- return false;
|
||||
-
|
||||
- // Get the MIME types and extensions string list. This list needs to be a multiple of two.
|
||||
- Vector<String> mimeTypesAndExtensions;
|
||||
- if (!getStringListResource(MIMEListStringStringNumber, mimeTypesAndExtensions))
|
||||
- return false;
|
||||
-
|
||||
- if (mimeTypesAndExtensions.size() % 2)
|
||||
- return false;
|
||||
-
|
||||
- // Now get the MIME type descriptions string list. This string list needs to be the same length as the number of MIME types.
|
||||
- Vector<String> mimeTypeDescriptions;
|
||||
- if (!getStringListResource(MIMEDescriptionStringNumber, mimeTypeDescriptions))
|
||||
- return false;
|
||||
-
|
||||
- // Add all MIME types.
|
||||
- for (size_t i = 0; i < mimeTypesAndExtensions.size() / 2; ++i) {
|
||||
- MimeClassInfo mimeClassInfo;
|
||||
-
|
||||
- const String& mimeType = mimeTypesAndExtensions[i * 2];
|
||||
- String description;
|
||||
- if (i < mimeTypeDescriptions.size())
|
||||
- description = mimeTypeDescriptions[i];
|
||||
-
|
||||
- mimeClassInfo.type = mimeType.lower();
|
||||
- mimeClassInfo.desc = description;
|
||||
-
|
||||
- Vector<String> extensions;
|
||||
- mimeTypesAndExtensions[i * 2 + 1].split(',', extensions);
|
||||
-
|
||||
- for (size_t i = 0; i < extensions.size(); ++i)
|
||||
- mimeClassInfo.extensions.append(extensions[i].lower());
|
||||
-
|
||||
- pluginInfo.mimes.append(mimeClassInfo);
|
||||
- }
|
||||
-
|
||||
- // Set the description and name if they exist.
|
||||
- if (descriptionAndName.size() > 0)
|
||||
- pluginInfo.desc = descriptionAndName[0];
|
||||
- if (descriptionAndName.size() > 1)
|
||||
- pluginInfo.name = descriptionAndName[1];
|
||||
-
|
||||
- return true;
|
||||
-}
|
||||
-
|
||||
bool NetscapePluginModule::getPluginInfo(const String& pluginPath, PluginInfoStore::Plugin& plugin)
|
||||
{
|
||||
RetainPtr<CFStringRef> bundlePath(AdoptCF, pluginPath.createCFString());
|
||||
@@ -344,8 +217,7 @@ static bool getPluginInfoFromCarbonResources(CFBundleRef bundle, PluginInfo& plu
|
||||
return false;
|
||||
|
||||
// Check that there's valid info for this plug-in.
|
||||
- if (!getPluginInfoFromPropertyLists(bundle.get(), plugin.info) &&
|
||||
- !getPluginInfoFromCarbonResources(bundle.get(), plugin.info))
|
||||
+ if (!getPluginInfoFromPropertyLists(bundle.get(), plugin.info))
|
||||
return false;
|
||||
|
||||
plugin.path = pluginPath;
|
|
@ -1,64 +0,0 @@
|
|||
$OpenBSD: patch-src_network_ssl_qsslsocket_openssl_symbols_cpp,v 1.3 2015/09/17 12:24:42 dcoppa Exp $
|
||||
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp Wed Sep 16 13:27:39 2015
|
||||
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp Wed Sep 16 13:33:06 2015
|
||||
@@ -228,13 +228,17 @@ DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, re
|
||||
#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 @@ bool q_resolveOpenSslSymbols()
|
||||
#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)
|
||||
--- a/src/network/ssl/qsslsocket_openssl.cpp Thu May 7 16:14:44 2015
|
||||
+++ b/src/network/ssl/qsslsocket_openssl.cpp Wed Sep 16 13:30:03 2015
|
||||
@@ -267,15 +267,19 @@ init_context:
|
||||
#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
|
||||
case QSsl::AnyProtocol:
|
||||
- default:
|
||||
ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
|
||||
break;
|
||||
case QSsl::TlsV1:
|
||||
+ case QSsl::SecureProtocols:
|
||||
+ case QSsl::TlsV1SslV3:
|
||||
+ default:
|
||||
ctx = q_SSL_CTX_new(client ? q_TLSv1_client_method() : q_TLSv1_server_method());
|
||||
break;
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1087,2 +1087,3 @@ fi
|
||||
#-------------------------------------------------------------------------------
|
||||
+JOBS=
|
||||
|
||||
@@ -2528,2 +2529,5 @@ while [ "$#" -gt 0 ]; do
|
||||
;;
|
||||
+ jobs)
|
||||
+ JOBS=-j$VAL
|
||||
+ ;;
|
||||
*)
|
||||
@@ -5072,3 +5076,3 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
||||
if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
|
||||
- (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
|
||||
+ (cd "$outpath/qmake" && "$MAKE" $JOBS -f "$mkfile" depend) >/dev/null 2>&1
|
||||
sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
|
||||
@@ -5080,3 +5084,3 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
||||
QMAKE_BUILD_ERROR=no
|
||||
- (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
|
||||
+ (cd "$outpath/qmake"; "$MAKE" $JOBS) || QMAKE_BUILD_ERROR=yes
|
||||
[ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
|
|
@ -1,54 +0,0 @@
|
|||
--- a/src/corelib/thread/qthread_unix.cpp.orig 2015-11-23 19:05:40.000000000 +0100
|
||||
+++ b/src/corelib/thread/qthread_unix.cpp 2015-11-24 11:22:31.000000000 +0100
|
||||
@@ -79,6 +79,7 @@
|
||||
#endif
|
||||
|
||||
+#include <sys/resource.h> // getrlimit/setrlimit
|
||||
#if defined(Q_OS_MAC)
|
||||
# ifdef qDebug
|
||||
# define old_qDebug qDebug
|
||||
# undef qDebug
|
||||
@@ -649,6 +650,43 @@
|
||||
#endif // QT_HAS_THREAD_PRIORITY_SCHEDULING
|
||||
|
||||
|
||||
+ if (d->stackSize == 0) {
|
||||
+ // Fix the default (too small) stack size for threads on OS X,
|
||||
+ // which also affects the thread pool.
|
||||
+ // See also:
|
||||
+ // https://bugreports.qt.io/browse/QTBUG-2568
|
||||
+ // This fix can also be found in Chromium:
|
||||
+ // https://chromium.googlesource.com/chromium/src.git/+/master/base/threading/platform_thread_mac.mm#186
|
||||
+
|
||||
+ // The Mac OS X default for a pthread stack size is 512kB.
|
||||
+ // Libc-594.1.4/pthreads/pthread.c's pthread_attr_init uses
|
||||
+ // DEFAULT_STACK_SIZE for this purpose.
|
||||
+ //
|
||||
+ // 512kB isn't quite generous enough for some deeply recursive threads that
|
||||
+ // otherwise request the default stack size by specifying 0. Here, adopt
|
||||
+ // glibc's behavior as on Linux, which is to use the current stack size
|
||||
+ // limit (ulimit -s) as the default stack size. See
|
||||
+ // glibc-2.11.1/nptl/nptl-init.c's __pthread_initialize_minimal_internal. To
|
||||
+ // avoid setting the limit below the Mac OS X default or the minimum usable
|
||||
+ // stack size, these values are also considered. If any of these values
|
||||
+ // can't be determined, or if stack size is unlimited (ulimit -s unlimited),
|
||||
+ // stack_size is left at 0 to get the system default.
|
||||
+ //
|
||||
+ // Mac OS X normally only applies ulimit -s to the main thread stack. On
|
||||
+ // contemporary OS X and Linux systems alike, this value is generally 8MB
|
||||
+ // or in that neighborhood.
|
||||
+ size_t default_stack_size = 0;
|
||||
+ struct rlimit stack_rlimit;
|
||||
+ if (pthread_attr_getstacksize(&attr, &default_stack_size) == 0 &&
|
||||
+ getrlimit(RLIMIT_STACK, &stack_rlimit) == 0 &&
|
||||
+ stack_rlimit.rlim_cur != RLIM_INFINITY) {
|
||||
+ default_stack_size =
|
||||
+ std::max(std::max(default_stack_size,
|
||||
+ static_cast<size_t>(PTHREAD_STACK_MIN)),
|
||||
+ static_cast<size_t>(stack_rlimit.rlim_cur));
|
||||
+ }
|
||||
+ d->stackSize = default_stack_size;
|
||||
+ }
|
||||
if (d->stackSize > 0) {
|
||||
#if defined(_POSIX_THREAD_ATTR_STACKSIZE) && (_POSIX_THREAD_ATTR_STACKSIZE-0 > 0)
|
||||
int code = pthread_attr_setstacksize(&attr, d->stackSize);
|
|
@ -1,21 +0,0 @@
|
|||
qmakeConfigurePhase() {
|
||||
runHook preConfigure
|
||||
|
||||
$QMAKE PREFIX=$out $qmakeFlags
|
||||
|
||||
if ! [[ -v enableParallelBuilding ]]; then
|
||||
enableParallelBuilding=1
|
||||
echo "qmake4Hook: enabled parallel building"
|
||||
fi
|
||||
|
||||
if ! [[ -v enableParallelInstalling ]]; then
|
||||
enableParallelInstalling=1
|
||||
echo "qmake: enabled parallel installing"
|
||||
fi
|
||||
|
||||
runHook postConfigure
|
||||
}
|
||||
|
||||
export QMAKE=@qt4@/bin/qmake
|
||||
|
||||
configurePhase=qmakeConfigurePhase
|
|
@ -1,17 +0,0 @@
|
|||
Calling qsettings before constructing qapplications causes a dead-lock.
|
||||
|
||||
http://sourceforge.net/tracker/?func=detail&aid=3168620&group_id=4932&atid=104932
|
||||
http://developer.qt.nokia.com/forums/viewthread/10365
|
||||
|
||||
|
||||
--- ./src/corelib/io/qsettings.cpp.orig
|
||||
+++ ./src/corelib/io/qsettings.cpp
|
||||
@@ -122,7 +122,7 @@
|
||||
Q_GLOBAL_STATIC(ConfFileCache, unusedCacheFunc)
|
||||
Q_GLOBAL_STATIC(PathHash, pathHashFunc)
|
||||
Q_GLOBAL_STATIC(CustomFormatVector, customFormatVectorFunc)
|
||||
-Q_GLOBAL_STATIC(QMutex, globalMutex)
|
||||
+Q_GLOBAL_STATIC_WITH_ARGS(QMutex, globalMutex, (QMutex::Recursive))
|
||||
static QSettings::Format globalDefaultFormat = QSettings::NativeFormat;
|
||||
|
||||
#ifndef Q_OS_WIN
|
|
@ -1,11 +0,0 @@
|
|||
--- a/qmake/generators/unix/unixmake.cpp
|
||||
+++ b/qmake/generators/unix/unixmake.cpp
|
||||
@@ -831,7 +831,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
|
||||
else if(project->first("TEMPLATE") == "app" && !project->isEmpty("QMAKE_STRIPFLAGS_APP"))
|
||||
ret += " " + var("QMAKE_STRIPFLAGS_APP");
|
||||
if(bundle)
|
||||
- ret = " \"" + dst_targ + "/Contents/MacOS/$(QMAKE_TARGET)\"";
|
||||
+ ret += " \"" + dst_targ + "/Contents/MacOS/$(QMAKE_TARGET)\"";
|
||||
else
|
||||
ret += " \"" + dst_targ + "\"";
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
--- qt-everywhere-opensource-src-4.8.5/src/corelib/codecs/qiconvcodec.cpp.orig
|
||||
+++ qt-everywhere-opensource-src-4.8.5/src/corelib/codecs/qiconvcodec.cpp
|
||||
@@ -62,7 +62,7 @@
|
||||
#elif defined(Q_OS_AIX)
|
||||
# define NO_BOM
|
||||
# define UTF16 "UCS-2"
|
||||
-#elif defined(Q_OS_FREEBSD) || defined(Q_OS_MAC)
|
||||
+#elif defined(Q_OS_FREEBSD) || defined(Q_OS_MAC) || (defined(Q_OS_LINUX) && !defined(__GLIBC__))
|
||||
# define NO_BOM
|
||||
# if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
# define UTF16 "UTF-16BE"
|
|
@ -1,14 +0,0 @@
|
|||
--- qt-everywhere-opensource-src-4.8.5/mkspecs/linux-g++/qplatformdefs.h.orig
|
||||
+++ qt-everywhere-opensource-src-4.8.5/mkspecs/linux-g++/qplatformdefs.h
|
||||
@@ -86,11 +86,7 @@
|
||||
|
||||
#undef QT_SOCKLEN_T
|
||||
|
||||
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
|
||||
#define QT_SOCKLEN_T socklen_t
|
||||
-#else
|
||||
-#define QT_SOCKLEN_T int
|
||||
-#endif
|
||||
|
||||
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
|
||||
#define QT_SNPRINTF ::snprintf
|
|
@ -1,33 +0,0 @@
|
|||
--- 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 @@
|
||||
*-g++*)
|
||||
# Check gcc's version
|
||||
case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
|
||||
- 5*|4*|3.4*)
|
||||
+ 9*|8*|7*|6*|5*|4*|3.4*)
|
||||
;;
|
||||
3.3*)
|
||||
canBuildWebKit="no"
|
||||
@@ -8060,7 +8060,7 @@
|
||||
3.*)
|
||||
COMPILER_VERSION="3.*"
|
||||
;;
|
||||
- 5*|4.*)
|
||||
+ 9*|8*|7*|6*|5*|4.*)
|
||||
COMPILER_VERSION="4"
|
||||
;;
|
||||
*)
|
||||
--- 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 @@
|
||||
ForegroundShift = 10,
|
||||
BackgroundShift = 20,
|
||||
SpecialShift = 20,
|
||||
- ForegroundMask = ((1 << ForegroundShift) - 1) << ForegroundShift,
|
||||
- BackgroundMask = ((1 << BackgroundShift) - 1) << BackgroundShift
|
||||
+ ForegroundMask = 0x1f << ForegroundShift,
|
||||
+ BackgroundMask = 0x7 << BackgroundShift
|
||||
};
|
||||
|
||||
public:
|
|
@ -1,398 +0,0 @@
|
|||
--- 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.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
|
||||
--- 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,\
|
||||
--- 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;
|
||||
}
|
||||
--- 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 @@
|
||||
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 @@
|
||||
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, 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_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_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_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 @@
|
||||
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)
|
|
@ -1506,6 +1506,7 @@ mapAliases ({
|
|||
qt512 = throw "Qt 5 versions prior to 5.15 are no longer supported upstream and have been removed"; # Added 2022-11-24
|
||||
qt514 = throw "Qt 5 versions prior to 5.15 are no longer supported upstream and have been removed"; # Added 2022-11-24
|
||||
qt515 = qt5; # Added 2022-11-24
|
||||
qt4 = throw "qt4 has been removed from nixpkgs, because it's been EOL since the end of 2015"; # Added 2022-05-09
|
||||
qt5ct = libsForQt5.qt5ct; # Added 2021-12-27
|
||||
qt6ct = qt6Packages.qt6ct; # Added 2023-03-07
|
||||
qtcurve = libsForQt5.qtcurve; # Added 2020-11-07
|
||||
|
|
|
@ -24758,34 +24758,6 @@ with pkgs;
|
|||
|
||||
quartoMinimal = callPackage ../development/libraries/quarto { rWrapper = null; python3 = null; };
|
||||
|
||||
qt4 = qt48;
|
||||
|
||||
qt48 = callPackage ../development/libraries/qt-4.x/4.8 {
|
||||
# GNOME dependencies are not used unless gtkStyle == true
|
||||
inherit (gnome2) libgnomeui GConf gnome_vfs;
|
||||
cups = if stdenv.isLinux then cups else null;
|
||||
|
||||
# XXX: mariadb doesn't built on fbsd as of nov 2015
|
||||
libmysqlclient = if (!stdenv.isFreeBSD) then libmysqlclient else null;
|
||||
|
||||
inherit (darwin) libobjc;
|
||||
inherit (darwin.apple_sdk.frameworks) ApplicationServices OpenGL Cocoa AGL;
|
||||
};
|
||||
|
||||
qmake48Hook = makeSetupHook {
|
||||
name = "qmake4.8-hook";
|
||||
substitutions = { qt4 = qt48; };
|
||||
} ../development/libraries/qt-4.x/4.8/qmake-hook.sh;
|
||||
|
||||
qmake4Hook = qmake48Hook;
|
||||
|
||||
qt48Full = qt48.override {
|
||||
docs = true;
|
||||
demos = true;
|
||||
examples = true;
|
||||
developerBuild = true;
|
||||
};
|
||||
|
||||
qt5 = recurseIntoAttrs (makeOverridable
|
||||
(import ../development/libraries/qt-5/5.15) {
|
||||
inherit (__splicedPackages)
|
||||
|
|
Loading…
Reference in a new issue