diff mbox

sconeserver: new package

Message ID 1343051342-12829-1-git-send-email-spdawson@gmail.com
State Superseded
Headers show

Commit Message

Simon Dawson July 23, 2012, 1:49 p.m. UTC
From: Simon Dawson <spdawson@gmail.com>

Signed-off-by: Simon Dawson <spdawson@gmail.com>
---
 package/Config.in                  |    1 +
 package/sconeserver/Config.in      |  100 ++++++++++++++++++++++++++++++++++++
 package/sconeserver/sconeserver.mk |   49 ++++++++++++++++++
 3 files changed, 150 insertions(+)
 create mode 100644 package/sconeserver/Config.in
 create mode 100644 package/sconeserver/sconeserver.mk

Comments

Arnout Vandecappelle July 26, 2012, 4:57 p.m. UTC | #1
On 07/23/12 15:49, spdawson@gmail.com wrote:
[snip]
> diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
> new file mode 100644
> index 0000000..7290ec0
> --- /dev/null
> +++ b/package/sconeserver/Config.in
> @@ -0,0 +1,100 @@
> +config BR2_PACKAGE_SCONESERVER
> +	bool "sconeserver"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	select BR2_PACKAGE_PCRE
> +	help
> +	  Sconeserver is a modular, object-orientated and extremely versatile
> +	  network server framework for GNU/Linux and UNIX-like platforms.
> +
> +	  http://www.sconemad.com/sconeserver/
> +
> +comment "sconeserver requires a toolchain with C++ support enabled"
> +	depends on !BR2_INSTALL_LIBSTDCPP
> +
> +menu "Modules"

  I think a menuconfig is nicer in this case.  Cfr. OpenCV.

> +	depends on BR2_PACKAGE_SCONESERVER
> +
> +config BR2_PACKAGE_SCONESERVER_EXAMPLES
> +	bool "examples"
> +	default n

  n is the default, so this statement is redundant.

> +	help
> +	  Example modules for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_SSL
> +	bool "ssl"
> +	default y

  Why does this default to y?

  Maybe you want
default y if BR2_PACKAGE_OPENSSL

  however, I think that conflicts with the select statement below...

> +	select BR2_PACKAGE_OPENSSL
> +	help
> +	  SSL module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
> +	bool "http::sconesite"
> +	default y
> +	select BR2_PACKAGE_LIBXML2
> +	help
> +	  http::sconesite module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE
> +	bool "http::sconesite::image"
> +	default n
> +	depends on BR2_PACKAGE_IMAGEMAGICK
> +	select BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE

  Shouldn't this be
depends on BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
select BR2_PACKAGE_IMAGEMAGICK

> +	help
> +	  http::sconesite::image module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_MYSQL
> +	bool "mysql"
> +	default n
> +	depends on BR2_PACKAGE_MYSQL_CLIENT

  Why depends on rather than select?

  Same for all the following...

> +	help
> +	  MySQL module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_BLUETOOTH
> +	bool "bluetooth"
> +	default n
> +	depends on BR2_PACKAGE_BLUEZ_UTILS
> +	help
> +	  Bluetooth module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_RSS
> +	bool "rss"
> +	default y
> +	select BR2_PACKAGE_LIBXML2
> +	help
> +	  RSS module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_LOCATION
> +	bool "location"
> +	default n
> +	depends on BR2_PACKAGE_GPSD
> +	help
> +	  Location module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_LETTUCE
> +	bool "lettuce"
> +	default n
> +	help
> +	  Lettuce module for SconeServer

  This one could use some explanation of what lettuce is...

> +
> +config BR2_PACKAGE_SCONESERVER_MATHS
> +	bool "maths"
> +	default n
> +	depends on BR2_PACKAGE_GMP
> +	depends on BR2_PACKAGE_MPFR
> +	help
> +	  Maths module for SconeServer

  Maybe this one as well.

> +
> +config BR2_PACKAGE_SCONESERVER_TESTBUILDER
> +	bool "testbuilder"
> +	default n
> +	help
> +	  Testbuilder module for SconeServer
> +
> +config BR2_PACKAGE_SCONESERVER_UI
> +	bool "ui"
> +	default n
> +	depends on BR2_PACKAGE_XLIB_LIBX11
> +	help
> +	  UI module for SconeServer
> +
> +endmenu
> diff --git a/package/sconeserver/sconeserver.mk b/package/sconeserver/sconeserver.mk
> new file mode 100644
> index 0000000..dba5fe6
> --- /dev/null
> +++ b/package/sconeserver/sconeserver.mk
> @@ -0,0 +1,49 @@
> +#############################################################
> +#
> +# sconeserver
> +#
> +#############################################################
> +# Release tarball doesn't build cleanly, so use a recent
> +# Subversion trunk snapshot.

  Mention which is the release that doesn't build cleanly, this will
help version bumpers.

> +SCONESERVER_VERSION = 177
> +SCONESERVER_SITE = \
> +	https://sconeserver.svn.sourceforge.net/svnroot/sconeserver/trunk
> +SCONESERVER_SITE_METHOD = svn
> +
> +SCONESERVER_LICENSE = GPLv2+
> +SCONESERVER_LICENSE_FILES = COPYING
> +
> +SCONESERVER_CONF_OPT += \
> +	--with-ip \
> +	--with-local \
> +	$(if $(BR2_INET_IPV6),--with-ip6,--without-ip6) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_EXAMPLES),--with-examples,--without-examples) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_LETTUCE),--with-lettuce,--without-lettuce) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_TESTBUILDER),--with-testbuilder,--without-testbuilder) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_SSL),--with-ssl,--without-ssl) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),--with-sconesite,--without-sconesite) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),--with-sconesite-image,--without-sconesite-image) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_MYSQL),--with-mysql,--without-mysql) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_BLUETOOTH),--with-bluetooth,--without-bluetooth) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_RSS),--with-rss,--without-rss) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_LOCATION),--with-location,--without-location) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_MATHS),--with-maths,--without-maths) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_UI),--with-ui,--without-ui)
> +
> +# Help SconeServer to find the libxml2 headers.
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +	SCONESERVER_CONF_OPT += CPPFLAGS="-I$(STAGING_DIR)/usr/include/libxml2"

  Why doesn't pkg-config find this path?  Are they missing a check for
libxml-2.0 maybe?

> +endif
> +
> +SCONESERVER_DEPENDENCIES = \
> +	pcre \
> +	$(if $(BR2_PACKAGE_SCONESERVER_SSL),openssl) \
> +	$(if $(or $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),$(BR2_PACKAGE_SCONESERVER_RSS)),libxml2) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),imagemagick) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_MYSQL),mysql_client) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_BLUETOOTH),bluez_utils) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_LOCATION),gpsd) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_MATHS),gmp mpfr) \
> +	$(if $(BR2_PACKAGE_SCONESERVER_UI),xlib_libX11)
> +
> +$(eval $(autotools-package))


  Regards,
  Arnout
Samuel Martin July 26, 2012, 11:14 p.m. UTC | #2
Hi Simon, Arnout,

2012/7/26 Arnout Vandecappelle <arnout@mind.be>:
> On 07/23/12 15:49, spdawson@gmail.com wrote:
> [snip]
>
>> diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
>> new file mode 100644
>> index 0000000..7290ec0
>> --- /dev/null
>> +++ b/package/sconeserver/Config.in
>> @@ -0,0 +1,100 @@
>> +config BR2_PACKAGE_SCONESERVER
>> +       bool "sconeserver"
>> +       depends on BR2_INSTALL_LIBSTDCPP
>> +       select BR2_PACKAGE_PCRE
>> +       help
>> +         Sconeserver is a modular, object-orientated and extremely
>> versatile
>> +         network server framework for GNU/Linux and UNIX-like platforms.
>> +
>> +         http://www.sconemad.com/sconeserver/
>> +
>> +comment "sconeserver requires a toolchain with C++ support enabled"
>> +       depends on !BR2_INSTALL_LIBSTDCPP
>> +
>> +menu "Modules"
>
>
>  I think a menuconfig is nicer in this case.  Cfr. OpenCV.
>
>
>> +       depends on BR2_PACKAGE_SCONESERVER
>> +
>> +config BR2_PACKAGE_SCONESERVER_EXAMPLES
>> +       bool "examples"
>> +       default n
>
>
>  n is the default, so this statement is redundant.
>
>
>> +       help
>> +         Example modules for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_SSL
>> +       bool "ssl"
>> +       default y
>
>
>  Why does this default to y?
>
>  Maybe you want
> default y if BR2_PACKAGE_OPENSSL
>
>  however, I think that conflicts with the select statement below...
>
>
>> +       select BR2_PACKAGE_OPENSSL
OTHO, you might wont to select which ssl  implementation from openssl
or polarssl you prefer.
Though sconeserver website only mentions openssl dependency, have you
try using polarssl?

>> +       help
>> +         SSL module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
>> +       bool "http::sconesite"
>> +       default y
>> +       select BR2_PACKAGE_LIBXML2
>> +       help
>> +         http::sconesite module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE
>> +       bool "http::sconesite::image"
>> +       default n
>> +       depends on BR2_PACKAGE_IMAGEMAGICK
>> +       select BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
We usually prefer using "select" for package or library dependency,
reserving "depends on" for more bigger dependency like X or something
deep in the toolchain like RPC or WCHAR support.
See: http://buildroot.org/downloads/manual/manual.html#_literal_config_in_literal_file

