mirror of
https://github.com/status-im/status-desktop.git
synced 2025-03-02 23:41:18 +00:00
chore: upgrade qt to 5.15.14
This commit is contained in:
parent
734c3f65bd
commit
b02eb7f753
@ -7,12 +7,12 @@ Check for any minor version changes.
|
||||
|
||||
*/
|
||||
|
||||
{ newScope, generateSplicesForMkScope
|
||||
{ makeScopeWithSplicing', generateSplicesForMkScope
|
||||
, lib, stdenv, fetchurl, fetchgit, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper
|
||||
, bison, cups ? null, harfbuzz, libGL, perl, python3
|
||||
, gstreamer, gst-plugins-base, gtk3, dconf
|
||||
, llvmPackages_15, overrideSDK, overrideLibcxx
|
||||
, darwin
|
||||
, buildPackages
|
||||
|
||||
# options
|
||||
, developerBuild ? false
|
||||
@ -23,7 +23,7 @@ Check for any minor version changes.
|
||||
|
||||
let
|
||||
|
||||
srcs = import ./srcs.nix { inherit lib fetchgit fetchFromGitHub; };
|
||||
srcs = import ./srcs.nix { inherit lib fetchgit fetchFromGitHub; } // { __attrsFailEvaluation = true; };
|
||||
|
||||
qtCompatVersion = srcs.qtbase.version;
|
||||
|
||||
@ -51,32 +51,146 @@ let
|
||||
./qtdeclarative.patch
|
||||
# prevent headaches from stale qmlcache data
|
||||
./qtdeclarative-default-disable-qmlcache.patch
|
||||
# add version specific QML import path
|
||||
./qtdeclarative-qml-paths.patch
|
||||
];
|
||||
qtlocation = lib.optionals stdenv.cc.isClang [
|
||||
# Fix build with Clang 16
|
||||
(fetchpatch {
|
||||
url = "https://github.com/boostorg/numeric_conversion/commit/50a1eae942effb0a9b90724323ef8f2a67e7984a.patch";
|
||||
stripLen = 1;
|
||||
extraPrefix = "src/3rdparty/mapbox-gl-native/deps/boost/1.65.1/";
|
||||
hash = "sha256-UEvIXzn387f9BAeBdhheStD/4M7en+rmqX8C6gstl6k=";
|
||||
})
|
||||
];
|
||||
qtmultimedia = lib.optionals stdenv.isDarwin [
|
||||
# build patch for qtmultimedia with xcode 15
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3f509180/qt5/qt5-qtmultimedia-xcode15.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-HrEqfmm8WbapWgLM0L4AKW8168pwT2zYI8HOJruEPSs=";
|
||||
})
|
||||
];
|
||||
qtpim = [
|
||||
## Upstream patches after the Qt6 transition that apply without problems & fix bugs
|
||||
|
||||
# Fixes QList -> QSet conversion
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/f337e281e28904741a3b1ac23d15c3a83ef2bbc9.patch";
|
||||
hash = "sha256-zlxD45JnbhIgdJxMmGxGMUBcQPcgzpu3s4bLX939jL0=";
|
||||
})
|
||||
# Fixes invalid syntax from a previous bad patch in tests
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/2aefdd8bd28a4decf9ef8381f5b255f39f1ee90c.patch";
|
||||
hash = "sha256-mg93QF3hi50igw1/Ok7fEs9iCaN6co1+p2/5fQtxTmc=";
|
||||
})
|
||||
# Unit test account for QList index change
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/79b41af6a4117f5efb0298289e20c30b4d0b0b2e.patch";
|
||||
hash = "sha256-u+cLl4lu6r2+j5GAiasqbB6/OZPz5A6GpSB33vd/VBg=";
|
||||
})
|
||||
# Remove invalid method overload which confuses the QML engine
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/5679a6141c76ae7d64c3acc8a87b1adb048289e0.patch";
|
||||
hash = "sha256-z8f8kLhC9CqBOfGPL8W9KJq7MwALAAicXfRkHiQEVJ4=";
|
||||
})
|
||||
# Specify enum flag type properly in unit test
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a43cc24e57db8d3c3939fa540d67da3294dcfc5c.patch";
|
||||
hash = "sha256-SsYkxX6prxi8VRZr4az+wqawcRN8tR3UuIFswJL+3T4=";
|
||||
})
|
||||
# Update qHash methods to return size_t instead of uint
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/9c698155d82fc2b68a87c59d0443c33f9085b117.patch";
|
||||
hash = "sha256-rb8D8taaglhQikYSAPrtLvazgIw8Nga/a9+J21k8gIo=";
|
||||
})
|
||||
# Mark virtual methods with override keyword
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/f34cf2ff2b0f428d5b8a70763b29088075ebbd1c.patch";
|
||||
hash = "sha256-tNPOEVpx1eqHx5T23ueW32KxMQ/SB+TBCJ4PZ6SA3LI=";
|
||||
})
|
||||
# Fix calendardemo example
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a66590d473753bc49105d3132fb9e4150c92a14a.patch";
|
||||
hash = "sha256-RPRtGQ24NQYewnv6+IqYITpwD/XxuK68a1iKgFmKm3c=";
|
||||
})
|
||||
# Make the tests pass on big endian systems
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/7802f038ed1391078e27fa3f37d785a69314537b.patch";
|
||||
hash = "sha256-hogUXyPXjGE0q53PWOjiQbQ2YzOsvrJ7mo9djGIbjVQ=";
|
||||
})
|
||||
# Fix some deprecated QChar constructor issues in unit tests
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/114615812dcf9398c957b0833e860befe15f840f.patch";
|
||||
hash = "sha256-yZ1qs8y5DSq8FDXRPyuSPRIzjEUTWAhpVide/b+xaLQ=";
|
||||
})
|
||||
# Accessors should be const
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/a2bf7cdf05c264b5dd2560f799760b5508f154e4.patch";
|
||||
hash = "sha256-+YfPrKyOKnPkqFokwW/aDsEivg4TzdJwQpDdAtM+rQE=";
|
||||
})
|
||||
# Enforce detail access constraints in contact operations by default
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/8765a35233aa21a932ee92bbbb92a5f8edd4dc68.patch";
|
||||
hash = "sha256-vp/enerVecEXz4zyxQ66DG+fVVWxI4bYnLj92qaaqNk=";
|
||||
})
|
||||
# Fixes broken file generation, which breaks reverse dependencies that try to find one of its modules
|
||||
(fetchpatch {
|
||||
url = "https://github.com/qt/qtpim/commit/4b2bdce30bd0629c9dc0567af6eeaa1d038f3152.patch";
|
||||
hash = "sha256-2dXhkZyxPvY2KQq2veerAlpXkpU5/FeArWRlm1aOcEY=";
|
||||
})
|
||||
|
||||
## Patches that haven't been upstreamed
|
||||
|
||||
# Fix tst_QContactManager::compareVariant_data test
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/1001_fix-qtdatetime-null-comparison.patch";
|
||||
hash = "sha256-k/rO9QjwSlRChwFTZLkxDjZWqFkua4FNbaNf1bJKLxc=";
|
||||
})
|
||||
# Avoid crash while parsing vCards from different threads
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/1002_Avoid-crash-while-parsing-vcards-from-different-threads.patch";
|
||||
hash = "sha256-zhayAoWgcmKosEGVBy2k6a2e6BxyVwfGX18tBbzqEk8=";
|
||||
})
|
||||
# Adapt to JSON parser behavior change in Qt 5.15
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/1003_adapt_to_json_parser_change.patch";
|
||||
hash = "sha256-qAIa48hmDd8vMH/ywqW+22vISKai76XnjgFuB+tQbIU=";
|
||||
})
|
||||
# Fix version being 0.0.0
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtpim/-/raw/360682f88457b5ae7c92f32f574e51ccc5edbea0/debian/patches/2000_revert_module_version.patch";
|
||||
hash = "sha256-6wg/eVu9J83yvIO428U1FX3otz58tAy6pCvp7fqOBKU=";
|
||||
})
|
||||
];
|
||||
qtscript = [ ./qtscript.patch ];
|
||||
qtserialport = [ ./qtserialport.patch ];
|
||||
qtsystems = [
|
||||
# Fix crash if no X11 display available
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtsystems/-/raw/1a4df40671d6f1bb0657a9dfdae4cd9bd48fcf21/debian/patches/1005_check_XOpenDisplay.patch";
|
||||
hash = "sha256-/onla2nlUSySEgz2IYOYajx/LZkJzAKDyxwAZzy0Ivs=";
|
||||
})
|
||||
|
||||
# Enable building with udisks support
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/qt-kde-team/qt/qtsystems/-/raw/a23fd92222c33479d7f3b59e48116def6b46894c/debian/patches/2001_build_with_udisk.patch";
|
||||
hash = "sha256-B/z/+tai01RU/bAJSCp5a0/dGI8g36nwso8MiJv27YM=";
|
||||
})
|
||||
];
|
||||
qtwebengine = [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/a6f16c6daea3b5a1f7bc9f175d1645922c131563/qt5/qt5-webengine-python3.patch";
|
||||
sha256 = "sha256-rUSDwTucXVP3Obdck7LRTeKZ+JYQSNhQ7+W31uHZ9yM=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/7ae178a617d1e0eceb742557e63721af949bd28a/qt5/qt5-webengine-chromium-python3.patch";
|
||||
stripLen = 1;
|
||||
extraPrefix = "src/3rdparty/";
|
||||
sha256 = "sha256-MZGYeMdGzwypfKoSUaa56K3inbcGRx7he/+AFyk5ekA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/7ae178a617d1e0eceb742557e63721af949bd28a/qt5/qt5-webengine-gcc12.patch";
|
||||
stripLen = 1;
|
||||
extraPrefix = "src/3rdparty/";
|
||||
sha256 = "sha256-s4GsGMJTBNWw2gTJuIEP3tqT82AmTsR2mbj59m2p6rM=";
|
||||
})
|
||||
./qtwebengine-link-pulseaudio.patch
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
./qtwebengine-darwin-no-platform-check.patch
|
||||
./qtwebengine-mac-dont-set-dsymutil-path.patch
|
||||
./qtwebengine-darwin-checks.patch
|
||||
];
|
||||
qtwebkit = [
|
||||
(fetchpatch {
|
||||
name = "qtwebkit-python39-json.patch";
|
||||
url = "https://github.com/qtwebkit/qtwebkit/commit/78360c01c796b6260bf828bc9c8a0ef73c5132fd.patch";
|
||||
sha256 = "yCX/UL666BPxjnxT6rIsUrJsPcSWHhZwMFJfuHhbkhk=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "qtwebkit-bison-3.7-build.patch";
|
||||
url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
|
||||
@ -92,8 +206,14 @@ let
|
||||
url = "https://github.com/qtwebkit/qtwebkit/commit/5c272a21e621a66862821d3ae680f27edcc64c19.patch";
|
||||
sha256 = "9hjqLyABz372QDgoq7nXXXQ/3OXBGcYN1/92ekcC3WE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "qtwebkit-libxml2-api-change.patch";
|
||||
url = "https://github.com/WebKit/WebKit/commit/1bad176b2496579d760852c80cff3ad9fb7c3a4b.patch";
|
||||
sha256 = "WZEj+UuKhgJBM7auhND3uddk1wWdTY728jtiWVe7CSI=";
|
||||
})
|
||||
./qtwebkit.patch
|
||||
./qtwebkit-icu68.patch
|
||||
./qtwebkit-cstdint.patch
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
./qtwebkit-darwin-no-readline.patch
|
||||
./qtwebkit-darwin-no-qos-classes.patch
|
||||
@ -101,32 +221,24 @@ let
|
||||
qttools = [ ./qttools.patch ];
|
||||
};
|
||||
|
||||
addPackages = self: with self;
|
||||
addPackages = self:
|
||||
let
|
||||
qtModule =
|
||||
import ../qtModule.nix
|
||||
{
|
||||
inherit perl;
|
||||
inherit lib;
|
||||
# Use a variant of mkDerivation that does not include wrapQtApplications
|
||||
# to avoid cyclic dependencies between Qt modules.
|
||||
mkDerivation =
|
||||
import ../mkDerivation.nix
|
||||
{ inherit lib; inherit debug; wrapQtAppsHook = null; }
|
||||
stdenv.mkDerivation;
|
||||
}
|
||||
{ inherit self srcs patches; };
|
||||
qtModule = callPackage ../qtModule.nix {
|
||||
inherit patches;
|
||||
# Use a variant of mkDerivation that does not include wrapQtApplications
|
||||
# to avoid cyclic dependencies between Qt modules.
|
||||
mkDerivation =
|
||||
(callPackage ../mkDerivation.nix { wrapQtAppsHook = null; }) stdenv.mkDerivation;
|
||||
};
|
||||
|
||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs stdenv; };
|
||||
in {
|
||||
|
||||
inherit callPackage qtCompatVersion qtModule srcs;
|
||||
|
||||
mkDerivationWith =
|
||||
import ../mkDerivation.nix
|
||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||
mkDerivationWith = callPackage ../mkDerivation.nix { };
|
||||
|
||||
mkDerivation = mkDerivationWith stdenv.mkDerivation;
|
||||
mkDerivation = callPackage ({ mkDerivationWith }: mkDerivationWith stdenv.mkDerivation) { };
|
||||
|
||||
qtbase = callPackage ../modules/qtbase.nix {
|
||||
inherit (srcs.qtbase) src version;
|
||||
@ -134,11 +246,18 @@ let
|
||||
inherit bison cups harfbuzz libGL;
|
||||
withGtk3 = !stdenv.isDarwin; inherit dconf gtk3;
|
||||
inherit developerBuild decryptSslTraffic;
|
||||
inherit (darwin.apple_sdk_11_0.frameworks) AGL AppKit ApplicationServices AVFoundation Carbon Cocoa CoreAudio CoreBluetooth
|
||||
CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit;
|
||||
libobjc = darwin.apple_sdk_11_0.objc4;
|
||||
xcbuild = darwin.apple_sdk_11_0.xcodebuild;
|
||||
};
|
||||
|
||||
qt3d = callPackage ../modules/qt3d.nix {};
|
||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||
qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
|
||||
qtconnectivity = callPackage ../modules/qtconnectivity.nix {
|
||||
inherit (darwin.apple_sdk_11_0.frameworks) IOBluetooth;
|
||||
};
|
||||
qtdatavis3d = callPackage ../modules/qtdatavis3d.nix {};
|
||||
qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
|
||||
qtdoc = callPackage ../modules/qtdoc.nix {};
|
||||
qtgamepad = callPackage ../modules/qtgamepad.nix {
|
||||
@ -153,15 +272,23 @@ let
|
||||
inherit gstreamer gst-plugins-base;
|
||||
};
|
||||
qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
|
||||
qtpim = callPackage ../modules/qtpim.nix {};
|
||||
qtpositioning = callPackage ../modules/qtpositioning.nix {};
|
||||
qtpurchasing = callPackage ../modules/qtpurchasing.nix {
|
||||
inherit (darwin.apple_sdk_11_0.frameworks) Foundation StoreKit;
|
||||
};
|
||||
qtquick1 = null;
|
||||
qtquick3d = callPackage ../modules/qtquick3d.nix { };
|
||||
qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
|
||||
qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
|
||||
qtremoteobjects = callPackage ../modules/qtremoteobjects.nix {};
|
||||
qtscript = callPackage ../modules/qtscript.nix {};
|
||||
qtsensors = callPackage ../modules/qtsensors.nix {};
|
||||
qtserialbus = callPackage ../modules/qtserialbus.nix {};
|
||||
qtserialport = callPackage ../modules/qtserialport.nix {};
|
||||
qtspeech = callPackage ../modules/qtspeech.nix {};
|
||||
qtsvg = callPackage ../modules/qtsvg.nix {};
|
||||
qtsystems = callPackage ../modules/qtsystems.nix {};
|
||||
qtscxml = callPackage ../modules/qtscxml.nix {};
|
||||
qttools = callPackage ../modules/qttools.nix {};
|
||||
qttranslations = callPackage ../modules/qttranslations.nix {};
|
||||
@ -169,19 +296,26 @@ let
|
||||
qtwayland = callPackage ../modules/qtwayland.nix {};
|
||||
qtwebchannel = callPackage ../modules/qtwebchannel.nix {};
|
||||
qtwebengine = callPackage ../modules/qtwebengine.nix {
|
||||
# The version of Chromium used by Qt WebEngine 5.15.x does not build with clang 16 due
|
||||
# to the following errors:
|
||||
# * -Wenum-constexpr-conversion: This is a downgradable error in clang 16, but it is planned
|
||||
# to be made into a hard error in a future version of clang. Patches are not available for
|
||||
# the version of v8 used by Chromium in Qt WebEngine, and fixing the code is non-trivial.
|
||||
# * -Wincompatible-function-pointer-types: This is also a downgradable error generated
|
||||
# starting with clang 16. Patches are available upstream that can be backported.
|
||||
# Because the first error is non-trivial to fix and suppressing it risks future breakage,
|
||||
# clang is pinned to clang 15. That also makes fixing the second set of errors unnecessary.
|
||||
stdenv =
|
||||
let stdenv' = if stdenv.cc.isClang then overrideLibcxx llvmPackages_15.stdenv else stdenv;
|
||||
in if stdenv'.isDarwin then overrideSDK stdenv' "11.0" else stdenv';
|
||||
inherit (srcs.qtwebengine) version;
|
||||
python = python3;
|
||||
postPatch = ''
|
||||
# update catapult for python3 compatibility
|
||||
rm -r src/3rdparty/chromium/third_party/catapult
|
||||
cp -r ${srcs.catapult} src/3rdparty/chromium/third_party/catapult
|
||||
'';
|
||||
inherit (darwin) cctools xnu;
|
||||
inherit (darwin.apple_sdk_11_0) libpm libunwind;
|
||||
inherit (darwin.apple_sdk_11_0.libs) sandbox;
|
||||
inherit (darwin.apple_sdk_11_0.frameworks) ApplicationServices AVFoundation Foundation ForceFeedback GameController AppKit
|
||||
ImageCaptureCore CoreBluetooth IOBluetooth CoreWLAN Quartz Cocoa LocalAuthentication
|
||||
MediaPlayer MediaAccessibility SecurityInterface Vision CoreML;
|
||||
MediaPlayer MediaAccessibility SecurityInterface Vision CoreML OpenDirectory Accelerate;
|
||||
libobjc = darwin.apple_sdk_11_0.objc4;
|
||||
};
|
||||
qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
|
||||
@ -197,30 +331,51 @@ let
|
||||
qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {};
|
||||
|
||||
env = callPackage ../qt-env.nix {};
|
||||
full = env "qt-full-${qtbase.version}" ([
|
||||
full = callPackage ({ env, qtbase }: env "qt-full-${qtbase.version}") { }
|
||||
# `with self` is ok to use here because having these spliced is unnecessary
|
||||
(with self; [
|
||||
qt3d qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
|
||||
qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
|
||||
qtscript qtsensors qtserialport qtsvg qttools qttranslations
|
||||
qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
|
||||
qtwebview qtx11extras qtxmlpatterns qtlottie
|
||||
qtvirtualkeyboard qtwebchannel qtwebengine qtwebsockets
|
||||
qtwebview qtx11extras qtxmlpatterns qtlottie qtdatavis3d
|
||||
] ++ lib.optional (!stdenv.isDarwin) qtwayland
|
||||
++ lib.optional (stdenv.isDarwin) qtmacextras);
|
||||
|
||||
qmake = makeSetupHook {
|
||||
qmake = callPackage ({ qtbase }: makeSetupHook {
|
||||
name = "qmake-hook";
|
||||
deps = [ self.qtbase.dev ];
|
||||
${if stdenv.buildPlatform == stdenv.hostPlatform
|
||||
then "propagatedBuildInputs"
|
||||
else "depsTargetTargetPropagated"} = [ qtbase.dev ];
|
||||
substitutions = {
|
||||
inherit debug;
|
||||
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
||||
};
|
||||
} ../hooks/qmake-hook.sh;
|
||||
} ../hooks/qmake-hook.sh) { };
|
||||
|
||||
wrapQtAppsHook = makeSetupHook {
|
||||
wrapQtAppsHook = callPackage ({ makeBinaryWrapper, qtbase, qtwayland }: makeSetupHook {
|
||||
name = "wrap-qt5-apps-hook";
|
||||
deps =
|
||||
[ self.qtbase.dev buildPackages.makeWrapper ]
|
||||
++ optional stdenv.isLinux self.qtwayland.dev;
|
||||
} ../hooks/wrap-qt-apps-hook.sh;
|
||||
propagatedBuildInputs = [ qtbase.dev makeBinaryWrapper ]
|
||||
++ lib.optional stdenv.isLinux qtwayland.dev;
|
||||
} ../hooks/wrap-qt-apps-hook.sh) { };
|
||||
};
|
||||
self = lib.makeScope newScope addPackages;
|
||||
in self
|
||||
|
||||
baseScope = makeScopeWithSplicing' {
|
||||
otherSplices = generateSplicesForMkScope "qt5";
|
||||
f = addPackages;
|
||||
};
|
||||
|
||||
bootstrapScope = baseScope.overrideScope(final: prev: {
|
||||
qtbase = prev.qtbase.override { qttranslations = null; };
|
||||
qtdeclarative = null;
|
||||
});
|
||||
|
||||
finalScope = baseScope.overrideScope(final: prev: {
|
||||
# qttranslations causes eval-time infinite recursion when
|
||||
# cross-compiling; disabled for now.
|
||||
qttranslations =
|
||||
if stdenv.buildPlatform == stdenv.hostPlatform
|
||||
then bootstrapScope.qttranslations
|
||||
else null;
|
||||
});
|
||||
in finalScope
|
||||
|
@ -21,7 +21,6 @@ qtquickcontrols
|
||||
qtquickcontrols2
|
||||
qtquicktimeline
|
||||
qtremoteobjects
|
||||
qtscript
|
||||
qtscxml
|
||||
qtsensors
|
||||
qtserialbus
|
||||
|
33
nix/pkgs/qt-5/5.15/qtdeclarative-qml-paths.patch
Normal file
33
nix/pkgs/qt-5/5.15/qtdeclarative-qml-paths.patch
Normal file
@ -0,0 +1,33 @@
|
||||
diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
|
||||
index 289f11d006..9b0a48c6c7 100644
|
||||
--- a/src/qml/qml/qqmlimport.cpp
|
||||
+++ b/src/qml/qml/qqmlimport.cpp
|
||||
@@ -1897,17 +1897,22 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
|
||||
addImportPath(installImportsPath);
|
||||
|
||||
// env import paths
|
||||
- if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) {
|
||||
- const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH");
|
||||
+ auto addEnvImportPath = [this](const char *var) {
|
||||
#if defined(Q_OS_WIN)
|
||||
QLatin1Char pathSep(';');
|
||||
#else
|
||||
QLatin1Char pathSep(':');
|
||||
#endif
|
||||
- QStringList paths = envImportPath.split(pathSep, Qt::SkipEmptyParts);
|
||||
- for (int ii = paths.count() - 1; ii >= 0; --ii)
|
||||
- addImportPath(paths.at(ii));
|
||||
- }
|
||||
+ if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty(var))) {
|
||||
+ const QString envImportPath = qEnvironmentVariable(var);
|
||||
+ QStringList paths = envImportPath.split(pathSep, Qt::SkipEmptyParts);
|
||||
+ for (int ii = paths.count() - 1; ii >= 0; --ii)
|
||||
+ addImportPath(paths.at(ii));
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ addEnvImportPath("QML2_IMPORT_PATH");
|
||||
+ addEnvImportPath("NIXPKGS_QT5_QML_IMPORT_PATH");
|
||||
|
||||
addImportPath(QStringLiteral("qrc:/qt-project.org/imports"));
|
||||
addImportPath(QCoreApplication::applicationDirPath());
|
@ -1,5 +1,5 @@
|
||||
diff --git a/configure.pri b/configure.pri
|
||||
index e072961f0..ac0861c01 100644
|
||||
index 3a33bdc82..c1460b8b5 100644
|
||||
--- a/configure.pri
|
||||
+++ b/configure.pri
|
||||
@@ -442,24 +442,6 @@ defineTest(qtwebengine_isWindowsPlatformSupported) {
|
||||
@ -24,6 +24,6 @@ index e072961f0..ac0861c01 100644
|
||||
- qtwebengine_platformError("requires a macOS SDK version of 10.13 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
|
||||
- return(false)
|
||||
- }
|
||||
return(true)
|
||||
}
|
||||
|
||||
CONFIG(debug, debug|release):isUniversal(){
|
||||
qtwebengine_platformError("Universal builds can not be done with debug configuration due to large binary size.")
|
||||
return(false)
|
||||
|
8
nix/pkgs/qt-5/5.15/qtwebengine-link-pulseaudio.patch
Normal file
8
nix/pkgs/qt-5/5.15/qtwebengine-link-pulseaudio.patch
Normal file
@ -0,0 +1,8 @@
|
||||
--- a/src/core/config/common.pri
|
||||
+++ b/src/core/config/common.pri
|
||||
@@ -47,3 +47,5 @@
|
||||
|
||||
!qtConfig(webengine-nodejs10): gn_args += use_rollup=false
|
||||
gn_args += enable_ipc_logging=false
|
||||
+
|
||||
+gn_args += link_pulseaudio=true
|
11
nix/pkgs/qt-5/5.15/qtwebkit-cstdint.patch
Normal file
11
nix/pkgs/qt-5/5.15/qtwebkit-cstdint.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -up qtwebkit-5.212.0-alpha4/Source/ThirdParty/ANGLE/src/common/mathutil.h.me qtwebkit-5.212.0-alpha4/Source/ThirdParty/ANGLE/src/common/mathutil.h
|
||||
--- qtwebkit-5.212.0-alpha4/Source/ThirdParty/ANGLE/src/common/mathutil.h.me 2023-02-20 15:40:04.045911245 +0100
|
||||
+++ qtwebkit-5.212.0-alpha4/Source/ThirdParty/ANGLE/src/common/mathutil.h 2023-02-20 15:40:39.038549787 +0100
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <algorithm>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
+#include <cstdint>
|
||||
|
||||
namespace gl
|
||||
{
|
@ -1,207 +1,202 @@
|
||||
{
|
||||
"qt3d": {
|
||||
"url": "https://invent.kde.org/qt/qt/qt3d.git",
|
||||
"rev": "c3c7e6ebc29cce466d954f72f340a257d76b5ec2",
|
||||
"sha256": "13ixg0gx7sp90k0db2xn7r2rj1w3zw3vs84pav0v8fwfvph9ki98"
|
||||
"rev": "9bf4d03e2515f7c454647d54542330b6e90f8191",
|
||||
"sha256": "1w1lq332q270vld7sz0xqpa0f7mvi5gizycfsx9zz9c73qy4idlp"
|
||||
},
|
||||
"qtactiveqt": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtactiveqt.git",
|
||||
"rev": "2334cafc110c4e63bec3a5c7abdcd67e5e5ee754",
|
||||
"sha256": "0p7pydqsrws5x9l74y37ldffd3yz4riyizl8669x6y6hj6177yd3"
|
||||
"rev": "91bfd21f86c450b129ac2dde9d33b32e140d8a0c",
|
||||
"sha256": "06fbiggjq1c1z1wgx63ir8rj1ppd1c046xwz4nzsrf1pi8dqcyl7"
|
||||
},
|
||||
"qtandroidextras": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtandroidextras.git",
|
||||
"rev": "7ede0a6c555518a3fecba8930d5e4d9c58875d0d",
|
||||
"sha256": "0nvdrbqm469iikkvzwjni3zb7dxwpy3x161m9yly4irklixhxkzh"
|
||||
"rev": "197a7e05cda87a4645f30c8ef5044b342442ebd1",
|
||||
"sha256": "0j5al7h2gy67cb2lj4yymdsidr1dcvvahqfysbdl2lwz3zzpdql1"
|
||||
},
|
||||
"qtbase": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtbase.git",
|
||||
"rev": "6c09620dc84900c31a2d307a8640dbc15b1fcfdd",
|
||||
"sha256": "0nr8xlfdrgjr6rrd5f99p8vzlxx6n8xch5l2z95pb2lx4w4pz26q"
|
||||
"rev": "2b9835f5c9bcfe3105b60a8dd33c1db7d8611378",
|
||||
"sha256": "1yms1r42yps06bg8gjbzb5y7x03ks11vg97s2j7r1aplp7kjf7wm"
|
||||
},
|
||||
"qtcharts": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtcharts.git",
|
||||
"rev": "e30be213e483f2d6f3c40af0cbdc11a8e92e2026",
|
||||
"sha256": "0vn1xh40lxa6vi87vr6qpskli2vh47mxi3d5srhf8rark0m51lf4"
|
||||
"rev": "7315c48bcec88014e78165bbda54abfcd557e0af",
|
||||
"sha256": "043lbxkaw53qah9ny4nbpp8g7q4rq9x2k21vkprk7nim66d6pmy3"
|
||||
},
|
||||
"qtconnectivity": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtconnectivity.git",
|
||||
"rev": "2d241e0b79971917845a6ed448e838ef273d73d7",
|
||||
"sha256": "15zk9q1n9yfg4nkr0rs7agsvzim8nlrqzm1h4h9r0iwr91g9vqp5"
|
||||
"rev": "99f30db37c63447c59d5fac15bc8feb832a7fd04",
|
||||
"sha256": "09v76kb7fx7bq4vplyk3cf7il3a6f9p673z1l28nrv4w308bhqfy"
|
||||
},
|
||||
"qtdatavis3d": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtdatavis3d.git",
|
||||
"rev": "9f0f50ebef04d5ac5ed0ee2a3a71e7748fce3005",
|
||||
"sha256": "151650nqq29m99cbf7ac02vxzw4ivm4spr4kd2ss3gwhfxby3zgj"
|
||||
"rev": "79cd0fb6cafcd42e4037ae1363fda3bc2cec934a",
|
||||
"sha256": "19y33v3l4crzrk7qf5qhx7phxkiax14c2q4xjd1klw7n333d43cq"
|
||||
},
|
||||
"qtdeclarative": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtdeclarative.git",
|
||||
"rev": "05c3f4921d81fb1b0eb497515c24ae56221d1e0a",
|
||||
"sha256": "0101bbpnrj4rp51dcnn2gjcq7vw55g4c8y4lmg2nd5g69whmkl1c"
|
||||
"rev": "50c8def854806485d66aabcf6918e8b987032e55",
|
||||
"sha256": "0qvw72w0m1q4yg4l35rh7ydqgp35xqfwpq0pc7q5578n1xspihhn"
|
||||
},
|
||||
"qtdoc": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtdoc.git",
|
||||
"rev": "79d6ef693b6241db4a86a90943c02180c4944214",
|
||||
"sha256": "0ldskh9dd8qwa96nz1q5sbb8r2jdfcxvq589dyw87m3gpb8v16qq"
|
||||
"rev": "bc4503b8b70f4cd435d6e64a9e6c623ca44b9fcd",
|
||||
"sha256": "0pvimmw5c6gh6xi2iblzyikgaw7cr8gqjdvyappcahjpalxxsjbw"
|
||||
},
|
||||
"qtgamepad": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtgamepad.git",
|
||||
"rev": "ad63dc64f4bdafb503f7015d04e8849cef5d99b4",
|
||||
"sha256": "06ag3cmg56f4z9pc3ix9lddz5ydx48pf438xc2l1z3x4wxbkfbsy"
|
||||
"rev": "b1c2f272f69e222a532485e6f820776c220b3535",
|
||||
"sha256": "1zga6sa901g0fpqyjlyj73s2f94yjm0z3599gngnlvvd7jsnlgnv"
|
||||
},
|
||||
"qtgraphicaleffects": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtgraphicaleffects.git",
|
||||
"rev": "4119e4e6dc94447d773a01c1d6e4de0fefb9235a",
|
||||
"sha256": "0sdywxrbjzz9qmrywd54hqqssv59b9mlvra16hjxfd0di50brab2"
|
||||
"rev": "2c39e673d6c15a84dcc7882d3772fa04cc79f9ed",
|
||||
"sha256": "177xkhi3syx6r3my5rly5bncgjfhdvgrhf6fw5ajqplik6yln4pq"
|
||||
},
|
||||
"qtimageformats": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtimageformats.git",
|
||||
"rev": "dbc9c396199ef78e820b40ddb8a4e76c0a86d48c",
|
||||
"sha256": "18dhnvkv9hialjfcm80g9y38fsxfcfk4fgrrsm3hy2yda6a6g1c6"
|
||||
"rev": "4e4f5fc6bdac96f5281a3ebeb0fee78df7b1a498",
|
||||
"sha256": "1w68v55y1l1biv7krzv9vmi2czz84jk89f4pymq3ri1w3y4rc1id"
|
||||
},
|
||||
"qtlocation": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtlocation.git",
|
||||
"rev": "435f931a7e42172e12ceba8f0d9da06ba4ec0bee",
|
||||
"sha256": "1p7hz09jv8whlv0m39cnjz3yc6pjzyxkc8zinl6f0qmrska6m4gp"
|
||||
"rev": "3beb9c810611337fde61d89aa981e9f177a9ede9",
|
||||
"sha256": "1fwn9x3n01dlkhw53n12z5kb06qj2lmangzvj3fjr5ff0yy47df9"
|
||||
},
|
||||
"qtlottie": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtlottie.git",
|
||||
"rev": "56f94cb8e2da9801ada7aa06f86ccf807f5a4ed8",
|
||||
"sha256": "1pyshl395qmf84h5lyw3rgn3gmz98sm1dq003jvr74w9i746hszf"
|
||||
"rev": "b8c1fa109dce6f8bff9f55738d2f1e21ff677796",
|
||||
"sha256": "0qydaqj8945hikby7a9529i0g5ycpvhws6y0zc566jv50qida725"
|
||||
},
|
||||
"qtmacextras": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtmacextras.git",
|
||||
"rev": "bc397be87f9b02e8279cfe2fc9b893c9f95219b9",
|
||||
"sha256": "1dr8a7sv00dmk1hc6kzs93rhvjk2wkxx0mxl7riafdzxzyajcl7n"
|
||||
"rev": "e66cba7cf02aa8aecce03540cd167621f2cda5f0",
|
||||
"sha256": "0q7d3lh3fpkrakxx1sqx9csa7l7rxzskcavbidxb5298jxn49wn8"
|
||||
},
|
||||
"qtmultimedia": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtmultimedia.git",
|
||||
"rev": "32557dbe01ba66005b8e28b38033eeee9819a4c6",
|
||||
"sha256": "09mds5v3b3jq34r40hqg2a39q16p4q648wda7cqgm2yp249j06g8"
|
||||
"rev": "53069c9c6eb52b744333812f42aed36c3db6e752",
|
||||
"sha256": "0y8km2mp5mj1zw1v3acsdvzrc1jyiwpxy3rmif5ssn40wwxifilp"
|
||||
},
|
||||
"qtnetworkauth": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtnetworkauth.git",
|
||||
"rev": "f082a4c84c54e888b8d023ba68b7085551403425",
|
||||
"sha256": "03sd0a58b8z340in4avk6lqqa9qzkzkaxnk2yn1a270sxrsq6y0l"
|
||||
"rev": "28180f28c98e329676463e24cef0097cba45bc00",
|
||||
"sha256": "1g6clwmrpdvl9m6flyrk4vlckjnjv3phqhy1xbxlra3zcfn3357r"
|
||||
},
|
||||
"qtpurchasing": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtpurchasing.git",
|
||||
"rev": "9dfea35b04dcb52d02d7a2883df88d89ba9999ef",
|
||||
"sha256": "0swliqwzz3b297z7y6sr79ijgv3914s2g9ymq77plxglfdrnm74j"
|
||||
"rev": "d4903bf08c576a6c085278c1960a2676cd83dca7",
|
||||
"sha256": "04bry3ys15bd6kaiwyb8fh037s50mcplircpzvrwdc1h8milx7y7"
|
||||
},
|
||||
"qtquick3d": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtquick3d.git",
|
||||
"rev": "47defc8b33b7bdf1dbf289b65b301fba2def9b1c",
|
||||
"sha256": "0kfwkxln3yz0c5rd1kfjmw0y2drwm1gg2s7f52kajfvg4274ha9c"
|
||||
"rev": "ad229f0c135f74801fba2bcd22c78abc0e3cf1d2",
|
||||
"sha256": "17jdsahdw72l5lpbng8733qv2fp2qkfzlzrayzigz2slfdqgjxnk"
|
||||
},
|
||||
"qtquickcontrols": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtquickcontrols.git",
|
||||
"rev": "18977875d16e22ad68a1dc2d7ee0a9c9f873c941",
|
||||
"sha256": "0n3930zzvp4s6m715rvx1bjh2s2fg7cadjs2hq6bc8k9mwlqibk1"
|
||||
"rev": "9325659ec390eda5b160736a926ba58ccb445cce",
|
||||
"sha256": "0r1kkn6pr6yynk8x2ggkfqqrh27g1qra102ilglj7chsmrp92xgc"
|
||||
},
|
||||
"qtquickcontrols2": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtquickcontrols2.git",
|
||||
"rev": "56ce8233382a091a8476c831edd416b5f704ae4f",
|
||||
"sha256": "1h68s2fdgn1pbf5hsk6c8v4icz8c4cpbxv8iirz22yhlzabc3hdm"
|
||||
"rev": "69fea340f8f4c483a9b2889e4e24a4b1b52ebc87",
|
||||
"sha256": "0v6g146ryabks0sff5dgyx42690xckaqpx44c6g7x0b0w24lj6ws"
|
||||
},
|
||||
"qtquicktimeline": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtquicktimeline.git",
|
||||
"rev": "4cd0142a30bfa5eef47c720ac24dd73e12764806",
|
||||
"sha256": "13vhlgxq8ap796p3y9c3kj645p0370bqjwm5hkz13pazm15sbc9z"
|
||||
"rev": "bf6c73064c82b07fcb1f7e72c263b249e137e224",
|
||||
"sha256": "0pnn5ds6sxls8i6pzzmraalvln2pabgga3gnv761b2skgkv26gnq"
|
||||
},
|
||||
"qtremoteobjects": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtremoteobjects.git",
|
||||
"rev": "929c7ad0676f084b9ecc469cd47a307596923cb3",
|
||||
"sha256": "0l94k9fdzk96j40gab2l5n4lmadzaqhvbg8s3m5f3v4im00xa2x9"
|
||||
},
|
||||
"qtscript": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtscript.git",
|
||||
"rev": "4d8e4bd20b7100b0b7192547b19c3c239aaf7034",
|
||||
"sha256": "1pvihbjjmczby4934lir3h3kq0rqcvxnbw2vdkl9lhkds3lm0qhf"
|
||||
"rev": "3873bdc809ca8d58d91968cb0de34da26646bc79",
|
||||
"sha256": "0bncsi45zjwd6q3g40gxdqxqq4zhjrgw7xnxj1v53npbyw4vd0h5"
|
||||
},
|
||||
"qtscxml": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtscxml.git",
|
||||
"rev": "0c93f94a44e2dce7eed9d17d4976b0c1e14be7bb",
|
||||
"sha256": "1vvzvin23ws6njhyg93s2dlkxb9p50mkipc611lsx7971gv1wih0"
|
||||
"rev": "6834b183966d08d9f061642ee7ea2d482cbbf073",
|
||||
"sha256": "1h88idcfcsbpx2x2djcg1lzazadm676miz19x6n0n6n4gwp46738"
|
||||
},
|
||||
"qtsensors": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtsensors.git",
|
||||
"rev": "6add85fa1a234a7e1943ba175c6fc799ccbae48e",
|
||||
"sha256": "1k02x3wzczwg7cqh6hav31akdsz9kk8s0vryd3q7zfrhqy9m88sh"
|
||||
"rev": "bf0b718cd0b6c7823e9d2037d3bdece44185f444",
|
||||
"sha256": "1my7ls1nsaf26kh3hn75jjnxp6gm0ilyfzcczqps0xj7xj9bzwzd"
|
||||
},
|
||||
"qtserialbus": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtserialbus.git",
|
||||
"rev": "ced5c7223d037aece1e7f37d4314f388252de025",
|
||||
"sha256": "009ajdry6lvf9pifzm2zl0w5zhkmrrxm53mjf9s76jqrsi6yqk30"
|
||||
"rev": "616bc5b962cdcacb1c1ba985d7236392e9cadb8c",
|
||||
"sha256": "0njahb52kshci23xw89j1rgffmrmric8kz54dzmqsmlcqp181qkh"
|
||||
},
|
||||
"qtserialport": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtserialport.git",
|
||||
"rev": "e2851096dc6f6a7cfa635d69ea950b382e3658ab",
|
||||
"sha256": "071g8d9i3wi8rqqy4lxpp3z25a55pd2xwsy3r8v0a6s6y5g5lcpf"
|
||||
"rev": "34c19c6441cd440dc65b59ae7670eadf099d51f8",
|
||||
"sha256": "0hiqfvz5jc6ha6ln8jl8vv4ijsdz55f3zp801dbh2r68cmf9qsrm"
|
||||
},
|
||||
"qtspeech": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtspeech.git",
|
||||
"rev": "255845e2b2e605363762be25932d92fc10d32749",
|
||||
"sha256": "0apyk2z9r7i54sh0zgbs8vfncc4jrcrzzvi3q14d105pkhrschp9"
|
||||
"rev": "8ad0f08ad7e2a8d27dc5e69806812c6a3f298946",
|
||||
"sha256": "0pyiiqj18c2gvbqvgnaki2hzcizi1lam82x761y2lp717sgb09v9"
|
||||
},
|
||||
"qtsvg": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtsvg.git",
|
||||
"rev": "a7a0f2491334e8cb4ef5731f5eb741f3f7b9af76",
|
||||
"sha256": "13zpzvwqv61dsd74s92nf46rhaw2rw3hl8m6d313wjlaaqi95ln6"
|
||||
"rev": "690128b2b8fb6d6fbdc43b2b2633f0f1de3f0638",
|
||||
"sha256": "1iiml673isnqakjzspq5gf6818zmmd7pj6z9y2jwxb2xkkn8ahpc"
|
||||
},
|
||||
"qttools": {
|
||||
"url": "https://invent.kde.org/qt/qt/qttools.git",
|
||||
"rev": "090e526e713d01eac34c64e4a09ad961c612febf",
|
||||
"sha256": "1zrxv9wdnqayn5hhblwyqyrdn8mj7x2ks2f4qsr2w3cdidcjjz7y"
|
||||
"rev": "f82ed367d1b80b69d738cfcde534b75854a45476",
|
||||
"sha256": "1pv7af4z3f9d1ifqjwbf7fhgglpnjfby8h2fg5h114mpils661bn"
|
||||
},
|
||||
"qttranslations": {
|
||||
"url": "https://invent.kde.org/qt/qt/qttranslations.git",
|
||||
"rev": "af8cd030fed6a47cc1e8727e7ee5445e037bf712",
|
||||
"sha256": "14fx3r9s3p16rhv9fyrwnv6bn24nvh5xnjwcw1mb04c44ddb9r86"
|
||||
"rev": "c601106c8b5d5495f951c8ea0ad6a9e171416ae0",
|
||||
"sha256": "0w8ggzc4sxfa1y3n40m24zxp59c2y1mfb2c7zdd8nmlrg7xnqsf0"
|
||||
},
|
||||
"qtvirtualkeyboard": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtvirtualkeyboard.git",
|
||||
"rev": "5f66c9571303170f07954f73b09cad4cee1ce5d0",
|
||||
"sha256": "0jzl7a2zr83nd9sskmz9fk2w2spn3v821j0l7kcp2hxydgyhk8v3"
|
||||
"rev": "7389450a5de5fdd210f1459abcf73621ec0496bd",
|
||||
"sha256": "1hv8yi4lq3mdxqkcln2b75drdyfiaqj63khzvy09gdf1x6fyjnn5"
|
||||
},
|
||||
"qtwayland": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtwayland.git",
|
||||
"rev": "df41e7e3e1f0e5495c5c8c52f1c9bb5a32b0da27",
|
||||
"sha256": "0f292axj0ivgwgx97zc8x744243i7lgqcxbkjxham6md81m1xbwj"
|
||||
"rev": "75f434f14499eb47ede2cb66f0946527bf555791",
|
||||
"sha256": "17d7bcc3v55ywakaybp88c493bfx63vyiz7n8f5kcijj5q5hdf1r"
|
||||
},
|
||||
"qtwebchannel": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtwebchannel.git",
|
||||
"rev": "f8949655ccfacc2d34cfb0af23c540db84a2b9e5",
|
||||
"sha256": "1303hghvk6avshb7imnkv24qv1ij5d3nbljba20l6v6dsr7zg7ba"
|
||||
"rev": "fca83088ef430f96257d2014e77d08bd350259af",
|
||||
"sha256": "1jc7myns24mzfnfybzzjqkpnl235c0fm0zqkai55xwi3vcv9xyr5"
|
||||
},
|
||||
"qtwebglplugin": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtwebglplugin.git",
|
||||
"rev": "655be6c5406f8ba42acaca363fc55d78a6198733",
|
||||
"sha256": "08biydqk1lhjzvrgl3zhbrrgnjcy611pmh9scyw42avdvj2qzpc2"
|
||||
"rev": "3681356904277e055759693551357e7e488d1be9",
|
||||
"sha256": "14v9r4mhqq453dzkc5gvv660gq11zsmzngvwgi44srhzcx7k1qqv"
|
||||
},
|
||||
"qtwebsockets": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtwebsockets.git",
|
||||
"rev": "90f3590c3c49a0820462af9a778dd13d8df42244",
|
||||
"sha256": "1dxc3imh8455vy3pggrzjflb2v5382q9ha2fwplybxawld9wdw45"
|
||||
"rev": "dbbdc64b804f7c4d0ed92198aaab49b07fa15e7f",
|
||||
"sha256": "1gbgga8qy26nxxq0537hm3h6la04xb6m4cc2aifjhhhj8py95170"
|
||||
},
|
||||
"qtwebview": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtwebview.git",
|
||||
"rev": "dfd86e07019488954cddcf2ba314df3cd0c01c0c",
|
||||
"sha256": "1crph9sdmxxs0787il86j2dv6k3qylmy8a83hfzczcjcx3pwcf7a"
|
||||
"rev": "bbb1891595aba23ff3c6d137aa74442f9e54479b",
|
||||
"sha256": "0j59r6dj4wvassng39whnidd6nzhndwssfwjppppqbs5xy57zh2z"
|
||||
},
|
||||
"qtwinextras": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtwinextras.git",
|
||||
"rev": "48318520a4031167c4c0ad559e1a11b2f4c053d6",
|
||||
"sha256": "04smnp9pl3szizdp05dz7qmdgg8sk57d3r40sdy7v9zwi4lwaqi4"
|
||||
"rev": "907009a4f7e5d2b99805547caf4b901bdbb0d4d6",
|
||||
"sha256": "0aam2imp4rkbrjir5gsk4ja7vf7vv68ybsh7qchavb3zdmjsvxcd"
|
||||
},
|
||||
"qtx11extras": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtx11extras.git",
|
||||
"rev": "e44c85e8643f2724109993a7b9eaf0dff3530fec",
|
||||
"sha256": "1vs1013zxw54xfmkpid99p5f38hlqds172vija7xjyjaww7j7y3b"
|
||||
"rev": "6c3605fcb3b34e55951f597e06c135d97dfa6cd7",
|
||||
"sha256": "0dqmw2yqh5b5ayq93px2na50ghfk55y55zsgwraxglly0zgm39w9"
|
||||
},
|
||||
"qtxmlpatterns": {
|
||||
"url": "https://invent.kde.org/qt/qt/qtxmlpatterns.git",
|
||||
"rev": "3199d91de3f38e5ece3d36bcefe2c33b2c014f3f",
|
||||
"sha256": "1l6babh2cjqwaqk12cqpkkl2qy909b1fd84p0ab19raw419ncawz"
|
||||
"rev": "087f6f35bd027f940818b1696d0aad822e034377",
|
||||
"sha256": "0y3hkz7ss6iibpfr7dc855bzhdanz79ix0jm6b28viqjy3bdzgar"
|
||||
}
|
||||
}
|
||||
|
@ -1,26 +1,45 @@
|
||||
{ lib, fetchgit, fetchFromGitHub }:
|
||||
|
||||
let
|
||||
version = "5.15.8";
|
||||
overrides = {};
|
||||
version = "5.15.14";
|
||||
|
||||
mk = name: args:
|
||||
let
|
||||
override = overrides.${name} or {};
|
||||
in
|
||||
{
|
||||
version = override.version or version;
|
||||
src = override.src or
|
||||
fetchgit {
|
||||
inherit (args) url rev sha256;
|
||||
fetchSubmodules = true;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
};
|
||||
inherit version;
|
||||
src = fetchgit {
|
||||
inherit (args) url rev sha256;
|
||||
fetchLFS = false;
|
||||
fetchSubmodules = true;
|
||||
deepClone = false;
|
||||
leaveDotGit = false;
|
||||
};
|
||||
};
|
||||
in
|
||||
lib.mapAttrs mk (lib.importJSON ./srcs-generated.json)
|
||||
// {
|
||||
# qtpim has no official releases
|
||||
qtpim = {
|
||||
version = "unstable-2020-11-02";
|
||||
src = fetchFromGitHub {
|
||||
owner = "qt";
|
||||
repo = "qtpim";
|
||||
# Last commit before Qt5 support was broken
|
||||
rev = "f9a8f0fc914c040d48bbd0ef52d7a68eea175a98";
|
||||
hash = "sha256-/1g+vvHjuRLB1vsm41MrHbBZ+88Udca0iEcbz0Q1BNQ=";
|
||||
};
|
||||
};
|
||||
|
||||
# Has no kde/5.15 branch
|
||||
qtpositioning = rec {
|
||||
version = "5.15.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "qt";
|
||||
repo = "qtpositioning";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-L/P+yAQItm3taPpCNoOOm7PNdOFZiIwJJYflk6JDWvU=";
|
||||
};
|
||||
};
|
||||
|
||||
# qtwebkit does not have an official release tarball on the qt mirror and is
|
||||
# mostly maintained by the community.
|
||||
qtwebkit = rec {
|
||||
@ -33,43 +52,37 @@ lib.mapAttrs mk (lib.importJSON ./srcs-generated.json)
|
||||
version = "5.212.0-alpha4";
|
||||
};
|
||||
|
||||
catapult = fetchgit {
|
||||
url = "https://chromium.googlesource.com/catapult";
|
||||
rev = "5eedfe23148a234211ba477f76fc2ea2e8529189";
|
||||
sha256 = "sha256-LPfBCEB5tJOljXpptsNk0sHGtJf/wIRL7fccN79Nh6o=";
|
||||
# qtsystems has no official releases
|
||||
qtsystems = {
|
||||
version = "unstable-2019-01-03";
|
||||
src = fetchFromGitHub {
|
||||
owner = "qt";
|
||||
repo = "qtsystems";
|
||||
rev = "e3332ee38d27a134cef6621fdaf36687af1b6f4a";
|
||||
hash = "sha256-P8MJgWiDDBCYo+icbNva0LODy0W+bmQTS87ggacuMP0=";
|
||||
};
|
||||
};
|
||||
|
||||
qtwebengine =
|
||||
let
|
||||
branchName = "5.15.12";
|
||||
rev = "v${branchName}-lts";
|
||||
in
|
||||
{
|
||||
version = branchName;
|
||||
qtscript = rec {
|
||||
version = "5.15.17";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/qt/qtwebengine.git";
|
||||
sha256 = "sha256-8EQqSvxw9rqf+64CIbcCb1VXhNx1GNC8eDIgLyYDyvk=";
|
||||
inherit rev branchName;
|
||||
fetchSubmodules = true;
|
||||
leaveDotGit = true;
|
||||
name = "qtwebengine-${lib.substring 0 8 rev}.tar.gz";
|
||||
postFetch = ''
|
||||
# remove submodule .git directory
|
||||
rm -rf "$out/src/3rdparty/.git"
|
||||
|
||||
# compress to not exceed the 2GB output limit
|
||||
# try to make a deterministic tarball
|
||||
tar -I 'gzip -n' \
|
||||
--sort=name \
|
||||
--mtime=1970-01-01 \
|
||||
--owner=root --group=root \
|
||||
--numeric-owner --mode=go=rX,u+rw,a-s \
|
||||
--transform='s@^@source/@' \
|
||||
-cf temp -C "$out" .
|
||||
rm -r "$out"
|
||||
mv temp "$out"
|
||||
'';
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "qt";
|
||||
repo = "qtscript";
|
||||
rev = "v${version}-lts";
|
||||
hash = "sha256-wXEKdu2gdlkVsWr3nb/tCBwyo9H8GPHWTUele1cP0ks=";
|
||||
};
|
||||
};
|
||||
|
||||
qtwebengine = rec {
|
||||
version = "5.15.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qt";
|
||||
repo = "qtwebengine";
|
||||
rev = "v${version}-lts";
|
||||
hash = "sha256-1be8Y96yHYBCxQsRC/PD2X0TVWpA2/r1hvi8sBKOais=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ qtHostPathHook() {
|
||||
local qmlDir="$1/${qtQmlPrefix:?}"
|
||||
if [ -d "$qmlDir" ]
|
||||
then
|
||||
qtWrapperArgs+=(--prefix QML2_IMPORT_PATH : "$qmlDir")
|
||||
qtWrapperArgs+=(--prefix NIXPKGS_QT5_QML_IMPORT_PATH : "$qmlDir")
|
||||
fi
|
||||
}
|
||||
addEnvHooks "$targetOffset" qtHostPathHook
|
||||
|
@ -1,6 +1,4 @@
|
||||
{ lib, debug, wrapQtAppsHook }:
|
||||
|
||||
let inherit (lib) optional; in
|
||||
{ wrapQtAppsHook }:
|
||||
|
||||
mkDerivation:
|
||||
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qt3d";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
# error: use of undeclared identifier 'stat64'
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-Dstat64=stat";
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-Dstat64=stat";
|
||||
}
|
||||
|
@ -3,6 +3,9 @@
|
||||
|
||||
, coreutils, bison, flex, gdb, gperf, lndir, perl, pkg-config, python3
|
||||
, which
|
||||
# darwin support
|
||||
, libiconv, libobjc, xcbuild, AGL, AppKit, ApplicationServices, AVFoundation, Carbon, Cocoa, CoreAudio, CoreBluetooth
|
||||
, CoreLocation, CoreServices, DiskArbitration, Foundation, OpenGL, MetalKit, IOKit
|
||||
|
||||
, dbus, fontconfig, freetype, glib, harfbuzz, icu, libdrm, libX11, libXcomposite
|
||||
, libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng , libxcb
|
||||
@ -12,6 +15,7 @@
|
||||
# optional dependencies
|
||||
, cups ? null, postgresql ? null
|
||||
, withGtk3 ? false, dconf, gtk3
|
||||
, withQttranslation ? true, qttranslations ? null
|
||||
|
||||
# options
|
||||
, libGLSupported ? !stdenv.isDarwin
|
||||
@ -24,13 +28,19 @@
|
||||
, debug ? false
|
||||
, developerBuild ? false
|
||||
, decryptSslTraffic ? false
|
||||
, testers
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
let
|
||||
debugSymbols = debug || developerBuild;
|
||||
qtPlatformCross = plat: with plat;
|
||||
if isLinux
|
||||
then "linux-generic-g++"
|
||||
else throw "Please add a qtPlatformCross entry for ${plat.config}";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: ({
|
||||
pname = "qtbase";
|
||||
inherit qtCompatVersion src version;
|
||||
debug = debugSymbols;
|
||||
@ -46,6 +56,10 @@ stdenv.mkDerivation {
|
||||
pcre2
|
||||
] ++ (
|
||||
if stdenv.isDarwin then [
|
||||
# TODO: move to buildInputs, this should not be propagated.
|
||||
AGL AppKit ApplicationServices AVFoundation Carbon Cocoa CoreAudio CoreBluetooth
|
||||
CoreLocation CoreServices DiskArbitration Foundation OpenGL
|
||||
libobjc libiconv MetalKit IOKit
|
||||
] else [
|
||||
dbus glib udev
|
||||
|
||||
@ -71,10 +85,24 @@ stdenv.mkDerivation {
|
||||
++ lib.optional (mysqlSupport) libmysqlclient
|
||||
++ lib.optional (postgresql != null) postgresql;
|
||||
|
||||
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which ];
|
||||
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which ]
|
||||
++ lib.optionals stdenv.isDarwin [ xcbuild ];
|
||||
|
||||
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
# `qtbase` expects to find `cc` (with no prefix) in the
|
||||
# `$PATH`, so the following is needed even if
|
||||
# `stdenv.buildPlatform.canExecute stdenv.hostPlatform`
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
} // {
|
||||
|
||||
propagatedNativeBuildInputs = [ lndir ];
|
||||
|
||||
# libQt5Core links calls CoreFoundation APIs that call into the system ICU. Binaries linked
|
||||
# against it will crash during build unless they can access `/usr/share/icu/icudtXXl.dat`.
|
||||
propagatedSandboxProfile = lib.optionalString stdenv.isDarwin ''
|
||||
(allow file-read* (subpath "/usr/share/icu"))
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
@ -113,6 +141,15 @@ stdenv.mkDerivation {
|
||||
patchShebangs ./bin
|
||||
'' + (
|
||||
if stdenv.isDarwin then ''
|
||||
sed -i \
|
||||
-e 's|/usr/bin/xcode-select|xcode-select|' \
|
||||
-e 's|/usr/bin/xcrun|xcrun|' \
|
||||
-e 's|/usr/bin/xcodebuild|xcodebuild|' \
|
||||
-e 's|QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`|QMAKE_CXX="clang++"\nQMAKE_CONF_COMPILER="clang++"|' \
|
||||
./configure
|
||||
substituteInPlace ./mkspecs/common/mac.conf \
|
||||
--replace "/System/Library/Frameworks/OpenGL.framework/" "${OpenGL}/Library/Frameworks/OpenGL.framework/" \
|
||||
--replace "/System/Library/Frameworks/AGL.framework/" "${AGL}/Library/Frameworks/AGL.framework/"
|
||||
'' else lib.optionalString libGLSupported ''
|
||||
sed -i mkspecs/common/linux.conf \
|
||||
-e "/^QMAKE_INCDIR_OPENGL/ s|$|${libGL.dev or libGL}/include|" \
|
||||
@ -137,6 +174,13 @@ stdenv.mkDerivation {
|
||||
export MAKEFLAGS+=" -j$NIX_BUILD_CORES"
|
||||
|
||||
./bin/syncqt.pl -version $version
|
||||
'' + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
# QT's configure script will refuse to use pkg-config unless these two environment variables are set
|
||||
export PKG_CONFIG_SYSROOT_DIR=/
|
||||
export PKG_CONFIG_LIBDIR=${lib.getLib pkg-config}/lib
|
||||
echo "QMAKE_LFLAGS=''${LDFLAGS}" >> mkspecs/devices/${qtPlatformCross stdenv.hostPlatform}/qmake.conf
|
||||
echo "QMAKE_CFLAGS=''${CFLAGS}" >> mkspecs/devices/${qtPlatformCross stdenv.hostPlatform}/qmake.conf
|
||||
echo "QMAKE_CXXFLAGS=''${CXXFLAGS}" >> mkspecs/devices/${qtPlatformCross stdenv.hostPlatform}/qmake.conf
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
@ -161,21 +205,34 @@ stdenv.mkDerivation {
|
||||
done
|
||||
'';
|
||||
|
||||
NIX_CFLAGS_COMPILE = toString ([
|
||||
"-Wno-error=sign-compare" # freetype-2.5.4 changed signedness of some struct fields
|
||||
''-DNIXPKGS_QTCOMPOSE="${libX11.out}/share/X11/locale"''
|
||||
''-DLIBRESOLV_SO="${stdenv.cc.libc.out}/lib/libresolv"''
|
||||
''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"''
|
||||
] ++ lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"''
|
||||
env = {
|
||||
NIX_CFLAGS_COMPILE = toString ([
|
||||
"-Wno-error=sign-compare" # freetype-2.5.4 changed signedness of some struct fields
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"-Wno-warn=free-nonheap-object"
|
||||
"-Wno-free-nonheap-object"
|
||||
"-w"
|
||||
] ++ [
|
||||
''-DNIXPKGS_QTCOMPOSE="${libX11.out}/share/X11/locale"''
|
||||
''-DLIBRESOLV_SO="${stdenv.cc.libc.out}/lib/libresolv"''
|
||||
''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"''
|
||||
] ++ lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"''
|
||||
++ lib.optional stdenv.isLinux "-DUSE_X11"
|
||||
++ lib.optionals (stdenv.hostPlatform.system == "x86_64-darwin") [
|
||||
# ignore "is only available on macOS 10.12.2 or newer" in obj-c code
|
||||
"-Wno-error=unguarded-availability"
|
||||
]
|
||||
++ lib.optionals withGtk3 [
|
||||
''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
|
||||
''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"''
|
||||
] ++ lib.optional decryptSslTraffic "-DQT_DECRYPT_SSL_TRAFFIC");
|
||||
''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
|
||||
''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"''
|
||||
] ++ lib.optional decryptSslTraffic "-DQT_DECRYPT_SSL_TRAFFIC");
|
||||
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
NIX_CFLAGS_COMPILE_FOR_BUILD = toString ([
|
||||
"-Wno-warn=free-nonheap-object"
|
||||
"-Wno-free-nonheap-object"
|
||||
"-w"
|
||||
]);
|
||||
};
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
|
||||
@ -184,6 +241,9 @@ stdenv.mkDerivation {
|
||||
# To prevent these failures, we need to override PostgreSQL detection.
|
||||
PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq";
|
||||
|
||||
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
configurePlatforms = [ ];
|
||||
} // {
|
||||
# TODO Remove obsolete and useless flags once the build will be totally mastered
|
||||
configureFlags = [
|
||||
"-plugindir $(out)/$(qtPluginPrefix)"
|
||||
@ -210,11 +270,16 @@ stdenv.mkDerivation {
|
||||
"-L" "${icu.out}/lib"
|
||||
"-I" "${icu.dev}/include"
|
||||
"-pch"
|
||||
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"-device ${qtPlatformCross stdenv.hostPlatform}"
|
||||
"-device-option CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
||||
]
|
||||
++ lib.optional debugSymbols "-debug"
|
||||
++ lib.optionals developerBuild [
|
||||
"-developer-build"
|
||||
"-no-warnings-are-errors"
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"-no-warnings-are-errors"
|
||||
] ++ (if (!stdenv.hostPlatform.isx86_64) then [
|
||||
"-no-sse2"
|
||||
] else [
|
||||
@ -286,6 +351,9 @@ stdenv.mkDerivation {
|
||||
] ++ lib.optionals (mysqlSupport) [
|
||||
"-L" "${libmysqlclient}/lib"
|
||||
"-I" "${libmysqlclient}/include"
|
||||
] ++ lib.optional (withQttranslation && (qttranslations != null)) [
|
||||
# depends on x11
|
||||
"-translationdir" "${qttranslations}/translations"
|
||||
]
|
||||
);
|
||||
|
||||
@ -325,6 +393,8 @@ stdenv.mkDerivation {
|
||||
|
||||
setupHook = ../hooks/qtbase-setup-hook.sh;
|
||||
|
||||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.qt.io/";
|
||||
description = "A cross-platform application framework for C++";
|
||||
@ -352,4 +422,4 @@ stdenv.mkDerivation {
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
||||
}
|
||||
}))
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtcharts";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
@ -1,8 +1,13 @@
|
||||
{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez }:
|
||||
{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez, IOBluetooth }:
|
||||
|
||||
qtModule {
|
||||
pname = "qtconnectivity";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
buildInputs = lib.optional stdenv.isLinux bluez;
|
||||
propagatedBuildInputs = [
|
||||
qtbase
|
||||
qtdeclarative
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
IOBluetooth
|
||||
];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
9
nix/pkgs/qt-5/modules/qtdatavis3d.nix
Normal file
9
nix/pkgs/qt-5/modules/qtdatavis3d.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ lib, stdenv, qtModule, qtbase, qtdeclarative }:
|
||||
|
||||
qtModule {
|
||||
pname = "qtdatavis3d";
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
# error: use of undeclared identifier 'stat64'
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-Dstat64=stat";
|
||||
}
|
@ -1,8 +1,10 @@
|
||||
{ qtModule, lib, python3, qtbase, qtsvg }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, qtModule, python3, qtbase, qtsvg }:
|
||||
|
||||
qtModule {
|
||||
pname = "qtdeclarative";
|
||||
qtInputs = [ qtbase qtsvg ];
|
||||
propagatedBuildInputs = [ qtbase qtsvg ];
|
||||
nativeBuildInputs = [ python3 ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
preConfigure = ''
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtdoc";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtdeclarative ];
|
||||
outputs = [ "out" ];
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtgamepad";
|
||||
qtInputs = [ qtbase qtdeclarative ]
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ]
|
||||
++ lib.optional stdenv.isDarwin GameController;
|
||||
buildInputs = [ ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtgraphicaleffects";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtdeclarative ];
|
||||
outputs = [ "out" "dev" ];
|
||||
}
|
||||
|
@ -1,7 +1,20 @@
|
||||
{ qtModule, qtbase, libtiff }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, qtModule
|
||||
, qtbase
|
||||
, libwebp
|
||||
, jasper
|
||||
, libmng
|
||||
, libtiff
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtimageformats";
|
||||
qtInputs = [ qtbase ];
|
||||
propagatedBuildInputs = [ libtiff ];
|
||||
propagatedBuildInputs = [
|
||||
qtbase libwebp
|
||||
] ++ lib.optionals (!jasper.meta.broken) [
|
||||
jasper
|
||||
] ++ [
|
||||
libmng libtiff
|
||||
];
|
||||
}
|
||||
|
@ -2,12 +2,13 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtlocation";
|
||||
qtInputs = [ qtbase qtmultimedia ];
|
||||
propagatedBuildInputs = [ qtbase qtmultimedia ];
|
||||
outputs = [ "bin" "out" "dev" ];
|
||||
qmakeFlags = lib.optionals stdenv.isDarwin [
|
||||
# boost uses std::auto_ptr which has been disabled in clang with libcxx
|
||||
# This flag re-enables this feature
|
||||
# https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
|
||||
"QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
|
||||
"QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"
|
||||
];
|
||||
}
|
||||
|
@ -5,5 +5,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtlottie";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtmacextras";
|
||||
qtInputs = [ qtbase ];
|
||||
propagatedBuildInputs = [ qtbase ];
|
||||
meta = with lib; {
|
||||
maintainers = with maintainers; [ periklis ];
|
||||
platforms = platforms.darwin;
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtmultimedia";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ gstreamer gst-plugins-base ]
|
||||
# https://github.com/NixOS/nixpkgs/pull/169336 regarding libpulseaudio
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtnetworkauth";
|
||||
qtInputs = [ qtbase ];
|
||||
propagatedBuildInputs = [ qtbase ];
|
||||
}
|
||||
|
27
nix/pkgs/qt-5/modules/qtpim.nix
Normal file
27
nix/pkgs/qt-5/modules/qtpim.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ qtModule
|
||||
, lib
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtpim";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
qtbase
|
||||
qtdeclarative
|
||||
];
|
||||
|
||||
qmakeFlags = [
|
||||
"CONFIG+=git_build"
|
||||
];
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
};
|
||||
}
|
14
nix/pkgs/qt-5/modules/qtpositioning.nix
Normal file
14
nix/pkgs/qt-5/modules/qtpositioning.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ qtModule
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, qtserialport
|
||||
, pkg-config
|
||||
, openssl
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtpositioning";
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative qtserialport ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ];
|
||||
}
|
14
nix/pkgs/qt-5/modules/qtpurchasing.nix
Normal file
14
nix/pkgs/qt-5/modules/qtpurchasing.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, qtModule
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, StoreKit
|
||||
, Foundation
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtpurchasing";
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Foundation StoreKit ];
|
||||
}
|
11
nix/pkgs/qt-5/modules/qtquick3d.nix
Normal file
11
nix/pkgs/qt-5/modules/qtquick3d.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ qtModule
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
, openssl
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtquick3d";
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
buildInputs = [ openssl ];
|
||||
}
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtquickcontrols";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtdeclarative ];
|
||||
}
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtquickcontrols2";
|
||||
qtInputs = [ qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
8
nix/pkgs/qt-5/modules/qtremoteobjects.nix
Normal file
8
nix/pkgs/qt-5/modules/qtremoteobjects.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ qtModule, qtbase, qtdeclarative }:
|
||||
|
||||
qtModule {
|
||||
pname = "qtremoteobjects";
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
# cycle is detected in build when adding "dev" "bin" too
|
||||
outputs = [ "out" ];
|
||||
}
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtscript";
|
||||
qtInputs = [ qtbase qttools ];
|
||||
propagatedBuildInputs = [ qtbase qttools ];
|
||||
}
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtscxml";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtsensors";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtserialbus";
|
||||
qtInputs = [ qtbase qtserialport ];
|
||||
propagatedBuildInputs = [ qtbase qtserialport ];
|
||||
}
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtserialport";
|
||||
qtInputs = [ qtbase ];
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isLinux "-DNIXPKGS_LIBUDEV=\"${lib.getLib systemd}/lib/libudev\"";
|
||||
propagatedBuildInputs = [ qtbase ];
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isLinux "-DNIXPKGS_LIBUDEV=\"${lib.getLib systemd}/lib/libudev\"";
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtspeech";
|
||||
qtInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
buildInputs = lib.optionals stdenv.isLinux [ speechd ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtsvg";
|
||||
qtInputs = [ qtbase ];
|
||||
propagatedBuildInputs = [ qtbase ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
54
nix/pkgs/qt-5/modules/qtsystems.nix
Normal file
54
nix/pkgs/qt-5/modules/qtsystems.nix
Normal file
@ -0,0 +1,54 @@
|
||||
{ qtModule
|
||||
, stdenv
|
||||
, lib
|
||||
, bluez
|
||||
, libevdev
|
||||
, libX11
|
||||
, pkg-config
|
||||
, qtbase
|
||||
, udev
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtsystems";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
"bin"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
qtbase
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
bluez
|
||||
libevdev
|
||||
libX11
|
||||
udev
|
||||
];
|
||||
|
||||
qmakeFlags = [
|
||||
"CONFIG+=git_build"
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
"CONFIG+=ofono"
|
||||
"CONFIG+=udisks"
|
||||
"CONFIG+=upower"
|
||||
];
|
||||
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
wrapQtApp $bin/bin/servicefw
|
||||
'';
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ OPNA2608 ];
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qttools";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
|
||||
# fixQtBuiltinPaths overwrites a builtin path we should keep
|
||||
@ -36,7 +36,7 @@ qtModule {
|
||||
"bin/macdeployqt"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin ''-DNIXPKGS_QMLIMPORTSCANNER="${qtdeclarative.dev}/bin/qmlimportscanner"'';
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && qtdeclarative != null) ''-DNIXPKGS_QMLIMPORTSCANNER="${qtdeclarative.dev}/bin/qmlimportscanner"'';
|
||||
|
||||
setupHook = ../hooks/qttools-setup-hook.sh;
|
||||
}
|
||||
|
@ -2,5 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qttranslations";
|
||||
qtInputs = [ qttools ];
|
||||
nativeBuildInputs = [ qttools ];
|
||||
outputs = [ "out" ];
|
||||
}
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtvirtualkeyboard";
|
||||
qtInputs = [ qtbase qtdeclarative qtsvg hunspell ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative qtsvg hunspell ];
|
||||
}
|
||||
|
@ -1,24 +1,16 @@
|
||||
{ lib, qtModule, qtbase, qtquickcontrols, wayland, pkg-config, fetchpatch }:
|
||||
{ qtModule, qtbase, qtquickcontrols, wayland, wayland-scanner, pkg-config, lib }:
|
||||
|
||||
qtModule {
|
||||
pname = "qtwayland";
|
||||
qtInputs = [ qtbase qtquickcontrols ];
|
||||
propagatedBuildInputs = [ qtbase qtquickcontrols ];
|
||||
buildInputs = [ wayland ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config wayland-scanner ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
patches = [
|
||||
# NixOS-specific, ensure that app_id is correctly determined for
|
||||
# wrapped executables from `wrapQtAppsHook` (see comment in patch for further
|
||||
# context). Beware: shared among different Qt5 versions.
|
||||
# context).
|
||||
./qtwayland-app_id.patch
|
||||
|
||||
# Backport of https://codereview.qt-project.org/c/qt/qtwayland/+/388338
|
||||
# Pulled from Fedora as they modified it to not apply to KDE as Plasma 5.x
|
||||
# doesn't behave properly with the patch applied. See the discussion at
|
||||
# https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/39 for details
|
||||
(fetchpatch {
|
||||
url = "https://src.fedoraproject.org/rpms/qt5-qtwayland/raw/46376bb00d4c3dd3db2e82ad7ca5301ce16ea4ab/f/0080-Client-set-constraint-adjustments-for-popups-in-xdg.patch";
|
||||
sha256 = "sha256-XP+noYCk8fUdA0ItCqMjV7lSXDlNdB7Az9q7NRpupHc=";
|
||||
})
|
||||
];
|
||||
meta.badPlatforms = lib.platforms.darwin;
|
||||
}
|
||||
|
@ -1,8 +1,12 @@
|
||||
{ qtModule, qtbase, qtdeclarative }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, qtModule
|
||||
, qtbase
|
||||
, qtdeclarative
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
pname = "qtwebchannel";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" ] ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ "bin" ];
|
||||
}
|
||||
|
||||
|
@ -2,13 +2,17 @@
|
||||
, qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel
|
||||
|
||||
, bison, flex, git, gperf, ninja, pkg-config, python, which
|
||||
, nodejs, qtbase, perl
|
||||
, nodejs, perl
|
||||
, buildPackages
|
||||
, pkgsBuildTarget
|
||||
, pkgsBuildBuild
|
||||
|
||||
, xorg, libXcursor, libXScrnSaver, libXrandr, libXtst
|
||||
, fontconfig, freetype, harfbuzz, icu, dbus, libdrm
|
||||
, zlib, minizip, libjpeg, libpng, libtiff, libwebp, libopus
|
||||
, jsoncpp, protobuf, libvpx, srtp, snappy, nss, libevent
|
||||
, alsa-lib
|
||||
, pulseaudio
|
||||
, libcap
|
||||
, pciutils
|
||||
, systemd
|
||||
@ -17,8 +21,8 @@
|
||||
, cctools, libobjc, libpm, libunwind, sandbox, xnu
|
||||
, ApplicationServices, AVFoundation, Foundation, ForceFeedback, GameController, AppKit
|
||||
, ImageCaptureCore, CoreBluetooth, IOBluetooth, CoreWLAN, Quartz, Cocoa, LocalAuthentication
|
||||
, MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML
|
||||
, cups, openbsm, runCommand, xcbuild, writeScriptBin
|
||||
, MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML, OpenDirectory, Accelerate
|
||||
, cups, openbsm, xcbuild, writeScriptBin
|
||||
, ffmpeg_4 ? null
|
||||
, lib, stdenv, fetchpatch
|
||||
, version ? null
|
||||
@ -26,13 +30,39 @@
|
||||
, pipewireSupport ? stdenv.isLinux
|
||||
, pipewire_0_2
|
||||
, postPatch ? ""
|
||||
, nspr
|
||||
, lndir
|
||||
}:
|
||||
|
||||
qtModule {
|
||||
let
|
||||
# qtwebengine expects to find an executable in $PATH which runs on
|
||||
# the build platform yet knows about the host `.pc` files. Most
|
||||
# configury allows setting $PKG_CONFIG to point to an
|
||||
# arbitrarily-named script which serves this purpose; however QT
|
||||
# insists that it is named `pkg-config` with no target prefix. So
|
||||
# we re-wrap the host platform's pkg-config.
|
||||
pkg-config-wrapped-without-prefix = stdenv.mkDerivation {
|
||||
name = "pkg-config-wrapper-without-target-prefix";
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
ln -s '${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config' $out/bin/pkg-config
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
qtModule ({
|
||||
pname = "qtwebengine";
|
||||
qtInputs = [ qtdeclarative qtquickcontrols qtlocation qtwebchannel ];
|
||||
nativeBuildInputs = [
|
||||
bison flex git gperf ninja pkg-config python which gn nodejs
|
||||
bison flex git gperf ninja pkg-config (python.withPackages(ps: [ ps.html5lib ])) which gn nodejs
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
perl
|
||||
lndir (lib.getDev pkgsBuildTarget.targetPackages.qt5.qtbase)
|
||||
pkgsBuildBuild.pkg-config
|
||||
(lib.getDev pkgsBuildTarget.targetPackages.qt5.qtquickcontrols)
|
||||
pkg-config-wrapped-without-prefix
|
||||
] ++ lib.optional stdenv.isDarwin xcbuild;
|
||||
doCheck = true;
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
@ -76,8 +106,8 @@ qtModule {
|
||||
''
|
||||
# Patch library paths in Chromium sources
|
||||
+ lib.optionalString (!stdenv.isDarwin) ''
|
||||
#sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
|
||||
# src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
|
||||
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
|
||||
src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
|
||||
|
||||
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
|
||||
src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc
|
||||
@ -102,16 +132,25 @@ qtModule {
|
||||
--replace "-Wl,-fatal_warnings" ""
|
||||
'') + postPatch;
|
||||
|
||||
NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
|
||||
# with gcc8, -Wclass-memaccess became part of -Wall and this exceeds the logging limit
|
||||
"-Wno-class-memaccess"
|
||||
] ++ lib.optionals (stdenv.hostPlatform.gcc.arch or "" == "sandybridge") [
|
||||
# it fails when compiled with -march=sandybridge https://github.com/NixOS/nixpkgs/pull/59148#discussion_r276696940
|
||||
# TODO: investigate and fix properly
|
||||
"-march=westmere"
|
||||
] ++ lib.optionals stdenv.cc.isClang [
|
||||
"-Wno-elaborated-enum-base"
|
||||
]);
|
||||
env = {
|
||||
NIX_CFLAGS_COMPILE =
|
||||
toString (
|
||||
lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"-w "
|
||||
] ++ lib.optionals stdenv.cc.isGNU [
|
||||
# with gcc8, -Wclass-memaccess became part of -Wall and this exceeds the logging limit
|
||||
"-Wno-class-memaccess"
|
||||
] ++ lib.optionals (stdenv.hostPlatform.gcc.arch or "" == "sandybridge") [
|
||||
# it fails when compiled with -march=sandybridge https://github.com/NixOS/nixpkgs/pull/59148#discussion_r276696940
|
||||
# TODO: investigate and fix properly
|
||||
"-march=westmere"
|
||||
] ++ lib.optionals stdenv.cc.isClang [
|
||||
"-Wno-elaborated-enum-base"
|
||||
]);
|
||||
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
NIX_CFLAGS_LINK = "-Wl,--no-warn-search-mismatch";
|
||||
"NIX_CFLAGS_LINK_${buildPackages.stdenv.cc.suffixSalt}" = "-Wl,--no-warn-search-mismatch";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
export NINJAFLAGS=-j$NIX_BUILD_CORES
|
||||
@ -119,13 +158,20 @@ qtModule {
|
||||
if [ -d "$PWD/tools/qmake" ]; then
|
||||
QMAKEPATH="$PWD/tools/qmake''${QMAKEPATH:+:}$QMAKEPATH"
|
||||
fi
|
||||
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
|
||||
export QMAKE_CC=$CC
|
||||
export QMAKE_CXX=$CXX
|
||||
export QMAKE_LINK=$CXX
|
||||
export QMAKE_AR=$AR
|
||||
'';
|
||||
|
||||
qmakeFlags = [ "--" "-system-ffmpeg" ]
|
||||
++ lib.optional pipewireSupport "-webengine-webrtc-pipewire"
|
||||
++ lib.optional (pipewireSupport && stdenv.buildPlatform == stdenv.hostPlatform) "-webengine-webrtc-pipewire"
|
||||
++ lib.optional enableProprietaryCodecs "-proprietary-codecs";
|
||||
|
||||
propagatedBuildInputs = [
|
||||
qtdeclarative qtquickcontrols qtlocation qtwebchannel
|
||||
|
||||
# Image formats
|
||||
libjpeg libpng libtiff libwebp
|
||||
|
||||
@ -145,6 +191,7 @@ qtModule {
|
||||
|
||||
# Audio formats
|
||||
alsa-lib
|
||||
pulseaudio
|
||||
|
||||
# Text rendering
|
||||
fontconfig freetype
|
||||
@ -186,6 +233,8 @@ qtModule {
|
||||
SecurityInterface
|
||||
Vision
|
||||
CoreML
|
||||
OpenDirectory
|
||||
Accelerate
|
||||
|
||||
openbsm
|
||||
libunwind
|
||||
@ -215,7 +264,9 @@ qtModule {
|
||||
dontUseNinjaBuild = true;
|
||||
dontUseNinjaInstall = true;
|
||||
|
||||
postInstall = lib.optionalString stdenv.isLinux ''
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
|
||||
mkdir -p $out/libexec
|
||||
'' + lib.optionalString stdenv.isLinux ''
|
||||
cat > $out/libexec/qt.conf <<EOF
|
||||
[Paths]
|
||||
Prefix = ..
|
||||
@ -230,25 +281,36 @@ qtModule {
|
||||
|
||||
meta = with lib; {
|
||||
description = "A web engine based on the Chromium web browser";
|
||||
mainProgram = "qwebengine_convert_dict";
|
||||
maintainers = with maintainers; [ matthewbauer ];
|
||||
|
||||
# qtwebengine-5.15.8: "QtWebEngine can only be built for x86,
|
||||
# x86-64, ARM, Aarch64, and MIPSel architectures."
|
||||
platforms =
|
||||
lib.trivial.pipe lib.systems.doubles.all [
|
||||
(map (double: lib.systems.elaborate { system = double; }))
|
||||
(lib.lists.filter (parsedPlatform: with parsedPlatform;
|
||||
isUnix &&
|
||||
(isx86_32 ||
|
||||
isx86_64 ||
|
||||
isAarch32 ||
|
||||
isAarch64 ||
|
||||
(isMips && isLittleEndian))))
|
||||
(map (plat: plat.system))
|
||||
];
|
||||
broken = stdenv.isDarwin && stdenv.isx86_64;
|
||||
platforms = with lib.systems.inspect.patterns;
|
||||
let inherit (lib.systems.inspect) patternLogicalAnd;
|
||||
in concatMap (patternLogicalAnd isUnix) (lib.concatMap lib.toList [
|
||||
isx86_32
|
||||
isx86_64
|
||||
isAarch32
|
||||
isAarch64
|
||||
(patternLogicalAnd isMips isLittleEndian)
|
||||
]);
|
||||
|
||||
# This build takes a long time; particularly on slow architectures
|
||||
timeout = 24 * 3600;
|
||||
};
|
||||
}
|
||||
|
||||
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
configurePlatforms = [ ];
|
||||
# to get progress output in `nix-build` and `nix build -L`
|
||||
preBuild = ''
|
||||
export TERM=dumb
|
||||
'';
|
||||
depsBuildBuild = [
|
||||
pkgsBuildBuild.stdenv
|
||||
zlib
|
||||
nss
|
||||
nspr
|
||||
];
|
||||
|
||||
})
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtwebglplugin";
|
||||
qtInputs = [ qtbase qtwebsockets ];
|
||||
propagatedBuildInputs = [ qtbase qtwebsockets ];
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
, qtbase, qtdeclarative, qtlocation, qtmultimedia, qtsensors, qtwebchannel
|
||||
, fontconfig, libwebp, libxml2, libxslt
|
||||
, sqlite, systemd, glib, gst_all_1, cmake
|
||||
, bison, flex, gdb, gperf, perl, pkg-config, python38, ruby
|
||||
, bison, flex, gdb, gperf, perl, pkg-config, python3, ruby
|
||||
, ICU, OpenGL
|
||||
}:
|
||||
|
||||
@ -22,11 +22,11 @@ let
|
||||
in
|
||||
qtModule {
|
||||
pname = "qtwebkit";
|
||||
qtInputs = [ qtbase qtdeclarative qtlocation qtsensors qtwebchannel ]
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative qtlocation qtsensors qtwebchannel ]
|
||||
++ lib.optional stdenv.isDarwin qtmultimedia;
|
||||
buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base hyphen ]
|
||||
++ lib.optionals stdenv.isDarwin [ ICU OpenGL ];
|
||||
nativeBuildInputs = [ bison flex gdb gperf perl pkg-config python38 ruby cmake ];
|
||||
nativeBuildInputs = [ bison flex gdb gperf perl pkg-config python3 ruby cmake ];
|
||||
|
||||
cmakeFlags = [ "-DPORT=Qt" ]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
@ -35,7 +35,7 @@ qtModule {
|
||||
"-DMACOS_FORCE_SYSTEM_XML_LIBRARIES=OFF"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = toString ([
|
||||
env.NIX_CFLAGS_COMPILE = toString ([
|
||||
# with gcc7 this warning blows the log over Hydra's limit
|
||||
"-Wno-expansion-to-defined"
|
||||
]
|
||||
@ -47,12 +47,13 @@ qtModule {
|
||||
|
||||
doCheck = false; # fails 13 out of 13 tests (ctest)
|
||||
|
||||
# Hack to avoid TMPDIR in RPATHs.
|
||||
preFixup = ''
|
||||
rm -rf "$(pwd)"
|
||||
mkdir "$(pwd)"
|
||||
# remove forbidden references to $TMPDIR
|
||||
preFixup = lib.optionalString stdenv.isLinux ''
|
||||
patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$out"/libexec/*
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ abbradar periklis ];
|
||||
knownVulnerabilities = [
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtwebsockets";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtwebview";
|
||||
qtInputs = [ qtdeclarative qtwebengine ];
|
||||
propagatedBuildInputs = [ qtdeclarative qtwebengine ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
CoreFoundation
|
||||
WebKit
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtx11extras";
|
||||
qtInputs = [ qtbase ];
|
||||
propagatedBuildInputs = [ qtbase ];
|
||||
}
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
qtModule {
|
||||
pname = "qtxmlpatterns";
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
propagatedBuildInputs = [ qtbase qtdeclarative ];
|
||||
devTools = [ "bin/xmlpatterns" "bin/xmlpatternsvalidator" ];
|
||||
}
|
||||
|
@ -1,9 +1,16 @@
|
||||
{ lib, mkDerivation, perl }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildPackages
|
||||
, mkDerivation
|
||||
, perl
|
||||
, qmake
|
||||
, patches
|
||||
, srcs
|
||||
, pkgsHostTarget
|
||||
}:
|
||||
|
||||
let inherit (lib) licenses maintainers platforms; in
|
||||
|
||||
{ self, srcs, patches }:
|
||||
|
||||
args:
|
||||
|
||||
let
|
||||
@ -16,8 +23,18 @@ mkDerivation (args // {
|
||||
inherit pname version src;
|
||||
patches = (args.patches or []) ++ (patches.${pname} or []);
|
||||
|
||||
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ perl self.qmake ];
|
||||
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
|
||||
nativeBuildInputs =
|
||||
(args.nativeBuildInputs or []) ++ [
|
||||
perl qmake
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
pkgsHostTarget.qt5.qtbase.dev
|
||||
];
|
||||
propagatedBuildInputs =
|
||||
(lib.warnIf (args ? qtInputs) "qt5.qtModule's qtInputs argument is deprecated" args.qtInputs or []) ++
|
||||
(args.propagatedBuildInputs or []);
|
||||
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ] ++ (args.depsBuildBuild or []);
|
||||
} // {
|
||||
|
||||
outputs = args.outputs or [ "out" "dev" ];
|
||||
setOutputFlags = args.setOutputFlags or false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user