diff mbox series

[v2] package/qt6/qt6grpc: new package

Message ID 20250509014212.88296-1-rubacha.jack03@gmail.com
State Superseded
Headers show
Series [v2] package/qt6/qt6grpc: new package | expand

Commit Message

Jack Rubacha May 9, 2025, 1:42 a.m. UTC
Adds the QT GRPC module (containing Qt Protobuf as well).

Signed-off-by: Jack Rubacha <rubacha.jack03@gmail.com>

---
Changes v1 -> v2:
 - Remove 'selects BR2_PACKAGE_HOST_QT6BASE' as it is a make dependency
 - Changes help text to clearly state both modules
 - Adds a git repository link to the help text
 - Cleans up license files to show all necessary files, matches hashfile
 - Make multiline clauses alphabetically ordered

---
 package/qt6/Config.in            |  1 +
 package/qt6/qt6grpc/Config.in    |  7 +++++
 package/qt6/qt6grpc/qt6grpc.hash | 10 +++++++
 package/qt6/qt6grpc/qt6grpc.mk   | 46 ++++++++++++++++++++++++++++++++
 4 files changed, 64 insertions(+)
 create mode 100644 package/qt6/qt6grpc/Config.in
 create mode 100644 package/qt6/qt6grpc/qt6grpc.hash
 create mode 100644 package/qt6/qt6grpc/qt6grpc.mk

Comments

Roy Kollen Svendsen May 9, 2025, 5:56 a.m. UTC | #1
Hi Jack,

Nice clean up.

fre. 9. mai 2025 kl. 03:45 skrev Jack Rubacha <rubacha.jack03@gmail.com>:

> Adds the QT GRPC module (containing Qt Protobuf as well).
>
> Signed-off-by: Jack Rubacha <rubacha.jack03@gmail.com>
>
> ---
> Changes v1 -> v2:
>  - Remove 'selects BR2_PACKAGE_HOST_QT6BASE' as it is a make dependency
>  - Changes help text to clearly state both modules
>  - Adds a git repository link to the help text
>  - Cleans up license files to show all necessary files, matches hashfile
>  - Make multiline clauses alphabetically ordered
>
> ---
>  package/qt6/Config.in            |  1 +
>  package/qt6/qt6grpc/Config.in    |  7 +++++
>  package/qt6/qt6grpc/qt6grpc.hash | 10 +++++++
>  package/qt6/qt6grpc/qt6grpc.mk   | 46 ++++++++++++++++++++++++++++++++
>  4 files changed, 64 insertions(+)
>  create mode 100644 package/qt6/qt6grpc/Config.in
>  create mode 100644 package/qt6/qt6grpc/qt6grpc.hash
>  create mode 100644 package/qt6/qt6grpc/qt6grpc.mk
>
> diff --git a/package/qt6/Config.in b/package/qt6/Config.in
> index 10594691cf..9c297b321e 100644
> --- a/package/qt6/Config.in
> +++ b/package/qt6/Config.in
> @@ -48,6 +48,7 @@ source "package/qt6/qt6charts/Config.in"
>  source "package/qt6/qt6core5compat/Config.in"
>  source "package/qt6/qt6declarative/Config.in"
>  source "package/qt6/qt6graphs/Config.in"
> +source "package/qt6/qt6grpc/Config.in"
>  source "package/qt6/qt6languageserver/Config.in"
>  source "package/qt6/qt6mqtt/Config.in"
>  source "package/qt6/qt6multimedia/Config.in"
> diff --git a/package/qt6/qt6grpc/Config.in b/package/qt6/qt6grpc/Config.in
> new file mode 100644
> index 0000000000..3d82cfcb0c
> --- /dev/null
> +++ b/package/qt6/qt6grpc/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_QT6GRPC
> +       bool "qt6grpc"
> +       help
> +         This package provides the Qt GRPC and Protobuf modules:
> +
> +         https://doc.qt.io/qt-6/qtgrpc-index.html
> +         https://code.qt.io/cgit/qt/qtgrpc.git/
> diff --git a/package/qt6/qt6grpc/qt6grpc.hash
> b/package/qt6/qt6grpc/qt6grpc.hash
> new file mode 100644
> index 0000000000..06da9f0700
> --- /dev/null
> +++ b/package/qt6/qt6grpc/qt6grpc.hash
> @@ -0,0 +1,10 @@
> +# Hash from:
> https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtgrpc-everywhere-src-6.8.1.tar.xz.sha256
> +sha256
> <https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtgrpc-everywhere-src-6.8.1.tar.xz.sha256+sha256>
> b1615c7096b012e5f42aea57c420d2ce21c906d0eda3ea373b09a47cf40b5e80
> qtgrpc-everywhere-src-6.8.1.tar.xz
> +
> +# Hashes for license files:
> +sha256  e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb
> LICENSE.Apache-2.0.txt
> +sha256  9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce
> LICENSES/BSD-3-Clause.txt
> +sha256  110535522396708cea37c72a802c5e7e81391139f5f7985631c93ef242b206a4
> LICENSES/GFDL-1.3-no-invariants-only.txt
> +sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903
> LICENSES/GPL-3.0-only.txt
> +sha256  6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d
> LICENSES/LicenseRef-protobuf.txt
> +sha256  40678d338ce53cd93f8b22b281a2ecbcaa3ee65ce60b25ffb0c462b0530846b2
> LICENSES/Qt-GPL-exception-1.0.txt
> diff --git a/package/qt6/qt6grpc/qt6grpc.mk b/package/qt6/qt6grpc/
> qt6grpc.mk
> new file mode 100644
> index 0000000000..b8bc2e4651
> --- /dev/null
> +++ b/package/qt6/qt6grpc/qt6grpc.mk
> @@ -0,0 +1,46 @@
>
> +################################################################################
> +#
> +# qt6grpc
> +#
>
> +################################################################################
> +
> +QT6GRPC_VERSION = $(QT6_VERSION)
> +QT6GRPC_SITE = $(QT6_SITE)
> +QT6GRPC_SOURCE =
> qtgrpc-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6GRPC_VERSION).tar.xz
> +QT6GRPC_INSTALL_STAGING = YES
> +QT6GRPC_SUPPORTS_IN_SOURCE_BUILD = NO
> +QT6GRPC_CMAKE_BACKEND = ninja
>

