[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1121528: Upgrade to 6.5.2-2 dropped some qml6-module-org-kde-* dependencies



Hi,

as author of dh_qmldeps. I can give some background and possible solutions.

dh_qmldeps has different modes:

* single binary  package with no qml modules -> all qml files in source are 
scanned
* multiply binary packages it searches for qml files in the binary package +
for qml moules  -> debian/PKG/usr/lib/x86_64-linux-gnu/qt6/qml/*

plasma-workspace creates multiple binary packages and doesn't ship any qml 
files, so only the shipped qml modules are scanned for dependencies. As the 
systems thinks this a simple qml module package. But this too less for plasma-
workspace.

The missing dependencies are inside executable resource files ( qrc:/qt/
qml/...) unfortunately I haven't found a way to extract those resource files 
from a executable to analyze them. Otherwise we wouldn't need to fallback to 
scan the source files. Any code donation to fix that is highly welcome  - but 
please not in this bug report ;) So the only solution for now is to tell  
dh_qmldeps to scan the source directories. The result in a longer qmlfiles. 

dh_qmldeps doesn't need a lookup files like cmake_deps.py. 
you need to have all needed qml deps installed within the build env and it 
will ask dpkg for the package name for those module files. There is a override 
system for the difficult cases.

Best regards,

hefee

--

On Montag, 8. Dezember 2025 18:58 Marco Mattiolo wrote:
> Hi Aurélien,
> 
> On Mon, 01 Dec 2025 23:08:31 +0100 =?ISO-8859-1?Q?Aur=E9lien_COUDERC?
=<libre@coucouf.fr> wrote:
> > We need to take care how we fix or we risk having a too specific qmldeps
> > conf that will again miss deps added in the future.
> > 
> > I don't have a definitive idea on how to fix this, if you know better your
> > feedback is welcome.
> not that I know better, just an approach I've tought of. Probably overkill,
> but should guarantee to catch all qml-* dependencies. Looking recursively
> into all *.qml source files and grepping for the "import org.kde.*" lines.
> In a few minutes I've put together the following and checked inside
> plasma-workspace source
> 
> $ grep -r "import org.kde." . | grep -oP '(?<=import).*(?= )' | sort -d |
> uniq org.kde.activities as
>   org.kde.config //
>   org.kde.config as
>   org.kde.config // for
>   org.kde.coreaddons as
>   org.kde.draganddrop as
>   org.kde.kcmutils //
>   org.kde.kcmutils as
>   org.kde.kcmutils // For
>   org.kde.kholidays as
>   org.kde.kirigamiaddons.components as
>   org.kde.kirigami as
>   org.kde.kirigami.delegates as
>   org.kde.kirigami.dialogs as
>   org.kde.kitemmodels as
>   org.kde.kquickcontrolsaddons as
>   org.kde.kquickcontrolsaddons // For
>   org.kde.kquickcontrols as
>   org.kde.ksvg as
>   org.kde.ksysguard.faces as
>   org.kde.ksysguard.sensors as
>   org.kde.kwindowsystem // for
>   org.kde.milou as
>   org.kde.newstuff as
>   org.kde.notificationmanager as
>   org.kde.pipewire.monitor as
>   org.kde.plasma.activityswitcher as
>   org.kde.plasma.clock as
>   org.kde.plasma.components as
>   org.kde.plasma.components as PlasmaComponents // FIXME: PC3 Tabbar only
> has top and bottom tab positions, not left and org.kde.plasma.core as
>   org.kde.plasma.extras as
>   org.kde.plasma.kcm.users as
>   org.kde.plasma.private.clipboard as
>   org.kde.plasma.private.clipboard as Private // image
>   org.kde.plasma.private.containmentlayoutmanager as
>   org.kde.plasma.private.holidayevents as
>   org.kde.plasma.private.keyboardindicator as
>   org.kde.plasma.private.kicker as
>   org.kde.plasma.private.mpris as
>   org.kde.plasma.wallpapers.image as
>   org.kde.plasma.workspace.calendar as
>   org.kde.plasma.workspace.components as
>   org.kde.plasma.workspace.dbus as
>   org.kde.plasma.workspace.dialogs as
>   org.kde.plasma.workspace.keyboardlayout as
>   org.kde.plasma.workspace.timezoneselector as
>   org.kde.prison as
>   org.kde.private.kcms.colors as
>   org.kde.private.kcms.desktoptheme as
>   org.kde.private.kcms.lookandfeel as
>   org.kde.private.kcms.nightlight as
>   org.kde.private.kcms.nighttime as
>   org.kde.private.kcms.notifications as
>   org.kde.private.kcms.style as
>   org.kde.quickcharts as
>   org.kde.quickcharts.controls as
>   org.kde.taskmanager as
>   org.kde.userfeedback as
>   QtQuick; import QtQuick.Layouts; import org.kde.kirigami as Kirigami;
> 
> For sure someone with more experience can come up with a better version that
> analyzes only *.qml files and greps only the name of the QML module.
> Comparing the list here above with the list of qml6-module-org-kde-*
> packages that were dropped in [1], I see - plasma-workspace depended
> onqml6-module-org-kde-breeze and qml6-module-org-kde-plasma-plasma5support
> that do not seem to be strictly required - org.kde.milou seems to be a
> special case in the name of its binary package not following the
> qml6-module-org-kde-milou style, not a big issue - most of
> org.kde.plasma.* modules are likely available in plasma-workspace itself
> or other plasma-* packages - all the other qml6-module-org-kde-*
> packages that were dropped from debian/control can be spotted in this
> way I know this will require some kind of look-up encyclopedia like we
> have in pkg-kde-dev-scripts/function_collection/cmake_deps.yml , I
> understand you've been looking for a better approach that doesn't
> require the effort to prepare and maintain such a file :) Kind regards
> Marco
> 
> [1]https://salsa.debian.org/qt-kde-team/kde/plasma-workspace/-/commit/7e5869
> 6900f255b1b638f53707ce84f7d6b8b792

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: