diff mbox

[1/1,v2] qdecoder : new package

Message ID 1398155122-6872-1-git-send-email-sagaert.johan@skynet.be
State Superseded
Headers show

Commit Message

Sagaert Johan April 22, 2014, 8:25 a.m. UTC
qDecoder is a powerful CGI library.
Features:
   Supports parsing a request encoded by GET/POST method
   Supports parsing multipart/form-data encoding.(in-memory and direct disk)
   Supports COOKIE handling.
   Supports Session management.
   Supports FastCGI
   
Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be>
---
v2:	Changed License to BSD-2

 package/Config.in            |  1 +
 package/qdecoder/Config.in   |  7 +++++++
 package/qdecoder/qdecoder.mk | 18 ++++++++++++++++++
 3 files changed, 26 insertions(+)
 create mode 100644 package/qdecoder/Config.in
 create mode 100644 package/qdecoder/qdecoder.mk

Comments

Alexander Lukichev April 22, 2014, 12:35 p.m. UTC | #1
Hello,

  Sorry for being a bit late with the remark and for possible
webclient-related
formatting of my message.

2014-04-22 11:25 GMT+03:00 Sagaert Johan <sagaert.johan@skynet.be>:
> qDecoder is a powerful CGI library.
...
> +
> +         http://www.qdecoder.org/wiki/qdecoder

  This page says they have moved to a newer one and it might be out of date.
The new URL is http://wolkykim.github.io/qdecoder/ .

--
Best regards,
  Alexander Lukichev
Mike Zick April 22, 2014, 1:58 p.m. UTC | #2
On Tue, 22 Apr 2014 15:35:03 +0300
Alexander Lukichev <alexander.lukichev@gmail.com> wrote:

> Hello,
> 
>   Sorry for being a bit late with the remark and for possible
> webclient-related
> formatting of my message.
> 
> 2014-04-22 11:25 GMT+03:00 Sagaert Johan <sagaert.johan@skynet.be>:
> > qDecoder is a powerful CGI library.
> ...
> > +
> > +         http://www.qdecoder.org/wiki/qdecoder
> 
>   This page says they have moved to a newer one and it might be out
> of date. The new URL is http://wolkykim.github.io/qdecoder/ .
> 

I looked at both - It seems that mostly only the repository moved.
The documentation, examples, etc. (through r12.0.4) are still only
on the original site page.

Perhaps make an exception here, and list both links?
(The repo link is to the new location on both sites.)

Mike
> --
> Best regards,
>   Alexander Lukichev
Thomas Petazzoni April 22, 2014, 2:27 p.m. UTC | #3
Dear Sagaert Johan,

Thanks for this contribution! Some comments below.

On Tue, 22 Apr 2014 10:25:22 +0200, Sagaert Johan wrote:

> diff --git a/package/qdecoder/Config.in b/package/qdecoder/Config.in
> new file mode 100644
> index 0000000..2bd2a2f
> --- /dev/null
> +++ b/package/qdecoder/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_QDECODER
> +	bool "qdecoder"

Really no toolchain dependency? From a quick look, qdecoder always
tries to build a shared library, so this is going to play nice with
BR2_PREFER_STATIC_LIB.

Can you try to build this library with the following toolchain
configurations:

 http://autobuild.buildroot.org/toolchains/configs/free-electrons/bfin-linux-uclibc.config
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/bfin-uclinux.config
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-basic.config
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full-nothread.config

It will exercise a bit the needed toolchain dependencies.

> +QDECODER_CONF_OPT = \
> +	--prefix=$(STAGING_DIR)/usr \
> +	--libdir=$(STAGING_DIR)/usr/lib

This looks strange, and normally not needed for autotools packages. Why
is it needed here? At least, if it's really needed, a comment above it
to explain why would be necessary (and I believe it's needed because
the package uses autoconf, but not automake: there is a Makefile.in
and not a Makefile.am).

Thanks,

Thomas
Sagaert Johan April 22, 2014, 3:07 p.m. UTC | #4
Dear Thomas

Without these :
> +QDECODER_CONF_OPT = \
> +	--prefix=$(STAGING_DIR)/usr \
> +	--libdir=$(STAGING_DIR)/usr/lib

I found the qdecoder.h and the qdecoder.so.* in my hosts /usr/include and /usr/lib instead of
in the buildroot staging directories.

I did a quick check on :
http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full-nothread.config

