Non KDE modules may be sorted in the wrong order due to missing dependency data
One thing I noticed with latest master is that certain non-KDE modules may be sorted in the wrong order. Of course I noticed this only after I committed it...
For example gpgme
is sorted before libgpg-error
because:
- There is no dependency information indicating that, in fact,
gpgme
depends onlibgpg-error
-
gpgme
begins withg
andlibgpg-error
begins withl
and both modules are eventually sorted against each other lexicographically. Which is why we get the wrong result there.
Another example is libkolab
which is sorted before kdelibs4support
because:
- There is no dependency information indicating that, in fact,
libkolab
depends onkdelibs4support
- Even if there were,
libkolab
is a non-KDE module so always get sorted before a KDE one. Here the heuristic to help ensure correct build ordering for KDE modules ends up breaking the non-KDE module.
I think the only robust solution would be to augment dependency data with at least the minimum needed to get the sorting right. Then the heuristic for putting non-KDE modules over KDE modules first should be either dropped or at least relaxed to apply only after dependency based ordering.
@mpyne and @bcooksley can we add dependency data for these modules safely without breaking CI?