Introduce KDE Frameworks 5 packages
PATCH 1/5 Introduce KDE Frameworks 5 packages
KDE Frameworks 5 is a set of libraries built on the Qt framework providing a lot of powerfull classes and solutions for developers building Qt applications.
Unlike the previous KDE libraries, they are split in tiny packages, reducing dependencies as much as possible, making them usable even for embedded projects.
This first commit introduce the kf5 packages folder
--- DEVELOPERS | 3 +++ package/Config.in | 1 + package/kf5/Config.in | 9 +++++++++ package/kf5/kf5.mk | 11 +++++++++++ 4 files changed, 24 insertions(+) create mode 100644 package/kf5/Config.in create mode 100644 package/kf5/kf5.mk
DEVELOPERS +3 -0
@@ -1957,3 +1957,6 @@ F: package/qjson/ F: package/quazip/ F: package/shapelib/ F: package/tinc/ + +N: Pierre Ducroquet <[email protected]> +F: package/kf5/
package/Config.in +1 -0
@@ -302,6 +302,7 @@ comment "Graphic libraries" comment "Other GUIs" source "package/qt/Config.in" source "package/qt5/Config.in" + source "package/kf5/Config.in" if BR2_PACKAGE_QT || BR2_PACKAGE_QT5 comment "QT libraries and helper libraries" source "package/grantlee/Config.in"
package/kf5/Config.in new file +9 -0
@@ -0,0 +1,9 @@ +menuconfig BR2_PACKAGE_KF5 + bool "KF5" + depends on BR2_PACKAGE_QT5 + help + This option enables the KF5 KDE Frameworks. Sub-options allow to + select which modules should be built. + +if BR2_PACKAGE_KF5 +endif
package/kf5/kf5.mk new file +11 -0
@@ -0,0 +1,11 @@ +################################################################################ +# +# kf5 +# +################################################################################ + +KF5_VERSION_MAJOR = 5.43 +KF5_VERSION = $(KF5_VERSION_MAJOR).0 +KF5_SITE = https://download.kde.org/stable/frameworks/$(KF5_VERSION_MAJOR) + +include $(sort $(wildcard package/kf5/*/*.mk))
Signature · 1 line
2.16.1
PATCH 2/5 Add first KF5 package : extra-cmake-modules
extra-cmake-modules contains several additional CMake modules used by the other KF5 packages. It does not install anything on the target and contain only CMake files for the host.
--- package/kf5/Config.in | 1 + package/kf5/kf5-extra-cmake-modules/Config.in | 11 +++++++++++ .../kf5-extra-cmake-modules.hash | 2 ++ .../kf5-extra-cmake-modules/kf5-extra-cmake-modules.mk | 17 +++++++++++++++++ 4 files changed, 31 insertions(+) create mode 100644 package/kf5/kf5-extra-cmake-modules/Config.in create mode 100644 package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash create mode 100644 package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.mk
package/kf5/Config.in +1 -0
@@ -6,4 +6,5 @@ menuconfig BR2_PACKAGE_KF5 select which modules should be built. if BR2_PACKAGE_KF5 +source "package/kf5/kf5-extra-cmake-modules/Config.in" endif
package/kf5/kf5-extra-cmake-modules/Config.in new file +11 -0
@@ -0,0 +1,11 @@ +config BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES + bool "kf5-extra-cmake-modules" + help + KF5 is a set of Qt framework addons, extending Qt in + various ways, not only restricted in helping integration + in KDE. + + This package corresponds to the extra CMake modules, required + for most KF5 libraries. + + https://api.kde.org/frameworks/extra-cmake-modules/html/index.html
package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 5757a5ddceede5321b58345a8dbf953c2282487bf9c24ae477efde800b94fffd extra-cmake-modules-5.43.0.tar.xz
package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.mk new file +17 -0
@@ -0,0 +1,17 @@ +################################################################################ +# +# kf5-extra-cmake-modules +# +################################################################################ + +KF5_EXTRA_CMAKE_MODULES_VERSION = $(KF5_VERSION) +KF5_EXTRA_CMAKE_MODULES_SITE = $(KF5_SITE) +KF5_EXTRA_CMAKE_MODULES_SOURCE = extra-cmake-modules-$(KF5_EXTRA_CMAKE_MODULES_VERSION).tar.xz +KF5_EXTRA_CMAKE_MODULES_LICENSE = BSD-3-Clause +KF5_EXTRA_CMAKE_MODULES_LICENSE_FILE = COPYING-CMAKE-SCRIPTS + +KF5_EXTRA_CMAKE_MODULES_DEPENDENCIES = host-pkgconf +KF5_EXTRA_CMAKE_MODULES_INSTALL_STAGING = YES +KF5_EXTRA_CMAKE_MODULES_INSTALL_TARGET = NO + +$(eval $(cmake-package))
Signature · 1 line
2.16.1
PATCH 2/5 Add first KF5 package : extra-cmake-modules
Hello,
Quoted 5 lines · Pierre Ducroquet
extra-cmake-modules contains several additional CMake modules used by the other KF5 packages. It does not install anything on the target and contain only CMake files for the host.
Signed-off-by Pierre Ducroquet <[email protected]>
I've applied this package. To be honest, I wasn't sure if it should be a host package or a target package, but since CMake looks for its module in $(STAGING_DIR), having it as a target package like you did was the easiest option. We can always change this later if needed.
I fixed the commit title to follow our convention.
Quoted 26 lines
--- package/kf5/Config.in | 1 + package/kf5/kf5-extra-cmake-modules/Config.in | 11 +++++++++++ .../kf5-extra-cmake-modules.hash | 2 ++ .../kf5-extra-cmake-modules/kf5-extra-cmake-modules.mk | 17 +++++++++++++++++ 4 files changed, 31 insertions(+) create mode 100644 package/kf5/kf5-extra-cmake-modules/Config.in create mode 100644 package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash create mode 100644 package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.mkpackage/kf5/Config.in +1
-0@@ -6,4 +6,5 @@ menuconfig BR2_PACKAGE_KF5 select which modules should be built. if BR2_PACKAGE_KF5 +source "package/kf5/kf5-extra-cmake-modules/Config.in" endifpackage/kf5/kf5-extra-cmake-modules/Config.in new file +0
-0
package/kf5/kf5-extra-cmake-modules/Config.in line 7
Quoted 7 lines
package/kf5/kf5-extra-cmake-modules/Config.in new file +7
-0@@ -0,0 +1,11 @@ +config BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES + bool "kf5-extra-cmake-modules" + help + KF5 is a set of Qt framework addons, extending Qt in + various ways, not only restricted in helping integration + in KDE. +
There was some trailing space here.
package/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash line 2
Quoted 12 lines
package/kf5/kf5-extra-cmake-modules/Config.in new file +4
-0+ This package corresponds to the extra CMake modules, required + for most KF5 libraries. + + https://api.kde.org/frameworks/extra-cmake-modules/html/index.htmlpackage/kf5/kf5-extra-cmake-modules/kf5-extra-cmake-modules.hash new file +2
-0@@ -0,0 +1,2 @@ +# Locally calculated +sha256 5757a5ddceede5321b58345a8dbf953c2282487bf9c24ae477efde800b94fffd extra-cmake-modules-5.43.0.tar.xz
I've updated the hash for 5.47, and added the hash of the license file.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 3/5 Add KF5 package networkmanager-qt
In reply to Pierre Ducroquetnetworkmanager-qt is a simple Qt wrapper on the NetworkManager API.
--- package/kf5/Config.in | 1 + package/kf5/kf5-networkmanager-qt/Config.in | 13 +++++++++++++ .../kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash | 2 ++ .../kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.mk | 16 ++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 package/kf5/kf5-networkmanager-qt/Config.in create mode 100644 package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash create mode 100644 package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.mk
package/kf5/Config.in +1 -0
@@ -7,4 +7,5 @@ menuconfig BR2_PACKAGE_KF5 if BR2_PACKAGE_KF5 source "package/kf5/kf5-extra-cmake-modules/Config.in" +source "package/kf5/kf5-networkmanager-qt/Config.in" endif
package/kf5/kf5-networkmanager-qt/Config.in new file +13 -0
@@ -0,0 +1,13 @@ +config BR2_PACKAGE_KF5_NETWORKMANAGER_QT + bool "kf5-networkmanager-qt" + select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES + select BR2_PACKAGE_NETWORK_MANAGER + help + KF5 is a set of Qt framework addons, extending Qt in + various ways, not only restricted in helping integration + in KDE. + + This package contains the NetworkManager Qt5 bindings from the + KF5 project. + + https://api.kde.org/frameworks/networkmanager-qt/html/index.html
package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 0cbbcaa2db1f9bd5445b9c7c5f1e79313df5060f7c31617d673d00f19600755e networkmanager-qt-5.43.0.tar.xz
package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.mk new file +16 -0
@@ -0,0 +1,16 @@ +################################################################################ +# +# kf5-networkmanager-qt +# +################################################################################ + +KF5_NETWORKMANAGER_QT_VERSION = $(KF5_VERSION) +KF5_NETWORKMANAGER_QT_SITE = $(KF5_SITE) +KF5_NETWORKMANAGER_QT_SOURCE = networkmanager-qt-$(KF5_NETWORKMANAGER_QT_VERSION).tar.xz +KF5_NETWORKMANAGER_QT_LICENSE = LGPL-2.1+ +KF5_NETWORKMANAGER_QT_LICENSE_FILE = COPYING.LIB + +KF5_NETWORKMANAGER_QT_DEPENDENCIES = kf5-extra-cmake-modules network-manager +KF5_NETWORKMANAGER_QT_INSTALL_STAGING = YES + +$(eval $(cmake-package))
Signature · 1 line
2.16.1
PATCH 3/5 Add KF5 package networkmanager-qt
Hello Pierre,
Quoted 3 lines · Pierre Ducroquet
networkmanager-qt is a simple Qt wrapper on the NetworkManager API.
Signed-off-by Pierre Ducroquet <[email protected]>
I've applied this package, after doing a number of changes.
First, I fixed the commit title to follow our convention.
package/kf5/kf5-networkmanager-qt/Config.in line 4
Quoted 10 lines
package/kf5/kf5-networkmanager-qt/Config.in new file +4
-0@@ -0,0 +1,13 @@ +config BR2_PACKAGE_KF5_NETWORKMANAGER_QT + bool "kf5-networkmanager-qt" + select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES + select BR2_PACKAGE_NETWORK_MANAGER
When you select a package you *must* replicate its dependencies. Since network-manager has tons of dependencies, and it's pretty obvious for the user of kf5-networkmanager-qt that network-manager should be enabled, I've changed from a "select" to a "depends on BR2_PACKAGE_NETWORK_MANAGER", which avoids the need for replicating the dependencies.
In addition, you forgot to select BR2_PACKAGE_QT5DBUS. Without this, the build fails because kf5-networkmanager-qt uses the DBus support in Qt. This required propagating a few dependencies.
See the final commit for the details.
package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash line 2
Quoted 6 lines
index 0000000000..d3c0f96d46
package/kf5/kf5-networkmanager-qt/kf5-networkmanager-qt.hash new file +2
-0@@ -0,0 +1,2 @@ +# Locally calculated +sha256 0cbbcaa2db1f9bd5445b9c7c5f1e79313df5060f7c31617d673d00f19600755e networkmanager-qt-5.43.0.tar.xz
Updated to 5.47 + hash for license file added.
Quoted 1 line
+KF5_NETWORKMANAGER_QT_DEPENDENCIES = kf5-extra-cmake-modules network-manager
You were missing qt5base here. Without this, you have no guarantee that qt5base gets built before, obviously causing a build failure.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 4/5 Add KF5 package modemmanager-qt
In reply to Pierre Ducroquetmodemmanager-qt is a simple Qt wrapper on the ModemManager API.
--- package/kf5/Config.in | 1 + package/kf5/kf5-modemmanager-qt/Config.in | 13 +++++++++++++ package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash | 2 ++ package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk | 16 ++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 package/kf5/kf5-modemmanager-qt/Config.in create mode 100644 package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash create mode 100644 package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk
package/kf5/Config.in +1 -0
@@ -7,5 +7,6 @@ menuconfig BR2_PACKAGE_KF5 if BR2_PACKAGE_KF5 source "package/kf5/kf5-extra-cmake-modules/Config.in" +source "package/kf5/kf5-modemmanager-qt/Config.in" source "package/kf5/kf5-networkmanager-qt/Config.in" endif
package/kf5/kf5-modemmanager-qt/Config.in new file +13 -0
@@ -0,0 +1,13 @@ +config BR2_PACKAGE_KF5_MODEMMANAGER_QT + bool "kf5-modemmanager-qt" + select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES + select BR2_PACKAGE_MODEM_MANAGER + help + KF5 is a set of Qt framework addons, extending Qt in + various ways, not only restricted in helping integration + in KDE. + + This package contains the ModemManager Qt5 bindings from the + KF5 project. + + https://api.kde.org/frameworks/modemmanager-qt/html/index.html
package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 dc502277001cdf65fe5118780e9c8cb3c568af54c387d7c2b0904a438053089a modemmanager-qt-5.43.0.tar.xz
package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk new file +16 -0
@@ -0,0 +1,16 @@ +################################################################################ +# +# kf5-modemmanager-qt +# +################################################################################ + +KF5_MODEMMANAGER_QT_VERSION = $(KF5_VERSION) +KF5_MODEMMANAGER_QT_SITE = $(KF5_SITE) +KF5_MODEMMANAGER_QT_SOURCE = modemmanager-qt-$(KF5_MODEMMANAGER_QT_VERSION).tar.xz +KF5_MODEMMANAGER_QT_LICENSE = LGPL-2.1+ +KF5_MODEMMANAGER_QT_LICENSE_FILE = COPYING.LIB + +KF5_MODEMMANAGER_QT_DEPENDENCIES = kf5-extra-cmake-modules modem-manager +KF5_MODEMMANAGER_QT_INSTALL_STAGING = YES + +$(eval $(cmake-package))
Signature · 1 line
2.16.1
PATCH 4/5 Add KF5 package modemmanager-qt
Hello,
Quoted 12 lines · Pierre Ducroquet
modemmanager-qt is a simple Qt wrapper on the ModemManager API.
Signed-off-by Pierre Ducroquet <[email protected]>--- package/kf5/Config.in | 1 + package/kf5/kf5-modemmanager-qt/Config.in | 13 +++++++++++++ package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash | 2 ++ package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk | 16 ++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 package/kf5/kf5-modemmanager-qt/Config.in create mode 100644 package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.hash create mode 100644 package/kf5/kf5-modemmanager-qt/kf5-modemmanager-qt.mk
I've applied, with the following changes:
[Thomas:
- fix commit title
- update to 5.47
- add hash for license file
- add missing dependency on qt5base
- add missing dependency on Qt5 DBus module
- use "depends on" instead of "select" for modemmanager dependency]
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 5/5 Add KF5 package kcoreaddons
In reply to Pierre DucroquetKCoreAddons provides classes built on top of QtCore to perform various tasks such as manipulating mime types, autosaving files, creating backup files, generating random sequences, performing text manipulations such as macro replacement, accessing user information and many more.
--- package/kf5/Config.in | 1 + package/kf5/kf5-kcoreaddons/Config.in | 13 +++++++++++++ package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.hash | 2 ++ package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.mk | 16 ++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 package/kf5/kf5-kcoreaddons/Config.in create mode 100644 package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.hash create mode 100644 package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.mk
package/kf5/Config.in +1 -0
@@ -7,6 +7,7 @@ menuconfig BR2_PACKAGE_KF5 if BR2_PACKAGE_KF5 source "package/kf5/kf5-extra-cmake-modules/Config.in" +source "package/kf5/kf5-kcoreaddons/Config.in" source "package/kf5/kf5-modemmanager-qt/Config.in" source "package/kf5/kf5-networkmanager-qt/Config.in" endif
package/kf5/kf5-kcoreaddons/Config.in new file +13 -0
@@ -0,0 +1,13 @@ +config BR2_PACKAGE_KF5_KCOREADDONS + bool "kf5-kcoreaddons" + select BR2_PACKAGE_KF5_EXTRA_CMAKE_MODULES + select BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS + help + KF5 is a set of Qt framework addons, extending Qt in + various ways, not only restricted in helping integration + in KDE. + + This package contains KCoreAddons, a set of classes built + on top of QtCore to perform various tasks. + + https://api.kde.org/frameworks/kcoreaddons/html/index.html
package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally calculated +sha256 c67f008b79365913cbb8c62d2b1b48353c1302f6a351a9bc34b874b18392ef82 kcoreaddons-5.43.0.tar.xz
package/kf5/kf5-kcoreaddons/kf5-kcoreaddons.mk new file +16 -0
@@ -0,0 +1,16 @@ +################################################################################ +# +# kf5-kcoreaddons +# +################################################################################ + +KF5_KCOREADDONS_VERSION = $(KF5_VERSION) +KF5_KCOREADDONS_SITE = $(KF5_SITE) +KF5_KCOREADDONS_SOURCE = kcoreaddons-$(KF5_KCOREADDONS_VERSION).tar.xz +KF5_KCOREADDONS_LICENSE = LGPL-2.1+ +KF5_KCOREADDONS_LICENSE_FILE = COPYING.LIB + +KF5_KCOREADDONS_DEPENDENCIES = kf5-extra-cmake-modules qt5tools +KF5_KCOREADDONS_INSTALL_STAGING = YES + +$(eval $(cmake-package))
Signature · 1 line
2.16.1
PATCH 1/5 Introduce KDE Frameworks 5 packages
In reply to Pierre DucroquetHello,
Quoted 10 lines · Pierre Ducroquet
KDE Frameworks 5 is a set of libraries built on the Qt framework providing a lot of powerfull classes and solutions for developers building Qt applications.
Unlike the previous KDE libraries, they are split in tiny packages, reducing dependencies as much as possible, making them usable even for embedded projects.This first commit introduce the kf5 packages folder
Signed-off-by Pierre Ducroquet <[email protected]>
I've applied this patch to master. First, I fixed the commit title, because we have the policy of using commit titles like this:
<package>: <description>
I also fixed the Config.in.help text which had too long lines and trailing spaces. Please make sure to use check-package to verify such coding style issues.
package/kf5/Config.in line 3
Quoted 1 line
package/kf5/Config.in new file +1
-0+ depends on BR2_PACKAGE_QT5
I added a dependency on BR2_PACKAGE_QT5_VERSION_LATEST, because at least kf5-networkmanager-qt needed Qt5 >= 5.8.
Quoted 1 line
+KF5_VERSION_MAJOR = 5.43
This version wasn't available anymore, so I switched to 5.47 instead. It's a bit annoying if they remove old versions, though. Perhaps something to tell upstream not to do.
package/kf5/kf5.mk line 11
Quoted 4 lines
package/kf5/kf5.mk new file +4
-0+KF5_VERSION = $(KF5_VERSION_MAJOR).0 +KF5_SITE = https://download.kde.org/stable/frameworks/$(KF5_VERSION_MAJOR) + +include $(sort $(wildcard package/kf5/*/*.mk))
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com