When you break your Makefile variable definition over multiple lines you
should add a single newline before and after.


> +QT6GRPC_LICENSE = \
> +       GPL-3.0-only, \
> +       Apache-2.0 (tests), \
> +       BSD-3-Clause (infrastructure), \
> +       GFDL-1.3-no-invariants-only (documentation)
>

But i think only this one line is preferred:

QT6GRPC_LICENSE = GPL-3.0-only

Only the toplevel license and for the stuff that ends up on target, I
believe the maintainers arrived at this conclusion in a prior discussion.

For consistency and improved readability you should also add a newline here:

+QT6GRPC_LICENSE_FILES = \
> +       LICENSE.Apache-2.0.txt \
> +       LICENSES/BSD-3-Clause.txt \
> +       LICENSES/GFDL-1.3-no-invariants-only.txt \
> +       LICENSES/GPL-3.0-only.txt \
> +       LICENSES/LicenseRef-protobuf.txt \
> +       LICENSES/Qt-GPL-exception-1.0.txt
> +
>

In my opinion it is good to add all the license files here, as you have
done. Its probably better to ship too much than too little legal-info.


> +QT6GRPC_CONF_OPTS = \
> +       -DBUILD_WITH_PCH=OFF \
> +       -DQT_BUILD_EXAMPLES=OFF \
> +       -DQT_BUILD_TESTS=OFF \
> +       -DQT_HOST_PATH=$(HOST_DIR)
> +
> +QT6GRPC_DEPENDENCIES = \
> +       host-pkgconf \
> +       host-qt6grpc \
> +       qt6base
> +
> +ifeq ($(BR2_PACKAGE_QT6DECLARATIVE),y)
> +QT6GRPC_DEPENDENCIES += qt6declarative
> +endif
> +
> +HOST_QT6GRPC_DEPENDENCIES = \
> +       host-qt6base \
> +       host-protobuf
>

You could also order the above dependencies alphabetically


> +
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> --
> 2.49.0
>

Regards,
Roy
diff mbox series

Patch

diff --git a/package/qt6/Config.in b/package/qt6/Config.in
index 10594691cf..9c297b321e 100644
--- a/package/qt6/Config.in
+++ b/package/qt6/Config.in
@@ -48,6 +48,7 @@  source "package/qt6/qt6charts/Config.in"
 source "package/qt6/qt6core5compat/Config.in"
 source "package/qt6/qt6declarative/Config.in"
 source "package/qt6/qt6graphs/Config.in"
