diff mbox

[v4] bluez5_utils: new package

Message ID 1395395632-15685-1-git-send-email-marcin@bis.org.pl
State Superseded
Headers show

Commit Message

Marcin Bis March 21, 2014, 9:53 a.m. UTC
This patch adds Bluez 5.x.
API is not backwards compatible with BlueZ 4.x

BlueZ utils will use systemd and/or udev if enabled.
Contains a hook for installing GATT support tool, wchich is always
build but not installed by default.

Signed-off-by: Marcin Bis <marcin@bis.org.pl>
---
 package/Config.in                    |    1 +
 package/bluez5_utils/Config.in       |   51 ++++++++++++++++++++++++++++++++
 package/bluez5_utils/bluez5_utils.mk |   54 ++++++++++++++++++++++++++++++++++
 3 files changed, 106 insertions(+)
 create mode 100644 package/bluez5_utils/Config.in
 create mode 100644 package/bluez5_utils/bluez5_utils.mk

Comments

Jerzy Grzegorek March 21, 2014, 11:08 a.m. UTC | #1
Hi Marcin,

> This patch adds Bluez 5.x.
> API is not backwards compatible with BlueZ 4.x
>
> BlueZ utils will use systemd and/or udev if enabled.
> Contains a hook for installing GATT support tool, wchich is always
> build but not installed by default.
>
> Signed-off-by: Marcin Bis <marcin@bis.org.pl>
> ---
>   package/Config.in                    |    1 +
>   package/bluez5_utils/Config.in       |   51 ++++++++++++++++++++++++++++++++
>   package/bluez5_utils/bluez5_utils.mk |   54 ++++++++++++++++++++++++++++++++++
>   3 files changed, 106 insertions(+)
>   create mode 100644 package/bluez5_utils/Config.in
>   create mode 100644 package/bluez5_utils/bluez5_utils.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 8986734..357a96c 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -867,6 +867,7 @@ source "package/axel/Config.in"
>   source "package/bcusdk/Config.in"
>   source "package/bind/Config.in"
>   source "package/bluez_utils/Config.in"
> +source "package/bluez5_utils/Config.in"

Add it in alphabetical order.

>   source "package/bmon/Config.in"
>   source "package/boa/Config.in"
>   source "package/bridge-utils/Config.in"
> diff --git a/package/bluez5_utils/Config.in b/package/bluez5_utils/Config.in
> new file mode 100644
> index 0000000..c721fff
> --- /dev/null
> +++ b/package/bluez5_utils/Config.in
> @@ -0,0 +1,51 @@
> +config BR2_PACKAGE_BLUEZ5_UTILS
> +	bool "bluez-utils 5.x"
> +	depends on !BR2_avr32
> +	depends on BR2_USE_WCHAR # libglib2
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
> +	depends on BR2_USE_MMU # dbus
> +	depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version
> +	select BR2_PACKAGE_DBUS
> +	select BR2_PACKAGE_LIBGLIB2
> +	select BR2_PACKAGE_LIBICAL
> +	select BR2_PACKAGE_READLINE
> +	help
> +	  bluez utils version 5.x
> +
> +	  With this release BlueZ only supports the new Bluetooth Management
> +	  kernel interface (introduced in Linux 3.4).
> +	  For Low Energy support at least kernel version 3.5 is needed.
> +
> +	  The API is not backwards compatible with BlueZ 4.
> +
> +	  Bluez utils will use systemd and/or udev if enabled.
> +
> +	  http://www.bluez.org
> +	  http://www.kernel.org/pub/linux/bluetooth
> +
> +if BR2_PACKAGE_BLUEZ5_UTILS
> +
> +config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL
> +	bool "build experimental plugins"
> +	help
> +	  Build BlueZ 5.x experimental plugins (SAP, NFC, ...).
> +
> +config BR2_PACKAGE_BLUEZ5_UTILS_TEST
> +	bool "enable test"
> +	help
> +	  Enable test.
> +
> +config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL
> +	bool "install GATT tool"
> +	help
> +	  Generic Attribute Profile (GATT) support. This provides profile
> +	  discovery and description services for Bluetooth Low Energy.
> +	  This will install the gatttool utility.
> +
> +	  It is always build with BlueZ 5.x, but upstream choose not to install
> +	  it by default.
> +
> +endif
> +
> +comment "bluez5-utils needs a toolchain w/ wchar, threads"
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/bluez5_utils/bluez5_utils.mk b/package/bluez5_utils/bluez5_utils.mk
> new file mode 100644
> index 0000000..6cc61cf
> --- /dev/null
> +++ b/package/bluez5_utils/bluez5_utils.mk
> @@ -0,0 +1,54 @@
> +################################################################################
> +#
> +# bluez5_utils
> +#
> +################################################################################
> +
> +BLUEZ5_UTILS_VERSION = 5.16
> +BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz
> +BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth
> +BLUEZ5_UTILS_INSTALL_STAGING = YES
> +BLUEZ5_UTILS_DEPENDENCIES = dbus libglib2 libical readline
> +BLUEZ5_UTILS_CONF_OPT = --enable-tools --enable-library
> +BLUEZ5_UTILS_LICENSE = GPLv2+ LGPLv2.1+
> +BLUEZ5_UTILS_LICENSE_FILES = COPYING COPYING.LIB
> +
> +# experimental plugins
> +ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL),y)
> +	BLUEZ5_UTILS_CONF_OPT += --enable-experimental
> +else
> +	BLUEZ5_UTILS_CONF_OPT += --disable-experimental
> +endif
> +
> +# install gatttool (For some reason upstream choose not to do it by default)
> +ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL),y)
> +define BLUEZ5_UTILS_INSTALL_GATTTOOL
> +	$(INSTALL) -D -m 0755 $(@D)/attrib/gatttool $(TARGET_DIR)/usr/bin
> +endef
> +	BLUEZ5_UTILS_POST_INSTALL_TARGET_HOOKS += BLUEZ5_UTILS_INSTALL_GATTTOOL

This leading tab is unnecessary.

Regards,
Jerzy

> +endif
> +
> +# enable test
> +ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TEST),y)
> +	BLUEZ5_UTILS_CONF_OPT += --enable-test
> +else
> +	BLUEZ5_UTILS_CONF_OPT += --disable-test
> +endif
> +
> +# use udev if available
> +ifeq ($(BR2_PACKAGE_UDEV),y)
> +        BLUEZ5_UTILS_CONF_OPT += --enable-udev
> +        BLUEZ5_UTILS_DEPENDENCIES += udev
> +else
> +        BLUEZ5_UTILS_CONF_OPT += --disable-udev
> +endif
> +
> +# integrate with systemd if available
> +ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> +        BLUEZ5_UTILS_CONF_OPT += --enable-systemd
> +        BLUEZ5_UTILS_DEPENDENCIES += systemd
> +else
> +        BLUEZ5_UTILS_CONF_OPT += --disable-systemd
> +endif
> +
> +$(eval $(autotools-package))
Gustavo Zacarias March 21, 2014, 11:42 a.m. UTC | #2
On 03/21/2014 08:08 AM, Jerzy Grzegorek wrote:

>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -867,6 +867,7 @@ source "package/axel/Config.in"
>>   source "package/bcusdk/Config.in"
>>   source "package/bind/Config.in"
>>   source "package/bluez_utils/Config.in"
>> +source "package/bluez5_utils/Config.in"
> 
> Add it in alphabetical order.

Hmm? bluez5 > bluez, and we care about visual name there (how it shows
up in *config).
Regards.
Jerzy Grzegorek March 21, 2014, 4:45 p.m. UTC | #3
Hi Gustavo,

> On 03/21/2014 08:08 AM, Jerzy Grzegorek wrote:
>
>>> --- a/package/Config.in
>>> +++ b/package/Config.in
>>> @@ -867,6 +867,7 @@ source "package/axel/Config.in"
>>>    source "package/bcusdk/Config.in"
>>>    source "package/bind/Config.in"
>>>    source "package/bluez_utils/Config.in"
>>> +source "package/bluez5_utils/Config.in"
>> Add it in alphabetical order.
> Hmm? bluez5 > bluez, and we care about visual name there (how it shows
> up in *config).

Don't compare bluez5 with bluez.
Compare bluez5_utils with bluez_utils.

Regards,
Jerzy

> Regards.
>
>
Gustavo Zacarias March 21, 2014, 4:50 p.m. UTC | #4
On 03/21/2014 01:45 PM, Jerzy Grzegorek wrote:

>> Hmm? bluez5 > bluez, and we care about visual name there (how it shows
>> up in *config).
> 
> Don't compare bluez5 with bluez.
> Compare bluez5_utils with bluez_utils.
> 
> Regards,
> Jerzy

I know how sort works, i'm talking of common sense in this case.
python is before python3, samba is before samba4 and so on, so in the
bluez case the same would hold up, it's about context, not sort with lang=C.
Regards.
Gustavo Zacarias March 21, 2014, 4:55 p.m. UTC | #5
On 03/21/2014 01:45 PM, Jerzy Grzegorek wrote:
>> Hmm? bluez5 > bluez, and we care about visual name there (how it shows
>> up in *config).
> 
> Don't compare bluez5 with bluez.
> Compare bluez5_utils with bluez_utils.
> 
> Regards,
> Jerzy

Let me put it in exmaples, what if i make/add packages named bluezbeam,
bluezhack and a dozen more?
Regards.
Jerzy Grzegorek March 23, 2014, 11:10 p.m. UTC | #6
Hi Gustavo, Marcin,

> On 03/21/2014 01:45 PM, Jerzy Grzegorek wrote:
>
>>> Hmm? bluez5 > bluez, and we care about visual name there (how it shows
>>> up in *config).
>> Don't compare bluez5 with bluez.
>> Compare bluez5_utils with bluez_utils.
>>
>> Regards,
>> Jerzy
> I know how sort works, i'm talking of common sense in this case.
> python is before python3, samba is before samba4 and so on, so in the
> bluez case the same would hold up, it's about context, not sort with lang=C.
> Regards.

Gustavo:  Ah, yes, right. Sorry for this and thanks for your clarification.
Marcin:  Sorry for the noise. Just don't take my comment into consideration.

Regards,
Jerzy

>
>
Marcin Bis March 31, 2014, 8:55 a.m. UTC | #7
Hi Jerzy, Gustavo

> Gustavo:  Ah, yes, right. Sorry for this and thanks for your clarification.
> Marcin:  Sorry for the noise. Just don't take my comment into consideration.

I am resending v5 of the patch.
- Order of packages in Config.in - not changed
- Unnecessary. leading tab removed.
- I added a comment, so bluez5_utils will not completely disappear
from menuconfig if bluez_utils is selected.

--
 Marcin Bis
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 8986734..357a96c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -867,6 +867,7 @@  source "package/axel/Config.in"
 source "package/bcusdk/Config.in"
 source "package/bind/Config.in"
 source "package/bluez_utils/Config.in"
+source "package/bluez5_utils/Config.in"
 source "package/bmon/Config.in"
 source "package/boa/Config.in"
 source "package/bridge-utils/Config.in"
diff --git a/package/bluez5_utils/Config.in b/package/bluez5_utils/Config.in
new file mode 100644
index 0000000..c721fff
--- /dev/null
+++ b/package/bluez5_utils/Config.in
@@ -0,0 +1,51 @@ 
+config BR2_PACKAGE_BLUEZ5_UTILS
+	bool "bluez-utils 5.x"
+	depends on !BR2_avr32
+	depends on BR2_USE_WCHAR # libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
+	depends on BR2_USE_MMU # dbus
+	depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version
+	select BR2_PACKAGE_DBUS
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBICAL
+	select BR2_PACKAGE_READLINE
+	help
+	  bluez utils version 5.x
+
+	  With this release BlueZ only supports the new Bluetooth Management
+	  kernel interface (introduced in Linux 3.4).
+	  For Low Energy support at least kernel version 3.5 is needed.
+
+	  The API is not backwards compatible with BlueZ 4.
+
+	  Bluez utils will use systemd and/or udev if enabled.
+
+	  http://www.bluez.org
+	  http://www.kernel.org/pub/linux/bluetooth
+
+if BR2_PACKAGE_BLUEZ5_UTILS
+
+config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL
+	bool "build experimental plugins"
+	help
+	  Build BlueZ 5.x experimental plugins (SAP, NFC, ...).
+
+config BR2_PACKAGE_BLUEZ5_UTILS_TEST
+	bool "enable test"
+	help
+	  Enable test.
+
+config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL
+	bool "install GATT tool"
+	help
+	  Generic Attribute Profile (GATT) support. This provides profile
+	  discovery and description services for Bluetooth Low Energy.
+	  This will install the gatttool utility.
+
+	  It is always build with BlueZ 5.x, but upstream choose not to install
+	  it by default.
+
+endif
+
+comment "bluez5-utils needs a toolchain w/ wchar, threads"
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/bluez5_utils/bluez5_utils.mk b/package/bluez5_utils/bluez5_utils.mk
new file mode 100644
index 0000000..6cc61cf
--- /dev/null
+++ b/package/bluez5_utils/bluez5_utils.mk
@@ -0,0 +1,54 @@ 
+################################################################################
+#
+# bluez5_utils
+#
+################################################################################
+
+BLUEZ5_UTILS_VERSION = 5.16
+BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz
+BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth
+BLUEZ5_UTILS_INSTALL_STAGING = YES
+BLUEZ5_UTILS_DEPENDENCIES = dbus libglib2 libical readline
+BLUEZ5_UTILS_CONF_OPT = --enable-tools --enable-library
+BLUEZ5_UTILS_LICENSE = GPLv2+ LGPLv2.1+
+BLUEZ5_UTILS_LICENSE_FILES = COPYING COPYING.LIB
+
+# experimental plugins
+ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL),y)
+	BLUEZ5_UTILS_CONF_OPT += --enable-experimental
+else
+	BLUEZ5_UTILS_CONF_OPT += --disable-experimental
+endif
+
+# install gatttool (For some reason upstream choose not to do it by default)
+ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL),y)
+define BLUEZ5_UTILS_INSTALL_GATTTOOL
+	$(INSTALL) -D -m 0755 $(@D)/attrib/gatttool $(TARGET_DIR)/usr/bin
+endef
+	BLUEZ5_UTILS_POST_INSTALL_TARGET_HOOKS += BLUEZ5_UTILS_INSTALL_GATTTOOL
+endif
+
+# enable test
+ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TEST),y)
+	BLUEZ5_UTILS_CONF_OPT += --enable-test
+else
+	BLUEZ5_UTILS_CONF_OPT += --disable-test
+endif
+
+# use udev if available
+ifeq ($(BR2_PACKAGE_UDEV),y)
+        BLUEZ5_UTILS_CONF_OPT += --enable-udev
+        BLUEZ5_UTILS_DEPENDENCIES += udev
+else
+        BLUEZ5_UTILS_CONF_OPT += --disable-udev
+endif
+
+# integrate with systemd if available
+ifeq ($(BR2_PACKAGE_SYSTEMD),y)
+        BLUEZ5_UTILS_CONF_OPT += --enable-systemd
+        BLUEZ5_UTILS_DEPENDENCIES += systemd
+else
+        BLUEZ5_UTILS_CONF_OPT += --disable-systemd
+endif
+
+$(eval $(autotools-package))