diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-28 11:30:31 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-28 11:30:49 +0200 |
commit | f64d84698eb3f4d833e846336ff99a73331c31f7 (patch) | |
tree | 1120886b680851bc8b8f8d337af3503ecd4a3d71 /pkgs/development/libraries/qt-5/qt-5.3.nix | |
parent | 3e4a382d6753a057256c7ef1e9f52ae9e07bd677 (diff) | |
parent | 30431e71608576baf880567b2894ad2a542f8d5e (diff) | |
download | nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.gz nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.bz2 nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.lz nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.xz nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.zst nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.zip |
Merge remote-tracking branch 'origin/master' into staging
Conflicts: pkgs/applications/audio/espeak/edit.nix pkgs/applications/audio/lmms/default.nix pkgs/desktops/e18/enlightenment.nix pkgs/games/exult/default.nix pkgs/os-specific/linux/alsa-plugins/default.nix
Diffstat (limited to 'pkgs/development/libraries/qt-5/qt-5.3.nix')
-rw-r--r-- | pkgs/development/libraries/qt-5/qt-5.3.nix | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/pkgs/development/libraries/qt-5/qt-5.3.nix b/pkgs/development/libraries/qt-5/qt-5.3.nix new file mode 100644 index 000000000000..fdda7559d7ae --- /dev/null +++ b/pkgs/development/libraries/qt-5/qt-5.3.nix @@ -0,0 +1,162 @@ +{ stdenv, fetchurl, substituteAll, libXrender, libXext +, libXfixes, freetype, fontconfig, zlib, libjpeg, libpng +, mesaSupported, mesa, mesa_glu, openssl, dbus, cups, pkgconfig +, libtiff, glib, icu, mysql, postgresql, sqlite, perl, coreutils, libXi +, gdk_pixbuf, python, gdb, xlibs, libX11, libxcb, xcbutil, xcbutilimage +, xcbutilkeysyms, xcbutilwm,udev, libxml2, libxslt, pcre, libxkbcommon +, alsaLib, gstreamer, gst_plugins_base +, pulseaudio, bison, flex, gperf, ruby, libwebp +, flashplayerFix ? false +, gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs +, buildDocs ? false +, buildExamples ? false +, buildTests ? false +, developerBuild ? false +}: + +with stdenv.lib; + +let + v_maj = "5.3"; + v_min = "0"; + ver = "${v_maj}.${v_min}"; +in + +stdenv.mkDerivation rec { + name = "qt-${ver}"; + + src = fetchurl { + url = "http://download.qt-project.org/official_releases/qt/" + + "${v_maj}/${ver}/single/qt-everywhere-opensource-src-${ver}.tar.gz"; + sha256 = "09gp19377zpqyfzk063b3pjz8gjm2x7xsj71bdpmnhs1scz0khcj"; + }; + + # The version property must be kept because it will be included into the QtSDK package name + version = ver; + + prePatch = '' + substituteInPlace configure --replace /bin/pwd pwd + substituteInPlace qtbase/configure --replace /bin/pwd pwd + substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls + sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf + ''; + + patches = + [ ./glib-2.32.patch + (substituteAll { + src = ./qt-5.3-dlopen-absolute-paths.patch; + inherit cups icu libXfixes; + glibc = stdenv.gcc.libc; + openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path"; + }) + ] ++ optional gtkStyle (substituteAll { + src = ./dlopen-gtkstyle.patch; + # substituteAll ignores env vars starting with capital letter + gconf = GConf; + inherit gnome_vfs libgnomeui gtk; + }) + ++ optional flashplayerFix (substituteAll { + src = ./dlopen-webkit-nsplugin.patch; + inherit gtk gdk_pixbuf; + }); + + preConfigure = '' + export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$PWD/qttools/lib:$LD_LIBRARY_PATH" + export MAKEFLAGS=-j$NIX_BUILD_CORES + ''; + + prefixKey = "-prefix "; + + # -no-eglfs, -no-directfb, -no-linuxfb and -no-kms because of the current minimalist mesa + # TODO Remove obsolete and useless flags once the build will be totally mastered + configureFlags = '' + -verbose + -confirm-license + -opensource + + -release + -shared + -c++11 + ${optionalString developerBuild "-developer-build"} + -largefile + -accessibility + -rpath + -optimized-qmake + -strip + -reduce-relocations + -system-proxies + + -gui + -widgets + -opengl desktop + -qml-debug + -nis + -iconv + -icu + -pch + -glib + -xcb + -qpa xcb + -${optionalString (cups == null) "no-"}cups + + -no-eglfs + -no-directfb + -no-linuxfb + -no-kms + + -system-zlib + -system-libpng + -system-libjpeg + -system-xcb + -system-xkbcommon + -openssl-linked + -dbus-linked + + -system-sqlite + -${if mysql != null then "plugin" else "no"}-sql-mysql + -${if postgresql != null then "plugin" else "no"}-sql-psql + + -make libs + -make tools + -${optionalString (buildExamples == false) "no"}make examples + -${optionalString (buildTests == false) "no"}make tests + ''; + + propagatedBuildInputs = [ + xlibs.libXcomposite libX11 libxcb libXext libXrender libXi + fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre + zlib libjpeg libpng libtiff sqlite icu + libwebp alsaLib gstreamer gst_plugins_base pulseaudio + xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon + ] + # 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 + ++ optionals mesaSupported [ mesa mesa_glu ] + ++ optional (cups != null) cups + ++ optional (mysql != null) mysql + ++ optional (postgresql != null) postgresql; + + buildInputs = [ gdb bison flex gperf ruby ]; + + nativeBuildInputs = [ python perl pkgconfig ]; + + postInstall = + '' + ${optionalString buildDocs '' + make docs && make install_docs + ''} + + # Don't retain build-time dependencies like gdb and ruby. + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri + ''; + + enableParallelBuilding = true; # often fails on Hydra, as well as qt4 + + meta = { + homepage = http://qt-project.org; + description = "A cross-platform application framework for C++"; + license = "GPL/LGPL"; + maintainers = [ maintainers.bbenoist maintainers.qknight ]; + platforms = platforms.linux; + }; +} |