+source "package/qt6/qt6grpc/Config.in"
 source "package/qt6/qt6languageserver/Config.in"
 source "package/qt6/qt6mqtt/Config.in"
 source "package/qt6/qt6multimedia/Config.in"
diff --git a/package/qt6/qt6grpc/Config.in b/package/qt6/qt6grpc/Config.in
new file mode 100644
index 0000000000..3d82cfcb0c
--- /dev/null
+++ b/package/qt6/qt6grpc/Config.in
@@ -0,0 +1,7 @@ 
+config BR2_PACKAGE_QT6GRPC
+	bool "qt6grpc"
+	help
+	  This package provides the Qt GRPC and Protobuf modules:
+
+	  https://doc.qt.io/qt-6/qtgrpc-index.html
+	  https://code.qt.io/cgit/qt/qtgrpc.git/
diff --git a/package/qt6/qt6grpc/qt6grpc.hash b/package/qt6/qt6grpc/qt6grpc.hash
new file mode 100644
index 0000000000..06da9f0700
--- /dev/null
+++ b/package/qt6/qt6grpc/qt6grpc.hash
@@ -0,0 +1,10 @@ 
+# Hash from: https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtgrpc-everywhere-src-6.8.1.tar.xz.sha256
+sha256  b1615c7096b012e5f42aea57c420d2ce21c906d0eda3ea373b09a47cf40b5e80  qtgrpc-everywhere-src-6.8.1.tar.xz
+
+# Hashes for license files:
+sha256  e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb  LICENSE.Apache-2.0.txt
+sha256  9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce  LICENSES/BSD-3-Clause.txt
+sha256  110535522396708cea37c72a802c5e7e81391139f5f7985631c93ef242b206a4  LICENSES/GFDL-1.3-no-invariants-only.txt
+sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  LICENSES/GPL-3.0-only.txt
+sha256  6e5e117324afd944dcf67f36cf329843bc1a92229a8cd9bb573d7a83130fea7d  LICENSES/LicenseRef-protobuf.txt
+sha256  40678d338ce53cd93f8b22b281a2ecbcaa3ee65ce60b25ffb0c462b0530846b2  LICENSES/Qt-GPL-exception-1.0.txt
diff --git a/package/qt6/qt6grpc/qt6grpc.mk b/package/qt6/qt6grpc/qt6grpc.mk
new file mode 100644
index 0000000000..b8bc2e4651
--- /dev/null
+++ b/package/qt6/qt6grpc/qt6grpc.mk
@@ -0,0 +1,46 @@ 
+################################################################################
+#
+# qt6grpc
+#
+################################################################################
+
+QT6GRPC_VERSION = $(QT6_VERSION)
+QT6GRPC_SITE = $(QT6_SITE)
+QT6GRPC_SOURCE = qtgrpc-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6GRPC_VERSION).tar.xz
+QT6GRPC_INSTALL_STAGING = YES
+QT6GRPC_SUPPORTS_IN_SOURCE_BUILD = NO
+QT6GRPC_CMAKE_BACKEND = ninja
+QT6GRPC_LICENSE = \
+	GPL-3.0-only, \
+	Apache-2.0 (tests), \
+	BSD-3-Clause (infrastructure), \
+	GFDL-1.3-no-invariants-only (documentation)
+QT6GRPC_LICENSE_FILES = \
+	LICENSE.Apache-2.0.txt \
+	LICENSES/BSD-3-Clause.txt \
+	LICENSES/GFDL-1.3-no-invariants-only.txt \
+	LICENSES/GPL-3.0-only.txt \
+	LICENSES/LicenseRef-protobuf.txt \
+	LICENSES/Qt-GPL-exception-1.0.txt
+
+QT6GRPC_CONF_OPTS = \
+	-DBUILD_WITH_PCH=OFF \
+	-DQT_BUILD_EXAMPLES=OFF \
+	-DQT_BUILD_TESTS=OFF \
+	-DQT_HOST_PATH=$(HOST_DIR)
+
+QT6GRPC_DEPENDENCIES = \
+	host-pkgconf \
+	host-qt6grpc \
+	qt6base
+
+ifeq ($(BR2_PACKAGE_QT6DECLARATIVE),y)
+QT6GRPC_DEPENDENCIES += qt6declarative
+endif
+
+HOST_QT6GRPC_DEPENDENCIES = \
+	host-qt6base \
+	host-protobuf
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))