>
>
>  Shouldn't this be
> depends on BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
> select BR2_PACKAGE_IMAGEMAGICK
>
>
>> +       help
>> +         http::sconesite::image module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_MYSQL
>> +       bool "mysql"
>> +       default n
>> +       depends on BR2_PACKAGE_MYSQL_CLIENT
>
>
>  Why depends on rather than select?
>
>  Same for all the following...
>
>
>> +       help
>> +         MySQL module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_BLUETOOTH
>> +       bool "bluetooth"
>> +       default n
>> +       depends on BR2_PACKAGE_BLUEZ_UTILS
>> +       help
>> +         Bluetooth module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_RSS
>> +       bool "rss"
>> +       default y
>> +       select BR2_PACKAGE_LIBXML2
>> +       help
>> +         RSS module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_LOCATION
>> +       bool "location"
>> +       default n
>> +       depends on BR2_PACKAGE_GPSD
>> +       help
>> +         Location module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_LETTUCE
>> +       bool "lettuce"
>> +       default n
>> +       help
>> +         Lettuce module for SconeServer
>
>
>  This one could use some explanation of what lettuce is...
>
>
>> +
>> +config BR2_PACKAGE_SCONESERVER_MATHS
>> +       bool "maths"
>> +       default n
>> +       depends on BR2_PACKAGE_GMP
>> +       depends on BR2_PACKAGE_MPFR
>> +       help
>> +         Maths module for SconeServer
>
>
>  Maybe this one as well.
>
>
>> +
>> +config BR2_PACKAGE_SCONESERVER_TESTBUILDER
>> +       bool "testbuilder"
>> +       default n
>> +       help
>> +         Testbuilder module for SconeServer
>> +
>> +config BR2_PACKAGE_SCONESERVER_UI
>> +       bool "ui"
>> +       default n
>> +       depends on BR2_PACKAGE_XLIB_LIBX11
>> +       help
>> +         UI module for SconeServer
>> +
>> +endmenu
>> diff --git a/package/sconeserver/sconeserver.mk
>> b/package/sconeserver/sconeserver.mk
>> new file mode 100644
>> index 0000000..dba5fe6
>> --- /dev/null
>> +++ b/package/sconeserver/sconeserver.mk
>> @@ -0,0 +1,49 @@
>> +#############################################################
>> +#
>> +# sconeserver
>> +#
>> +#############################################################
>> +# Release tarball doesn't build cleanly, so use a recent
>> +# Subversion trunk snapshot.
>
>
>  Mention which is the release that doesn't build cleanly, this will
> help version bumpers.
>
>
>> +SCONESERVER_VERSION = 177
>> +SCONESERVER_SITE = \
>> +       https://sconeserver.svn.sourceforge.net/svnroot/sconeserver/trunk
>> +SCONESERVER_SITE_METHOD = svn
>> +
>> +SCONESERVER_LICENSE = GPLv2+
>> +SCONESERVER_LICENSE_FILES = COPYING
>> +
>> +SCONESERVER_CONF_OPT += \
>> +       --with-ip \
>> +       --with-local \
>> +       $(if $(BR2_INET_IPV6),--with-ip6,--without-ip6) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_EXAMPLES),--with-examples,--without-examples) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_LETTUCE),--with-lettuce,--without-lettuce) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_TESTBUILDER),--with-testbuilder,--without-testbuilder)
>> \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_SSL),--with-ssl,--without-ssl) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),--with-sconesite,--without-sconesite)
>> \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),--with-sconesite-image,--without-sconesite-image)
>> \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_MYSQL),--with-mysql,--without-mysql) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_BLUETOOTH),--with-bluetooth,--without-bluetooth) \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_RSS),--with-rss,--without-rss) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_LOCATION),--with-location,--without-location) \
>> +       $(if
>> $(BR2_PACKAGE_SCONESERVER_MATHS),--with-maths,--without-maths) \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_UI),--with-ui,--without-ui)
>> +
>> +# Help SconeServer to find the libxml2 headers.
>> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
>> +       SCONESERVER_CONF_OPT +=
>> CPPFLAGS="-I$(STAGING_DIR)/usr/include/libxml2"
>
>
>  Why doesn't pkg-config find this path?  Are they missing a check for
> libxml-2.0 maybe?
>
>
>> +endif
>> +
>> +SCONESERVER_DEPENDENCIES = \
>> +       pcre \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_SSL),openssl) \
Since the ssl option (like most of of the following ones) has effect
on both SCONESERVER_DEPENDENCIES and SCONESERVER_CONF_OPT,
I would prefer to see them nested in the same if[n]eq statement:

ifneq ($(BR2_PACKAGE_SCONESERVER_SSL),)
SCONESERVER_CONF_OPT += --with-ssl
SCONESERVER_DEPENDENCIES += openssl
else
SCONESERVER_CONF_OPT += --without-ssl
endif

IMO, this makes things easier to maintain.

>> +       $(if $(or
>> $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),$(BR2_PACKAGE_SCONESERVER_RSS)),libxml2)
>> \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),imagemagick)
>> \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_MYSQL),mysql_client) \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_BLUETOOTH),bluez_utils) \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_LOCATION),gpsd) \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_MATHS),gmp mpfr) \
>> +       $(if $(BR2_PACKAGE_SCONESERVER_UI),xlib_libX11)
>> +
>> +$(eval $(autotools-package))
>

Regards,
Thomas Petazzoni July 27, 2012, 6:34 a.m. UTC | #3
Le Fri, 27 Jul 2012 01:14:43 +0200,
Samuel Martin <s.martin49@gmail.com> a écrit :

> Since the ssl option (like most of of the following ones) has effect
> on both SCONESERVER_DEPENDENCIES and SCONESERVER_CONF_OPT,
> I would prefer to see them nested in the same if[n]eq statement:
> 
> ifneq ($(BR2_PACKAGE_SCONESERVER_SSL),)
> SCONESERVER_CONF_OPT += --with-ssl
> SCONESERVER_DEPENDENCIES += openssl
> else
> SCONESERVER_CONF_OPT += --without-ssl
> endif
> 
> IMO, this makes things easier to maintain.

