diff options
Diffstat (limited to 'pkgs/development/libraries')
31 files changed, 25 insertions, 1739 deletions
diff --git a/pkgs/development/libraries/dssi/default.nix b/pkgs/development/libraries/dssi/default.nix index 697ff1a857b..322c689ba11 100644 --- a/pkgs/development/libraries/dssi/default.nix +++ b/pkgs/development/libraries/dssi/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, ladspaH, libjack2, liblo, alsa-lib, qt4, libX11, libsndfile, libSM +{ lib, stdenv, fetchurl, ladspaH, libjack2, liblo, alsa-lib, libX11, libsndfile, libSM , libsamplerate, libtool, autoconf, automake, xorgproto, libICE, pkg-config }: @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoconf automake pkg-config ]; buildInputs = - [ ladspaH libjack2 liblo alsa-lib qt4 libX11 libsndfile libSM + [ ladspaH libjack2 liblo alsa-lib libX11 libsndfile libSM libsamplerate libtool xorgproto libICE ]; diff --git a/pkgs/development/libraries/libjreen/default.nix b/pkgs/development/libraries/libjreen/default.nix deleted file mode 100644 index 5a70e4b01dd..00000000000 --- a/pkgs/development/libraries/libjreen/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, stdenv, fetchurl, cmake, qt4, pkg-config, gsasl }: - -stdenv.mkDerivation rec { - pname = "libjreen"; - version = "1.2.0"; - - src = fetchurl { - url = "https://qutim.org/dwnl/73/${pname}-${version}.tar.bz2"; - sha256 = "14nwwk40xx8w6x7yaysgcr0lgzhs7l064f7ikp32s5y9a8mmp582"; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ qt4 gsasl ]; - - meta = { - description = "C++ Jabber library using Qt framework"; - homepage = "https://qutim.org/jreen/"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/development/libraries/libuev/default.nix b/pkgs/development/libraries/libuev/default.nix new file mode 100644 index 00000000000..1ec1590428d --- /dev/null +++ b/pkgs/development/libraries/libuev/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook }: + +stdenv.mkDerivation rec { + pname = "libuev"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "troglobit"; + repo = "libuev"; + rev = "v${version}"; + hash = "sha256-x6l7CqlZ82kc8shAf2SxgIa4ESu0fTtnOgGz5joVCEY="; + }; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + + meta = with lib; { + description = "Lightweight event loop library for Linux epoll() family APIs"; + homepage = "https://codedocs.xyz/troglobit/libuev/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ vifino ]; + }; +} diff --git a/pkgs/development/libraries/ntrack/default.nix b/pkgs/development/libraries/ntrack/default.nix deleted file mode 100644 index 3d8f057fc80..00000000000 --- a/pkgs/development/libraries/ntrack/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchurl, qt4, pkg-config, libnl, python3 }: - -stdenv.mkDerivation rec { - pname = "ntrack"; - version = "016"; - - src = fetchurl { - url = "https://launchpad.net/ntrack/main/${version}/+download/${pname}-${version}.tar.gz"; - sha256 = "037ig5y0mp327m0hh4pnfr3vmsk3wrxgfjy3645q4ws9vdhx807w"; - }; - - buildInputs = [ libnl qt4 ]; - - nativeBuildInputs = [ pkg-config python3 ]; - - # error: ISO C does not support '__FUNCTION__' predefined identifier [-Werror=pedantic] - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - - configureFlags = [ "--without-gobject" "CFLAGS=--std=gnu99" ]; - - # Remove this patch after version 016 - patches = [ ./libnl-fix.patch ]; - - postPatch = '' - sed -e "s@/usr\(/lib/ntrack/modules/\)@$out&@" -i common/ntrack.c - ''; - - meta = with lib; { - description = "Network Connectivity Tracking library for Desktop Applications"; - homepage = "https://launchpad.net/ntrack"; - platforms = platforms.linux; - license = licenses.lgpl3Plus; - }; -} diff --git a/pkgs/development/libraries/ntrack/libnl-fix.patch b/pkgs/development/libraries/ntrack/libnl-fix.patch deleted file mode 100644 index 806a0178ec8..00000000000 --- a/pkgs/development/libraries/ntrack/libnl-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./modules/ntrack-libnl.c.orig 2013-12-02 11:31:54.749215448 -0600 -+++ ./modules/ntrack-libnl.c 2013-12-02 11:34:46.597684553 -0600 -@@ -530,7 +530,7 @@ - op_default_route_disappeared ((struct _ntrack_monitor_arch*) self, nl_info); - } else if (nl_info->topmost_route && topmost_route) { - int diff_bits; -- if ((diff_bits = (route_obj_ops.oo_id_attrs | ROUTE_ATTR_OIF -+ if ((diff_bits = (nl_object_get_id_attrs(OBJ_CAST(topmost_route)) | ROUTE_ATTR_OIF - | ROUTE_ATTR_GATEWAY) & - nl_object_diff (OBJ_CAST (nl_info->topmost_route), - OBJ_CAST (topmost_route)))) { diff --git a/pkgs/development/libraries/prison/default.nix b/pkgs/development/libraries/prison/default.nix deleted file mode 100644 index 71f8596c646..00000000000 --- a/pkgs/development/libraries/prison/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, stdenv, fetchurl, cmake, qrencode, qt4, libdmtx }: - -stdenv.mkDerivation rec { - pname = "prison"; - version = "1.0"; - - src = fetchurl { - url = "mirror://kde/stable/prison/${version}/src/prison-${version}.tar.gz"; - sha256 = "08hkzzda36jpdywjqlyzcvli7cx17h4l9yffzsdnhdd788n28krr"; - }; - - buildInputs = [ qt4 qrencode libdmtx ]; - - nativeBuildInputs = [ cmake ]; - - meta = { - description = "Qt4 library for QR-codes"; - license = lib.licenses.mit; - inherit (qt4.meta) platforms; - }; -} diff --git a/pkgs/development/libraries/qimageblitz/default.nix b/pkgs/development/libraries/qimageblitz/default.nix deleted file mode 100644 index e838eb07201..00000000000 --- a/pkgs/development/libraries/qimageblitz/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{lib, stdenv, fetchurl, cmake, qt4}: - -stdenv.mkDerivation rec { - pname = "qimageblitz"; - version = "0.0.4"; - - src = fetchurl { - url = "mirror://sourceforge/qimageblitz/qimageblitz-${version}.tar.bz2"; - sha256 = "0pnaf3qi7rgkxzs2mssmslb3f9ya4cyx09wzwlis3ppyvf72j0p9"; - }; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ qt4 ]; - - patches = [ ./qimageblitz-9999-exec-stack.patch ]; - - meta = { - description = "Graphical effect and filter library for KDE4"; - license = lib.licenses.bsd2; - homepage = "http://qimageblitz.sourceforge.net"; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/development/libraries/qimageblitz/qimageblitz-9999-exec-stack.patch b/pkgs/development/libraries/qimageblitz/qimageblitz-9999-exec-stack.patch deleted file mode 100644 index 8692c240f7b..00000000000 --- a/pkgs/development/libraries/qimageblitz/qimageblitz-9999-exec-stack.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -uar qimageblitz/blitz/asm_scale.S qimageblitz~/blitz/asm_scale.S ---- qimageblitz-orig/blitz/asm_scale.S 2007-10-17 01:17:57.000000000 +0200 -+++ qimageblitz/blitz/asm_scale.S 2007-10-17 01:19:12.000000000 +0200 -@@ -814,3 +814,7 @@ - SIZE(qimageScale_mmx_AARGBA) - - #endif -+#if defined(__linux__) && defined(__ELF__) -+.section .note.GNU-stack,"",%progbits -+#endif -+ diff --git a/pkgs/development/libraries/qscintilla-qt4/default.nix b/pkgs/development/libraries/qscintilla-qt4/default.nix deleted file mode 100644 index 23daedd217e..00000000000 --- a/pkgs/development/libraries/qscintilla-qt4/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ stdenv -, lib -, fetchurl -, unzip -, qt4 -, qmake4Hook -}: - -stdenv.mkDerivation rec { - pname = "qscintilla-qt4"; - version = "2.11.6"; - - src = fetchurl { - url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz"; - sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc="; - }; - - sourceRoot = "QScintilla-${version}/Qt4Qt5"; - - buildInputs = [ qt4 ]; - - nativeBuildInputs = [ unzip qmake4Hook ]; - - patches = [ - ./fix-qt4-build.patch - ]; - - # Make sure that libqscintilla2.so is available in $out/lib since it is expected - # by some packages such as sqlitebrowser - postFixup = '' - ln -s $out/lib/libqscintilla2_qt4.so $out/lib/libqscintilla2.so - ''; - - dontWrapQtApps = true; - - postPatch = '' - substituteInPlace qscintilla.pro \ - --replace '$$[QT_INSTALL_LIBS]' $out/lib \ - --replace '$$[QT_INSTALL_HEADERS]' $out/include \ - --replace '$$[QT_INSTALL_TRANSLATIONS]' $out/translations \ - --replace '$$[QT_HOST_DATA]/mkspecs' $out/mkspecs \ - --replace '$$[QT_INSTALL_DATA]/mkspecs' $out/mkspecs \ - --replace '$$[QT_INSTALL_DATA]' $out/share - ''; - - meta = with lib; { - description = "A Qt port of the Scintilla text editing library"; - longDescription = '' - QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor - control. - - As well as features found in standard text editing components, - QScintilla includes features especially useful when editing and - debugging source code. These include support for syntax styling, - error indicators, code completion and call tips. The selection - margin can contain markers like those used in debuggers to - indicate breakpoints and the current line. Styling choices are - more open than with many editors, allowing the use of - proportional fonts, bold and italics, multiple foreground and - background colours and multiple fonts. - ''; - homepage = "https://www.riverbankcomputing.com/software/qscintilla/intro"; - license = with licenses; [ gpl3 ]; # and commercial - maintainers = with maintainers; [ peterhoeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/development/libraries/qscintilla-qt4/fix-qt4-build.patch b/pkgs/development/libraries/qscintilla-qt4/fix-qt4-build.patch deleted file mode 100644 index 520a55b1ea2..00000000000 --- a/pkgs/development/libraries/qscintilla-qt4/fix-qt4-build.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur QScintilla_gpl-2.11.2/Qt4Qt5/Qsci/qsciscintillabase.h QScintilla_gpl-2.11.2-fix/Qt4Qt5/Qsci/qsciscintillabase.h ---- Qt4Qt5/Qsci/qsciscintillabase.h 2019-06-25 14:49:27.000000000 +0200 -+++ Qt4Qt5-fix/Qsci/qsciscintillabase.h 2019-10-04 10:22:26.337474261 +0200 -@@ -27,6 +27,7 @@ - #include <QByteArray> - #include <QPoint> - #include <QTimer> -+#include <QUrl> - - #include <Qsci/qsciglobal.h> - diff --git a/pkgs/development/libraries/qt-4.x/4.8/clang-5-darwin.patch b/pkgs/development/libraries/qt-4.x/4.8/clang-5-darwin.patch deleted file mode 100644 index 7b181f3ad89..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/clang-5-darwin.patch +++ /dev/null @@ -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 diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix deleted file mode 100644 index a8257a36d39..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/default.nix +++ /dev/null @@ -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" ]; - }; -} diff --git a/pkgs/development/libraries/qt-4.x/4.8/dlopen-absolute-paths.diff b/pkgs/development/libraries/qt-4.x/4.8/dlopen-absolute-paths.diff deleted file mode 100644 index 4c64e9e26e3..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/dlopen-absolute-paths.diff +++ /dev/null @@ -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) \ diff --git a/pkgs/development/libraries/qt-4.x/4.8/dlopen-gtkstyle.diff b/pkgs/development/libraries/qt-4.x/4.8/dlopen-gtkstyle.diff deleted file mode 100644 index a1c9238be1a..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/dlopen-gtkstyle.diff +++ /dev/null @@ -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); - } diff --git a/pkgs/development/libraries/qt-4.x/4.8/glib-2.32.patch b/pkgs/development/libraries/qt-4.x/4.8/glib-2.32.patch deleted file mode 100644 index 4593c1b4ba8..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/glib-2.32.patch +++ /dev/null @@ -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 - diff --git a/pkgs/development/libraries/qt-4.x/4.8/kill-legacy-darwin-apis.patch b/pkgs/development/libraries/qt-4.x/4.8/kill-legacy-darwin-apis.patch deleted file mode 100644 index c1338e98d85..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/kill-legacy-darwin-apis.patch +++ /dev/null @@ -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; diff --git a/pkgs/development/libraries/qt-4.x/4.8/libressl.patch b/pkgs/development/libraries/qt-4.x/4.8/libressl.patch deleted file mode 100644 index 5432610d9dc..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/libressl.patch +++ /dev/null @@ -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; - } diff --git a/pkgs/development/libraries/qt-4.x/4.8/parallel-configure.patch b/pkgs/development/libraries/qt-4.x/4.8/parallel-configure.patch deleted file mode 100644 index b9b9d6d0a68..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/parallel-configure.patch +++ /dev/null @@ -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 diff --git a/pkgs/development/libraries/qt-4.x/4.8/patch-qthread-stacksize.diff b/pkgs/development/libraries/qt-4.x/4.8/patch-qthread-stacksize.diff deleted file mode 100644 index 53a4c70ac3a..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/patch-qthread-stacksize.diff +++ /dev/null @@ -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); diff --git a/pkgs/development/libraries/qt-4.x/4.8/qmake-hook.sh b/pkgs/development/libraries/qt-4.x/4.8/qmake-hook.sh deleted file mode 100644 index b024f52f204..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qmake-hook.sh +++ /dev/null @@ -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 diff --git a/pkgs/development/libraries/qt-4.x/4.8/qsettings-recursive-global-mutex.patch b/pkgs/development/libraries/qt-4.x/4.8/qsettings-recursive-global-mutex.patch deleted file mode 100644 index 229123c54f7..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qsettings-recursive-global-mutex.patch +++ /dev/null @@ -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 diff --git a/pkgs/development/libraries/qt-4.x/4.8/qt-4.8.7-unixmake-darwin.patch b/pkgs/development/libraries/qt-4.x/4.8/qt-4.8.7-unixmake-darwin.patch deleted file mode 100644 index 99a36a24fe4..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qt-4.8.7-unixmake-darwin.patch +++ /dev/null @@ -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 + "\""; - } diff --git a/pkgs/development/libraries/qt-4.x/4.8/qt-musl-iconv-no-bom.patch b/pkgs/development/libraries/qt-4.x/4.8/qt-musl-iconv-no-bom.patch deleted file mode 100644 index 35380ad6714..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qt-musl-iconv-no-bom.patch +++ /dev/null @@ -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" diff --git a/pkgs/development/libraries/qt-4.x/4.8/qt-musl.patch b/pkgs/development/libraries/qt-4.x/4.8/qt-musl.patch deleted file mode 100644 index 90b9ccda08c..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qt-musl.patch +++ /dev/null @@ -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 diff --git a/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch b/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch deleted file mode 100644 index dfd1d8b893b..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qt4-gcc6.patch +++ /dev/null @@ -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: diff --git a/pkgs/development/libraries/qt-4.x/4.8/qt4-openssl-1.1.patch b/pkgs/development/libraries/qt-4.x/4.8/qt4-openssl-1.1.patch deleted file mode 100644 index 1931ceb0c74..00000000000 --- a/pkgs/development/libraries/qt-4.x/4.8/qt4-openssl-1.1.patch +++ /dev/null @@ -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) diff --git a/pkgs/development/libraries/qt-mobility/default.nix b/pkgs/development/libraries/qt-mobility/default.nix deleted file mode 100644 index 7807e41b606..00000000000 --- a/pkgs/development/libraries/qt-mobility/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, qt4, libX11, coreutils, bluez, perl }: -# possible additional dependencies: pulseaudio udev networkmanager immerson qmf - -stdenv.mkDerivation rec { - version = "1.2.0"; - pname = "qt-mobility"; - src = fetchFromGitHub { - owner = "qtproject"; - repo = "qt-mobility"; - rev = "v${version}"; - sha256 = "14713pbscysd6d0b9rgm7gg145jzwvgdn22778pf2v13qzvfmy1i"; - }; - - env.NIX_CFLAGS_COMPILE = "-fpermissive"; - - configurePhase = '' - ./configure -prefix $out - ''; - - # we need to prevent the 'make install' to want to write to ${qt4}! - # according to thiago#qt@freenode these are used for the QML engine - preBuild = '' - for i in connectivity contacts feedback gallery location multimedia organizer publishsubscribe sensors serviceframework systeminfo; do - substituteInPlace plugins/declarative/$i/Makefile --replace "${qt4}/lib/qt4/imports/" "$out/lib/qt4/imports/" - done - ''; - - # Features files (*.prf) are not installed on nixos - # https://bugreports.qt-project.org/browse/QTMOBILITY-1085 - # - features/mobility.prf (/tmp/nix-build-9kh12nhf9cyplfwiws96gz414v6wgl67-qt-mobility-1.2.0.drv-0/qt-mobility-opensource-src-1.2.0) - - patchPhase = '' - # required to make the configure script work - substituteInPlace configure --replace "/bin/pwd" "${coreutils}/bin/pwd" - - # required to make /include generator work - substituteInPlace bin/syncheaders --replace "/usr/bin/perl" "${perl}/bin/perl" - - # required to make the -prefix variable parsing work - substituteInPlace bin/pathhelper --replace "/usr/bin/perl" "${perl}/bin/perl" - ''; - - buildInputs = [ qt4 libX11 bluez perl ]; - - meta = with lib; { - description = "Qt Mobility"; - homepage = "http://qt.nokia.com/products/qt-addons/mobility"; - maintainers = [ maintainers.qknight ]; - platforms = platforms.linux; - license = with licenses; [ bsd3 fdl13Plus gpl3Plus lgpl21Plus ]; - }; -} - - diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix deleted file mode 100644 index b9144954295..00000000000 --- a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, qmake4Hook , qt4, libX11, libXext }: - -stdenv.mkDerivation rec { - pname = "qtstyleplugin-kvantum-qt4"; - version = "1.0.10"; - - src = fetchFromGitHub { - owner = "tsujan"; - repo = "Kvantum"; - rev = "V${version}"; - hash = "sha256-48Blio8qHLmXSKG0c1tphXSfiwQXs0Xqwxe187nM3Ro="; - }; - - nativeBuildInputs = [ qmake4Hook ]; - buildInputs = [ qt4 libX11 libXext ]; - - sourceRoot = "${src.name}/Kvantum"; - - buildPhase = '' - runHook preBuild - qmake kvantum.pro - make - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - mkdir $TMP/kvantum - make INSTALL_ROOT="$TMP/kvantum" install - mv $TMP/kvantum/usr/ $out - mv $TMP/kvantum/${qt4}/lib $out - runHook postInstall - ''; - - meta = with lib; { - description = "SVG-based Qt4 theme engine"; - homepage = "https://github.com/tsujan/Kvantum"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = [ maintainers.bugworm ]; - }; -} diff --git a/pkgs/development/libraries/qwt/6_qt4.nix b/pkgs/development/libraries/qwt/6_qt4.nix deleted file mode 100644 index 021fa0ba57d..00000000000 --- a/pkgs/development/libraries/qwt/6_qt4.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchurl, qt4, qmake4Hook, AGL }: - -stdenv.mkDerivation rec { - pname = "qwt"; - version = "6.1.5"; - - src = fetchurl { - url = "mirror://sourceforge/qwt/qwt-${version}.tar.bz2"; - sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0"; - }; - - buildInputs = [ - qt4 - ] ++ lib.optionals stdenv.isDarwin [ AGL ]; - - nativeBuildInputs = [ qmake4Hook ]; - - enableParallelBuilding = true; - - postPatch = '' - sed -e "s|QWT_INSTALL_PREFIX.*=.*|QWT_INSTALL_PREFIX = $out|g" -i qwtconfig.pri - ''; - - # qwt.framework output includes a relative reference to itself, which breaks dependents - preFixup = - lib.optionalString stdenv.isDarwin '' - echo "Attempting to repair qwt" - install_name_tool -id "$out/lib/qwt.framework/Versions/6/qwt" "$out/lib/qwt.framework/Versions/6/qwt" - ''; - - qmakeFlags = [ "-after doc.path=$out/share/doc/qwt-${version}" ]; - - meta = with lib; { - description = "Qt widgets for technical applications"; - homepage = "http://qwt.sourceforge.net/"; - # LGPL 2.1 plus a few exceptions (more liberal) - license = lib.licenses.qwt; - platforms = platforms.linux ++ platforms.darwin; - maintainers = [ maintainers.bjornfor ]; - branch = "6"; - }; -} diff --git a/pkgs/development/libraries/smokegen/default.nix b/pkgs/development/libraries/smokegen/default.nix deleted file mode 100644 index 2a93965aeb3..00000000000 --- a/pkgs/development/libraries/smokegen/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, lib, cmake, qt4, fetchzip }: - -stdenv.mkDerivation rec { - pname = "smokegen"; - version = "4.14.3"; - - src = fetchzip { - url = "https://invent.kde.org/unmaintained/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz"; - hash = "sha256-finsoruPeJZLawIjNUJ25Pq54eaCByfALVraNQJPk7c="; - }; - - strictDeps = true; - nativeBuildInputs = [ cmake qt4 ]; - buildInputs = [ qt4 ]; - - meta = with lib; { - description = "A general purpose C++ parser with a plugin infrastructure"; - homepage = "https://invent.kde.org/unmaintained/smokegen"; - license = licenses.gpl2Only; - platforms = platforms.unix; - maintainers = with maintainers; [ uthar ]; - }; -} diff --git a/pkgs/development/libraries/smokeqt/default.nix b/pkgs/development/libraries/smokeqt/default.nix deleted file mode 100644 index 1c427b8abb7..00000000000 --- a/pkgs/development/libraries/smokeqt/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ stdenv, lib, cmake, qt4, smokegen, fetchzip }: - -stdenv.mkDerivation rec { - pname = "smokeqt"; - version = "4.14.3"; - - src = fetchzip { - url = "https://invent.kde.org/unmaintained/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz"; - hash = "sha256-8FiEGF8gduVw5I/bi2wExGUWmjIjYEhWpjpXKJGBNMg="; - }; - - strictDeps = true; - nativeBuildInputs = [ cmake smokegen ]; - buildInputs = [ qt4 ]; - - cmakeFlags = [ - "-DCMAKE_CXX_STANDARD=98" - ]; - - meta = with lib; { - description = "Bindings for the Qt libraries"; - homepage = "https://invent.kde.org/unmaintained/smokeqt"; - license = licenses.gpl2Only; - platforms = platforms.unix; - maintainers = with maintainers; [ uthar ]; - }; -} |