Change:
When running the provided by the package, it complains about not finding the tool, which is provided by . I have not found a suitable workaround, since it seems like the location of the scanner is hardcoded inside Invoke on a project using Qt. How to use this tool is explained here: Please run and paste the results. system: host os: multi-user?: sandbox: version: channels(raskolnikov): nixpkgs:
The error is as follows:
Hi I tried withyour latestchanges from . The fact that Qt 5.12 now works on Darwin again is great news! However, this issue seems to not be resolved. Now the does not bail out inmmediately as it did before. It does indeed do something for a while, but then later I get: Maybe there is some other part of the code where it is missing the path correction? Thanks a lot!
My bad, I was actually using the old one by mistake... I am getting new errors though: I will investigate...
I think I found the issue. The problem is this line: is returning , which is incorrect. I think lines 1258-1260 can be discarded altogether since without the tool is still correctly using , which is a better way of passing the import paths, since inside Nix we actually need multiple import paths anyways due to the modularized Qt installation. Would you be happy to extend the patch with such a modification?
Ok... I have further investigated and I was wrong... One must indeed pass to to really make it work. One can indeed pass multiple times, and probably we shall do it for every entry in . Probably this can be patched... but it seems like we are getting into non trivial patching territory...
Thanks Mathew for reopening the issue. I opened a corresponding issue on Qt:
I marked this as stale due to inactivity. &rarr;
Actually this still stands and it'd be nice to have it fixed some day. There are other issues that are blocking me on Mac these days though, like .
I marked this as stale due to inactivity. &rarr;

Discussion:
_qt5_LinguistTools_check_file_exists(${imported_location}) set_target_properties(Qt5::lconvert PROPERTIES <ins> --- a/src/macdeployqt/shared/shared.cpp +++ b/src/macdeployqt/shared/shared.cpp @@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf if (!QFile(qmlImportScannerPath).exists()) qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner"; +#ifdef NIXPKGS_QMLIMPORTSCANNER +    // Fallback: Nixpkgs hardcoded path +    if (!QFile(qmlImportScannerPath).exists()) +        qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER; +#endif + // Verify that we found a qmlimportscanner binary if (!QFile(qmlImportScannerPath).exists()) { LogError() << "qmlimportscanner not found at" << qmlImportScannerPath; </ins>

./qtwebkit-darwin-no-readline.patch ./qtwebkit-darwin-no-qos-classes.patch ]; <ins> qttools = [ ./qttools.patch ]; </ins> }; mkDerivation =

!!ELSE set(imported_location "$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX") !!ENDIF <ins> diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h index b14a494296..779c4eda95 100644 --- a/src/corelib/kernel/qcore_mac_p.h +++ b/src/corelib/kernel/qcore_mac_p.h @@ -211,7 +211,7 @@ private: // -------------------------------------------------------------------------- -#if !defined(QT_BOOTSTRAPPED) +#if 0 QT_END_NAMESPACE #include <os/activity.h> @@ -289,7 +289,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current); #define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter(); -#endif // !defined(QT_BOOTSTRAPPED) +#else // !defined(QT_BOOTSTRAPPED) + +#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...) +#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...) +#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...) + +#define QT_APPLE_LOG_ACTIVITY2(...) +#define QT_APPLE_LOG_ACTIVITY1(...) +#define QT_APPLE_LOG_ACTIVITY(...) + +#define QT_APPLE_SCOPED_LOG_ACTIVITY(...) + +#endif // ------------------------------------------------------------------------- diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp index 2c1005ad80..244147ea7d 100644 --- a/src/testlib/qappletestlogger.cpp +++ b/src/testlib/qappletestlogger.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE -#if defined(QT_USE_APPLE_UNIFIED_LOGGING) +#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0 using namespace QTestPrivate; diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 1268730cc6..a50e9b0764 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -524,7 +524,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename) #endif } -#if defined(QT_USE_APPLE_UNIFIED_LOGGING) +#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0 // Logger that also feeds messages to AUL. It needs to wrap the existing // logger, as it needs to be able to short circuit the existing logger // in case AUL prints to stderr. </ins>

<ins> --- a/src/macdeployqt/shared/shared.cpp +++ b/src/macdeployqt/shared/shared.cpp @@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf if (!QFile(qmlImportScannerPath).exists()) qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner"; +#ifdef NIXPKGS_QMLIMPORTSCANNER +    // Fallback: Nixpkgs hardcoded path +    if (!QFile(qmlImportScannerPath).exists()) +        qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER; +#endif + // Verify that we found a qmlimportscanner binary if (!QFile(qmlImportScannerPath).exists()) { LogError() << "qmlimportscanner not found at" << qmlImportScannerPath; </ins>

# TODO: move to buildInputs, this should not be propagated. AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth CoreLocation CoreServices DiskArbitration Foundation OpenGL <del> darwin.libobjc libiconv </del> <ins> darwin.libobjc libiconv MetalKit </ins> ] else [

<del> { qtModule, stdenv, lib, qtbase }: </del> <ins> { qtModule, stdenv, lib, qtbase, qtdeclarative }: </ins> with lib;

"bin/macdeployqt" ]; <ins> NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin ''-DNIXPKGS_QMLIMPORTSCANNER="${qtdeclarative.dev}/bin/qmlimportscanner"''; </ins> setupHook = ../hooks/qttools-setup-hook.sh; }

--replace "QuartzCore/../Frameworks/CoreImage.framework/Headers" "CoreImage" ''; }); <ins> MetalKit = stdenv.lib.overrideDerivation super.MetalKit (drv: { installPhase = drv.installPhase + '' mkdir -p $out/include/simd cp ${lib.getDev sdk}/include/simd/*.h $out/include/simd/ ''; }); </ins> }; bareFrameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix {

MediaAccessibility      = [ CF CoreGraphics CoreText QuartzCore ]; MediaToolbox            = [ AudioToolbox AudioUnit CF CoreMedia ]; Metal                   = []; <ins> MetalKit                = [ ModelIO Metal ]; ModelIO                 = [ ]; </ins> NetFS                   = [ CF ]; OSAKit                  = [ Carbon ]; OpenAL                  = [];

libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5); <del> # TODO bump to 5.12 on darwin once it's not broken qt5 = if stdenv.isDarwin then qt511 else qt512; </del> <ins> qt5 = qt512; </ins> libsForQt5 = if stdenv.isDarwin then libsForQt511 else libsForQt512; qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { };