Adding support for KPackage directly to KNewStuff means that we are
able to deal more gracefully with things like Plasma's Global Themes
(and indeed any other kpackage based thing).
This is done by adding another archive specialisation to the installer
class, and by also adding a check to the cache to ensure that even
when a kpackage is removed from the system outside of KNewStuff,
it does not remain seemingly installed in the KNS lists.
- Make sure the cache gets written periodically
- Add KPackage support to KNSCore::Installation
- Introduce a getter (and enum) for the uncompress Installation setting
- Add a redirection to the knsrc documentation location
- Add a function to clean the cache of functionally stale entries
- Clean the cache when the uncompression method is set to kpackage
- Add a fallback for unconverted kpackage based knsrc files
- Clean up some of the error reporting, and reset the entry's state
- Check if installedFile is a file, if so bypass KPackage and delete
- Add a KPackageType property to Installation, for fallback purposes
- Add documentation for the new knsrc bits
- Handle adopting an already installed kpackage item
- Also uninstall not-adopted-but-there possibly installed kpackage bits
- Add a simple async job wrapper for KPackage operations (and use it for the installation handling tasks in Installation)
BUG:418466