mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
app-text/calibre: backport fix to build with qt 6.10
Bug: https://bugs.gentoo.org/966278 Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
This commit is contained in:
parent
9bb30ea27d
commit
804bb51cae
@ -127,6 +127,7 @@ PATCHES=(
|
||||
# (last commit in 2017)
|
||||
"${FILESDIR}/${PN}-7.0.0-jxr-test.patch"
|
||||
"${FILESDIR}/${PN}-8.9.0-piper.patch"
|
||||
"${FILESDIR}/${PN}-8.9-qt6.10.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
||||
105
app-text/calibre/files/calibre-8.9-qt6.10.patch
Normal file
105
app-text/calibre/files/calibre-8.9-qt6.10.patch
Normal file
@ -0,0 +1,105 @@
|
||||
From 4c44e8f76f197629af695091c49b1a0efbb30bae Mon Sep 17 00:00:00 2001
|
||||
From: Marcin Serwin <marcin@serwin.dev>
|
||||
Date: Sat, 11 Oct 2025 02:00:04 +0200
|
||||
Subject: [PATCH] Fix building with Qt 6.10
|
||||
|
||||
Qt 6.10 no longer implicitly imports private modules, see https://doc.qt.io/qt-6/whatsnew610.html#build-system-changes.
|
||||
---
|
||||
src/calibre/headless/CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/calibre/headless/CMakeLists.txt b/src/calibre/headless/CMakeLists.txt
|
||||
index c2c8fa88e58f..3fc5d8e4862f 100644
|
||||
--- a/src/calibre/headless/CMakeLists.txt
|
||||
+++ b/src/calibre/headless/CMakeLists.txt
|
||||
@@ -1,8 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.21)
|
||||
project(headless)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
-find_package(Qt6Gui REQUIRED)
|
||||
+find_package(Qt6 REQUIRED COMPONENTS Gui GuiPrivate Core CorePrivate)
|
||||
add_library(headless MODULE main.cpp headless_backingstore.cpp headless_integration.cpp)
|
||||
set_property(TARGET headless PROPERTY QT_PLUGIN_TYPE "platforms")
|
||||
set_property(TARGET headless PROPERTY QT_PLUGIN_CLASS_NAME "HeadlessIntegrationPlugin")
|
||||
-target_link_libraries(headless PRIVATE Qt::Gui Qt::GuiPrivate Qt::Core Qt::CorePrivate)
|
||||
+target_link_libraries(headless PRIVATE Qt6::Gui Qt6::GuiPrivate Qt6::Core Qt6::CorePrivate)
|
||||
|
||||
|
||||
From 8820bffc86631ca7020177a4998b478141a7b8c1 Mon Sep 17 00:00:00 2001
|
||||
From: Kovid Goyal <kovid@kovidgoyal.net>
|
||||
Date: Sat, 11 Oct 2025 08:26:28 +0530
|
||||
Subject: [PATCH] Only change CMakeLists.txt for headless if actually building
|
||||
with Qt >= 6.10
|
||||
|
||||
---
|
||||
setup/build.py | 18 +++++++++++++++++-
|
||||
setup/build_environment.py | 3 ++-
|
||||
src/calibre/headless/CMakeLists.txt | 3 ++-
|
||||
3 files changed, 21 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/setup/build.py b/setup/build.py
|
||||
index 5ed34720dbb9..7816493ad94b 100644
|
||||
--- a/setup/build.py
|
||||
+++ b/setup/build.py
|
||||
@@ -648,6 +648,22 @@ def build_headless(self):
|
||||
bdir = self.j(self.build_dir, 'headless')
|
||||
if os.path.exists(bdir):
|
||||
shutil.rmtree(bdir)
|
||||
+ sdir = os.path.join(bdir, 'src')
|
||||
+ shutil.copytree(os.path.dirname(sources[0]), sdir)
|
||||
+ with open(os.path.join(sdir, 'CMakeLists.txt'), 'r+') as f:
|
||||
+ raw = f.read()
|
||||
+ qt = lazy_load('qt')
|
||||
+ if qt['version'] >= (6, 10):
|
||||
+ fp = 'find_package(Qt6 REQUIRED COMPONENTS Gui GuiPrivate Core CorePrivate)'
|
||||
+ ll = 'target_link_libraries(headless PRIVATE Qt6::Gui Qt6::GuiPrivate Qt6::Core Qt6::CorePrivate)'
|
||||
+ else:
|
||||
+ fp = 'find_package(Qt6Gui REQUIRED)'
|
||||
+ ll = 'target_link_libraries(headless PRIVATE Qt::Gui Qt::GuiPrivate Qt::Core Qt::CorePrivate)'
|
||||
+ raw = raw.replace('__FIND_GUI__', fp)
|
||||
+ raw = raw.replace('__LINK_TARGETS__', ll)
|
||||
+ f.seek(0), f.truncate()
|
||||
+ f.write(raw)
|
||||
+ bdir = os.path.join(bdir, 'build')
|
||||
cmd = [CMAKE]
|
||||
if is_macos_universal_build:
|
||||
cmd += ['-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64']
|
||||
@@ -657,7 +673,7 @@ def build_headless(self):
|
||||
cwd = os.getcwd()
|
||||
os.chdir(bdir)
|
||||
try:
|
||||
- self.check_call(cmd + ['-S', os.path.dirname(sources[0])])
|
||||
+ self.check_call(cmd + ['-S', sdir])
|
||||
self.check_call([self.env.make] + [f'-j{cpu_count or 1}'])
|
||||
finally:
|
||||
os.chdir(cwd)
|
||||
diff --git a/setup/build_environment.py b/setup/build_environment.py
|
||||
index a0fd7f2dd260..f5ca099d71a1 100644
|
||||
--- a/setup/build_environment.py
|
||||
+++ b/setup/build_environment.py
|
||||
@@ -119,8 +119,9 @@ def readvar(name):
|
||||
return re.search(f'^{name}:(.+)$', qraw, flags=re.M).group(1).strip()
|
||||
|
||||
|
||||
-qt = {x:readvar(y) for x, y in {'libs':'QT_INSTALL_LIBS', 'plugins':'QT_INSTALL_PLUGINS'}.items()}
|
||||
+qt = {x:readvar(y) for x, y in {'libs':'QT_INSTALL_LIBS', 'plugins':'QT_INSTALL_PLUGINS', 'version_str': 'QT_VERSION'}.items()}
|
||||
qmakespec = readvar('QMAKE_SPEC') if iswindows else None
|
||||
+qt['version'] = tuple(map(int, qt['version_str'].split('.')[:2]))
|
||||
freetype_lib_dirs = []
|
||||
freetype_libs = []
|
||||
freetype_inc_dirs = []
|
||||
diff --git a/src/calibre/headless/CMakeLists.txt b/src/calibre/headless/CMakeLists.txt
|
||||
index 3fc5d8e4862f..49b110477b6d 100644
|
||||
--- a/src/calibre/headless/CMakeLists.txt
|
||||
+++ b/src/calibre/headless/CMakeLists.txt
|
||||
@@ -1,8 +1,9 @@
|
||||
cmake_minimum_required(VERSION 3.21)
|
||||
project(headless)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
+__FIND_GUI__
|
||||
find_package(Qt6 REQUIRED COMPONENTS Gui GuiPrivate Core CorePrivate)
|
||||
add_library(headless MODULE main.cpp headless_backingstore.cpp headless_integration.cpp)
|
||||
set_property(TARGET headless PROPERTY QT_PLUGIN_TYPE "platforms")
|
||||
set_property(TARGET headless PROPERTY QT_PLUGIN_CLASS_NAME "HeadlessIntegrationPlugin")
|
||||
-target_link_libraries(headless PRIVATE Qt6::Gui Qt6::GuiPrivate Qt6::Core Qt6::CorePrivate)
|
||||
+__LINK_TARGETS__
|
||||
Loading…
x
Reference in New Issue
Block a user