Skip to content

Conversation

@gbcox
Copy link

@gbcox gbcox commented Aug 10, 2025

This patch removes bundled fonts and resource files from Cantata’s source tree

Changes:

Deletes bundled fonts from 3rdparty/

Adjusts CMake logic to support system font usage

Dependency: This is the base patch for a four-part cleanup series:

P1: Debundle QtIOCompressor

P2: Drop QtIOCompressor entirely

P3: Hide broken services

Gerald B Cox and others added 9 commits August 10, 2025 09:00
add new CMake option BUNDLED_KCATEGORIZEDVIEW to choose. Default to
enabled on Windows, Mac, and disabled on other platforms (linux).
This is used instead of D-Bus on systems without it (Windows, Mac).
The bundled QXT library has already been disabled for a while. On most
systems, the mediakeys can be handled by the standard interface for
"playing music".
This package is readily available in development environments,
so there's no point in keeping an old version around in the source tree.
CMake option BUNDLED_FONTAWESOME controls whether Cantata attempts to
use and bundle FontAwesome in a QResource. In addition, this should help
fix the font icon issues present in previous versions by setting the
fontStyle parameter on QFont.
This is a modified copy of KDE Solid inherited from upstream Cantata.
While Solid is definitely available as a package on Linux, it might be
harder to install KDE Frameworks on Windows and Linux. Keep this in tree
for now until KF6::Solid can be correctly vendored and implemented.

Also, the devices feature might not even be working properly right now.
@nullobsi
Copy link
Owner

Thanks a lot! I've split the changes and kept compatibility with the other platforms.

There are two new CMake options: BUNDLED_KCATEGORIZEDVIEW and BUNDLED_FONTAWESOME, and they're both disabled by default on Linux so that system libraries/fonts are used first.

The only thing I changed was the deletion of the in-tree version of Solid. I don't wanna break builds, and it seems that the feature might be broken in some ways anyway. The version of Solid needs to be upgraded to KF6::Solid (and also have a BUNDLED_SOLID option), which will probably happen in another changeset.

@nullobsi nullobsi merged commit 60aaf95 into nullobsi:main Aug 13, 2025
3 checks passed
@gbcox
Copy link
Author

gbcox commented Aug 14, 2025

Thanks a lot! I've split the changes and kept compatibility with the other platforms.

There are two new CMake options: BUNDLED_KCATEGORIZEDVIEW and BUNDLED_FONTAWESOME, and they're both disabled by default on Linux so that system libraries/fonts are used first.

The only thing I changed was the deletion of the in-tree version of Solid. I don't wanna break builds, and it seems that the feature might be broken in some ways anyway. The version of Solid needs to be upgraded to KF6::Solid (and also have a BUNDLED_SOLID option), which will probably happen in another changeset.

Well you caused me to go back and see what you were talking about, because on of my ways of testing for 3rdparty addons was simply changing the name and see what broke and run it down. I did it with solid, and nothing happened, things built properly and all was right with the world, so I thought it wasn't used. What I have now found out is that in the CMake, there is a test for taglib 2... well, Fedora has taglib 2, but it is just called taglib, so that check is failed and cantata builds with device support off, even though it is marked on - and solid is never used. I just went ahead and turned device support off, since it has never been on to begin with. I think it would be fairly easy to switch to use the system library at least in linux, but in my mind the question is why? Seems cantata has strayed a bit from being just a great mpd client to a jack of all trades.

@nullobsi nullobsi changed the title Debundle fonts and resources (patch p0) feat: allow unbundled fonts and resources Sep 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants