diff mbox

[v3,1/1] package/bluez-tools: new package

Message ID 20170209212616.32550-1-bernd.kuhls@t-online.de
State Accepted
Headers show

Commit Message

Bernd Kuhls Feb. 9, 2017, 9:26 p.m. UTC
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
v3: handle optional readline dependency when used with bluez_utils
    (Baruch)
v2: added comment why autoreconf is needed (Romain)

 DEVELOPERS                           |  1 +
 package/Config.in                    |  1 +
 package/bluez-tools/Config.in        | 19 +++++++++++++++++++
 package/bluez-tools/bluez-tools.hash |  3 +++
 package/bluez-tools/bluez-tools.mk   | 33 +++++++++++++++++++++++++++++++++
 5 files changed, 57 insertions(+)
 create mode 100644 package/bluez-tools/Config.in
 create mode 100644 package/bluez-tools/bluez-tools.hash
 create mode 100644 package/bluez-tools/bluez-tools.mk

Comments

Baruch Siach Feb. 9, 2017, 9:30 p.m. UTC | #1
Hi Bernd,

On Thu, Feb 09, 2017 at 10:26:16PM +0100, Bernd Kuhls wrote:
> +ifeq ($(BR2_PACKAGE_BLUEZ_UTILS),y)
> +BLUEZ_TOOLS_DEPENDENCIES += bluez_utils
> +# readline is an optional dependency when used with bluez_utils
> +# obex support depends on readline so enable it optionally
> +ifeq ($(BR2_PACKAGE_READLINE),y)
> +BLUEZ_TOOLS_CONF_OPTS += --enable-obex
> +BLUEZ_TOOLS_DEPENDENCIES += readline
> +else
> +BLUEZ_TOOLS_CONF_OPTS += --disable-obex
> +endif
> +else
> +# readline is a hard dependency when used with bluez5_utils
> +BLUEZ_TOOLS_DEPENDENCIES += bluez5_utils readline
> +endif

Looks overly complex to me. Why not treat readline as a usual optional 
dependency, independent from the bluez version?

baruch
Thomas Petazzoni April 1, 2017, 8:49 p.m. UTC | #2
Hello,

On Thu,  9 Feb 2017 22:26:16 +0100, Bernd Kuhls wrote:
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
> v3: handle optional readline dependency when used with bluez_utils
>     (Baruch)
> v2: added comment why autoreconf is needed (Romain)

Applied to master after adding licensing informations that were
missing. Thanks!

Thomas
Thomas Petazzoni April 1, 2017, 8:50 p.m. UTC | #3
Hello,

On Thu, 9 Feb 2017 23:30:19 +0200, Baruch Siach wrote:

> On Thu, Feb 09, 2017 at 10:26:16PM +0100, Bernd Kuhls wrote:
> > +ifeq ($(BR2_PACKAGE_BLUEZ_UTILS),y)
> > +BLUEZ_TOOLS_DEPENDENCIES += bluez_utils
> > +# readline is an optional dependency when used with bluez_utils
> > +# obex support depends on readline so enable it optionally
> > +ifeq ($(BR2_PACKAGE_READLINE),y)
> > +BLUEZ_TOOLS_CONF_OPTS += --enable-obex
> > +BLUEZ_TOOLS_DEPENDENCIES += readline
> > +else
> > +BLUEZ_TOOLS_CONF_OPTS += --disable-obex
> > +endif
> > +else
> > +# readline is a hard dependency when used with bluez5_utils
> > +BLUEZ_TOOLS_DEPENDENCIES += bluez5_utils readline
> > +endif  
> 
> Looks overly complex to me. Why not treat readline as a usual optional 
> dependency, independent from the bluez version?

I hesitated a bit as well on this one, but in the end, I found the
solution from Bernd to have the advantage of making very clear/explicit
what's going with readline: when it is optional/mandatory, what
autoconf options can be enabled when it is optional, etc. So I decided
to keep it as Bernd proposed.

Thanks!

Thomas
diff mbox

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 94f680454..c0e5e9166 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -150,6 +150,7 @@  N:	Bernd Kuhls <bernd.kuhls@t-online.de>
 F:	package/apache/
 F:	package/apr/
 F:	package/apr-util/
+F:	package/bluez-tools/
 F:	package/clamav/
 F:	package/dovecot/
 F:	package/dovecot-pigeonhole/
diff --git a/package/Config.in b/package/Config.in
index 60bb87fd0..c3bb68d3b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1484,6 +1484,7 @@  menu "Networking applications"
 	source "package/batctl/Config.in"
 	source "package/bcusdk/Config.in"
 	source "package/bind/Config.in"
+	source "package/bluez-tools/Config.in"
 	source "package/bluez_utils/Config.in"
 	source "package/bluez5_utils/Config.in"
 	source "package/bmon/Config.in"
diff --git a/package/bluez-tools/Config.in b/package/bluez-tools/Config.in
new file mode 100644
index 000000000..5a1b7d041
--- /dev/null
+++ b/package/bluez-tools/Config.in
@@ -0,0 +1,19 @@ 
+config BR2_PACKAGE_BLUEZ_TOOLS
+	bool "bluez-tools"
+	depends on BR2_PACKAGE_BLUEZ_UTILS || BR2_PACKAGE_BLUEZ5_UTILS
+	depends on BR2_USE_MMU # dbus, libglib2
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
+	select BR2_PACKAGE_DBUS
+	select BR2_PACKAGE_DBUS_GLIB
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_READLINE if BR2_PACKAGE_BLUEZ5_UTILS
+	help
+	  A set of tools to manage bluetooth devices for linux
+
+	  https://github.com/khvzak/bluez-tools
+
+comment "bluez-tools needs a toolchain w/ wchar, threads"
+	depends on BR2_PACKAGE_BLUEZ_UTILS || BR2_PACKAGE_BLUEZ5_UTILS
+	depends on BR2_USE_MMU
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/bluez-tools/bluez-tools.hash b/package/bluez-tools/bluez-tools.hash
new file mode 100644
index 000000000..214fa5bdf
--- /dev/null
+++ b/package/bluez-tools/bluez-tools.hash
@@ -0,0 +1,3 @@ 
+# Locally computed
+sha256 56204ddd1cc7890d60f6a47507755f786fa3ee28f1da370a32ca7d7e0795a953  bluez-tools-171181b6ef6c94aefc828dc7fd8de136b9f97532.tar.gz
+sha256 62ca98af63d2ae142dbc77995c6bd4c259eaba4a5832daa33ae9e3d585b9205f  bluez-tools-97efd293491ad7ec96a655665339908f2478b3d1.tar.gz
diff --git a/package/bluez-tools/bluez-tools.mk b/package/bluez-tools/bluez-tools.mk
new file mode 100644
index 000000000..d2c5b9802
--- /dev/null
+++ b/package/bluez-tools/bluez-tools.mk
@@ -0,0 +1,33 @@ 
+################################################################################
+#
+# bluez-tools
+#
+################################################################################
+
+ifeq ($(BR2_PACKAGE_BLUEZ_UTILS),y)
+# this is the last version compatible with BlueZ 4 API
+BLUEZ_TOOLS_VERSION = 171181b6ef6c94aefc828dc7fd8de136b9f97532
+else
+BLUEZ_TOOLS_VERSION = 97efd293491ad7ec96a655665339908f2478b3d1
+endif
+BLUEZ_TOOLS_SITE = $(call github,khvzak,bluez-tools,$(BLUEZ_TOOLS_VERSION))
+# sources fetched from github, no configure script)
+BLUEZ_TOOLS_AUTORECONF = YES
+BLUEZ_TOOLS_DEPENDENCIES = host-pkgconf dbus dbus-glib
+
+ifeq ($(BR2_PACKAGE_BLUEZ_UTILS),y)
+BLUEZ_TOOLS_DEPENDENCIES += bluez_utils
+# readline is an optional dependency when used with bluez_utils
+# obex support depends on readline so enable it optionally
+ifeq ($(BR2_PACKAGE_READLINE),y)
+BLUEZ_TOOLS_CONF_OPTS += --enable-obex
+BLUEZ_TOOLS_DEPENDENCIES += readline
+else
+BLUEZ_TOOLS_CONF_OPTS += --disable-obex
+endif
+else
+# readline is a hard dependency when used with bluez5_utils
+BLUEZ_TOOLS_DEPENDENCIES += bluez5_utils readline
+endif
+
+$(eval $(autotools-package))