qt-webkit-kiosk: new package
PATCH 1/1 qt-webkit-kiosk: new package
Qt-webkit-kiosk is a simple browser working in kiosk-mode, powered by Qt & Webkit. It provides a convenient way to deploy a full-screen browser on embedded system platforms.
This commit adds the appropriate packaging to Buildroot, including options to parametrize the deployment of the optional sound files and the customization of the browser configuration file.
--- package/Config.in | 1 + package/qt-webkit-kiosk/Config.in | 37 ++++++++++++++++++++++ package/qt-webkit-kiosk/qt-webkit-kiosk.mk | 51 ++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 package/qt-webkit-kiosk/Config.in create mode 100644 package/qt-webkit-kiosk/qt-webkit-kiosk.mk
package/Config.in +1 -0
@@ -250,6 +250,7 @@ comment "X applications" source "package/leafpad/Config.in" source "package/midori/Config.in" source "package/pcmanfm/Config.in" + source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" source "package/torsmo/Config.in"
package/qt-webkit-kiosk/Config.in new file +37 -0
@@ -0,0 +1,37 @@ +config BR2_PACKAGE_QT_WEBKIT_KIOSK + depends on BR2_PACKAGE_QT5WEBKIT + depends on BR2_PACKAGE_QT5MULTIMEDIA + bool "qt-webkit-kiosk" + help + Simple browser working in kiosk-mode, powered by Qt & Webkit + +if BR2_PACKAGE_QT_WEBKIT_KIOSK + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS + bool "Install browser sound files" + help + Deploy browser sound files on target + +choice + prompt "Browser configuration file" + help + Select what configuration file to use + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_DEFAULT + bool "Default configuration file" + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM + bool "Custom configuration file" + +endchoice + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE + depends on BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM + string "Custom configuration file" + help + Enter the path to the custom configuration file. The file + will be deployed as qt-webkit-kiosk.ini in the browser' + resource directory. + +endif +
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +51 -0
51 lines not on this page · raw message
Signature · 1 line
2.1.0
PATCH 1/1 qt-webkit-kiosk: new package
Dear Jerome Oufella,
Quoted 9 lines · Jerome Oufella
Qt-webkit-kiosk is a simple browser working in kiosk-mode, powered by Qt & Webkit. It provides a convenient way to deploy a full-screen browser on embedded system platforms.
This commit adds the appropriate packaging to Buildroot, including options to parametrize the deployment of the optional sound files and the customization of the browser configuration file.
Signed-off-by Jerome Oufella <[email protected]>
Thanks for this contribution. This definitely looks like a useful package to have in Buildroot! See below for some comments.
package/qt-webkit-kiosk/Config.in line 3
Quoted 9 lines
package/qt-webkit-kiosk/Config.in new file +3
-0@@ -0,0 +1,37 @@ +config BR2_PACKAGE_QT_WEBKIT_KIOSK + depends on BR2_PACKAGE_QT5WEBKIT + depends on BR2_PACKAGE_QT5MULTIMEDIA
Please put the dependencies after the "bool" statement. Also, I would prefer something like:
depends on BR2_PACKAGE_QT5
select BR2_PACKAGE_QT5WEBKIT
select BR2_PACKAGE_QT5MULTIMEDIA
depends on !BR2_STATIC_LIBS # qt5webkit depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5webkit depends on BR2_ARCH_HAS_ATOMICS # qt5webkit depends on !BR2_BINFMT_FLAT # qt5webkit
This way, your package becomes visible as soon as Qt5 is enabled, without requiring the user to know which particular Qt5 modules have to be enabled.
package/qt-webkit-kiosk/Config.in line 6
Quoted 3 lines
package/qt-webkit-kiosk/Config.in new file +3
-0+ bool "qt-webkit-kiosk" + help + Simple browser working in kiosk-mode, powered by Qt & Webkit
Line seems too long. Also, use "and" instead of "&".
Quoted 18 lines
package/qt-webkit-kiosk/Config.in new file +18
-0+ +if BR2_PACKAGE_QT_WEBKIT_KIOSK + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS + bool "Install browser sound files" + help + Deploy browser sound files on target + +choice + prompt "Browser configuration file" + help + Select what configuration file to use + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_DEFAULT + bool "Default configuration file" + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM + bool "Custom configuration file"
package/qt-webkit-kiosk/Config.in line 34
Quoted 10 lines
package/qt-webkit-kiosk/Config.in new file +10
-0+ +endchoice + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE + depends on BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM + string "Custom configuration file" + help + Enter the path to the custom configuration file. The file + will be deployed as qt-webkit-kiosk.ini in the browser' + resource directory.
I don't think we want to have an option for this. Just install the default configuration file unconditionally. People who want to override it should do so in their rootfs overlay or in a post-build script.
package/qt-webkit-kiosk/qt-webkit-kiosk.mk
Quoted 6 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +0
-0@@ -0,0 +1,51 @@
Missing comment header. See all other packages in Buildroot. Yes, I know it's a silly rule, but most rules are silly, no? :-)
Quoted 15 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +15
-0+QT_WEBKIT_KIOSK_VERSION = 7fe40a350abfbe5ec194e7c6c740f7099e8704cd +QT_WEBKIT_KIOSK_SITE = https://github.com/sergey-dryabzhinsky/qt-webkit-kiosk.git +QT_WEBKIT_KIOSK_SITE_METHOD = git +QT_WEBKIT_KIOSK_DEPENDENCIES = qt5webkit qt5multimedia +QT_WEBKIT_KIOSK_LICENSE = LGPLv3 +QT_WEBKIT_KIOSK_LICENSE_FILES = doc/lgpl.html + +ifeq ($(BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_DEFAULT),y) +QT_WEBKIT_KIOSK_INSTALL_TARGET_OPTS += install_config +endif + +ifeq ($(BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM),y) +ifneq ($(call qstrip,$(BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE)),) +define QT_WEBKIT_KIOSK_INSTALL_CFG_CUSTOM + if [ -f "$(BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE)" ]; then \
package/qt-webkit-kiosk/qt-webkit-kiosk.mk line 25
Quoted 10 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +10
-0+ $(INSTALL) -D -m 0644 "$(BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE)" \ + $(TARGET_DIR)/usr/share/qt-webkit-kiosk/qt-webkit-kiosk.ini; \ + else \ + printf "Error: '%s' is not a valid file, check your BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE setting\n" \ + "$(BR2_PACKAGE_QT_WEBKIT_KIOSK_CFG_CUSTOM_VALUE)"; \ + exit 1 ; \ + fi +endef +endif +endif
Please replace this by something that always installs the default configuration file.
package/qt-webkit-kiosk/qt-webkit-kiosk.mk line 35
Quoted 10 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +10
-0+ +ifeq ($(BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS),y) +QT_WEBKIT_KIOSK_INSTALL_TARGET_OPTS += install_sound +endif + +ifneq ($(call qstrip,$(QT_WEBKIT_KIOSK_INSTALL_TARGET_OPTS)),) +define QT_WEBKIT_KIOSK_INSTALL_DATAFILES + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) INSTALL_ROOT=$(TARGET_DIR) $(QT_WEBKIT_KIOSK_INSTALL_TARGET_OPTS) +endef +endif
Please put all the install related logic right before the <pkg>_INSTALL_CMDS variable.
package/qt-webkit-kiosk/qt-webkit-kiosk.mk line 39
Quoted 3 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +3
-0+define QT_WEBKIT_KIOSK_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake PREFIX=/usr) +endef
Please use $(QT5_QMAKE) instead of calling qmake directly.
package/qt-webkit-kiosk/qt-webkit-kiosk.mk line 46
Quoted 7 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +7
-0+ +define QT_WEBKIT_KIOSK_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT_WEBKIT_KIOSK_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 $(@D)/src/qt-webkit-kiosk $(TARGET_DIR)/usr/bin/
You can use install_target instead, no?
package/qt-webkit-kiosk/qt-webkit-kiosk.mk line 49
Quoted 3 lines
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +3
-0+ $(QT_WEBKIT_KIOSK_INSTALL_DATAFILES) + $(QT_WEBKIT_KIOSK_INSTALL_CFG_CUSTOM) +endef
Something like:
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ INSTALL_ROOT=$(TARGET_DIR) \ install_target \ install_config \ $(if $(BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS),install_sound)
Could you take into account those comments, and send an updated version?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/1 qt-webkit-kiosk: new package
In reply to Jerome OufellaQt-webkit-kiosk is a simple browser working in kiosk-mode, powered by QtWebkit. It provides a convenient way to deploy a full-screen browser on embedded system platforms.
This commit adds the appropriate packaging to Buildroot, including an option to deploy the optional sound files.
---
Changes v1 -> v2 (thanks Thomas for the thorough review):
* Update commit message
* Rework config dependencies formulation
* Reword help strings
* Remove config file customization options
* Add missing Makefile comment header
* Use $(QT5_QMAKE) macro instead of qmake
* Simplify the target installation process
--- package/Config.in | 1 + package/qt-webkit-kiosk/Config.in | 20 +++++++++++++++++++ package/qt-webkit-kiosk/qt-webkit-kiosk.mk | 32 ++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 package/qt-webkit-kiosk/Config.in create mode 100644 package/qt-webkit-kiosk/qt-webkit-kiosk.mk
package/Config.in +1 -0
@@ -250,6 +250,7 @@ comment "X applications" source "package/leafpad/Config.in" source "package/midori/Config.in" source "package/pcmanfm/Config.in" + source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" source "package/torsmo/Config.in"
package/qt-webkit-kiosk/Config.in new file +20 -0
@@ -0,0 +1,20 @@ +config BR2_PACKAGE_QT_WEBKIT_KIOSK + bool "qt-webkit-kiosk" + depends on BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5WEBKIT + select BR2_PACKAGE_QT5MULTIMEDIA + depends on !BR2_STATIC_LIBS # qt5webkit + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5webkit + depends on BR2_ARCH_HAS_ATOMICS # qt5webkit + depends on !BR2_BINFMT_FLAT # qt5webkit + help + Simple kiosk-mode browser powered by Qt5Webkit + +if BR2_PACKAGE_QT_WEBKIT_KIOSK + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS + bool "Install browser sound files" + help + Deploy browser sound files on target + +endif
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +32 -0
@@ -0,0 +1,32 @@ +################################################################################ +# +# qt-webkit-kiosk +# +################################################################################ + +QT_WEBKIT_KIOSK_VERSION = 7fe40a350abfbe5ec194e7c6c740f7099e8704cd +QT_WEBKIT_KIOSK_SITE = https://github.com/sergey-dryabzhinsky/qt-webkit-kiosk.git +QT_WEBKIT_KIOSK_SITE_METHOD = git +QT_WEBKIT_KIOSK_DEPENDENCIES = qt5webkit qt5multimedia +QT_WEBKIT_KIOSK_LICENSE = LGPLv3 +QT_WEBKIT_KIOSK_LICENSE_FILES = doc/lgpl.html + +define QT_WEBKIT_KIOSK_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(QT5_QMAKE) PREFIX=/usr) +endef + +define QT_WEBKIT_KIOSK_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT_WEBKIT_KIOSK_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src -f Makefile.qt-webkit-kiosk \ + INSTALL_ROOT=$(TARGET_DIR) \ + install_target + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + INSTALL_ROOT=$(TARGET_DIR) \ + install_config \ + $(if $(BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS),install_sound) +endef + +$(eval $(generic-package))
Signature · 1 line
2.1.0
PATCH v2 1/1 qt-webkit-kiosk: new package
Dear Jerome Oufella,
Quoted 8 lines · Jerome Oufella
Qt-webkit-kiosk is a simple browser working in kiosk-mode, powered by QtWebkit. It provides a convenient way to deploy a full-screen browser on embedded system platforms.
This commit adds the appropriate packaging to Buildroot, including an option to deploy the optional sound files.
Signed-off-by Jerome Oufella <[email protected]>
Thanks for this new iteration.
package/qt-webkit-kiosk/Config.in line 5
Quoted 11 lines
package/qt-webkit-kiosk/Config.in new file +5
-0@@ -0,0 +1,20 @@ +config BR2_PACKAGE_QT_WEBKIT_KIOSK + bool "qt-webkit-kiosk" + depends on BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5WEBKIT + select BR2_PACKAGE_QT5MULTIMEDIA
I've done a test build, and there are some missing dependencies here. You should also:
select BR2_PACKAGE_QT5BASE_GUI
select BR2_PACKAGE_QT5BASE_WIDGETS
select BR2_PACKAGE_OPENSSL
QT5BASE_WIDGETS is not enabled by default, and is needed because qt-webkit-kiosk uses the "printsupport" and qtwebkit widget modules, which are only compiled if Qt5 widgets are enabled.
OpenSSL is mandatory because qt-webkit-kiosk uses QSslError unconditionally.
I would have normally applied the patch myself and do the proposed changes, but since I haven't had the time to finalize the review, I thought I would simply point those issues to not forget about them, so that you can send an updated version.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/1 qt-webkit-kiosk: new package
Quoted 16 lines · Thomas Petazzoni
Review
Quoted 1 line
(quoted diff) +0
-0b/package/qt-webkit-kiosk/Config.in
package/qt-webkit-kiosk/Config.in line 5
Quoted 10 lines
new file mode 100644
index 0000000..dd4b06fpackage/qt-webkit-kiosk/Config.in new file +5
-0@@ -0,0 +1,20 @@ +config BR2_PACKAGE_QT_WEBKIT_KIOSK + bool "qt-webkit-kiosk" + depends on BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5WEBKIT + select BR2_PACKAGE_QT5MULTIMEDIAI've done a test build, and there are some missing dependencies here. You should also:
Quoted 9 lines
select
BR2_PACKAGE_QT5BASE_GUI
selectBR2_PACKAGE_QT5BASE_WIDGETS
selectBR2_PACKAGE_OPENSSL
QT5BASE_WIDGETSis not enabled by default, and is needed because qt-webkit-kiosk uses the "printsupport" and qtwebkit widget modules, which are only compiled if Qt5 widgets are enabled.
I disagree. It feels like the problem is in the BR2_PACKAGE_QT5WEBKIT target - it should depend onBR2_PACKAGE_QT5BASE_GUI and BR2_PACKAGE_QT5BASE_WIDGETS
Or... does Qt5 have an option to build WEBKIT in QML environment only? -------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150226/7e446afc/attachment.html>
PATCH v2 1/1 qt-webkit-kiosk: new package
Dear Diego Iastrubni,
Quoted 3 lines · Diego Iastrubni
I disagree. It feels like the problem is in the
BR2_PACKAGE_QT5WEBKITtarget - it should depend onBR2_PACKAGE_QT5BASE_GUIandBR2_PACKAGE_QT5BASE_WIDGETS
qt5webkit did build perfectly fine with BR2_PACKAGE_QT5BASE_WIDGETS disabled. It just doesn't build the part called qt5webkitwidgets, which qt-webkit-kiosk uses.
It was really the build of qt-webkit-kiosk that failed due to the missing qt5webkitwidgets, the qt5webkit build was alright.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v3 1/1 qt-webkit-kiosk: new package
In reply to Jerome OufellaQt-webkit-kiosk is a simple browser working in kiosk-mode, powered by QtWebkit. It provides a convenient way to deploy a full-screen browser on embedded system platforms.
This commit adds the appropriate packaging to Buildroot, including an option to deploy the provided sound files.
---
Changes v2 -> v3: (Thanks again, Thomas!)
* Add missing config dependencies (QT5BASE_GUI, QT5BASE_WIDGETS, OPENSSL)
* Update commit message
Changes v1 -> v2:
* Update commit message
* Rework config dependencies formulation
* Reword help strings
* Remove config file customization options
* Add missing Makefile comment header
* Use $(QT5_QMAKE) macro instead of qmake
* Simplify the target installation process
--- package/Config.in | 1 + package/qt-webkit-kiosk/Config.in | 23 +++++++++++++++++++++ package/qt-webkit-kiosk/qt-webkit-kiosk.mk | 32 ++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 package/qt-webkit-kiosk/Config.in create mode 100644 package/qt-webkit-kiosk/qt-webkit-kiosk.mk
package/Config.in +1 -0
@@ -250,6 +250,7 @@ comment "X applications" source "package/leafpad/Config.in" source "package/midori/Config.in" source "package/pcmanfm/Config.in" + source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" source "package/torsmo/Config.in"
package/qt-webkit-kiosk/Config.in new file +23 -0
@@ -0,0 +1,23 @@ +config BR2_PACKAGE_QT_WEBKIT_KIOSK + bool "qt-webkit-kiosk" + depends on BR2_PACKAGE_QT5 + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_QT5BASE_GUI + select BR2_PACKAGE_QT5BASE_WIDGETS + select BR2_PACKAGE_QT5WEBKIT + select BR2_PACKAGE_QT5MULTIMEDIA + depends on !BR2_STATIC_LIBS # qt5webkit + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5webkit + depends on BR2_ARCH_HAS_ATOMICS # qt5webkit + depends on !BR2_BINFMT_FLAT # qt5webkit + help + Simple kiosk-mode browser powered by Qt5Webkit + +if BR2_PACKAGE_QT_WEBKIT_KIOSK + +config BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS + bool "Install browser sound files" + help + Deploy browser sound files on target + +endif
package/qt-webkit-kiosk/qt-webkit-kiosk.mk new file +32 -0
@@ -0,0 +1,32 @@ +################################################################################ +# +# qt-webkit-kiosk +# +################################################################################ + +QT_WEBKIT_KIOSK_VERSION = 7fe40a350abfbe5ec194e7c6c740f7099e8704cd +QT_WEBKIT_KIOSK_SITE = https://github.com/sergey-dryabzhinsky/qt-webkit-kiosk.git +QT_WEBKIT_KIOSK_SITE_METHOD = git +QT_WEBKIT_KIOSK_DEPENDENCIES = qt5webkit qt5multimedia +QT_WEBKIT_KIOSK_LICENSE = LGPLv3 +QT_WEBKIT_KIOSK_LICENSE_FILES = doc/lgpl.html + +define QT_WEBKIT_KIOSK_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(QT5_QMAKE) PREFIX=/usr) +endef + +define QT_WEBKIT_KIOSK_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT_WEBKIT_KIOSK_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src -f Makefile.qt-webkit-kiosk \ + INSTALL_ROOT=$(TARGET_DIR) \ + install_target + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + INSTALL_ROOT=$(TARGET_DIR) \ + install_config \ + $(if $(BR2_PACKAGE_QT_WEBKIT_KIOSK_SOUNDS),install_sound) +endef + +$(eval $(generic-package))
Signature · 1 line
2.1.0
Thomas Petazzoni
AppliedPATCH v3 1/1 qt-webkit-kiosk: new package
Dear Jerome Oufella,
Quoted 8 lines · Jerome Oufella
Qt-webkit-kiosk is a simple browser working in kiosk-mode, powered by QtWebkit. It provides a convenient way to deploy a full-screen browser on embedded system platforms.
This commit adds the appropriate packaging to Buildroot, including an option to deploy the provided sound files.
Signed-off-by Jerome Oufella <[email protected]>
Applied, thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com