Patchwork [v5] sconeserver: new package

login
register
mail settings
Submitter Simon Dawson
Date Sept. 19, 2012, 8:49 a.m.
Message ID <1348044562-6762-1-git-send-email-spdawson@gmail.com>
Download mbox | patch
Permalink /patch/184950/
State Superseded
Headers show

Comments

Simon Dawson - Sept. 19, 2012, 8:49 a.m.
From: Simon Dawson <spdawson@gmail.com>

Signed-off-by: Simon Dawson <spdawson@gmail.com>
---
 v5: Rebase and resend.
 v4: Resend.
 v3: Fix build failure for mysql module; ui module depends on X.org.
 v2: Extensive rework in response to feedback on mailing list.

 package/Config.in                  |    1 +
 package/sconeserver/Config.in      |   88 +++++++++++++++++++++++++++
 package/sconeserver/sconeserver.mk |  115 ++++++++++++++++++++++++++++++++++++
 3 files changed, 204 insertions(+)
 create mode 100644 package/sconeserver/Config.in
 create mode 100644 package/sconeserver/sconeserver.mk
Arnout Vandecappelle - Sept. 19, 2012, 9:48 p.m.
On 09/19/12 10:49, spdawson@gmail.com wrote:
> +# Sconeserver configure script fails to find the libxml2 headers.
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +	SCONESERVER_CONF_OPT += CPPFLAGS="-I$(STAGING_DIR)/usr/include/libxml2"
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SCONESERVER_MYSQL),y)
> +	SCONESERVER_CONF_OPT += LDFLAGS="-L$(STAGING_DIR)/usr/lib/mysql"
> +endif

  I'd suggest using the following pattern:

SCONESERVER_CONF_OPT += CXXFLAGS="$(TARGET_CXXFLAGS) $(SCONESERVER_CXXFLAGS)"
SCONESERVER_CONF_OPT += LDFLAGS="$(TARGET_LDFLAGS) $(SCONESERVER_LDFLAGS)"

ifeq ($(BR2_PACKAGE_LIBXML2),y)
SCONESERVER_CXXFLAGS += -I$(STAGING_DIR)/usr/include/libxml2
endif

(Actually, this pattern should move to TARGET_CFLAGS itself...  Yet another
item on my ideas list :-)


  The mysql flags should move to the rest of the mysql stuff, so you have the
condition only once.


  I tried building the mysql module and it also fails to find mysql.h.  Turns
out that the configure script hard-codes -I/usr/include/mysql instead of using
the sysrooted path.  I'm not sure how to fix it elegantly.  Adding a -I
option to the CXXFLAGS works, but you still get a -I/usr/include/mysql which
may cause problems...

  Regards,
  Arnout
Simon Dawson - Sept. 21, 2012, 8:17 a.m.
On 19 September 2012 22:48, Arnout Vandecappelle <arnout@mind.be> wrote:
>  I tried building the mysql module and it also fails to find mysql.h.  Turns
> out that the configure script hard-codes -I/usr/include/mysql instead of
> using
> the sysrooted path.  I'm not sure how to fix it elegantly.  Adding a -I
> option to the CXXFLAGS works, but you still get a -I/usr/include/mysql which
> may cause problems...

Thanks for your help with this Arnout; much appreciated. I'll
incorporate your ideas and submit an updated patch.

Simon.

Patch

diff --git a/package/Config.in b/package/Config.in
index 58dd5e8..e0841da 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -606,6 +606,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..a7e5c75
--- /dev/null
+++ b/package/sconeserver/Config.in
@@ -0,0 +1,88 @@ 
+menuconfig 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/
+
+if BR2_PACKAGE_SCONESERVER
+
+comment "Sconeserver modules"
+
+config BR2_PACKAGE_SCONESERVER_EXAMPLES
+	bool "examples"
+	help
+	  Example modules for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE
+	bool "http::sconesite"
+	select BR2_PACKAGE_LIBXML2
+	help
+	  http::sconesite module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE
+	bool "http::sconesite::image"
+	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"
+	select BR2_PACKAGE_MYSQL_CLIENT
+	help
+	  MySQL module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_BLUETOOTH
+	bool "bluetooth"
+	select BR2_PACKAGE_BLUEZ_UTILS
+	help
+	  Bluetooth module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_RSS
+	bool "rss"
+	select BR2_PACKAGE_LIBXML2
+	help
+	  RSS module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_LOCATION
+	bool "location"
+	select BR2_PACKAGE_GPSD
+	help
+	  Location module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_LETTUCE
+	bool "lettuce"
+	help
+	  Sconeserver module for Lettuce embedded automation platform
+
+	  http://www.sconemad.com/lettuce/
+
+config BR2_PACKAGE_SCONESERVER_MATHS
+	bool "maths"
+	select BR2_PACKAGE_MPFR
+	help
+	  Mathematics module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_TESTBUILDER
+	bool "testbuilder"
+	help
+	  Testbuilder module for Sconeserver
+
+config BR2_PACKAGE_SCONESERVER_UI
+	bool "ui"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBX11
+	help
+	  UI module for Sconeserver
+
+comment "ui module requires X.org"
+	depends on !BR2_PACKAGE_XORG7
+
+endif # BR2_PACKAGE_SCONESERVER
+
+comment "sconeserver requires a toolchain with C++ support enabled"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/sconeserver/sconeserver.mk b/package/sconeserver/sconeserver.mk
new file mode 100644
index 0000000..27e2c6e
--- /dev/null
+++ b/package/sconeserver/sconeserver.mk
@@ -0,0 +1,115 @@ 
+#############################################################
+#
+# sconeserver
+#
+#############################################################
+# Release 0.6.0 doesn't build cleanly, so use a recent
+# Subversion trunk snapshot.
+SCONESERVER_VERSION = 178
+SCONESERVER_SITE = \
+	https://sconeserver.svn.sourceforge.net/svnroot/sconeserver/trunk
+SCONESERVER_SITE_METHOD = svn
+
+SCONESERVER_LICENSE = GPLv2+
+SCONESERVER_LICENSE_FILES = COPYING
+
+SCONESERVER_DEPENDENCIES += pcre
+SCONESERVER_CONF_OPT += --with-ip --with-local
+
+# Sconeserver configure script fails to find the libxml2 headers.
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+	SCONESERVER_CONF_OPT += CPPFLAGS="-I$(STAGING_DIR)/usr/include/libxml2"
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_MYSQL),y)
+	SCONESERVER_CONF_OPT += LDFLAGS="-L$(STAGING_DIR)/usr/lib/mysql"
+endif
+
+ifeq ($(BR2_INET_IPV6),y)
+	SCONESERVER_CONF_OPT += --with-ip6
+else
+	SCONESERVER_CONF_OPT += --without-ip6
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+	SCONESERVER_DEPENDENCIES += openssl
+	SCONESERVER_CONF_OPT += --with-ssl
+else
+	SCONESERVER_CONF_OPT += --without-ssl
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_EXAMPLES),y)
+	SCONESERVER_CONF_OPT += --with-examples
+else
+	SCONESERVER_CONF_OPT += --without-examples
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE),y)
+	SCONESERVER_DEPENDENCIES += libxml2
+	SCONESERVER_CONF_OPT += --with-sconesite
+else
+	SCONESERVER_CONF_OPT += --without-sconesite
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),y)
+	SCONESERVER_DEPENDENCIES += imagemagick
+	SCONESERVER_CONF_OPT += --with-sconesite-image
+else
+	SCONESERVER_CONF_OPT += --without-sconesite-image
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_MYSQL),y)
+	SCONESERVER_DEPENDENCIES += mysql_client
+	SCONESERVER_CONF_OPT += --with-mysql
+else
+	SCONESERVER_CONF_OPT += --without-mysql
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_BLUETOOTH),y)
+	SCONESERVER_DEPENDENCIES += bluez_utils
+	SCONESERVER_CONF_OPT += --with-bluetooth
+else
+	SCONESERVER_CONF_OPT += --without-bluetooth
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_RSS),y)
+	SCONESERVER_DEPENDENCIES += libxml2
+	SCONESERVER_CONF_OPT += --with-rss
+else
+	SCONESERVER_CONF_OPT += --without-rss
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_LOCATION),y)
+	SCONESERVER_DEPENDENCIES += gpsd
+	SCONESERVER_CONF_OPT += --with-location
+else
+	SCONESERVER_CONF_OPT += --without-location
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_LETTUCE),y)
+	SCONESERVER_CONF_OPT += --with-lettuce
+else
+	SCONESERVER_CONF_OPT += --without-lettuce
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_MATHS),y)
+	SCONESERVER_DEPENDENCIES += mpfr
+	SCONESERVER_CONF_OPT += --with-maths
+else
+	SCONESERVER_CONF_OPT += --without-maths
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_TESTBUILDER),y)
+	SCONESERVER_CONF_OPT += --with-testbuilder
+else
+	SCONESERVER_CONF_OPT += --without-testbuilder
+endif
+
+ifeq ($(BR2_PACKAGE_SCONESERVER_UI),y)
+	SCONESERVER_DEPENDENCIES += xlib_libX11
+	SCONESERVER_CONF_OPT += --with-ui
+else
+	SCONESERVER_CONF_OPT += --without-ui
+endif
+
+$(eval $(autotools-package))