mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 19:51:17 +00:00
Merge pull request #3371 from qknight/qt53
qt-5.3: added attrPath="qt53Full" and "attrPath="qt53"; qt-5.2 still default
This commit is contained in:
commit
4f83b890db
|
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
|
|||
patches =
|
||||
[ ./glib-2.32.patch
|
||||
(substituteAll {
|
||||
src = ./dlopen-absolute-paths.patch;
|
||||
src = ./qt-5.2-dlopen-absolute-paths.patch;
|
||||
inherit cups icu libXfixes;
|
||||
glibc = stdenv.gcc.libc;
|
||||
openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-08-25 20:03:35.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/network/kernel/qhostinfo_unix.cpp 2013-09-25 17:43:14.047015411 +0200
|
||||
@@ -103,7 +103,7 @@
|
||||
if (!lib.load())
|
||||
#endif
|
||||
{
|
||||
- lib.setFileName(QLatin1String("resolv"));
|
||||
+ lib.setFileName(QLatin1String("@glibc@/lib/libresolv"));
|
||||
if (!lib.load())
|
||||
return;
|
||||
}
|
||||
diff -ruN qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
|
||||
--- qt-everywhere-opensource-src-5.1.1-orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-08-25 20:03:35.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp 2013-09-25 17:51:29.834674976 +0200
|
||||
@@ -379,7 +379,7 @@
|
||||
{
|
||||
extern const QString qt_gl_library_name();
|
||||
// QLibrary lib(qt_gl_library_name());
|
||||
- QLibrary lib(QLatin1String("GL"));
|
||||
+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL"));
|
||||
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
|
||||
}
|
||||
}
|
162
pkgs/development/libraries/qt-5/qt-5.3.nix
Normal file
162
pkgs/development/libraries/qt-5/qt-5.3.nix
Normal file
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -5956,6 +5956,21 @@ let
|
|||
qtLib = qt48Full;
|
||||
};
|
||||
|
||||
qt53Full = qt53.override {
|
||||
buildDocs = true;
|
||||
buildExamples = true;
|
||||
buildTests = true;
|
||||
developerBuild = true;
|
||||
};
|
||||
|
||||
qt53 = callPackage ../development/libraries/qt-5/qt-5.3.nix {
|
||||
mesa = mesa_noglu;
|
||||
cups = if stdenv.isLinux then cups else null;
|
||||
# GNOME dependencies are not used unless gtkStyle == true
|
||||
inherit (gnome) libgnomeui GConf gnome_vfs;
|
||||
bison = bison2; # error: too few arguments to function 'int yylex(...
|
||||
};
|
||||
|
||||
qt5 = callPackage ../development/libraries/qt-5 {
|
||||
mesa = mesa_noglu;
|
||||
cups = if stdenv.isLinux then cups else null;
|
||||
|
|
Loading…
Reference in a new issue