qt5cinex: Add new Qt5CinematicExperience package.
PATCH 1/1 qt5cinex: Add new Qt5CinematicExperience package.
From: Pierre Le Magourou <[email protected]>
---
v0: Initial commit
qt5cinex is a package for Qt5 Cinematic Experience demo. This application demonstrates the power of Qt5 and few of the new additions available in QtQuick 2.0.
--- package/Config.in | 1 + package/qt5cinex/Config.in | 26 +++++++++ ...nex-0001-Fix-execution-problem-with-Qt5.3.patch | 62 ++++++++++++++++++++++ package/qt5cinex/qt5cinex.hash | 8 +++ package/qt5cinex/qt5cinex.mk | 37 +++++++++++++ 5 files changed, 134 insertions(+) create mode 100644 package/qt5cinex/Config.in create mode 100644 package/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch create mode 100644 package/qt5cinex/qt5cinex.hash create mode 100644 package/qt5cinex/qt5cinex.mk
package/Config.in +1 -0
@@ -190,6 +190,7 @@ comment "Graphic applications" source "package/gnuplot/Config.in" source "package/jhead/Config.in" source "package/mesa3d-demos/Config.in" + source "package/qt5cinex/Config.in" source "package/rrdtool/Config.in" comment "Graphic libraries"
package/qt5cinex/Config.in new file +26 -0
@@ -0,0 +1,26 @@ +comment "Qt5 Cinematic Experience needs Qt5 graphical effects" + depends on !BR2_PACKAGE_QT5GRAPHICALEFFECTS + +config BR2_PACKAGE_QT5CINEX + bool "Qt5 Cinematic Experience" + depends on BR2_PACKAGE_QT5GRAPHICALEFFECTS + select BR2_PACKAGE_QT5BASE_NETWORK + select BR2_PACKAGE_QT5BASE_PNG + select BR2_PACKAGE_QT5BASE_WIDGETS + select BR2_PACKAGE_QT5BASE_EGLFS + + help + UX demo application that shows some graphical features of Qt5. + The name 'Cinematic Experience' reflects how it's possible to build + user interfaces with increased dynamics. + + http://quitcoding.com/?page=work#cinex + +if BR2_PACKAGE_QT5CINEX + +config BR2_PACKAGE_QT5CINEX_RPI + bool "RaspberryPI Edition" + help + High definifition version of the application optimised for Raspberry PI cards. + +endif
package/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch new file +62 -0
62 lines not on this page · raw message
package/qt5cinex/qt5cinex.hash new file +8 -0
@@ -0,0 +1,8 @@ +# No upstream hashes for this file. +sha256 0dd602983ced5f7c0cfd5ad0fbfe2b0b7e3c9ff715e4ef23eef818ccc2b6c60b Qt5_CinematicExperience_rpi_1.0.tgz +sha1 a68d7c5f133d380f9a8b85cfd617deb6b8cc99e2 Qt5_CinematicExperience_rpi_1.0.tgz +md5 935a5db0a6b2a72c67236e72f52be7d1 Qt5_CinematicExperience_rpi_1.0.tgz + +sha256 0e547e0259667915a24e84ade5efdcd0c553f81786734452c2c8dbce19a19f44 Qt5_CinematicExperience_1.0.tgz +sha1 8c746a64c458b5c9ff3c6d01f284875d3aa11dcb Qt5_CinematicExperience_1.0.tgz +md5 1c4f9bf5411c985fc5d3dbfc5d826a29 Qt5_CinematicExperience_1.0.tgz
package/qt5cinex/qt5cinex.mk new file +37 -0
@@ -0,0 +1,37 @@ +################################################################################ +# +# qt5cinex +# +################################################################################ + +QT5CINEX_VERSION = 1.0 +QT5CINEX_RPI = "" +QT5CINEX_SITE = http://quitcoding.com/download/ + +ifeq ($(BR2_PACKAGE_QT5CINEX_RPI),y) + QT5CINEX_RPI = "rpi_" +endif + +QT5CINEX_SOURCE = Qt5_CinematicExperience_$(QT5CINEX_RPI)$(QT5CINEX_VERSION).tgz +QT5CINEX_DEPENDENCIES = qt5base qt5declarative + +QT5CINEX_LICENSE = CC-BY-3.0 +QT5CINEX_LICENSE_FILE = README + +define QT5CINEX_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5CINEX_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5CINEX_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/Qt5_CinematicExperience \ + $(TARGET_DIR)/opt/Qt5_CinematicExperience/Qt5_CinematicExperience + $(INSTALL) -D -m 0664 $(@D)/Qt5_CinematicExperience.qml \ + $(TARGET_DIR)/opt/Qt5_CinematicExperience/Qt5_CinematicExperience.qml + cp -dpfr $(@D)/content $(TARGET_DIR)/opt/Qt5_CinematicExperience/content +endef + +$(eval $(generic-package))
Signature · 1 line
2.1.1
PATCH 1/1 qt5cinex: Add new Qt5CinematicExperience package.
Pierre, All,
(Thomas, a question for you toward the end.)
On 2014-11-04 11:05 +0100, pierre.lemagourou at openwide.fr spake thusly:
Quoted 1 line
From: Pierre Le Magourou <[email protected]>
Thank you for your contribution. Sorry for the delay in reviewing this patch; here is my review...
Mostly eye-candy, but I have not done a build-time test so far.
Quoted 6 lines
Signed-off-by Pierre Le Magourou <[email protected]>---
v0: Initial commit
qt5cinex is a package for Qt5 Cinematic Experience demo. This application demonstrates the power of Qt5 and few of the new additions available in QtQuick 2.0.
A changelog for the first submission is not ncessary. But what you wrote could well have gone either in the commit log itself, or even in the help entry, especially since that's the introductory sentence on the upstream website.
Quoted 30 lines
--- package/Config.in | 1 + package/qt5cinex/Config.in | 26 +++++++++ ...nex-0001-Fix-execution-problem-with-Qt5.3.patch | 62 ++++++++++++++++++++++ package/qt5cinex/qt5cinex.hash | 8 +++ package/qt5cinex/qt5cinex.mk | 37 +++++++++++++ 5 files changed, 134 insertions(+) create mode 100644 package/qt5cinex/Config.in create mode 100644 package/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch create mode 100644 package/qt5cinex/qt5cinex.hash create mode 100644 package/qt5cinex/qt5cinex.mkpackage/Config.in +1
-0@@ -190,6 +190,7 @@ comment "Graphic applications" source "package/gnuplot/Config.in" source "package/jhead/Config.in" source "package/mesa3d-demos/Config.in" + source "package/qt5cinex/Config.in" source "package/rrdtool/Config.in" comment "Graphic libraries"package/qt5cinex/Config.in new file +0
-0
package/qt5cinex/Config.in line 10
Quoted 10 lines
package/qt5cinex/Config.in new file +10
-0@@ -0,0 +1,26 @@ +comment "Qt5 Cinematic Experience needs Qt5 graphical effects" + depends on !BR2_PACKAGE_QT5GRAPHICALEFFECTS + +config BR2_PACKAGE_QT5CINEX + bool "Qt5 Cinematic Experience" + depends on BR2_PACKAGE_QT5GRAPHICALEFFECTS + select BR2_PACKAGE_QT5BASE_NETWORK + select BR2_PACKAGE_QT5BASE_PNG + select BR2_PACKAGE_QT5BASE_WIDGETS + select BR2_PACKAGE_QT5BASE_EGLFS
You need to propagate the dependencies of EGLFS, like so:
depends on BR2_PACKAGE_HAS_LIBEGL # eglfs depends on BR2_PACKAGE_QT5_GL_AVAILABLE # eglfs
package/qt5cinex/Config.in line 11
Quoted 1 line
package/qt5cinex/Config.in new file +1
-0+
No empty line.
package/qt5cinex/Config.in line 17
Quoted 6 lines
package/qt5cinex/Config.in new file +6
-0+ help + UX demo application that shows some graphical features of Qt5. + The name 'Cinematic Experience' reflects how it's possible to build + user interfaces with increased dynamics. + + http://quitcoding.com/?page=work#cinex
As said above, we like to replicate whatever first few sentences are on the upstream website, so you could just replicate it here, like so:
help
This application demonstrates the power of Qt5 and few of the new additions available in QtQuick 2.0.
package/qt5cinex/Config.in line 22
Quoted 4 lines
package/qt5cinex/Config.in new file +4
-0+if BR2_PACKAGE_QT5CINEX + +config BR2_PACKAGE_QT5CINEX_RPI + bool "RaspberryPI Edition"
This should at least "depends on BR2_arm".
Also, does it use either or both of rpi-userland or rpi-firmware at build time or at runtime?
If so, you should add proper dependencies, for example:
- if build or runtime dependency, add in Config.in:
config BR2_PACKAGE_QT5CINEX_RPI
bool "RaspberryPI Edition"
depends on BR2_PACKAGE_RPI_USERLAND
- if runtime dependency, add in qt5cinex.mk:
QT5CINEX_RPI_DEPENDENCIES += rpi-userland
(but that's just an example.)
package/qt5cinex/Config.in line 23
Quoted 2 lines
package/qt5cinex/Config.in new file +2
-0+ help + High definifition version of the application optimised for Raspberry PI cards.
Keep lines below ~72 chars.
package/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch
Quoted 6 lines
package/qt5cinex/Config.in new file +1
-0+endifpackage/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch new file +0
-0
Not your fault, but we now mandate patches to be named like git patches, i.e.: 0001-Fix-execution-problem-with-Qt5.3.patch
package/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch line 6
Quoted 7 lines
package/qt5cinex/qt5cinex-0001-Fix-execution-problem-with-Qt5.3.patch new file +6
-0@@ -0,0 +1,62 @@ +From 6ecfcf724522fa37a695a4612f4638c2890d29f9 Mon Sep 17 00:00:00 2001 +From: Pierre Le Magourou <[email protected]> +Date: Thu, 23 Oct 2014 17:41:08 +0200 +Subject: [PATCH] Fix execution problem with Qt5.3. + +This patch has been inspired from Open Embedded meta-qt5.
You should also SoB your patches.
[--SNIP--]
Quoted 6 lines
package/qt5cinex/qt5cinex.hash new file +0
-0
package/qt5cinex/qt5cinex.hash line 8
Quoted 8 lines
package/qt5cinex/qt5cinex.hash new file +8
-0@@ -0,0 +1,8 @@ +# No upstream hashes for this file. +sha256 0dd602983ced5f7c0cfd5ad0fbfe2b0b7e3c9ff715e4ef23eef818ccc2b6c60b Qt5_CinematicExperience_rpi_1.0.tgz +sha1 a68d7c5f133d380f9a8b85cfd617deb6b8cc99e2 Qt5_CinematicExperience_rpi_1.0.tgz +md5 935a5db0a6b2a72c67236e72f52be7d1 Qt5_CinematicExperience_rpi_1.0.tgz + +sha256 0e547e0259667915a24e84ade5efdcd0c553f81786734452c2c8dbce19a19f44 Qt5_CinematicExperience_1.0.tgz +sha1 8c746a64c458b5c9ff3c6d01f284875d3aa11dcb Qt5_CinematicExperience_1.0.tgz +md5 1c4f9bf5411c985fc5d3dbfc5d826a29 Qt5_CinematicExperience_1.0.tgz
So, does the comment "No upstream hashes for this file." applies to both editions, or just the RPi one? The fact that the lines are spearated seem to imply it's only for the RPi, but upstream really has no hash for either that I could find. Can you reword this so it is obvious the comment applies to both, please?
Quoted 6 lines
package/qt5cinex/qt5cinex.mk new file +0
-0
package/qt5cinex/qt5cinex.mk line 8
Quoted 8 lines
package/qt5cinex/qt5cinex.mk new file +8
-0@@ -0,0 +1,37 @@ +################################################################################ +# +# qt5cinex +# +################################################################################ + +QT5CINEX_VERSION = 1.0 +QT5CINEX_RPI = ""
No need to initialise to empty, that's the default.
package/qt5cinex/qt5cinex.mk line 12
Quoted 4 lines
package/qt5cinex/qt5cinex.mk new file +4
-0+QT5CINEX_SITE = http://quitcoding.com/download/ + +ifeq ($(BR2_PACKAGE_QT5CINEX_RPI),y) + QT5CINEX_RPI = "rpi_"
No indentation.
package/qt5cinex/qt5cinex.mk line 22
Quoted 10 lines
package/qt5cinex/qt5cinex.mk new file +10
-0+endif + +QT5CINEX_SOURCE = Qt5_CinematicExperience_$(QT5CINEX_RPI)$(QT5CINEX_VERSION).tgz +QT5CINEX_DEPENDENCIES = qt5base qt5declarative + +QT5CINEX_LICENSE = CC-BY-3.0 +QT5CINEX_LICENSE_FILE = README + +define QT5CINEX_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake)
No need for putting the command between parenthesis.
Note: indentation here is OK.)
package/qt5cinex/qt5cinex.mk line 31
Quoted 9 lines
package/qt5cinex/qt5cinex.mk new file +9
-0+endef + +define QT5CINEX_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5CINEX_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/Qt5_CinematicExperience \ + $(TARGET_DIR)/opt/Qt5_CinematicExperience/Qt5_CinematicExperience
We install nothing in /opt. Just install executables in /usr/bin.
package/qt5cinex/qt5cinex.mk line 34
Quoted 3 lines
package/qt5cinex/qt5cinex.mk new file +3
-0+ $(INSTALL) -D -m 0664 $(@D)/Qt5_CinematicExperience.qml \ + $(TARGET_DIR)/opt/Qt5_CinematicExperience/Qt5_CinematicExperience.qml + cp -dpfr $(@D)/content $(TARGET_DIR)/opt/Qt5_CinematicExperience/content
Well, I'm no Qt guy, but from the above I guess the content/ dir and the qml file have to be in the same place as the excutable, right?
If so, I would suggest you install all them (content, qml and executable) somewhere in /usr/share/Qt5/Qt5Cinex (use your imagination to find a better name if you can think of one ;-) ), and add a small script in /usr/bin/qt5cinex-demo (ditto for the name) whith just his:
#!/bin/sh
exec /usr/share/Qt5/Qt5Cinex/Qt5_CinematicExperience "$@"
(and chnod it 755. of course.)
But hold on before doing it, I'd like another Qt guy some feedback on this. Thomas?
Regards,
Yann E. MORIN.
Quoted 10 lines
package/qt5cinex/qt5cinex.mk new file +3
-0+endef + +$(eval $(generic-package))Signature · 6 lines
2.1.1 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 qt5cinex: Add new Qt5CinematicExperience package.
Yann,
Quoted 3 lines
Thank you for your contribution. Sorry for the delay in reviewing this patch; here is my review...
I have modified my patch taking into account what you said in your review. I will send a new patch once I received feedback concerning where to put the Qt binary file, but I have to clarify something concerning arm dependency before.
[--SNIP--]
Quoted 6 lines
package/qt5cinex/Config.in line 22
Quoted 4 lines
package/qt5cinex/Config.in new file +4
-0+if BR2_PACKAGE_QT5CINEX + +config BR2_PACKAGE_QT5CINEX_RPI + bool "RaspberryPI Edition"This should at least "depends on
BR2_arm".
The name of the upstream software is confusing here, it is called "RaspberryPI edition" but it can also be run on any other platform that have Qt5 installed. I run it on my laptop without any problem. So I would say that this package does not need to depend on BR2_arm.
I decided to modify the name of this option to "High Definition Edition" instead because the difference with the first option is mainly the 1920x1080 resolution.
Quoted 3 lines
Also, does it use either or both of rpi-userland or rpi-firmware at build time or at runtime?
In my understanding, this application is platform independent. It only needs a functional Qt5 framework installed with QT5GRAPHICALEFFECTS and does not use rpi-firmware nor rpi-userland.
The dependency to rpi-userland comes from the Qt5GraphicalEffect package that needs BR2_PACKAGE_QT5_GL_AVAILABLE that will ask for rpi-userland package to provide GLESv2 on RaspberryPi platform.
Quoted 8 lines
If so, you should add proper dependencies, for example:
- if build or runtime dependency, add in Config.in:
configBR2_PACKAGE_QT5CINEX_RPI
bool "RaspberryPI Edition"
depends onBR2_PACKAGE_RPI_USERLAND
Quoted 5 lines
- if runtime dependency, add in qt5cinex.mk:
QT5CINEX_RPI_DEPENDENCIES += rpi-userland(but that's just an example.)
Regards.
Signature · 1 line
Pierre Le Magourou
PATCH 1/1 qt5cinex: Add new Qt5CinematicExperience package.
Pierre, All,
On 2014-12-17 10:37 +0100, Pierre Le Magourou spake thusly:
[--SNIP--]
Quoted 7 lines
Quoted 6 lines
package/qt5cinex/Config.in line 22
Quoted 4 lines
package/qt5cinex/Config.in new file +4
-0+if BR2_PACKAGE_QT5CINEX + +config BR2_PACKAGE_QT5CINEX_RPI + bool "RaspberryPI Edition"This should at least "depends on
BR2_arm".
Quoted 8 lines
The name of the upstream software is confusing here, it is called "RaspberryPI edition" but it can also be run on any other platform that have Qt5 installed. I run it on my laptop without any problem. So I would say that this package does not need to depend on
BR2_arm.I decided to modify the name of this option to "High Definition Edition" instead because the difference with the first option is mainly the 1920x1080 resolution.
Ah yes, in this case, it makes sense to rename the option and chage the prompt. But still keep it somewhat aligned to what upstream names it, maybe something like:
prompt BR2_PACKAGE_QT5CINEX_HD
bool "high-definition support (aka RPi Edition)" help
Some blabla about what you explained above. ;-)
Quoted 10 lines
Quoted 2 lines
Also, does it use either or both of rpi-userland or rpi-firmware at build time or at runtime?
In my understanding, this application is platform independent. It only needs a functional Qt5 framework installed with QT5GRAPHICALEFFECTS and does not use rpi-firmware nor rpi-userland.
The dependency to rpi-userland comes from the Qt5GraphicalEffect package that needs
BR2_PACKAGE_QT5_GL_AVAILABLEthat will ask for rpi-userland package to provide GLESv2 on RaspberryPi platform.
Indeed, with what you explained, rpi-userland or rpi-firmware is an indirect dependency, only true when the target in indeed an RPi, but for other platforms, it could well be another GL provider.
Thank you for the explanations, be sure to include them in some form or another in the next iteration of the patch.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'