Patchwork [PATCHv3] QtSerialPort: new package

login
register
mail settings
Submitter Thiago Correa
Date Oct. 29, 2012, 3:49 p.m.
Message ID <20121029154949.GA15033@localhost.comm5.com.br>
Download mbox | patch
Permalink /patch/195057/
State Rejected
Delegated to: Thomas De Schampheleire
Headers show

Comments

Thiago Correa - Oct. 29, 2012, 3:49 p.m.
Signed-off-by: Thiago A. Correa <thiago.correa@gmail.com>
---
 package/Config.in                    |    1 +
 package/qtserialport/Config.in       |   12 +++++++++++
 package/qtserialport/qtserialport.mk |   35 ++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 0 deletions(-)
 create mode 100644 package/qtserialport/Config.in
 create mode 100644 package/qtserialport/qtserialport.mk
Peter Korsgaard - Nov. 3, 2012, 4:46 p.m.
>>>>> "Thiago" == Thiago A Correa <thiago.correa@gmail.com> writes:

Hi,

 Thiago> Signed-off-by: Thiago A. Correa <thiago.correa@gmail.com>
 Thiago> ---
 Thiago>  package/Config.in                    |    1 +
 Thiago>  package/qtserialport/Config.in       |   12 +++++++++++
 Thiago>  package/qtserialport/qtserialport.mk |   35 ++++++++++++++++++++++++++++++++++
 Thiago>  3 files changed, 48 insertions(+), 0 deletions(-)
 Thiago>  create mode 100644 package/qtserialport/Config.in
 Thiago>  create mode 100644 package/qtserialport/qtserialport.mk

 Thiago> diff --git a/package/Config.in b/package/Config.in
 Thiago> index 331d879..e869c8a 100644
 Thiago> --- a/package/Config.in
 Thiago> +++ b/package/Config.in
 Thiago> @@ -133,6 +133,7 @@ source "package/sdl_gfx/Config.in"
 Thiago>  comment "other GUIs"
 Thiago>  source "package/efl/Config.in"
 Thiago>  source "package/qt/Config.in"
 Thiago> +source "package/qtserialport/Config.in"
 Thiago>  source "package/x11r7/Config.in"

Thomas a while ago posted patches for qtextserialport:

http://patchwork.ozlabs.org/patch/162431/

What is the relation between qtserialport and qtextserialport? Do we
need both?

 Thiago> +++ b/package/qtserialport/qtserialport.mk
 Thiago> @@ -0,0 +1,35 @@
 Thiago> +#############################################################
 Thiago> +#
 Thiago> +# QtSerialPort 
 Thiago> +#
 Thiago> +#############################################################
 Thiago> +QTSERIALPORT_VERSION = e831107f468618881e435932c8a42404c1dde13c
 Thiago> +QTSERIALPORT_SITE = git://gitorious.org/qtplayground/qtserialport.git
 Thiago> +QTSERIALPORT_LICENSE = LGPLv2
 Thiago> +QTSERIALPORT_LICENSE_FILES = LICENSE.LGPL
 Thiago> +QTSERIALPORT_INSTALL_STAGING = YES
 Thiago> +
 Thiago> +QTSERIALPORT_DEPENDENCIES = qt udev
 Thiago> +
 Thiago> +QTSERIALPORT_LDFLAGS = $(TARGET_LDFLAGS)
 Thiago> +
 Thiago> +define QTSERIALPORT_CONFIGURE_CMDS
 Thiago> +	(cd $(@D); \
 Thiago> +		$(QT_QMAKE) -recursive CONFIG+=release)
 Thiago> +endef
 Thiago> +
 Thiago> +define QTSERIALPORT_BUILD_CMDS
 Thiago> +	$(MAKE) -C $(@D)/src
 Thiago> +endef
 Thiago> +
 Thiago> +define QTSERIALPORT_INSTALL_STAGING_CMDS
 Thiago> +	$(MAKE) -C $(@D)/src install
 Thiago> +	mv $(HOST_DIR)/usr/include/QtAddOnSerialPort $(STAGING_DIR)/usr/include/

That seems funky. Why is it installing under HOST_DIR in the first
place?

 Thiago> +endef
 Thiago> +
 Thiago> +define QTSERIALPORT_INSTALL_TARGET_CMDS
 Thiago> +	cp -dpfr $(STAGING_DIR)/usr/lib/libSerialPort.so.* \
 Thiago> +	$(TARGET_DIR)/usr/lib

Normally we install headers to target as well. Does the makefile install
target not support DESTDIR?
Yegor Yefremov - Nov. 3, 2012, 5:21 p.m.
On Sat, Nov 3, 2012 at 5:46 PM, Peter Korsgaard <jacmet@uclibc.org> wrote:
>>>>>> "Thiago" == Thiago A Correa <thiago.correa@gmail.com> writes:
>
> Hi,
>
>  Thiago> Signed-off-by: Thiago A. Correa <thiago.correa@gmail.com>
>  Thiago> ---
>  Thiago>  package/Config.in                    |    1 +
>  Thiago>  package/qtserialport/Config.in       |   12 +++++++++++
>  Thiago>  package/qtserialport/qtserialport.mk |   35 ++++++++++++++++++++++++++++++++++
>  Thiago>  3 files changed, 48 insertions(+), 0 deletions(-)
>  Thiago>  create mode 100644 package/qtserialport/Config.in
>  Thiago>  create mode 100644 package/qtserialport/qtserialport.mk
>
>  Thiago> diff --git a/package/Config.in b/package/Config.in
>  Thiago> index 331d879..e869c8a 100644
>  Thiago> --- a/package/Config.in
>  Thiago> +++ b/package/Config.in
>  Thiago> @@ -133,6 +133,7 @@ source "package/sdl_gfx/Config.in"
>  Thiago>  comment "other GUIs"
>  Thiago>  source "package/efl/Config.in"
>  Thiago>  source "package/qt/Config.in"
>  Thiago> +source "package/qtserialport/Config.in"

Don't we want to pull all pure Qt libs under "Qt external packages" as
was made with Python packages in Kconfig?

>  Thiago>  source "package/x11r7/Config.in"
>
> Thomas a while ago posted patches for qtextserialport:
>
> http://patchwork.ozlabs.org/patch/162431/
>
> What is the relation between qtserialport and qtextserialport? Do we
> need both?

The situation with serial port libraries under Qt is not so simple as
with Python. I know at least 3 different libraries. So having them all
won't hurt.

>  Thiago> +++ b/package/qtserialport/qtserialport.mk
>  Thiago> @@ -0,0 +1,35 @@
>  Thiago> +#############################################################
>  Thiago> +#
>  Thiago> +# QtSerialPort
>  Thiago> +#
>  Thiago> +#############################################################
>  Thiago> +QTSERIALPORT_VERSION = e831107f468618881e435932c8a42404c1dde13c
>  Thiago> +QTSERIALPORT_SITE = git://gitorious.org/qtplayground/qtserialport.git
>  Thiago> +QTSERIALPORT_LICENSE = LGPLv2
>  Thiago> +QTSERIALPORT_LICENSE_FILES = LICENSE.LGPL
>  Thiago> +QTSERIALPORT_INSTALL_STAGING = YES
>  Thiago> +
>  Thiago> +QTSERIALPORT_DEPENDENCIES = qt udev
>  Thiago> +
>  Thiago> +QTSERIALPORT_LDFLAGS = $(TARGET_LDFLAGS)
>  Thiago> +
>  Thiago> +define QTSERIALPORT_CONFIGURE_CMDS
>  Thiago> +      (cd $(@D); \
>  Thiago> +              $(QT_QMAKE) -recursive CONFIG+=release)
>  Thiago> +endef
>  Thiago> +
>  Thiago> +define QTSERIALPORT_BUILD_CMDS
>  Thiago> +      $(MAKE) -C $(@D)/src
>  Thiago> +endef
>  Thiago> +
>  Thiago> +define QTSERIALPORT_INSTALL_STAGING_CMDS
>  Thiago> +      $(MAKE) -C $(@D)/src install
>  Thiago> +      mv $(HOST_DIR)/usr/include/QtAddOnSerialPort $(STAGING_DIR)/usr/include/
>
> That seems funky. Why is it installing under HOST_DIR in the first
> place?
>
>  Thiago> +endef
>  Thiago> +
>  Thiago> +define QTSERIALPORT_INSTALL_TARGET_CMDS
>  Thiago> +      cp -dpfr $(STAGING_DIR)/usr/lib/libSerialPort.so.* \
>  Thiago> +      $(TARGET_DIR)/usr/lib
>
> Normally we install headers to target as well. Does the makefile install
> target not support DESTDIR?
>
> --
> Bye, Peter Korsgaard
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Peter Korsgaard - Nov. 3, 2012, 6:17 p.m.
>>>>> "Yegor" == Yegor Yefremov <yegorslists@googlemail.com> writes:

 Thiago> +++ b/package/Config.in
 Thiago> @@ -133,6 +133,7 @@ source "package/sdl_gfx/Config.in"
 Thiago> comment "other GUIs"
 Thiago> source "package/efl/Config.in"
 Thiago> source "package/qt/Config.in"
 Thiago> +source "package/qtserialport/Config.in"

 Yegor> Don't we want to pull all pure Qt libs under "Qt external packages" as
 Yegor> was made with Python packages in Kconfig?

Yes, we have "QT libraries and helper libraries" where it should go.

 >> What is the relation between qtserialport and qtextserialport? Do we
 >> need both?

 Yegor> The situation with serial port libraries under Qt is not so
 Yegor> simple as with Python. I know at least 3 different libraries. So
 Yegor> having them all won't hurt.

Ok.
Thiago Correa - Nov. 5, 2012, 1:37 p.m.
Hi Peter,

On Sat, Nov 3, 2012 at 2:46 PM, Peter Korsgaard <jacmet@uclibc.org> wrote:
>
> Thomas a while ago posted patches for qtextserialport:
>
> http://patchwork.ozlabs.org/patch/162431/
>
> What is the relation between qtserialport and qtextserialport? Do we
> need both?

I'm not sure if there is a relation between the two, but qtserialport
(this package) is under the Qt Project umbrella (Repository, Gerrit
code review, CI Servers/Tests). Currently it's under the playground
repository but it has already been voted for graduation from
playground on the development mailing list. Should be an "official"
addon soon.

>  Thiago> +define QTSERIALPORT_INSTALL_STAGING_CMDS
>  Thiago> +      $(MAKE) -C $(@D)/src install
>  Thiago> +      mv $(HOST_DIR)/usr/include/QtAddOnSerialPort $(STAGING_DIR)/usr/include/
>
> That seems funky. Why is it installing under HOST_DIR in the first
> place?

Beats me :(
The makefile generated by qmake is installing them there. Haven't
found a better way to fix that so far.

>  Thiago> +endef
>  Thiago> +
>  Thiago> +define QTSERIALPORT_INSTALL_TARGET_CMDS
>  Thiago> +      cp -dpfr $(STAGING_DIR)/usr/lib/libSerialPort.so.* \
>  Thiago> +      $(TARGET_DIR)/usr/lib
>
> Normally we install headers to target as well. Does the makefile install
> target not support DESTDIR?
>

Unfortunally, no.
Shouldn't the headers be installed to target only if the target has a
compiler? Or should I copy there unconditionally?

Kind Regards,
    Thiago A. Correa
Arnout Vandecappelle - Nov. 6, 2012, 12:49 a.m.
On 11/05/12 14:37, Thiago A. CorrĂȘa wrote:
>> >    Thiago>  +define QTSERIALPORT_INSTALL_STAGING_CMDS
>> >    Thiago>  +      $(MAKE) -C $(@D)/src install
>> >    Thiago>  +      mv $(HOST_DIR)/usr/include/QtAddOnSerialPort $(STAGING_DIR)/usr/include/
>> >
>> >  That seems funky. Why is it installing under HOST_DIR in the first
>> >  place?
> Beats me:(
> The makefile generated by qmake is installing them there. Haven't
> found a better way to fix that so far.

  Yikes!

./host/usr/bin/qmake -query
QT_INSTALL_PREFIX:/home/arnout/src/buildroot/output/host/usr
QT_INSTALL_DATA:/home/arnout/src/buildroot/output/host/usr
QT_INSTALL_DOCS:/home/arnout/src/buildroot/output/host/usr/doc
QT_INSTALL_HEADERS:/home/arnout/src/buildroot/output/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/include
QT_INSTALL_LIBS:/home/arnout/src/buildroot/output/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/lib
QT_INSTALL_BINS:/home/arnout/src/buildroot/output/host/usr/bin
QT_INSTALL_PLUGINS:/home/arnout/src/buildroot/output/host/usr/plugins
QT_INSTALL_IMPORTS:/home/arnout/src/buildroot/output/host/usr/imports
QT_INSTALL_TRANSLATIONS:/home/arnout/src/buildroot/output/host/usr/translations
QT_INSTALL_CONFIGURATION:/home/arnout/src/buildroot/output/host/usr
QT_INSTALL_EXAMPLES:/home/arnout/src/buildroot/output/host/usr
QT_INSTALL_DEMOS:/home/arnout/src/buildroot/output/host/usr
QMAKE_MKSPECS:/home/arnout/src/buildroot/output/host/usr/mkspecs
QMAKE_VERSION:2.01a
QT_VERSION:4.8.3

  This is because we install qmake in $(HOST_DIR) and use a qt.conf to make
the paths point back to staging, but only for headers and libraries.  Thomas,
do you remember why you didn't do that for prefix and data?  (qt.mk:569-573,
introduced by ca290e7e).


  Regards,
  Arnout

Patch

diff --git a/package/Config.in b/package/Config.in
index 331d879..e869c8a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -133,6 +133,7 @@  source "package/sdl_gfx/Config.in"
 comment "other GUIs"
 source "package/efl/Config.in"
 source "package/qt/Config.in"
+source "package/qtserialport/Config.in"
 source "package/x11r7/Config.in"
 
 comment "X libraries and helper libraries"
diff --git a/package/qtserialport/Config.in b/package/qtserialport/Config.in
new file mode 100644
index 0000000..f84387a
--- /dev/null
+++ b/package/qtserialport/Config.in
@@ -0,0 +1,12 @@ 
+config BR2_PACKAGE_QTSERIALPORT
+	bool "QtSerialPort"
+	depends on BR2_PACKAGE_QT
+	depends on BR2_PACKAGE_UDEV
+	help
+	  QtSerialPort module is an add-on for the Qt library, providing
+	  a single interface for both hardware and virtual serial ports.
+
+	  http://qt-project.org/wiki/QtSerialPort
+
+comment "QtSerialPort requires udev support"
+        depends on !(BR2_PACKAGE_UDEV)
diff --git a/package/qtserialport/qtserialport.mk b/package/qtserialport/qtserialport.mk
new file mode 100644
index 0000000..cfd0518
--- /dev/null
+++ b/package/qtserialport/qtserialport.mk
@@ -0,0 +1,35 @@ 
+#############################################################
+#
+# QtSerialPort 
+#
+#############################################################
+QTSERIALPORT_VERSION = e831107f468618881e435932c8a42404c1dde13c
+QTSERIALPORT_SITE = git://gitorious.org/qtplayground/qtserialport.git
+QTSERIALPORT_LICENSE = LGPLv2
+QTSERIALPORT_LICENSE_FILES = LICENSE.LGPL
+QTSERIALPORT_INSTALL_STAGING = YES
+
+QTSERIALPORT_DEPENDENCIES = qt udev
+
+QTSERIALPORT_LDFLAGS = $(TARGET_LDFLAGS)
+
+define QTSERIALPORT_CONFIGURE_CMDS
+	(cd $(@D); \
+		$(QT_QMAKE) -recursive CONFIG+=release)
+endef
+
+define QTSERIALPORT_BUILD_CMDS
+	$(MAKE) -C $(@D)/src
+endef
+
+define QTSERIALPORT_INSTALL_STAGING_CMDS
+	$(MAKE) -C $(@D)/src install
+	mv $(HOST_DIR)/usr/include/QtAddOnSerialPort $(STAGING_DIR)/usr/include/
+endef
+
+define QTSERIALPORT_INSTALL_TARGET_CMDS
+	cp -dpfr $(STAGING_DIR)/usr/lib/libSerialPort.so.* \
+	$(TARGET_DIR)/usr/lib
+endef
+
+$(eval $(generic-package))