diff mbox series

[v1,2/4] qt5virtualkeyboard: fix target install issue with 5.6

Message ID 20180903123747.5234-3-gael.portay@savoirfairelinux.com
State Changes Requested
Headers show
Series qt5virtualkeyboard: fix build issues with 5.6 | expand

Commit Message

Gaël PORTAY Sept. 3, 2018, 12:37 p.m. UTC
qt5virtualkeyboard 2.0 (shipped with Qt 5.6) installs the QML plugin
under the directory Enterprise while the later versions install it
without that directory.

Differentiate installation to target of the QML plugin according to the
Qt major version in use.

Fixes:

	>>> qt5virtualkeyboard 2.0 Installing to target
	mkdir -p /home/gportay/src/buildroot/output/target/usr/lib/qt/plugins/platforminputcontexts
	cp -dpfr /home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/qt/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so /home/gportay/src/buildroot/output/target/usr/lib/qt/plugins/platforminputcontexts
	cp -dpfr /home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/qml/QtQuick/VirtualKeyboard /home/gportay/src/buildroot/output/target/usr/qml/QtQuick
	cp: cannot stat '/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/qml/QtQuick/VirtualKeyboard': No such file or directory
	package/pkg-generic.mk:310: recipe for target '/home/gportay/src/buildroot/output/build/qt5virtualkeyboard-2.0/.stamp_target_installed' failed
	make: *** [/home/gportay/src/buildroot/output/build/qt5virtualkeyboard-2.0/.stamp_target_installed] Error 1

Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
 package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Thomas Petazzoni Sept. 5, 2018, 8:51 p.m. UTC | #1
Hello Gaël,

On Mon,  3 Sep 2018 08:37:45 -0400, Gaël PORTAY wrote:
> qt5virtualkeyboard 2.0 (shipped with Qt 5.6) installs the QML plugin
> under the directory Enterprise while the later versions install it
> without that directory.
> 
> Differentiate installation to target of the QML plugin according to the
> Qt major version in use.
> 
> Fixes:
> 
> 	>>> qt5virtualkeyboard 2.0 Installing to target  
> 	mkdir -p /home/gportay/src/buildroot/output/target/usr/lib/qt/plugins/platforminputcontexts
> 	cp -dpfr /home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/lib/qt/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so /home/gportay/src/buildroot/output/target/usr/lib/qt/plugins/platforminputcontexts
> 	cp -dpfr /home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/qml/QtQuick/VirtualKeyboard /home/gportay/src/buildroot/output/target/usr/qml/QtQuick
> 	cp: cannot stat '/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/qml/QtQuick/VirtualKeyboard': No such file or directory
> 	package/pkg-generic.mk:310: recipe for target '/home/gportay/src/buildroot/output/build/qt5virtualkeyboard-2.0/.stamp_target_installed' failed
> 	make: *** [/home/gportay/src/buildroot/output/build/qt5virtualkeyboard-2.0/.stamp_target_installed] Error 1
> 
> Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
> ---
>  package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> index cbe24d27dc..a4c9492a91 100644
> --- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> @@ -65,6 +65,16 @@ define QT5VIRTUALKEYBOARD_INSTALL_STAGING_CMDS
>  	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
>  endef
>  
> +ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
> +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Entreprise/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> +endef
> +else
> +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> +endef
> +endif

Here you are doing exactly the opposite of what your commit log says:
you are installing from /usr/qml/QtQuick/Entreprise/VirtualKeyboard for
the latest Qt 5.11 version, and from /usr/qml/QtQuick/VirtualKeyboard
for the older Qt 5.6 version.

This also doesn't match the build failure: the build failure happens
with qt5virtualkeyboard 2.0, which is used with Qt 5.6, and your patch
proposes to use exactly the same command for the old Qt as the one that
is unconditionally used today.

I.e:

> +else
> +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> +endef

is exactly the same as:

> -	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick

So I guess your condition is inverted, and the patch was not
sufficiently tested ? :-)

Thanks!

Thomas
Gaël PORTAY Sept. 6, 2018, 8:12 a.m. UTC | #2
Thomas,

On Wed, Sep 05, 2018 at 10:51:58PM +0200, Thomas Petazzoni wrote:
> > (...)
> > diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> > index cbe24d27dc..a4c9492a91 100644
> > --- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> > +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> > @@ -65,6 +65,16 @@ define QT5VIRTUALKEYBOARD_INSTALL_STAGING_CMDS
> >  	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
> >  endef
> >  
> > +ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
> > +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
> > +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Entreprise/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> > +endef
> > +else
> > +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
> > +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> > +endef
> > +endif
> 
> Here you are doing exactly the opposite of what your commit log says:
> you are installing from /usr/qml/QtQuick/Entreprise/VirtualKeyboard for
> the latest Qt 5.11 version, and from /usr/qml/QtQuick/VirtualKeyboard
> for the older Qt 5.6 version.
> 
> This also doesn't match the build failure: the build failure happens
> with qt5virtualkeyboard 2.0, which is used with Qt 5.6, and your patch
> proposes to use exactly the same command for the old Qt as the one that
> is unconditionally used today.
> 
> I.e:
> 
> > +else
> > +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
> > +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> > +endef
> 
> is exactly the same as:
> 
> > -	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> 
> So I guess your condition is inverted, and the patch was not
> sufficiently tested ? :-)
> 

Facepalm... I did a last minute change and I forgot the remove the
directory when I tested it. It seems my mind is still on holidays :/

This time, I am testing it from scratch.

> Thanks!
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com

Regards,
Gaël
diff mbox series

Patch

diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
index cbe24d27dc..a4c9492a91 100644
--- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
+++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
@@ -65,6 +65,16 @@  define QT5VIRTUALKEYBOARD_INSTALL_STAGING_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
 endef
 
+ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
+define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
+	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Entreprise/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
+endef
+else
+define QT5VIRTUALKEYBOARD_INSTALL_TARGET_QML
+	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
+endef
+endif
+
 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/
@@ -75,7 +85,7 @@  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_QML)
 	$(QT5VIRTUALKEYBOARD_INSTALL_TARGET_3RDPARTY_PARTS)
 	$(QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES)
 endef