But this seem to fail on my build machine:
.....snip
make[2]: Leaving directory `/home/brcpy/support/kconfig'
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/brcpy/output/build/buildroot-config/auto.conf
KCONFIG_AUTOHEADER=/home/brcpy/output/build/buildroot-config/autoconf.h
KCONFIG_TRISTATE=/home/brcpy/output/build/buildroot-config/tristate.config BR2_CONFIG=/home/brcpy/.config
BR2_EXTERNAL=support/dummy-external /home/brcpy/output/build/buildroot-config/conf --silentoldconfig Config.in
make[1]: Leaving directory `/home/brcpy'
>>> toolchain-external undefined Extracting
mkdir -p /home/brcpy/output/host/opt/ext-toolchain
bzcat /home/johan/dl/br-arm11-full-nothread-2014.02-rc1.tar.bz2 | tar --strip-components=1 --exclude='usr/lib/locale/*' -C
/home/brcpy/output/host/opt/ext-toolchain  -xf -
>>> toolchain-external undefined Patching
>>> toolchain-external undefined Configuring
Cannot execute cross-compiler '/home/brcpy/output/host/opt/ext-toolchain/bin/arm-linux-gcc'

Is the x64 code ? I am on a 32 bit VM (debian 6).

Regards, Johan

-----Oorspronkelijk bericht-----
Van: buildroot-bounces@busybox.net [mailto:buildroot-bounces@busybox.net] Namens Thomas Petazzoni
Verzonden: dinsdag 22 april 2014 16:27
Aan: Sagaert Johan
CC: buildroot@busybox.net
Onderwerp: Re: [Buildroot] [PATCH 1/1 v2] qdecoder : new package

Dear Sagaert Johan,

Thanks for this contribution! Some comments below.

On Tue, 22 Apr 2014 10:25:22 +0200, Sagaert Johan wrote:

> diff --git a/package/qdecoder/Config.in b/package/qdecoder/Config.in 
> new file mode 100644 index 0000000..2bd2a2f
> --- /dev/null
> +++ b/package/qdecoder/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_QDECODER
> +	bool "qdecoder"

Really no toolchain dependency? From a quick look, qdecoder always tries to build a shared library, so this is going to play nice
with BR2_PREFER_STATIC_LIB.

Can you try to build this library with the following toolchain
configurations:

 http://autobuild.buildroot.org/toolchains/configs/free-electrons/bfin-linux-uclibc.config
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/bfin-uclinux.config
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-basic.config
 http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full-nothread.config

It will exercise a bit the needed toolchain dependencies.

> +QDECODER_CONF_OPT = \
> +	--prefix=$(STAGING_DIR)/usr \
> +	--libdir=$(STAGING_DIR)/usr/lib

This looks strange, and normally not needed for autotools packages. Why is it needed here? At least, if it's really needed, a
comment above it to explain why would be necessary (and I believe it's needed because the package uses autoconf, but not automake:
there is a Makefile.in and not a Makefile.am).

Thanks,

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering http://free-electrons.com _______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni April 22, 2014, 9:41 p.m. UTC | #5
Dear Sagaert Johan,

On Tue, 22 Apr 2014 17:07:01 +0200, Sagaert Johan wrote:

> I did a quick check on :
> http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-arm-full-nothread.config
> 
> But this seem to fail on my build machine:
> .....snip
> make[2]: Leaving directory `/home/brcpy/support/kconfig'
> BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/brcpy/output/build/buildroot-config/auto.conf
> KCONFIG_AUTOHEADER=/home/brcpy/output/build/buildroot-config/autoconf.h
> KCONFIG_TRISTATE=/home/brcpy/output/build/buildroot-config/tristate.config BR2_CONFIG=/home/brcpy/.config
> BR2_EXTERNAL=support/dummy-external /home/brcpy/output/build/buildroot-config/conf --silentoldconfig Config.in
> make[1]: Leaving directory `/home/brcpy'
> >>> toolchain-external undefined Extracting
> mkdir -p /home/brcpy/output/host/opt/ext-toolchain
> bzcat /home/johan/dl/br-arm11-full-nothread-2014.02-rc1.tar.bz2 | tar --strip-components=1 --exclude='usr/lib/locale/*' -C
> /home/brcpy/output/host/opt/ext-toolchain  -xf -
> >>> toolchain-external undefined Patching
> >>> toolchain-external undefined Configuring
> Cannot execute cross-compiler '/home/brcpy/output/host/opt/ext-toolchain/bin/arm-linux-gcc'
> 
> Is the x64 code ? I am on a 32 bit VM (debian 6).

Hum, correct, the toolchain is 64 bits. Weird, I was pretty sure to
build them in a 32 bits chroot, maybe that's no longer the case.

Thomas
Sagaert Johan April 24, 2014, 8:43 p.m. UTC | #6
Dear Thomas ;

What should I do with the BR2_PREFER_STATIC_LIB ? 
Is this a something I should add as depenency ?
(I am not very familiar with libraries, I assume that qdecoder.a is a static library and the others (*.so.*) are shared)

What should I add to finalize this patch ?
I added a comment line to the QDECODER_CONF_OPT line for my next version of the patch. 

Kind regards, Sagaert Johan

-----Oorspronkelijk bericht-----
Van: Thomas Petazzoni [mailto:thomas.petazzoni@free-electrons.com] 
Verzonden: dinsdag 22 april 2014 23:41
Aan: Sagaert Johan
CC: buildroot@busybox.net
Onderwerp: Re: [Buildroot] [PATCH 1/1 v2] qdecoder : new package

Dear Sagaert Johan,

On Tue, 22 Apr 2014 17:07:01 +0200, Sagaert Johan wrote:

> I did a quick check on :
> http://autobuild.buildroot.org/toolchains/configs/free-electrons/br-ar
> m-full-nothread.config
> 
> But this seem to fail on my build machine:
> .....snip
> make[2]: Leaving directory `/home/brcpy/support/kconfig'
> BR2_DEFCONFIG='' 
> KCONFIG_AUTOCONFIG=/home/brcpy/output/build/buildroot-config/auto.conf
> KCONFIG_AUTOHEADER=/home/brcpy/output/build/buildroot-config/autoconf.
> h 
> KCONFIG_TRISTATE=/home/brcpy/output/build/buildroot-config/tristate.co
> nfig BR2_CONFIG=/home/brcpy/.config 
> BR2_EXTERNAL=support/dummy-external 
> /home/brcpy/output/build/buildroot-config/conf --silentoldconfig 
> Config.in
> make[1]: Leaving directory `/home/brcpy'
> >>> toolchain-external undefined Extracting
> mkdir -p /home/brcpy/output/host/opt/ext-toolchain
> bzcat /home/johan/dl/br-arm11-full-nothread-2014.02-rc1.tar.bz2 | tar 
> --strip-components=1 --exclude='usr/lib/locale/*' -C 
> /home/brcpy/output/host/opt/ext-toolchain  -xf -
> >>> toolchain-external undefined Patching toolchain-external undefined 
> >>> Configuring
> Cannot execute cross-compiler '/home/brcpy/output/host/opt/ext-toolchain/bin/arm-linux-gcc'
> 
> Is the x64 code ? I am on a 32 bit VM (debian 6).

Hum, correct, the toolchain is 64 bits. Weird, I was pretty sure to build them in a 32 bits chroot, maybe that's no longer the case.

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering http://free-electrons.com
Thomas Petazzoni April 25, 2014, 7:18 a.m. UTC | #7
Dear Sagaert Johan,

On Thu, 24 Apr 2014 22:43:14 +0200, Sagaert Johan wrote:

> What should I do with the BR2_PREFER_STATIC_LIB ? 
> Is this a something I should add as depenency ?

Yes. You should add !BR2_PREFER_STATIC_LIB to the dependencies, and add
the corresponding comment (see the Buildroot manual for details).

> (I am not very familiar with libraries, I assume that qdecoder.a is a static library and the others (*.so.*) are shared)
> 
> What should I add to finalize this patch ?
> I added a comment line to the QDECODER_CONF_OPT line for my next version of the patch. 

You should get rid of the --prefix and --libdir options, by patching
the Makefile.in to add ${DESTDIR} in front of the installation paths in
the 'install' target. Then you can send this patch upstream :-)

Thanks a lot,

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index abfc3cc..998f990 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -765,6 +765,7 @@  source "package/nss-mdns/Config.in"
 source "package/omniorb/Config.in"
 source "package/openpgm/Config.in"
 source "package/ortp/Config.in"
+source "package/qdecoder/Config.in"
 source "package/rtmpdump/Config.in"
 source "package/slirp/Config.in"
 source "package/snmppp/Config.in"
diff --git a/package/qdecoder/Config.in b/package/qdecoder/Config.in
new file mode 100644
index 0000000..2bd2a2f
--- /dev/null
+++ b/package/qdecoder/Config.in
@@ -0,0 +1,7 @@ 
+config BR2_PACKAGE_QDECODER
+	bool "qdecoder"
+	help
+	  qDecoder is a simple and powerful CGI library
+	  for the C/C++ programming language.
+
+	  http://www.qdecoder.org/wiki/qdecoder
diff --git a/package/qdecoder/qdecoder.mk b/package/qdecoder/qdecoder.mk
new file mode 100644
index 0000000..46b986e
--- /dev/null
+++ b/package/qdecoder/qdecoder.mk
@@ -0,0 +1,18 @@ 
+################################################################################
+#
+# qdecoder
+#
+################################################################################
+
+QDECODER_VERSION = r12.0.5
+QDECODER_SITE = $(call github,wolkykim,qdecoder,$(QDECODER_VERSION))
+QDECODER_LICENSE = BSD-2
+QDECODER_LICENSE_FILES = COPYING
+
+QDECODER_INSTALL_STAGING = YES
+
+QDECODER_CONF_OPT = \
+	--prefix=$(STAGING_DIR)/usr \
+	--libdir=$(STAGING_DIR)/usr/lib
+
+$(eval $(autotools-package))