I agree. It's a bit longer from a number of lines perspective, but it's
much more logical, IMO.

Thomas
Thomas Petazzoni July 27, 2012, 6:45 a.m. UTC | #4
Le Thu, 26 Jul 2012 18:57:45 +0200,
Arnout Vandecappelle <arnout@mind.be> a écrit :

> > +	help
> > +	  Example modules for SconeServer
> > +
> > +config BR2_PACKAGE_SCONESERVER_SSL
> > +	bool "ssl"
> > +	default y
> 
>   Why does this default to y?
> 
>   Maybe you want
> default y if BR2_PACKAGE_OPENSSL
> 
>   however, I think that conflicts with the select statement below...

Also in general we don't have sub-options for things that depend on
packages: the package automatically enables the feature if the required
dependency is available.

I have the same problem with the VLC package currently being proposed
by Ismael: it has a huge number of sub-options, for each potential
dependency that the package might use.

On one hand having all these sub-options is a bit annoying, but:

 (*) It allows to have sub-options for things that depend on other
     libraries, but also for things that don't have dependencies.
     Otherwise, it's a bit strange: for --enable/--disable flags that
     don't require dependencies, we have a kconfig option, but for
     --enable/--disable flags that require dependencies, they get
     automatically enabled when the required dependency is available.

 (*) You may want to have SSL support in one component of your system,
     but not necessarily others.

Thoughts?

Thomas
Simon Dawson July 27, 2012, 8:12 a.m. UTC | #5
Hi Arnout, Samuel, Thomas.

Thanks for the feedback. I'll submit a reworked patch.

Simon.
Arnout Vandecappelle July 27, 2012, 8:27 a.m. UTC | #6
On 07/27/12 08:45, Thomas Petazzoni wrote:
> I have the same problem with the VLC package currently being proposed
> by Ismael: it has a huge number of sub-options, for each potential
> dependency that the package might use.
>
> On one hand having all these sub-options is a bit annoying, but:
>
>   (*) It allows to have sub-options for things that depend on other
>       libraries, but also for things that don't have dependencies.
>       Otherwise, it's a bit strange: for --enable/--disable flags that
>       don't require dependencies, we have a kconfig option, but for
>       --enable/--disable flags that require dependencies, they get
>       automatically enabled when the required dependency is available.
>
>   (*) You may want to have SSL support in one component of your system,
>       but not necessarily others.

  I think it depends a bit on the situation.  For openssl support, it
makes more sense to just add it when available, because it normally
doesn't increase the size of the binary (much) to have openssl support
enabled.

  However, sconeserver (and vlc as well) are modular packages, which you
can basically view as a collection of sub-packages.  So in that case,
it does make more sense to select which modules you want to have
enabled.

  So for sconeserver, I prefer to keep all the sub-options.  Except
maybe the SSL module, that's not really a separate server but a
library wrapper, so it should probably be selected automatically if
openssl is.

  Regards,
  Arnout
Simon Dawson July 27, 2012, 8:38 a.m. UTC | #7
On 27 July 2012 09:27, Arnout Vandecappelle <arnout@mind.be> wrote:
>  I think it depends a bit on the situation.  For openssl support, it
> makes more sense to just add it when available, because it normally
> doesn't increase the size of the binary (much) to have openssl support
> enabled.
>
>  However, sconeserver (and vlc as well) are modular packages, which you
> can basically view as a collection of sub-packages.  So in that case,
> it does make more sense to select which modules you want to have
> enabled.
>
>  So for sconeserver, I prefer to keep all the sub-options.  Except
> maybe the SSL module, that's not really a separate server but a
> library wrapper, so it should probably be selected automatically if
> openssl is.

Yes, I tend to agree.

