From 077c92a8b91ced717094868b08a97db7ca7bfdbe Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 19 Nov 2021 23:48:53 +0300 Subject: [PATCH] gammaray-qt5: Fix running. See issue https://github.com/KDAB/GammaRay/issues/334 --- .../005-fix-dll-naming.patch | 67 +++++++++++++++++++ mingw-w64-gammaray-qt5/PKGBUILD | 9 ++- 2 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 mingw-w64-gammaray-qt5/005-fix-dll-naming.patch diff --git a/mingw-w64-gammaray-qt5/005-fix-dll-naming.patch b/mingw-w64-gammaray-qt5/005-fix-dll-naming.patch new file mode 100644 index 0000000000..d58e83ed58 --- /dev/null +++ b/mingw-w64-gammaray-qt5/005-fix-dll-naming.patch @@ -0,0 +1,67 @@ +diff -Naur gammaray-2.11.3-orig/CMakeLists.txt gammaray-2.11.3/CMakeLists.txt +--- gammaray-2.11.3-orig/CMakeLists.txt 2021-11-19 15:30:40.736378100 +0300 ++++ gammaray-2.11.3/CMakeLists.txt 2021-11-19 23:11:22.874841100 +0300 +@@ -690,11 +690,12 @@ + endif() + endif() + ++set(PROBE_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") + if(NOT GAMMARAY_INSTALL_QT_LAYOUT) +- set(PROBE_BASENAME "gammaray_probe") +-else() +- set(PROBE_BASENAME "${CMAKE_SHARED_LIBRARY_PREFIX}gammaray_probe") ++ set(PROBE_PREFIX "") + endif() ++set(PROBE_BASENAME "${PROBE_PREFIX}gammaray_probe") ++set(WINLOADER_BASENAME "${PROBE_PREFIX}gammaray_winloader") + + if(GAMMARAY_INSTALL_QT_LAYOUT) + if(WIN32) +diff -Naur gammaray-2.11.3-orig/config-gammaray.h.cmake gammaray-2.11.3/config-gammaray.h.cmake +--- gammaray-2.11.3-orig/config-gammaray.h.cmake 2021-11-19 15:30:40.672412100 +0300 ++++ gammaray-2.11.3/config-gammaray.h.cmake 2021-11-19 23:05:52.703503600 +0300 +@@ -27,6 +27,9 @@ + // probe name + #define GAMMARAY_PROBE_BASENAME "${PROBE_BASENAME}" + ++// winloader name ++#define GAMMARAY_WINLOADER_BASENAME "${WINLOADER_BASENAME}" ++ + // library ABI suffix, as used with >= Qt 5.14 on Android + #define ANDROID_ABI "${ANDROID_ABI}" + +diff -Naur gammaray-2.11.3-orig/launcher/core/injector/windllinjector.cpp gammaray-2.11.3/launcher/core/injector/windllinjector.cpp +--- gammaray-2.11.3-orig/launcher/core/injector/windllinjector.cpp 2021-10-17 23:35:36.000000000 +0300 ++++ gammaray-2.11.3/launcher/core/injector/windllinjector.cpp 2021-11-19 23:05:43.508237100 +0300 +@@ -205,7 +205,7 @@ + QString WinDllInjector::fixProbeDllPath(const QString &probeDll) + { + QString dllPath = QDir::toNativeSeparators(probeDll); +- dllPath.replace(QLatin1String(GAMMARAY_PROBE_BASENAME), QLatin1String("gammaray_winloader")); ++ dllPath.replace(QLatin1String(GAMMARAY_PROBE_BASENAME), QLatin1String(GAMMARAY_WINLOADER_BASENAME)); + Q_ASSERT_X(QFileInfo::exists(dllPath), Q_FUNC_INFO, qPrintable(QString(QLatin1String("%1 does not exists!")).arg(dllPath))); + return dllPath; + } +diff -Naur gammaray-2.11.3-orig/probe/entry_win.cpp gammaray-2.11.3/probe/entry_win.cpp +--- gammaray-2.11.3-orig/probe/entry_win.cpp 2021-10-17 23:35:36.000000000 +0300 ++++ gammaray-2.11.3/probe/entry_win.cpp 2021-11-19 23:04:26.072302900 +0300 +@@ -34,7 +34,7 @@ + typedef void (*gammaray_probe_inject)(void); + + namespace { +-static const std::wstring LOADER_NAME = L"gammaray_winloader"; ++static const std::string LOADER_NAME = GAMMARAY_WINLOADER_BASENAME; + static const std::string PROBE_NAME = GAMMARAY_PROBE_BASENAME; + } + +@@ -50,8 +50,9 @@ + break; + } + const std::wstring probeName(PROBE_NAME.cbegin(), PROBE_NAME.cend()); ++ const std::wstring loaderName(LOADER_NAME.cbegin(), LOADER_NAME.cend()); + std::wstring path(buffer, size); +- path.replace(path.find(LOADER_NAME), LOADER_NAME.length(), probeName); ++ path.replace(path.find(loaderName), loaderName.length(), probeName); + + HMODULE probe = GetModuleHandleW(path.c_str()); + if (!probe) { diff --git a/mingw-w64-gammaray-qt5/PKGBUILD b/mingw-w64-gammaray-qt5/PKGBUILD index b308b425f7..20dba6662f 100644 --- a/mingw-w64-gammaray-qt5/PKGBUILD +++ b/mingw-w64-gammaray-qt5/PKGBUILD @@ -4,7 +4,7 @@ _realname=gammaray pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-qt5" pkgver=2.11.3 -pkgrel=1 +pkgrel=2 arch=('any') url="https://www.kdab.com/gammaray/" mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') @@ -38,13 +38,15 @@ source=(https://github.com/KDAB/GammaRay/releases/download/v${pkgver}/${_realnam 001-use-webkit.patch 002-find-binutils-libs.patch 003-win32-not-elf.patch - 004-files-layout.patch) + 004-files-layout.patch + 005-fix-dll-naming.patch) noextract=(${_realname}-${pkgver}.tar.gz) sha256sums=('03d7ca7bd5eb600c9c389d0cf071960330592f1f392a783b7fec5f9eaa5df586' 'd85b7e94803a1ebda912d7ac1b1b77380551a452c2ebbdb4ff03f8b140266887' '5a8007ce7409eb0b752f48c7c32aca6161b81fe7aa48cab600886f34360da594' 'cff9bda2dbde8054bbaccba52a739d59d99808c3f5e9fcdd13747779c5003787' - '86a4e90eb77ed2c04f4cb3fdffef06b0c69915cd9870de76c81ade5562adfea6') + '86a4e90eb77ed2c04f4cb3fdffef06b0c69915cd9870de76c81ade5562adfea6' + '1518267e0c1231cfc8886d244ceb3f1865e95bad036e046816ac7d511a3c36b3') validpgpkeys=(E86C000370B1B9E2A9191AD53DBFB6882C9358FB) # KDAB Products prepare() { @@ -58,6 +60,7 @@ prepare() { patch -p1 -i ${srcdir}/002-find-binutils-libs.patch patch -p1 -i ${srcdir}/003-win32-not-elf.patch patch -p1 -i ${srcdir}/004-files-layout.patch + patch -p1 -i ${srcdir}/005-fix-dll-naming.patch } build() {