Skip to content

Commit 5a0128f

Browse files
committed
fix: remove private Qt ABI from release builds
1 parent 49f6f57 commit 5a0128f

6 files changed

Lines changed: 14 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ jobs:
149149
fi
150150
151151
rpm -qpR "${MAIN_RPM}" | tee /tmp/ro-control.requires
152-
if grep -E 'Qt_6\.10|PRIVATE_API' /tmp/ro-control.requires; then
153-
echo "Forbidden Qt private or Fedora 44-era Qt ABI dependency detected." >&2
152+
if grep -E 'PRIVATE_API' /tmp/ro-control.requires; then
153+
echo "Forbidden Qt private ABI dependency detected." >&2
154154
exit 1
155155
fi
156156

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
rpm -qp --info "${RPM_FILE}" > "dist/rpm/ro-control-${VERSION}-${RPM_ARCH}-info.txt"
199199
rpm -qp --requires "${RPM_FILE}" | sort > "dist/rpm/ro-control-${VERSION}-${RPM_ARCH}-requires.txt"
200200
rpm -qlp "${RPM_FILE}" | sort > "dist/rpm/ro-control-${VERSION}-${RPM_ARCH}-files.txt"
201-
if grep -E 'Qt_6\.10|PRIVATE_API' "dist/rpm/ro-control-${VERSION}-${RPM_ARCH}-requires.txt"; then
201+
if grep -E 'PRIVATE_API' "dist/rpm/ro-control-${VERSION}-${RPM_ARCH}-requires.txt"; then
202202
echo "Forbidden Qt private ABI dependency detected." >&2
203203
exit 1
204204
fi

.github/workflows/rpm-artifacts.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ jobs:
149149
COMMON_RPM_FILE="dist/rpm/ro-control-common-noarch.rpm"
150150
151151
rpm -qpR "${MAIN_RPM_FILE}" | tee /tmp/ro-control.requires
152-
if grep -E 'Qt_6\.10|PRIVATE_API' /tmp/ro-control.requires; then
152+
if grep -E 'PRIVATE_API' /tmp/ro-control.requires; then
153153
echo "Forbidden Qt private ABI dependency detected." >&2
154154
exit 1
155155
fi

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,12 @@ qt_add_qml_module(ro-control
162162
src/qml/assets/icon-theme.svg
163163
)
164164

165+
# Keep QML cache generation on the public bytecode path so RPM dependencies do
166+
# not pick up Qt private ABI symbols from AOT-generated C++.
167+
set_target_properties(ro-control PROPERTIES
168+
QT_QMLCACHEGEN_ARGUMENTS "--only-bytecode"
169+
)
170+
165171
if(Qt6LinguistTools_FOUND)
166172
# English strings ship directly from source code. Keep the English TS file
167173
# for catalog maintenance, but only compile non-source locales into .qm.

src/backend/nvidia/updater.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ namespace SessionUtil {
1313
struct SessionInfo;
1414
}
1515

16-
// NvidiaUpdater compares the installed driver state with newer available builds.
16+
// NvidiaUpdater compares the installed driver state with newer available
17+
// builds.
1718
class NvidiaUpdater : public QObject {
1819
Q_OBJECT
1920

src/backend/system/commandrunner.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
#include <memory>
1010

1111
// CommandRunner is the shared process execution layer for backend modules.
12-
// Backend code routes system commands through this class instead of ad hoc calls.
12+
// Backend code routes system commands through this class instead of ad hoc
13+
// calls.
1314
class CommandRunner : public QObject {
1415
Q_OBJECT
1516

0 commit comments

Comments
 (0)