mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 07:46:09 +01:00
Remove Qt 5.4.2
This commit is contained in:
parent
3628eed9d4
commit
7c77230224
50 changed files with 0 additions and 1640 deletions
|
@ -1,116 +0,0 @@
|
|||
# Maintainer's Notes:
|
||||
#
|
||||
# Minor updates:
|
||||
# 1. Edit ./fetchsrcs.sh to point to the updated URL.
|
||||
# 2. Run ./fetchsrcs.sh.
|
||||
# 3. Build and enjoy.
|
||||
#
|
||||
# Major updates:
|
||||
# We prefer not to immediately overwrite older versions with major updates, so
|
||||
# make a copy of this directory first. After copying, be sure to delete ./tmp
|
||||
# if it exists. Then follow the minor update instructions. Be sure to check if
|
||||
# any new components have been added and package them as necessary.
|
||||
|
||||
{ pkgs
|
||||
|
||||
# options
|
||||
, developerBuild ? false
|
||||
, decryptSslTraffic ? false
|
||||
}:
|
||||
|
||||
let inherit (pkgs) makeSetupHook makeWrapper stdenv; in
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
|
||||
mirror = "http://download.qt.io";
|
||||
srcs = import ./srcs.nix { inherit mirror; inherit (pkgs) fetchurl; };
|
||||
|
||||
qtSubmodule = args:
|
||||
let
|
||||
inherit (args) name;
|
||||
inherit (srcs."${args.name}") version src;
|
||||
inherit (pkgs.stdenv) mkDerivation;
|
||||
in mkDerivation (args // {
|
||||
name = "${name}-${version}";
|
||||
inherit src;
|
||||
|
||||
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
|
||||
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig self.qmakeHook ];
|
||||
|
||||
NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true;
|
||||
dontFixLibtool = args.dontFixLibtool or true;
|
||||
|
||||
outputs = args.outputs or [ "dev" "out" ];
|
||||
setOutputFlags = false;
|
||||
|
||||
enableParallelBuilding = args.enableParallelBuilding or true;
|
||||
|
||||
meta = self.qtbase.meta // (args.meta or {});
|
||||
});
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
callPackage = self.newScope { inherit qtSubmodule srcs; };
|
||||
in {
|
||||
|
||||
qtbase = callPackage ./qtbase {
|
||||
mesa = pkgs.mesa_noglu;
|
||||
cups = if stdenv.isLinux then pkgs.cups else null;
|
||||
# GNOME dependencies are not used unless gtkStyle == true
|
||||
inherit (pkgs.gnome) libgnomeui GConf gnome_vfs;
|
||||
bison = pkgs.bison2; # error: too few arguments to function 'int yylex(...
|
||||
inherit developerBuild decryptSslTraffic;
|
||||
};
|
||||
|
||||
/* qt3d = not packaged */
|
||||
/* qtactiveqt = not packaged */
|
||||
/* qtandroidextras = not packaged */
|
||||
/* qtcanvas3d = not packaged */
|
||||
qtconnectivity = callPackage ./qtconnectivity.nix {};
|
||||
qtdeclarative = callPackage ./qtdeclarative {};
|
||||
qtdoc = callPackage ./qtdoc.nix {};
|
||||
qtenginio = callPackage ./qtenginio.nix {};
|
||||
qtgraphicaleffects = callPackage ./qtgraphicaleffects.nix {};
|
||||
qtimageformats = callPackage ./qtimageformats.nix {};
|
||||
qtlocation = callPackage ./qtlocation.nix {};
|
||||
/* qtmacextras = not packaged */
|
||||
qtmultimedia = callPackage ./qtmultimedia.nix {
|
||||
inherit (pkgs.gst_all_1) gstreamer gst-plugins-base;
|
||||
};
|
||||
qtquick1 = callPackage ./qtquick1 {};
|
||||
qtquickcontrols = callPackage ./qtquickcontrols.nix {};
|
||||
qtscript = callPackage ./qtscript {};
|
||||
qtsensors = callPackage ./qtsensors.nix {};
|
||||
qtserialport = callPackage ./qtserialport {};
|
||||
qtsvg = callPackage ./qtsvg.nix {};
|
||||
qttools = callPackage ./qttools.nix {};
|
||||
qttranslations = callPackage ./qttranslations.nix {};
|
||||
/* qtwayland = not packaged */
|
||||
/* qtwebchannel = not packaged */
|
||||
/* qtwebengine = not packaged */
|
||||
qtwebkit = callPackage ./qtwebkit {};
|
||||
qtwebkit-examples = callPackage ./qtwebkit-examples.nix {};
|
||||
qtwebsockets = callPackage ./qtwebsockets.nix {};
|
||||
/* qtwinextras = not packaged */
|
||||
qtx11extras = callPackage ./qtx11extras.nix {};
|
||||
qtxmlpatterns = callPackage ./qtxmlpatterns.nix {};
|
||||
|
||||
env = callPackage ../qt-env.nix {};
|
||||
full = env "qt-${qtbase.version}" [
|
||||
qtconnectivity qtdeclarative qtdoc qtenginio qtgraphicaleffects qtimageformats
|
||||
qtlocation qtmultimedia qtquick1 qtquickcontrols qtscript qtsensors qtserialport
|
||||
qtsvg qttools qttranslations qtwebkit qtwebkit-examples qtwebsockets qtx11extras
|
||||
qtxmlpatterns
|
||||
];
|
||||
|
||||
makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh;
|
||||
fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh;
|
||||
qmakeHook = makeSetupHook { substitutions = { qt_dev = qtbase.dev; lndir = pkgs.xorg.lndir; }; } ./qmake-hook.sh;
|
||||
|
||||
};
|
||||
|
||||
self = makeScope pkgs.newScope addPackages;
|
||||
|
||||
in self
|
|
@ -1,47 +0,0 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p coreutils findutils gnused nix wget
|
||||
|
||||
set -x
|
||||
|
||||
# The trailing slash at the end is necessary!
|
||||
RELEASE_URL="http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/"
|
||||
EXTRA_WGET_ARGS='-A *.tar.xz'
|
||||
|
||||
mkdir tmp; cd tmp
|
||||
|
||||
wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS
|
||||
|
||||
cat >../srcs.nix <<EOF
|
||||
# DO NOT EDIT! This file is generated automatically by manifest.sh
|
||||
{ fetchurl, mirror }:
|
||||
|
||||
{
|
||||
EOF
|
||||
|
||||
workdir=$(pwd)
|
||||
|
||||
find . | while read src; do
|
||||
if [[ -f "${src}" ]]; then
|
||||
url="${src:2}"
|
||||
# Sanitize file name
|
||||
filename=$(basename "$src" | tr '@' '_')
|
||||
nameversion="${filename%.tar.*}"
|
||||
name=$(echo "$nameversion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
|
||||
version=$(echo "$nameversion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
|
||||
sha256=$(nix-hash --type sha256 --base32 --flat "$src")
|
||||
cat >>../srcs.nix <<EOF
|
||||
$name = {
|
||||
version = "$version";
|
||||
src = fetchurl {
|
||||
url = "\${mirror}/$url";
|
||||
sha256 = "$sha256";
|
||||
name = "$filename";
|
||||
};
|
||||
};
|
||||
EOF
|
||||
fi
|
||||
done
|
||||
|
||||
echo "}" >>../srcs.nix
|
||||
|
||||
cd ..
|
|
@ -1,5 +0,0 @@
|
|||
fixQtModuleCMakeConfig() {
|
||||
local module="$1"
|
||||
sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \
|
||||
-i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake"
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
addQtDependency() {
|
||||
addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins"
|
||||
addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports"
|
||||
addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml"
|
||||
addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg"
|
||||
addToSearchPath XDG_DATA_DIRS "$1/share"
|
||||
}
|
||||
|
||||
wrapQtProgram() {
|
||||
local prog="$1"
|
||||
shift
|
||||
wrapProgram "$prog" \
|
||||
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
|
||||
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
|
||||
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
|
||||
--prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
makeQtWrapper() {
|
||||
local old="$1"
|
||||
local new="$2"
|
||||
shift
|
||||
shift
|
||||
makeWrapper "$old" "$new" \
|
||||
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
|
||||
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
|
||||
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
|
||||
--prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
# cannot use addToSearchPath because these directories may not exist yet
|
||||
export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins"
|
||||
export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports"
|
||||
export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml"
|
||||
export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}$out/etc/xdg"
|
||||
export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share"
|
||||
|
||||
envHooks+=(addQtDependency)
|
|
@ -1,101 +0,0 @@
|
|||
if [[ -z "$QMAKE" ]]; then
|
||||
|
||||
_qtLinkDependencyDir() {
|
||||
@lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2"
|
||||
if [ -n "$NIX_QT_SUBMODULE" ]; then
|
||||
find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs"
|
||||
fi
|
||||
}
|
||||
|
||||
_qtLinkModule() {
|
||||
if [ -d "$1/mkspecs" ]; then
|
||||
# $1 is a Qt module
|
||||
_qtLinkDependencyDir "$1" mkspecs
|
||||
|
||||
for dir in bin include lib share; do
|
||||
if [ -d "$1/$dir" ]; then
|
||||
_qtLinkDependencyDir "$1" "$dir"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
_qtRmModules() {
|
||||
cat "$out/nix-support/qt-inputs" | while read file; do
|
||||
if [ -h "$out/$file" ]; then
|
||||
rm "$out/$file"
|
||||
fi
|
||||
done
|
||||
|
||||
cat "$out/nix-support/qt-inputs" | while read file; do
|
||||
if [ -d "$out/$file" ]; then
|
||||
rmdir --ignore-fail-on-non-empty -p "$out/$file"
|
||||
fi
|
||||
done
|
||||
|
||||
rm "$out/nix-support/qt-inputs"
|
||||
}
|
||||
|
||||
_qtRmQmake() {
|
||||
rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf"
|
||||
}
|
||||
|
||||
_qtSetQmakePath() {
|
||||
export PATH="$qtOut/bin${PATH:+:}$PATH"
|
||||
}
|
||||
|
||||
_qtMultioutModuleDevs() {
|
||||
# We cannot simply set these paths in configureFlags because libQtCore retains
|
||||
# references to the paths it was built with.
|
||||
moveToOutput "bin" "${!outputDev}"
|
||||
moveToOutput "include" "${!outputDev}"
|
||||
|
||||
# The destination directory must exist or moveToOutput will do nothing
|
||||
mkdir -p "${!outputDev}/share"
|
||||
moveToOutput "share/doc" "${!outputDev}"
|
||||
}
|
||||
|
||||
qmakeConfigurePhase() {
|
||||
runHook preConfigure
|
||||
|
||||
qmake PREFIX=$out $qmakeFlags
|
||||
|
||||
runHook postConfigure
|
||||
}
|
||||
|
||||
qtOut=""
|
||||
if [[ -z "$NIX_QT_SUBMODULE" ]]; then
|
||||
qtOut=`mktemp -d`
|
||||
else
|
||||
qtOut=$out
|
||||
fi
|
||||
|
||||
mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share"
|
||||
|
||||
cp "@qt_dev@/bin/qmake" "$qtOut/bin"
|
||||
cat >"$qtOut/bin/qt.conf" <<EOF
|
||||
[Paths]
|
||||
Prefix = $qtOut
|
||||
Plugins = lib/qt5/plugins
|
||||
Imports = lib/qt5/imports
|
||||
Qml2Imports = lib/qt5/qml
|
||||
Documentation = share/doc/qt5
|
||||
EOF
|
||||
|
||||
export QMAKE="$qtOut/bin/qmake"
|
||||
|
||||
envHooks+=(_qtLinkModule)
|
||||
# Set PATH to find qmake first in a preConfigure hook
|
||||
# It must run after all the envHooks!
|
||||
postHooks+=(_qtSetQmakePath)
|
||||
|
||||
if [ -z "$dontUseQmakeConfigure" -a -z "$configurePhase" ]; then
|
||||
configurePhase=qmakeConfigurePhase
|
||||
fi
|
||||
|
||||
if [ -n "$NIX_QT_SUBMODULE" ]; then
|
||||
postInstallHooks+=(_qtRmQmake _qtRmModules)
|
||||
preFixupHooks+=(_qtMultioutModuleDevs)
|
||||
fi
|
||||
|
||||
fi
|
|
@ -1,16 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
|
||||
+++ qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
|
||||
@@ -68,10 +68,7 @@ void TableGenerator::initPossibleLocatio
|
||||
// the QTCOMPOSE environment variable
|
||||
if (qEnvironmentVariableIsSet("QTCOMPOSE"))
|
||||
m_possibleLocations.append(QString::fromLocal8Bit(qgetenv("QTCOMPOSE")));
|
||||
- m_possibleLocations.append(QStringLiteral("/usr/share/X11/locale"));
|
||||
- m_possibleLocations.append(QStringLiteral("/usr/local/share/X11/locale"));
|
||||
- m_possibleLocations.append(QStringLiteral("/usr/lib/X11/locale"));
|
||||
- m_possibleLocations.append(QStringLiteral("/usr/local/lib/X11/locale"));
|
||||
+ m_possibleLocations.append(QStringLiteral("${libX11}/share/X11/locale"));
|
||||
m_possibleLocations.append(QStringLiteral(X11_PREFIX "/share/X11/locale"));
|
||||
m_possibleLocations.append(QStringLiteral(X11_PREFIX "/lib/X11/locale"));
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/network/ssl/qsslsocket_openssl.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl.cpp
|
||||
@@ -47,7 +47,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
//#define QSSLSOCKET_DEBUG
|
||||
-//#define QT_DECRYPT_SSL_TRAFFIC
|
||||
+#define QT_DECRYPT_SSL_TRAFFIC
|
||||
|
||||
#include "qssl_p.h"
|
||||
#include "qsslsocket_openssl_p.h"
|
|
@ -1,254 +0,0 @@
|
|||
{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig
|
||||
, srcs
|
||||
|
||||
, xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi
|
||||
, xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilwm, libxkbcommon
|
||||
, fontconfig, freetype, openssl, dbus, glib, udev, libxml2, libxslt, pcre
|
||||
, zlib, libjpeg, libpng, libtiff, sqlite, icu
|
||||
|
||||
, coreutils, bison, flex, gdb, gperf, lndir, ruby
|
||||
, python, perl, pkgconfig
|
||||
|
||||
# optional dependencies
|
||||
, cups ? null
|
||||
, mysql ? null, postgresql ? null
|
||||
|
||||
# options
|
||||
, mesaSupported, mesa
|
||||
, buildExamples ? false
|
||||
, buildTests ? false
|
||||
, developerBuild ? false
|
||||
, gtkStyle ? false, libgnomeui, GConf, gnome_vfs, gtk
|
||||
, decryptSslTraffic ? false
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (srcs.qt5) version;
|
||||
system-x86_64 = lib.elem stdenv.system lib.platforms.x86_64;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
||||
name = "qtbase-${version}";
|
||||
inherit version;
|
||||
|
||||
srcs = with srcs; [ qt5.src qtbase.src ];
|
||||
|
||||
sourceRoot = "qt-everywhere-opensource-src-${version}";
|
||||
|
||||
outputs = [ "dev" "out" ];
|
||||
|
||||
postUnpack = ''
|
||||
mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase
|
||||
'';
|
||||
|
||||
patches =
|
||||
copyPathsToStore (lib.readPathsFromFile ./. ./series)
|
||||
++ lib.optional gtkStyle ./dlopen-gtkstyle.patch
|
||||
++ lib.optional decryptSslTraffic ./decrypt-ssl-traffic.patch
|
||||
++ lib.optional mesaSupported [ ./dlopen-gl.patch ./mkspecs-libgl.patch ];
|
||||
|
||||
postPatch =
|
||||
''
|
||||
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
|
||||
|
||||
sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5Config.cmake.in"
|
||||
sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5CoreMacros.cmake"
|
||||
sed -i 's/NO_DEFAULT_PATH//' "qtbase/src/gui/Qt5GuiConfigExtras.cmake.in"
|
||||
sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in"
|
||||
|
||||
substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \
|
||||
--replace "@glibc@" "${stdenv.cc.libc.out}"
|
||||
substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \
|
||||
--replace "@glibc@" "${stdenv.cc.libc.out}"
|
||||
|
||||
substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \
|
||||
--replace "@libXcursor@" "${libXcursor.out}"
|
||||
|
||||
substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \
|
||||
--replace "@openssl@" "${openssl.out}"
|
||||
|
||||
substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \
|
||||
--replace "@dbus_libs@" "${dbus.lib}"
|
||||
|
||||
substituteInPlace \
|
||||
qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \
|
||||
--replace "@libX11@" "${libX11.out}"
|
||||
''
|
||||
+ lib.optionalString gtkStyle ''
|
||||
substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk.out}"
|
||||
substituteInPlace qtbase/src/widgets/styles/qgtkstyle_p.cpp \
|
||||
--replace "@gtk@" "${gtk.out}" \
|
||||
--replace "@gnome_vfs@" "${gnome_vfs}" \
|
||||
--replace "@libgnomeui@" "${libgnomeui}" \
|
||||
--replace "@gconf@" "${GConf}"
|
||||
''
|
||||
+ lib.optionalString mesaSupported ''
|
||||
substituteInPlace \
|
||||
qtbase/src/plugins/platforms/xcb/qglxintegration.cpp \
|
||||
--replace "@mesa_lib@" "${mesa.out}"
|
||||
substituteInPlace qtbase/mkspecs/common/linux.conf \
|
||||
--replace "@mesa_lib@" "${mesa.out}" \
|
||||
--replace "@mesa_inc@" "${mesa.dev}"
|
||||
'';
|
||||
|
||||
setOutputFlags = false;
|
||||
preConfigure = ''
|
||||
export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH"
|
||||
export MAKEFLAGS=-j$NIX_BUILD_CORES
|
||||
|
||||
_multioutQtDevs() {
|
||||
# We cannot simply set these paths in configureFlags because libQtCore retains
|
||||
# references to the paths it was built with.
|
||||
moveToOutput "bin" "$dev"
|
||||
moveToOutput "include" "$dev"
|
||||
moveToOutput "mkspecs" "$dev"
|
||||
|
||||
# The destination directory must exist or moveToOutput will do nothing
|
||||
mkdir -p "$dev/share"
|
||||
moveToOutput "share/doc" "$dev"
|
||||
|
||||
mkdir -p "$dev/lib"
|
||||
lndir -silent "$out/lib" "$dev/lib"
|
||||
if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi
|
||||
if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi
|
||||
}
|
||||
preFixupHooks+=(_multioutQtDevs)
|
||||
|
||||
configureFlags+="\
|
||||
-plugindir $out/lib/qt5/plugins \
|
||||
-importdir $out/lib/qt5/imports \
|
||||
-qmldir $out/lib/qt5/qml \
|
||||
-docdir $out/share/doc/qt5"
|
||||
'';
|
||||
|
||||
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
|
||||
${lib.optionalString developerBuild "-developer-build"}
|
||||
-largefile
|
||||
-accessibility
|
||||
-rpath
|
||||
-optimized-qmake
|
||||
-strip
|
||||
-reduce-relocations
|
||||
-system-proxies
|
||||
-pkg-config
|
||||
|
||||
-gui
|
||||
-widgets
|
||||
-opengl desktop
|
||||
-qml-debug
|
||||
-nis
|
||||
-iconv
|
||||
-icu
|
||||
-pch
|
||||
-glib
|
||||
-xcb
|
||||
-qpa xcb
|
||||
-${lib.optionalString (cups == null) "no-"}cups
|
||||
-${lib.optionalString (!gtkStyle) "no-"}gtkstyle
|
||||
|
||||
-no-eglfs
|
||||
-no-directfb
|
||||
-no-linuxfb
|
||||
-no-kms
|
||||
|
||||
${lib.optionalString (!system-x86_64) "-no-sse2"}
|
||||
-no-sse3
|
||||
-no-ssse3
|
||||
-no-sse4.1
|
||||
-no-sse4.2
|
||||
-no-avx
|
||||
-no-avx2
|
||||
-no-mips_dsp
|
||||
-no-mips_dspr2
|
||||
|
||||
-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
|
||||
-${lib.optionalString (buildExamples == false) "no"}make examples
|
||||
-${lib.optionalString (buildTests == false) "no"}make tests
|
||||
'';
|
||||
|
||||
# PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag
|
||||
# if dependency paths contain the string "pq", which can occur in the hash.
|
||||
# To prevent these failures, we need to override PostgreSQL detection.
|
||||
PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq";
|
||||
|
||||
propagatedBuildInputs = [
|
||||
xlibs.libXcomposite libX11 libxcb libXext libXrender libXi
|
||||
fontconfig freetype openssl dbus glib udev libxml2 libxslt pcre
|
||||
zlib libjpeg libpng libtiff sqlite icu
|
||||
xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon
|
||||
]
|
||||
++ lib.optional mesaSupported mesa;
|
||||
|
||||
buildInputs =
|
||||
[ bison flex gperf ruby ]
|
||||
++ lib.optional developerBuild gdb
|
||||
++ lib.optional (cups != null) cups
|
||||
++ lib.optional (mysql != null) mysql.lib
|
||||
++ lib.optional (postgresql != null) postgresql
|
||||
++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf];
|
||||
|
||||
nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ];
|
||||
|
||||
# freetype-2.5.4 changed signedness of some struct fields
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
|
||||
|
||||
postFixup =
|
||||
''
|
||||
# Don't retain build-time dependencies like gdb and ruby.
|
||||
sed '/QMAKE_DEFAULT_.*DIRS/ d' -i "$dev/mkspecs/qconfig.pri"
|
||||
|
||||
fixQtModuleCMakeConfig "Concurrent"
|
||||
fixQtModuleCMakeConfig "Core"
|
||||
fixQtModuleCMakeConfig "DBus"
|
||||
fixQtModuleCMakeConfig "Gui"
|
||||
fixQtModuleCMakeConfig "Network"
|
||||
fixQtModuleCMakeConfig "OpenGL"
|
||||
fixQtModuleCMakeConfig "OpenGLExtensions"
|
||||
fixQtModuleCMakeConfig "PrintSupport"
|
||||
fixQtModuleCMakeConfig "Sql"
|
||||
fixQtModuleCMakeConfig "Test"
|
||||
fixQtModuleCMakeConfig "Widgets"
|
||||
fixQtModuleCMakeConfig "Xml"
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = http://www.qt.io;
|
||||
description = "A cross-platform application framework for C++";
|
||||
license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
|
||||
maintainers = with maintainers; [ bbenoist qknight ttuegel ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/dbus/qdbus_symbols.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/dbus/qdbus_symbols.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/dbus/qdbus_symbols.cpp
|
||||
@@ -88,7 +88,7 @@ bool qdbus_loadLibDBus()
|
||||
#ifdef Q_OS_WIN
|
||||
QLatin1String("dbus-1"),
|
||||
#endif
|
||||
- QLatin1String("libdbus-1")
|
||||
+ QLatin1String("@dbus_libs@/lib/libdbus-1")
|
||||
};
|
||||
|
||||
lib->unload();
|
|
@ -1,17 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qglxintegration.cpp
|
||||
@@ -560,7 +560,12 @@ void (*QGLXContext::getProcAddress(const
|
||||
{
|
||||
extern const QString qt_gl_library_name();
|
||||
// QLibrary lib(qt_gl_library_name());
|
||||
+ // Check system library paths first
|
||||
QLibrary lib(QLatin1String("GL"));
|
||||
+ if (!lib.load()) {
|
||||
+ // Fallback to Mesa driver
|
||||
+ lib.setFileName(QLatin1String("@mesa_lib@/lib/libGL"));
|
||||
+ }
|
||||
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
|
||||
}
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtk2painter.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/widgets/styles/qgtk2painter.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtk2painter.cpp
|
||||
@@ -96,7 +96,7 @@ static void initGtk()
|
||||
static bool initialized = false;
|
||||
if (!initialized) {
|
||||
// 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);
|
||||
|
||||
QGtk2PainterPrivate::gdk_pixmap_new = (Ptr_gdk_pixmap_new)libgtk.resolve("gdk_pixmap_new");
|
||||
QGtk2PainterPrivate::gdk_pixbuf_get_from_drawable = (Ptr_gdk_pixbuf_get_from_drawable)libgtk.resolve("gdk_pixbuf_get_from_drawable");
|
||||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtkstyle_p.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/widgets/styles/qgtkstyle_p.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/widgets/styles/qgtkstyle_p.cpp
|
||||
@@ -326,7 +326,7 @@ void QGtkStylePrivate::gtkWidgetSetFocus
|
||||
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);
|
||||
|
||||
gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");
|
||||
gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new");
|
||||
@@ -424,8 +424,8 @@ void QGtkStylePrivate::resolveGtk() cons
|
||||
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
|
||||
@@ -593,9 +593,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,17 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp
|
||||
@@ -297,10 +297,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *c
|
||||
#ifdef XCB_USE_XLIB
|
||||
static bool function_ptrs_not_initialized = true;
|
||||
if (function_ptrs_not_initialized) {
|
||||
- QLibrary xcursorLib(QLatin1String("Xcursor"), 1);
|
||||
+ QLibrary xcursorLib(QLatin1String("@libXcursor@/lib/libXcursor"), 1);
|
||||
bool xcursorFound = xcursorLib.load();
|
||||
if (!xcursorFound) { // try without the version number
|
||||
- xcursorLib.setFileName(QLatin1String("Xcursor"));
|
||||
+ xcursorLib.setFileName(QLatin1String("@libXcursor@/lib/Xcursor"));
|
||||
xcursorFound = xcursorLib.load();
|
||||
}
|
||||
if (xcursorFound) {
|
|
@ -1,26 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
@@ -611,8 +611,8 @@ static QPair<QLibrary*, QLibrary*> loadO
|
||||
#endif
|
||||
#if defined(SHLIB_VERSION_NUMBER) && !defined(Q_OS_QNX) // on QNX, the libs are always libssl.so and libcrypto.so
|
||||
// first attempt: the canonical name is libssl.so.<SHLIB_VERSION_NUMBER>
|
||||
- libssl->setFileNameAndVersion(QLatin1String("ssl"), QLatin1String(SHLIB_VERSION_NUMBER));
|
||||
- libcrypto->setFileNameAndVersion(QLatin1String("crypto"), QLatin1String(SHLIB_VERSION_NUMBER));
|
||||
+ libssl->setFileNameAndVersion(QLatin1String("@openssl@/lib/libssl"), QLatin1String(SHLIB_VERSION_NUMBER));
|
||||
+ libcrypto->setFileNameAndVersion(QLatin1String("@openssl@/lib/libcrypto"), QLatin1String(SHLIB_VERSION_NUMBER));
|
||||
if (libcrypto->load() && libssl->load()) {
|
||||
// libssl.so.<SHLIB_VERSION_NUMBER> and libcrypto.so.<SHLIB_VERSION_NUMBER> found
|
||||
return pair;
|
||||
@@ -629,8 +629,8 @@ static QPair<QLibrary*, QLibrary*> loadO
|
||||
// OS X's /usr/lib/libssl.dylib, /usr/lib/libcrypto.dylib will be picked up in the third
|
||||
// attempt, _after_ <bundle>/Contents/Frameworks has been searched.
|
||||
// iOS does not ship a system libssl.dylib, libcrypto.dylib in the first place.
|
||||
- libssl->setFileNameAndVersion(QLatin1String("ssl"), -1);
|
||||
- libcrypto->setFileNameAndVersion(QLatin1String("crypto"), -1);
|
||||
+ libssl->setFileNameAndVersion(QLatin1String("@openssl@/lib/libssl"), -1);
|
||||
+ libcrypto->setFileNameAndVersion(QLatin1String("@openssl@/lib/libcrypto"), -1);
|
||||
if (libcrypto->load() && libssl->load()) {
|
||||
// libssl.so.0 and libcrypto.so.0 found
|
||||
return pair;
|
|
@ -1,26 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qdnslookup_unix.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/network/kernel/qdnslookup_unix.cpp
|
||||
+++ qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qdnslookup_unix.cpp
|
||||
@@ -79,7 +79,7 @@ static void resolveLibrary()
|
||||
if (!lib.load())
|
||||
#endif
|
||||
{
|
||||
- lib.setFileName(QLatin1String("resolv"));
|
||||
+ lib.setFileName(QLatin1String("@glibc@/lib/resolv"));
|
||||
if (!lib.load())
|
||||
return;
|
||||
}
|
||||
Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qhostinfo_unix.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/network/kernel/qhostinfo_unix.cpp
|
||||
+++ qt-everywhere-opensource-src-5.5.1/qtbase/src/network/kernel/qhostinfo_unix.cpp
|
||||
@@ -95,7 +95,7 @@ static void resolveLibrary()
|
||||
if (!lib.load())
|
||||
#endif
|
||||
{
|
||||
- lib.setFileName(QLatin1String("resolv"));
|
||||
+ lib.setFileName(QLatin1String("@glibc@/lib/libresolv"));
|
||||
if (!lib.load())
|
||||
return;
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/mkspecs/common/linux.conf
|
||||
+++ qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf
|
||||
@@ -12,8 +12,8 @@ QMAKE_INCDIR =
|
||||
QMAKE_LIBDIR =
|
||||
QMAKE_INCDIR_X11 =
|
||||
QMAKE_LIBDIR_X11 =
|
||||
-QMAKE_INCDIR_OPENGL =
|
||||
-QMAKE_LIBDIR_OPENGL =
|
||||
+QMAKE_INCDIR_OPENGL = @mesa_inc@/include
|
||||
+QMAKE_LIBDIR_OPENGL = @mesa_lib@/lib
|
||||
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
|
||||
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
|
||||
QMAKE_INCDIR_EGL =
|
|
@ -1,26 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/kernel/qcoreapplication.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/kernel/qcoreapplication.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/kernel/qcoreapplication.cpp
|
||||
@@ -2442,6 +2442,21 @@ QStringList QCoreApplication::libraryPat
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+ // Add library paths derived from NIX_PROFILES.
|
||||
+ const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES");
|
||||
+ if (!nixProfilesEnv.isEmpty()) {
|
||||
+ QLatin1Char pathSep(' ');
|
||||
+ QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts);
|
||||
+ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
|
||||
+ it->append("/lib/qt5/plugins");
|
||||
+ QString canonicalPath = QDir(*it).canonicalPath();
|
||||
+ if (!canonicalPath.isEmpty()
|
||||
+ && !app_libpaths->contains(canonicalPath)) {
|
||||
+ app_libpaths->append(canonicalPath);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
return *(coreappdata()->app_libpaths);
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
dlopen-resolv.patch
|
||||
tzdir.patch
|
||||
dlopen-libXcursor.patch
|
||||
dlopen-openssl.patch
|
||||
dlopen-dbus.patch
|
||||
xdg-config-dirs.patch
|
||||
nix-profiles-library-paths.patch
|
||||
compose-search-path.patch
|
|
@ -1,52 +0,0 @@
|
|||
addToSearchPathOnceWithCustomDelimiter() {
|
||||
local delim="$1"
|
||||
local search="$2"
|
||||
local target="$3"
|
||||
local dirs
|
||||
local exported
|
||||
IFS="$delim" read -a dirs <<< "${!search}"
|
||||
local canonical
|
||||
if canonical=$(readlink -e "$target"); then
|
||||
for dir in ${dirs[@]}; do
|
||||
if [ "z$dir" == "z$canonical" ]; then exported=1; fi
|
||||
done
|
||||
if [ -z $exported ]; then
|
||||
eval "export ${search}=\"${!search}${!search:+$delim}$canonical\""
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
addToSearchPathOnce() {
|
||||
addToSearchPathOnceWithCustomDelimiter ':' "$@"
|
||||
}
|
||||
|
||||
propagateOnce() {
|
||||
addToSearchPathOnceWithCustomDelimiter ' ' "$@"
|
||||
}
|
||||
|
||||
_qtPropagateRuntimeDependencies() {
|
||||
for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
|
||||
if [ -d "$1/$dir" ]; then
|
||||
propagateOnce propagatedBuildInputs "$1"
|
||||
propagateOnce propagatedUserEnvPkgs "$1"
|
||||
break
|
||||
fi
|
||||
done
|
||||
addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins"
|
||||
addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports"
|
||||
addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml"
|
||||
}
|
||||
|
||||
envHooks+=(_qtPropagateRuntimeDependencies)
|
||||
|
||||
_qtMultioutDevs() {
|
||||
# This is necessary whether the package is a Qt module or not
|
||||
moveToOutput "mkspecs" "${!outputDev}"
|
||||
}
|
||||
|
||||
preFixupHooks+=(_qtMultioutDevs)
|
||||
|
||||
if [[ -z "$NIX_QT_PIC" ]]; then
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE${NIX_CFLAGS_COMPILE:+ }-fPIC"
|
||||
export NIX_QT_PIC=1
|
||||
fi
|
|
@ -1,40 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/tools/qtimezoneprivate_tz.cpp
|
||||
@@ -61,7 +61,10 @@ typedef QHash<QByteArray, QTzTimeZone> Q
|
||||
// Parse zone.tab table, assume lists all installed zones, if not will need to read directories
|
||||
static QTzTimeZoneHash loadTzTimeZones()
|
||||
{
|
||||
- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
|
||||
+ QString path = qgetenv("TZDIR");
|
||||
+ path += "/zone.tab";
|
||||
+ if (!QFile::exists(path))
|
||||
+ path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
|
||||
if (!QFile::exists(path))
|
||||
path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
|
||||
|
||||
@@ -552,12 +555,18 @@ void QTzTimeZonePrivate::init(const QByt
|
||||
if (!tzif.open(QIODevice::ReadOnly))
|
||||
return;
|
||||
} else {
|
||||
- // Open named tz, try modern path first, if fails try legacy path
|
||||
- tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
|
||||
+ // Try TZDIR first
|
||||
+ QString zoneinfoDir = qgetenv("TZDIR");
|
||||
+ zoneinfoDir += "/" + QString::fromLocal8Bit(ianaId);
|
||||
+ tzif.setFileName(zoneinfoDir);
|
||||
if (!tzif.open(QIODevice::ReadOnly)) {
|
||||
- tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
|
||||
- if (!tzif.open(QIODevice::ReadOnly))
|
||||
- return;
|
||||
+ // Open named tz, try modern path first, if fails try legacy path
|
||||
+ tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
|
||||
+ if (!tzif.open(QIODevice::ReadOnly)) {
|
||||
+ tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
|
||||
+ if (!tzif.open(QIODevice::ReadOnly))
|
||||
+ return;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings.cpp
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/io/qsettings.cpp
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings.cpp
|
||||
@@ -1128,6 +1128,24 @@ QConfFileSettingsPrivate::QConfFileSetti
|
||||
if (!application.isEmpty())
|
||||
confFiles[F_System | F_Application].reset(QConfFile::fromName(systemPath + appFile, false));
|
||||
confFiles[F_System | F_Organization].reset(QConfFile::fromName(systemPath + orgFile, false));
|
||||
+
|
||||
+#if !defined(Q_OS_WIN)
|
||||
+ // Add directories specified in $XDG_CONFIG_DIRS
|
||||
+ const QString pathEnv = QString::fromLocal8Bit(getenv("XDG_CONFIG_DIRS"));
|
||||
+ if (!pathEnv.isEmpty()) {
|
||||
+ const QStringList pathEntries = pathEnv.split(QLatin1Char(':'), QString::SkipEmptyParts);
|
||||
+ if (!pathEntries.isEmpty()) {
|
||||
+ int j = 4; // This is the number of confFiles set above -- we need to start adding $XDG_CONFIG_DIRS after those.
|
||||
+ for (int k = 0; k < pathEntries.size() && j < NumConfFiles - 1; ++k) {
|
||||
+ const QString& path = pathEntries.at(k);
|
||||
+ if (!application.isEmpty())
|
||||
+ confFiles[j++].reset(QConfFile::fromName(path + QDir::separator() + appFile, false));
|
||||
+ confFiles[j++].reset(QConfFile::fromName(path + QDir::separator() + orgFile, false));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
#else
|
||||
QString confName = getPath(format, QSettings::UserScope) + org;
|
||||
if (!application.isEmpty())
|
||||
Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings_p.h
|
||||
===================================================================
|
||||
--- qt-everywhere-opensource-src-5.4.2.orig/qtbase/src/corelib/io/qsettings_p.h
|
||||
+++ qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/io/qsettings_p.h
|
||||
@@ -240,7 +240,7 @@ public:
|
||||
F_Organization = 0x1,
|
||||
F_User = 0x0,
|
||||
F_System = 0x2,
|
||||
- NumConfFiles = 4
|
||||
+ NumConfFiles = 40 // HACK: increase NumConfFiles from 4 to 40 in order to accommodate more paths in $XDG_CONFIG_DIRS -- ellis
|
||||
#else
|
||||
SandboxConfFile = 0,
|
||||
NumConfFiles = 1
|
|
@ -1,10 +0,0 @@
|
|||
{ qtSubmodule, qtbase, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtconnectivity";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Bluetooth"
|
||||
fixQtModuleCMakeConfig "Nfc"
|
||||
'';
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
From 3f6fa74067aacd0e595e45b4ef7ce754514cb205 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sat, 17 Oct 2015 09:28:18 -0500
|
||||
Subject: [PATCH] nix profiles import paths
|
||||
|
||||
---
|
||||
src/qml/qml/qqmlimport.cpp | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
|
||||
index 5a54609..f33c2f9 100644
|
||||
--- a/src/qml/qml/qqmlimport.cpp
|
||||
+++ b/src/qml/qml/qqmlimport.cpp
|
||||
@@ -1549,6 +1549,20 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
|
||||
QString installImportsPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
|
||||
addImportPath(installImportsPath);
|
||||
|
||||
+ // Add import paths derived from NIX_PROFILES.
|
||||
+ const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES");
|
||||
+ if (!nixProfilesEnv.isEmpty()) {
|
||||
+ QLatin1Char pathSep(' ');
|
||||
+ QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts);
|
||||
+ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
|
||||
+ it->append("/lib/qt5/qml");
|
||||
+ QString canonicalPath = QDir(*it).canonicalPath();
|
||||
+ if (!canonicalPath.isEmpty()) {
|
||||
+ addImportPath(canonicalPath);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// env import paths
|
||||
QByteArray envImportPath = qgetenv("QML2_IMPORT_PATH");
|
||||
if (!envImportPath.isEmpty()) {
|
||||
--
|
||||
2.5.2
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
{ qtSubmodule, python, qtbase, qtsvg, qtxmlpatterns }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtdeclarative";
|
||||
patches = [ ./0001-nix-profiles-import-paths.patch ];
|
||||
qtInputs = [ qtbase qtsvg qtxmlpatterns ];
|
||||
nativeBuildInputs = [ python ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Qml"
|
||||
fixQtModuleCMakeConfig "Quick"
|
||||
fixQtModuleCMakeConfig "QuickTest"
|
||||
fixQtModuleCMakeConfig "QuickWidgets"
|
||||
'';
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{ qtSubmodule, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtdoc";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ qtSubmodule, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtenginio";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Enginio"
|
||||
'';
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{ qtSubmodule, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtgraphicaleffects";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{ qtSubmodule, qtbase }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtimageformats";
|
||||
qtInputs = [ qtbase ];
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{ qtSubmodule, qtbase, qtmultimedia }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtlocation";
|
||||
qtInputs = [ qtbase qtmultimedia ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Location"
|
||||
fixQtModuleCMakeConfig "Positioning"
|
||||
'';
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{ qtSubmodule, qtbase, qtdeclarative, pkgconfig
|
||||
, alsaLib, gstreamer, gst-plugins-base, libpulseaudio
|
||||
}:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtmultimedia";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
buildInputs = [
|
||||
pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio
|
||||
];
|
||||
qmakeFlags = [ "GST_VERSION=1.0" ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Multimedia"
|
||||
fixQtModuleCMakeConfig "MultimediaWidgets"
|
||||
'';
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
From bbc706b3fcb90ca3b2b51d5e3434145572152711 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sat, 17 Oct 2015 09:29:51 -0500
|
||||
Subject: [PATCH] nix profiles import paths
|
||||
|
||||
---
|
||||
src/declarative/qml/qdeclarativeimport.cpp | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
|
||||
index 9404834..d185ed5 100644
|
||||
--- a/src/declarative/qml/qdeclarativeimport.cpp
|
||||
+++ b/src/declarative/qml/qdeclarativeimport.cpp
|
||||
@@ -725,6 +725,20 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
|
||||
|
||||
addImportPath(installImportsPath);
|
||||
|
||||
+ // Add import paths derived from NIX_PROFILES.
|
||||
+ const QByteArray nixProfilesEnv = qgetenv("NIX_PROFILES");
|
||||
+ if (!nixProfilesEnv.isEmpty()) {
|
||||
+ QLatin1Char pathSep(' ');
|
||||
+ QStringList paths = QFile::decodeName(nixProfilesEnv).split(pathSep, QString::SkipEmptyParts);
|
||||
+ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
|
||||
+ it->append("/lib/qt5/imports");
|
||||
+ QString canonicalPath = QDir(*it).canonicalPath();
|
||||
+ if (!canonicalPath.isEmpty()) {
|
||||
+ addImportPath(canonicalPath);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// env import paths
|
||||
QByteArray envImportPath = qgetenv("QML_IMPORT_PATH");
|
||||
if (!envImportPath.isEmpty()) {
|
||||
--
|
||||
2.5.2
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{ qtSubmodule, qtscript, qtsvg, qtwebkit, qtxmlpatterns }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtquick1";
|
||||
patches = [ ./0001-nix-profiles-import-paths.patch ];
|
||||
qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Declarative"
|
||||
'';
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{ qtSubmodule, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtquickcontrols";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
From abd80356449bb36c8adcc5c9ca1df6b47715d265 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sun, 23 Aug 2015 09:13:34 -0500
|
||||
Subject: [PATCH] glib-2.32
|
||||
|
||||
---
|
||||
src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
|
||||
index 1f6d25e..087c3fb 100644
|
||||
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
|
||||
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
|
||||
@@ -81,7 +81,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
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{ qtSubmodule, qtbase, qttools }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtscript";
|
||||
qtInputs = [ qtbase qttools ];
|
||||
patches = [ ./0001-glib-2.32.patch ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Script"
|
||||
'';
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ qtSubmodule, qtbase, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtsensors";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Sensors"
|
||||
'';
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
From d81c2c870b9bea8fb8e6b85baefb06542f568338 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sun, 23 Aug 2015 09:16:02 -0500
|
||||
Subject: [PATCH] dlopen serialport udev
|
||||
|
||||
---
|
||||
src/serialport/qtudev_p.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/serialport/qtudev_p.h b/src/serialport/qtudev_p.h
|
||||
index 6f2cabd..81b9849 100644
|
||||
--- a/src/serialport/qtudev_p.h
|
||||
+++ b/src/serialport/qtudev_p.h
|
||||
@@ -105,9 +105,9 @@ inline QFunctionPointer resolveSymbol(QLibrary *udevLibrary, const char *symbolN
|
||||
inline bool resolveSymbols(QLibrary *udevLibrary)
|
||||
{
|
||||
if (!udevLibrary->isLoaded()) {
|
||||
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
|
||||
+ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1);
|
||||
if (!udevLibrary->load()) {
|
||||
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
|
||||
+ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0);
|
||||
if (!udevLibrary->load()) {
|
||||
qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
|
||||
return false;
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{ qtSubmodule, qtbase, substituteAll, libudev }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtserialport";
|
||||
qtInputs = [ qtbase ];
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./0001-dlopen-serialport-udev.patch;
|
||||
libudev = libudev.out;
|
||||
})
|
||||
];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "SerialPort"
|
||||
'';
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ qtSubmodule, qtbase }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtsvg";
|
||||
qtInputs = [ qtbase ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "Svg"
|
||||
'';
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{ qtSubmodule, qtbase }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qttools";
|
||||
qtInputs = [ qtbase ];
|
||||
postFixup = ''
|
||||
moveToOutput "bin/qdbus" "$out"
|
||||
moveToOutput "bin/qtpaths" "$out"
|
||||
|
||||
fixQtModuleCMakeConfig "Designer"
|
||||
fixQtModuleCMakeConfig "Help"
|
||||
fixQtModuleCMakeConfig "LinguistTools"
|
||||
fixQtModuleCMakeConfig "UiTools"
|
||||
'';
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{ qtSubmodule, qttools }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qttranslations";
|
||||
qtInputs = [ qttools ];
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{ qtSubmodule, qttools, qtwebkit }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtwebkit-examples";
|
||||
qtInputs = [ qttools qtwebkit ];
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
From 862ce7d357a3ec32683ac6ec7c0ebdc9346b44ba Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sun, 23 Aug 2015 09:18:54 -0500
|
||||
Subject: [PATCH 1/3] dlopen webkit nsplugin
|
||||
|
||||
---
|
||||
Source/WebCore/plugins/qt/PluginPackageQt.cpp | 2 +-
|
||||
Source/WebCore/plugins/qt/PluginViewQt.cpp | 2 +-
|
||||
Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Source/WebCore/plugins/qt/PluginPackageQt.cpp b/Source/WebCore/plugins/qt/PluginPackageQt.cpp
|
||||
index a923d49..2731d05 100644
|
||||
--- a/Source/WebCore/plugins/qt/PluginPackageQt.cpp
|
||||
+++ b/Source/WebCore/plugins/qt/PluginPackageQt.cpp
|
||||
@@ -136,7 +136,7 @@ static void initializeGtk(QLibrary* module = 0)
|
||||
}
|
||||
}
|
||||
|
||||
- QLibrary library(QLatin1String("libgtk-x11-2.0"), 0);
|
||||
+ QLibrary library(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
|
||||
if (library.load()) {
|
||||
typedef void *(*gtk_init_check_ptr)(int*, char***);
|
||||
gtk_init_check_ptr gtkInitCheck = (gtk_init_check_ptr)library.resolve("gtk_init_check");
|
||||
diff --git a/Source/WebCore/plugins/qt/PluginViewQt.cpp b/Source/WebCore/plugins/qt/PluginViewQt.cpp
|
||||
index de06a2f..363bde5 100644
|
||||
--- a/Source/WebCore/plugins/qt/PluginViewQt.cpp
|
||||
+++ b/Source/WebCore/plugins/qt/PluginViewQt.cpp
|
||||
@@ -697,7 +697,7 @@ static Display *getPluginDisplay()
|
||||
// support gdk based plugins (like flash) that use a different X connection.
|
||||
// The code below has the same effect as this one:
|
||||
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
|
||||
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
|
||||
+ QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
|
||||
if (!library.load())
|
||||
return 0;
|
||||
|
||||
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
|
||||
index d734ff6..62a2197 100644
|
||||
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
|
||||
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
|
||||
@@ -64,7 +64,7 @@ static Display* getPluginDisplay()
|
||||
// The code below has the same effect as this one:
|
||||
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
|
||||
|
||||
- QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
|
||||
+ QLibrary library(QLatin1String("@gdk_pixbuf@/libgdk-x11-2.0"), 0);
|
||||
if (!library.load())
|
||||
return 0;
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 6a407d30357c2551abceac75c82f4a1688e47437 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sun, 23 Aug 2015 09:19:16 -0500
|
||||
Subject: [PATCH 2/3] dlopen webkit gtk
|
||||
|
||||
---
|
||||
Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp b/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
|
||||
index 8de6521..0b25748 100644
|
||||
--- a/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
|
||||
+++ b/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
|
||||
@@ -53,7 +53,7 @@ static void messageHandler(QtMsgType type, const QMessageLogContext&, const QStr
|
||||
|
||||
static bool initializeGtk()
|
||||
{
|
||||
- QLibrary gtkLibrary(QLatin1String("libgtk-x11-2.0"), 0);
|
||||
+ QLibrary gtkLibrary(QLatin1String("@gtk@/lib/libgtk-x11-2.0"), 0);
|
||||
if (!gtkLibrary.load())
|
||||
return false;
|
||||
typedef void* (*gtk_init_ptr)(void*, void*);
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 864020dd47c3b6d532d9f26b82185904cf9324f2 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Tuegel <ttuegel@gmail.com>
|
||||
Date: Sun, 23 Aug 2015 09:19:29 -0500
|
||||
Subject: [PATCH 3/3] dlopen webkit udev
|
||||
|
||||
---
|
||||
Source/WebCore/platform/qt/GamepadsQt.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Source/WebCore/platform/qt/GamepadsQt.cpp b/Source/WebCore/platform/qt/GamepadsQt.cpp
|
||||
index 60ff317..da8ac69 100644
|
||||
--- a/Source/WebCore/platform/qt/GamepadsQt.cpp
|
||||
+++ b/Source/WebCore/platform/qt/GamepadsQt.cpp
|
||||
@@ -111,12 +111,12 @@ private:
|
||||
bool load()
|
||||
{
|
||||
m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint);
|
||||
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1);
|
||||
+ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1);
|
||||
m_loaded = m_libUdev.load();
|
||||
if (resolveMethods())
|
||||
return true;
|
||||
|
||||
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0);
|
||||
+ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0);
|
||||
m_loaded = m_libUdev.load();
|
||||
return resolveMethods();
|
||||
}
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtmultimedia, qtsensors
|
||||
, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
|
||||
, sqlite, libudev
|
||||
, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby
|
||||
, substituteAll
|
||||
, flashplayerFix ? false
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtwebkit";
|
||||
qtInputs = [ qtdeclarative qtlocation qtmultimedia qtsensors ];
|
||||
buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite ];
|
||||
nativeBuildInputs = [
|
||||
bison2 flex gdb gperf perl pkgconfig python ruby
|
||||
];
|
||||
patches =
|
||||
let dlopen-webkit-nsplugin = substituteAll {
|
||||
src = ./0001-dlopen-webkit-nsplugin.patch;
|
||||
gtk = gtk.out;
|
||||
gdk_pixbuf = gdk_pixbuf.out;
|
||||
};
|
||||
dlopen-webkit-gtk = substituteAll {
|
||||
src = ./0002-dlopen-webkit-gtk.patch;
|
||||
gtk = gtk.out;
|
||||
};
|
||||
dlopen-webkit-udev = substituteAll {
|
||||
src = ./0003-dlopen-webkit-udev.patch;
|
||||
udev = libudev.out;
|
||||
};
|
||||
in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
|
||||
++ [ dlopen-webkit-udev ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "WebKit"
|
||||
fixQtModuleCMakeConfig "WebKitWidgets"
|
||||
'';
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ qtSubmodule, qtbase, qtdeclarative }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtwebsockets";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "WebSockets"
|
||||
'';
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ qtSubmodule, qtbase }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtx11extras";
|
||||
qtInputs = [ qtbase ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "X11Extras"
|
||||
'';
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ qtSubmodule, qtbase }:
|
||||
|
||||
qtSubmodule {
|
||||
name = "qtxmlpatterns";
|
||||
qtInputs = [ qtbase ];
|
||||
postFixup = ''
|
||||
fixQtModuleCMakeConfig "XmlPatterns"
|
||||
'';
|
||||
}
|
|
@ -1,245 +0,0 @@
|
|||
# DO NOT EDIT! This file is generated automatically by manifest.sh
|
||||
{ fetchurl, mirror }:
|
||||
|
||||
{
|
||||
qtbase = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtbase-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0x2szpjjvsrpcqw0dd3gsim7b1jv9p716pnllzjbia5mp0hggi4z";
|
||||
name = "qtbase-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtenginio = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtenginio-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "082i3fapjw6xs0jkz7x529dn3pb6w1pfli3cjrgvggff86gwlgwn";
|
||||
name = "qtenginio-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtserialport = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtserialport-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1h6p5rb0ldxgzd4md3n79gy0j9blhj736670xqjd9vlvh1743kck";
|
||||
name = "qtserialport-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtscript = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtscript-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0izsmy0cr8iii78r10ndkidyljxqd2k9g03f5xb9nxacvr2f8hp0";
|
||||
name = "qtscript-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwebchannel = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwebchannel-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0vy1zjbghfa1wirxd8fd2n2n8yryykzr09913qm2nlfbcxdsgqsn";
|
||||
name = "qtwebchannel-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwinextras = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwinextras-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0sgybvr1y2xsddlqc95ninxj3rfmd4gv7a8f7rqcxdynjan5gij0";
|
||||
name = "qtwinextras-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwebsockets = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwebsockets-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0lv1la8333qnirxmscs42xnnra0xry1gjbhi3bxrf1hrfs2im9j4";
|
||||
name = "qtwebsockets-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtmultimedia = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtmultimedia-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0h29cs8ajnjarhjx1aczdnxqwvg6pqs9s8w28hw488s149wqqrnj";
|
||||
name = "qtmultimedia-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtgraphicaleffects = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtgraphicaleffects-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "02p8xm5ajicjam30ry3g1lm2p4nja2q0sls8dzimqrxhw5xlg3xs";
|
||||
name = "qtgraphicaleffects-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtxmlpatterns = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtxmlpatterns-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0ar7znqp1i02ha5ngy2kzk3hlgkafjbn2xa8j2k78gzmwsmdhzxa";
|
||||
name = "qtxmlpatterns-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qttranslations = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qttranslations-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0b4l69c16z8gjd4mq75zz3lj2gxarr9wyk0vk60jg1mi62vxvdls";
|
||||
name = "qttranslations-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtdeclarative = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtdeclarative-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1bj1wwms6lpj8s70y8by3j0hjsw6g9v8m6fybx68krzzizbj2c5p";
|
||||
name = "qtdeclarative-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwebkit = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwebkit-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0vffbpiczag2n2hp5gc0nii8n7vkidr8f8pp8a47px0183hl6hiy";
|
||||
name = "qtwebkit-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtquick1 = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtquick1-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0178z15a31fw3l6933fwxs7sk0csifpwckydp3rqnn3fg5f2fwvp";
|
||||
name = "qtquick1-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtquickcontrols = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtquickcontrols-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "137z3c3drxlvkdfc7zgcl0xqmavw0ladzqy0i3bq51h756qdc877";
|
||||
name = "qtquickcontrols-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtimageformats = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtimageformats-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1nny6j9pm5ri3n1vwl5lrfrdz0fl81rx127wa49rkg2rjai2aawb";
|
||||
name = "qtimageformats-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtdoc = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtdoc-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "15lamv6jvd7v33ldpcrazcdksv6qibdcgh4ncbyh774k8avgrlh8";
|
||||
name = "qtdoc-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwayland = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwayland-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "14pmpkfq70plw07igxjaiji4vnjg5kg7izlb0wwym1lisg7bwkg0";
|
||||
name = "qtwayland-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtmacextras = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtmacextras-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0h0p3s0rvd3g9rgr4hwcggdbsav2g30vijqwmdxgxd8c00yply80";
|
||||
name = "qtmacextras-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtactiveqt = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtactiveqt-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "014kwficqydciwdm1yw88yms81qm8pmi6xfhhfpbc9k85pc6jlla";
|
||||
name = "qtactiveqt-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtlocation = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtlocation-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1v43hl2zzi90vaw11y8dvsksrjn0r2v0br7pw6njl8lqadpg4jnw";
|
||||
name = "qtlocation-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtconnectivity = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtconnectivity-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1nj68bzgm3r1gg171kj0acnifzb3jx0m5pf4f81xb7zl4hfxasrs";
|
||||
name = "qtconnectivity-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtx11extras = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtx11extras-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0jgyywjxavfpiz8202g3s0g9izfl185mmak4fs9h80w1i3gn5zzn";
|
||||
name = "qtx11extras-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qttools = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qttools-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1d5nx01r7wxhdg9f1i9xhsvsbwgaz3yv516s068riy970bhdgwzd";
|
||||
name = "qttools-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtsensors = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtsensors-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1yawvjbdymgw8af7ir9zcin89xxck9dm2l6hnc43lwrky0frcvcf";
|
||||
name = "qtsensors-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwebengine = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwebengine-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "06cyl733prakniqrn8sd807lclk5im2vmysjdcijry2mcyah2ih8";
|
||||
name = "qtwebengine-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtsvg = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtsvg-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "1dsyncp154xvb7d82nmnfjm0ngymnhqmliq58ljwxsjmpjlncakz";
|
||||
name = "qtsvg-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qt5 = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qt5-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "17a0pybr4bpyv9pj7cr5hl4g31biv89bjr8zql723h0b12ql1w44";
|
||||
name = "qt5-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtwebkit-examples = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtwebkit-examples-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0pm9ik1j09jfb5xflc16449nff2xsfyfms7vxlcdjg4dhcqfmll8";
|
||||
name = "qtwebkit-examples-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
qtandroidextras = {
|
||||
version = "5.4.2";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/official_releases/qt/5.4/5.4.2/submodules/qtandroidextras-opensource-src-5.4.2.tar.xz";
|
||||
sha256 = "0krfm0wg26x7575p8isswdhrkb0jxyp169grwklil7mfw8yg3xhx";
|
||||
name = "qtandroidextras-opensource-src-5.4.2.tar.xz";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -8694,10 +8694,6 @@ in
|
|||
developerBuild = true;
|
||||
});
|
||||
|
||||
qt54 =
|
||||
let imported = import ../development/libraries/qt-5/5.4 { inherit pkgs; };
|
||||
in recurseIntoAttrs (imported.override (super: qt5LibsFun));
|
||||
|
||||
qt55 =
|
||||
let imported = import ../development/libraries/qt-5/5.5 { inherit pkgs; };
|
||||
in recurseIntoAttrs (imported.override (super: qt5LibsFun));
|
||||
|
|
Loading…
Reference in a new issue