Simon.
Thomas Petazzoni July 27, 2012, 8:39 a.m. UTC | #8
Le Fri, 27 Jul 2012 10:27:45 +0200,
Arnout Vandecappelle <arnout@mind.be> a écrit :

>   I think it depends a bit on the situation.  For openssl support, it
> makes more sense to just add it when available, because it normally
> doesn't increase the size of the binary (much) to have openssl support
> enabled.
> 
>   However, sconeserver (and vlc as well) are modular packages, which
> you can basically view as a collection of sub-packages.  So in that
> case, it does make more sense to select which modules you want to have
> enabled.
> 
>   So for sconeserver, I prefer to keep all the sub-options.  Except
> maybe the SSL module, that's not really a separate server but a
> library wrapper, so it should probably be selected automatically if
> openssl is.

So the patch should be adjusted for the SSL case at least.

Thomas
Simon Dawson July 27, 2012, 8:42 a.m. UTC | #9
On 26 July 2012 17:57, Arnout Vandecappelle <arnout@mind.be> wrote:
>  Why doesn't pkg-config find this path?  Are they missing a check for
> libxml-2.0 maybe?

Sorry to backtrack the thread a little, but I just want to reply to
this question before it gets forgotten. Yes, the package configure
script does check for libxml2; but the check doesn't appear to be
doing quite the right thing. I haven't yet got to the bottom of what's
wrong here.

Simon.
Simon Dawson July 27, 2012, 8:43 a.m. UTC | #10
On 27 July 2012 09:39, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> So the patch should be adjusted for the SSL case at least.

Yes, agreed.

Simon.
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index f664b8e..a88e639 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -591,6 +591,7 @@  source "package/rsh-redone/Config.in"
 source "package/rsync/Config.in"
 source "package/rtorrent/Config.in"
 source "package/samba/Config.in"
+source "package/sconeserver/Config.in"
 source "package/ser2net/Config.in"
 source "package/socat/Config.in"
 source "package/socketcand/Config.in"
diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
new file mode 100644
index 0000000..7290ec0
--- /dev/null
+++ b/package/sconeserver/Config.in
@@ -0,0 +1,100 @@ 
+config BR2_PACKAGE_SCONESERVER
+	bool "sconeserver"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_PCRE
+	help
+	  Sconeserver is a modular, object-orientated and extremely versatile
+	  network server framework for GNU/Linux and UNIX-like platforms.
+
+	  http://www.sconemad.com/sconeserver/
+
+comment "sconeserver requires a toolchain with C++ support enabled"
+	depends on !BR2_INSTALL_LIBSTDCPP
+
+menu "Modules"
+	depends on BR2_PACKAGE_SCONESERVER
+
+config BR2_PACKAGE_SCONESERVER_EXAMPLES
+	bool "examples"
+	default n
+	help
+	  Example modules for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_SSL
+	bool "ssl"
+	default y
+	select BR2_PACKAGE_OPENSSL
+	help
+	  SSL module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
+	bool "http::sconesite"
+	default y
+	select BR2_PACKAGE_LIBXML2
+	help
+	  http::sconesite module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE
+	bool "http::sconesite::image"
+	default n
+	depends on BR2_PACKAGE_IMAGEMAGICK
+	select BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
+	help
+	  http::sconesite::image module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_MYSQL
+	bool "mysql"
+	default n
+	depends on BR2_PACKAGE_MYSQL_CLIENT
+	help
+	  MySQL module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_BLUETOOTH
+	bool "bluetooth"
+	default n
+	depends on BR2_PACKAGE_BLUEZ_UTILS
+	help
+	  Bluetooth module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_RSS
+	bool "rss"
+	default y
+	select BR2_PACKAGE_LIBXML2
+	help
+	  RSS module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_LOCATION
+	bool "location"
+	default n
+	depends on BR2_PACKAGE_GPSD
+	help
+	  Location module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_LETTUCE
+	bool "lettuce"
+	default n
+	help
+	  Lettuce module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_MATHS
+	bool "maths"
+	default n
+	depends on BR2_PACKAGE_GMP
+	depends on BR2_PACKAGE_MPFR
+	help
+	  Maths module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_TESTBUILDER
+	bool "testbuilder"
+	default n
+	help
+	  Testbuilder module for SconeServer
+
+config BR2_PACKAGE_SCONESERVER_UI
+	bool "ui"
+	default n
+	depends on BR2_PACKAGE_XLIB_LIBX11
+	help
+	  UI module for SconeServer
+
+endmenu
diff --git a/package/sconeserver/sconeserver.mk b/package/sconeserver/sconeserver.mk
new file mode 100644
index 0000000..dba5fe6
--- /dev/null
+++ b/package/sconeserver/sconeserver.mk
@@ -0,0 +1,49 @@ 
+#############################################################
+#
+# sconeserver
+#
+#############################################################
+# Release tarball doesn't build cleanly, so use a recent
+# Subversion trunk snapshot.
+SCONESERVER_VERSION = 177
+SCONESERVER_SITE = \
+	https://sconeserver.svn.sourceforge.net/svnroot/sconeserver/trunk
+SCONESERVER_SITE_METHOD = svn
+
+SCONESERVER_LICENSE = GPLv2+
+SCONESERVER_LICENSE_FILES = COPYING
+
+SCONESERVER_CONF_OPT += \
+	--with-ip \
+	--with-local \
+	$(if $(BR2_INET_IPV6),--with-ip6,--without-ip6) \
+	$(if $(BR2_PACKAGE_SCONESERVER_EXAMPLES),--with-examples,--without-examples) \
+	$(if $(BR2_PACKAGE_SCONESERVER_LETTUCE),--with-lettuce,--without-lettuce) \
+	$(if $(BR2_PACKAGE_SCONESERVER_TESTBUILDER),--with-testbuilder,--without-testbuilder) \
+	$(if $(BR2_PACKAGE_SCONESERVER_SSL),--with-ssl,--without-ssl) \
+	$(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),--with-sconesite,--without-sconesite) \
+	$(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),--with-sconesite-image,--without-sconesite-image) \
+	$(if $(BR2_PACKAGE_SCONESERVER_MYSQL),--with-mysql,--without-mysql) \
+	$(if $(BR2_PACKAGE_SCONESERVER_BLUETOOTH),--with-bluetooth,--without-bluetooth) \
+	$(if $(BR2_PACKAGE_SCONESERVER_RSS),--with-rss,--without-rss) \
+	$(if $(BR2_PACKAGE_SCONESERVER_LOCATION),--with-location,--without-location) \
+	$(if $(BR2_PACKAGE_SCONESERVER_MATHS),--with-maths,--without-maths) \
+	$(if $(BR2_PACKAGE_SCONESERVER_UI),--with-ui,--without-ui)
+
+# Help SconeServer to find the libxml2 headers.
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+	SCONESERVER_CONF_OPT += CPPFLAGS="-I$(STAGING_DIR)/usr/include/libxml2"
+endif
+
+SCONESERVER_DEPENDENCIES = \
+	pcre \
+	$(if $(BR2_PACKAGE_SCONESERVER_SSL),openssl) \
+	$(if $(or $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),$(BR2_PACKAGE_SCONESERVER_RSS)),libxml2) \
+	$(if $(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),imagemagick) \
+	$(if $(BR2_PACKAGE_SCONESERVER_MYSQL),mysql_client) \
+	$(if $(BR2_PACKAGE_SCONESERVER_BLUETOOTH),bluez_utils) \
+	$(if $(BR2_PACKAGE_SCONESERVER_LOCATION),gpsd) \
+	$(if $(BR2_PACKAGE_SCONESERVER_MATHS),gmp mpfr) \
+	$(if $(BR2_PACKAGE_SCONESERVER_UI),xlib_libX11)
+
+$(eval $(autotools-package))