Message ID | 20170329155822.32245-1-gael.portay@savoirfairelinux.com |
---|---|
State | Changes Requested |
Headers | show |
Hello, On Wed, 29 Mar 2017 11:58:22 -0400, Gaël PORTAY wrote: > Changes since v4: > - Prefix local variables to avoid potential naming collisions. You forgot one. > +QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +QT5VIRTUALKEYBOARD_ALL_LAYOUTS = $(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > +QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))" QMAKEFLAGS is still not properly prefixed. Thomas
Hello, On Wed, 29 Mar 2017 11:58:22 -0400, Gaël PORTAY wrote: > +QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +QT5VIRTUALKEYBOARD_ALL_LAYOUTS = $(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > +QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))" > + > +QT5VIRTUALKEYBOARD_OPENWNN = $(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_OPENWNN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) > +QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 This way of concatenating the licenses doesn't work, because the final string will be: "GPLv3 Apache-2.0" while we want "GPLv3, Apache-2.0". Look at other Qt5 packages how they are handling this: QT5BASE_LICENSE := $(QT5BASE_LICENSE), BSD-3c (examples) Note that next to the license, we also want an information on which part of the package it applies. > +QT5VIRTUALKEYBOARD_PINYIN = $(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_PINYIN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) > +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += pinyin Do you really need the name here? You don't use it anywhere. What about: QT5VIRTUALKEYBOARD_INSTALL_3RDPARTY = YES instead. Best regards, Thomas
Hello Thomas, On Wed, Mar 29, 2017 at 06:00:16PM +0200, Thomas Petazzoni wrote: > Hello, > > On Wed, 29 Mar 2017 11:58:22 -0400, Gaël PORTAY wrote: > > > Changes since v4: > > - Prefix local variables to avoid potential naming collisions. > > You forgot one. > > > > +QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > > +QT5VIRTUALKEYBOARD_ALL_LAYOUTS = $(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > > +QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))" > > QMAKEFLAGS is still not properly prefixed. > Indeed, sorry for this missing one. > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com Let me resend a new patch... Regards, Gael
Hi Thomas, On Wed, Mar 29, 2017 at 06:03:11PM +0200, Thomas Petazzoni wrote: > Hello, > > On Wed, 29 Mar 2017 11:58:22 -0400, Gaël PORTAY wrote: > > [...] > > This way of concatenating the licenses doesn't work, because the final > string will be: > > "GPLv3 Apache-2.0" > > while we want "GPLv3, Apache-2.0". Look at other Qt5 packages how they > are handling this: > > QT5BASE_LICENSE := $(QT5BASE_LICENSE), BSD-3c (examples) > > Note that next to the license, we also want an information on which > part of the package it applies. > I modified the Makefile so the LICENSE variable is set to (all layouts + handwriting): "GPLv3, Apache-2.0 (openwnn), Apache-2.0 (pinyin), Apache-2.0 BSD-3c (tcime), MIT (lipi-toolkit)" Is it correct? I can also be more explicit: "GPLv3, Apache-2.0 (openwnn/ja_JP), Apache-2.0 (pinyin/zh_TW), Apache-2.0 BSD-3c (tcime/zh_TW), MIT (lipi-toolkit/handwriting)" Thank you for your review. I did not understand why some packages have a comma in LICENSE while others have 'and/or' or are simply white-space separated. BTW, here are the modifications: -QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (openwnn) -QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (pinyin) -QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 BSD-3c +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 BSD-3c (tcime) -QT5VIRTUALKEYBOARD_LICENSE += MIT +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), MIT (lipi-toolkit) > > +QT5VIRTUALKEYBOARD_PINYIN = $(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_PINYIN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) > > +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += pinyin > > Do you really need the name here? You don't use it anywhere. What about: > > QT5VIRTUALKEYBOARD_INSTALL_3RDPARTY = YES > > instead. Indeed I did not need them. I used the white-space separated values for debugging purpose. The YES value make the Makefile more simple. -QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += pinyin +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES -QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += tcime +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES -QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += lipi_toolkit +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES > > Best regards, > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com If you agree with those modifications, I will send a v6 of this patch (including missing prefix for QMAKEFLAGS). Regards, Gael
Hello, On Wed, 29 Mar 2017 13:29:02 -0400, Gaël PORTAY wrote: > I modified the Makefile so the LICENSE variable is set to (all layouts + > handwriting): > > "GPLv3, Apache-2.0 (openwnn), Apache-2.0 (pinyin), Apache-2.0 BSD-3c (tcime), MIT (lipi-toolkit)" > > Is it correct? It looks good. Note that I'm saying it looks good from a formatting point of view: I haven't checked the actual licenses. > I can also be more explicit: > > "GPLv3, Apache-2.0 (openwnn/ja_JP), Apache-2.0 (pinyin/zh_TW), Apache-2.0 BSD-3c (tcime/zh_TW), MIT (lipi-toolkit/handwriting)" This is probably a bit too verbose, what you proposed above as the first solution looks sufficient to me. > Thank you for your review. I did not understand why some packages have a comma > in LICENSE while others have 'and/or' or are simply white-space separated. The Buildroot manual normally explains what the formatting should be, but it is very possible that some packages do not comply 100% with the rules described in the manual (simply because those packages were added before the rules were clarified in the manual). Basically, the idea is that: a comma separates multiple licenses that cover different parts of the package, with parenthesis to indicate what component is covered by that license. The "or" statement is used when the package is available under a choice of licenses (i.e you can chose to use say the GPLv2 terms *OR* the MIT terms for the whole package, for example). > If you agree with those modifications, I will send a v6 of this patch > (including missing prefix for QMAKEFLAGS). The modifications look good to me. Thanks a lot! Thomas
diff --git a/package/qt5/Config.in b/package/qt5/Config.in index 4bcbc6ef5..a810503d3 100644 --- a/package/qt5/Config.in +++ b/package/qt5/Config.in @@ -76,6 +76,7 @@ source "package/qt5/qt5serialbus/Config.in" source "package/qt5/qt5serialport/Config.in" source "package/qt5/qt5svg/Config.in" source "package/qt5/qt5tools/Config.in" +source "package/qt5/qt5virtualkeyboard/Config.in" source "package/qt5/qt5webchannel/Config.in" source "package/qt5/qt5webkit/Config.in" source "package/qt5/qt5websockets/Config.in" diff --git a/package/qt5/qt5virtualkeyboard/Config.in b/package/qt5/qt5virtualkeyboard/Config.in new file mode 100644 index 000000000..16ca91655 --- /dev/null +++ b/package/qt5/qt5virtualkeyboard/Config.in @@ -0,0 +1,52 @@ +comment "qt5virtualkeyboard needs at least qt-5.7 and qt5declarative quick module" + depends on !BR2_PACKAGE_QT5_VERSION_LATEST || !BR2_PACKAGE_QT5DECLARATIVE_QUICK + +config BR2_PACKAGE_QT5VIRTUALKEYBOARD + bool "qt5virtualkeyboard" + depends on BR2_PACKAGE_QT5_VERSION_LATEST + depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK + select BR2_PACKAGE_QT5SVG + help + Qt Virtual Keyboard is a virtual keyboard framework that consists of a + C++ backend supporting custom input methods as well as a UI frontend + implemented in QML. + + This module is licensed under GPLv3. + +if BR2_PACKAGE_QT5VIRTUALKEYBOARD +config BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS + string "language layouts" + default "en_GB" + help + The Virtual Keyboard supports the following languages: + - Arabic (ar_AR) + - Danish (da_DK) + - English (en_GB) + - Finnish (fi_FI) + - French (fr_FR) + - German (de_DE) + - Hindi (hi_IN) + - Italian (it_IT) + - Japanese (ja_JP) + - Korean (ko_KR) + - Norwegian (nb_NO) + - Persian/Farsi (fa_FA) + - Polish (pl_PL) + - Portugese (pt_PT) + - Romanian (ro_RO) + - Russian (ru_RU) + - Simplified Chinese (zh_CN) + - Traditional Chinese (zh_TW) + - Spanish (es_ES) + - Swedish (sv_SE) + + Note: all is a flag for activating all languages. + +config BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING + bool "handwriting" + help + Handwriting support, with gestures for fullscreen input. + + Lipi Toolkit (LipiTk) is an open source toolkit for online Handwriting + Recognition. +endif diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash new file mode 100644 index 000000000..ea30fdb7c --- /dev/null +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtvirtualkeyboard-opensource-src-5.8.0.tar.xz +sha256 35fdf5b39d930935b6299ac59f347bea89b983e16bd7961fee3f1b8e16f4e21c qtvirtualkeyboard-opensource-src-5.8.0.tar.xz diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file mode 100644 index 000000000..65d5ffecd --- /dev/null +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk @@ -0,0 +1,86 @@ +################################################################################ +# +# qt5virtualkeyboard +# +################################################################################ + +QT5VIRTUALKEYBOARD_VERSION = $(QT5_VERSION) +QT5VIRTUALKEYBOARD_SITE = $(QT5_SITE) +QT5VIRTUALKEYBOARD_SOURCE = qtvirtualkeyboard-opensource-src-$(QT5VIRTUALKEYBOARD_VERSION).tar.xz +QT5VIRTUALKEYBOARD_DEPENDENCIES = qt5base qt5declarative qt5svg +QT5VIRTUALKEYBOARD_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5VIRTUALKEYBOARD_LICENSE = GPLv3 +QT5VIRTUALKEYBOARD_LICENSE_FILES = LICENSE.GPL3 +else +QT5VIRTUALKEYBOARD_LICENSE = Commercial license +QT5VIRTUALKEYBOARD_REDISTRIBUTE = NO +endif + +QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +QT5VIRTUALKEYBOARD_ALL_LAYOUTS = $(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) +QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))" + +QT5VIRTUALKEYBOARD_OPENWNN = $(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_OPENWNN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) +QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 +QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/openwnn/NOTICE +endif + +QT5VIRTUALKEYBOARD_PINYIN = $(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_PINYIN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += pinyin +QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 +QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/pinyin/NOTICE +endif + +QT5VIRTUALKEYBOARD_TCIME = $(findstring zh_TW,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_TCIME)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += tcime +QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 BSD-3c +QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/tcime/COPYING +endif +endif + +ifeq ($(BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING),y) +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS += lipi_toolkit +QMAKEFLAGS += CONFIG+=handwriting +QT5VIRTUALKEYBOARD_LICENSE += MIT +QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/lipi-toolkit/MIT_LICENSE.txt +endif + +ifneq ($(strip $(QT5VIRTUALKEYBOARD_3RDPARTY_PARTS)),) +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_3RDPARTY_PARTS + cp -dpfr $(STAGING_DIR)/usr/qtvirtualkeyboard $(TARGET_DIR)/usr +endef +endif + +define QT5VIRTUALKEYBOARD_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake $(QMAKEFLAGS)) +endef + +define QT5VIRTUALKEYBOARD_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5VIRTUALKEYBOARD_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install +endef + +ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y) +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES + cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/virtualkeyboard $(TARGET_DIR)/usr/lib/qt/examples/ +endef +endif + +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins/platforminputcontexts + cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so $(TARGET_DIR)/usr/lib/qt/plugins/platforminputcontexts + cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick + $(QT5VIRTUALKEYBOARD_INSTALL_TARGET_3RDPARTY_PARTS) + $(QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES) +endef + +$(eval $(generic-package))