From 4fc59478d1180fd7984003f5b1645fe40954299f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 17 Feb 2012 19:20:30 +0000 Subject: Fri Feb 17 19:20:30 UTC 2012 --- testing/bluez/PKGBUILD | 86 +++++++++++++++++++++++++++++++++++ testing/bluez/bluetooth.conf.d | 30 +++++++++++++ testing/bluez/fix-a2dp.patch | 68 ++++++++++++++++++++++++++++ testing/bluez/rc.bluetooth | 100 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 284 insertions(+) create mode 100644 testing/bluez/PKGBUILD create mode 100644 testing/bluez/bluetooth.conf.d create mode 100644 testing/bluez/fix-a2dp.patch create mode 100644 testing/bluez/rc.bluetooth (limited to 'testing/bluez') diff --git a/testing/bluez/PKGBUILD b/testing/bluez/PKGBUILD new file mode 100644 index 000000000..7dda003a4 --- /dev/null +++ b/testing/bluez/PKGBUILD @@ -0,0 +1,86 @@ +# $Id: PKGBUILD 150304 2012-02-16 20:41:28Z heftig $ +# Maintainer: +# Contributor: Andrea Scarpino +# Contributor: Geoffroy Carrier + +pkgname=bluez +pkgver=4.98 +pkgrel=3 +pkgdesc="Libraries and tools for the Bluetooth protocol stack" +url="http://www.bluez.org/" +arch=('i686' 'x86_64') +license=('GPL2') +depends=('dbus-core') +makedepends=('gstreamer0.10-base' 'libusb-compat' 'libsndfile') +optdepends=("gstreamer0.10-base: bluetooth GStreamer support" + "alsa-lib: Audio bluetooth devices support" + "dbus-python: to run bluez-simple-agent" + "pygobject: to run bluez-simple-agent" + "libusb-compat: USB adapters support" + "cups: CUPS backend") +conflicts=('bluez-libs' 'bluez-utils') +provides=('bluez-libs' 'bluez-utils') +replaces=('bluez-libs' 'bluez-utils') +options=('!libtool' 'emptydirs') +backup=(etc/bluetooth/{main,rfcomm,audio,network,input,serial}.conf + 'etc/conf.d/bluetooth' 'etc/dbus-1/system.d/bluetooth.conf') +source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.bz2" + 'bluetooth.conf.d' 'rc.bluetooth' 'fix-a2dp.patch') +md5sums=('4aca8a0929250212e9a75fb60dd75b05' + '7412982b440f29fa7f76a41a87fef985' + '8f9498707f809506928b2e480d3b6789' + 'd6a34317e56b7c2bd990791d89d6c3cb') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + patch -Np1 -i "${srcdir}/fix-a2dp.patch" + + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libexecdir=/lib \ + --enable-gstreamer \ + --enable-alsa \ + --enable-usb \ + --enable-tools \ + --enable-bccmd \ + --enable-dfutool \ + --enable-hid2hci \ + --enable-hidd \ + --enable-pand \ + --enable-dund \ + --enable-cups \ + --enable-wiimote \ + --disable-test + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + + install -Dm755 ${srcdir}/rc.bluetooth ${pkgdir}/etc/rc.d/bluetooth + + install -d ${pkgdir}/etc/bluetooth + install -m644 network/network.conf \ + input/input.conf \ + audio/audio.conf \ + serial/serial.conf \ + ${pkgdir}/etc/bluetooth/ + + install -Dm644 ${srcdir}/bluetooth.conf.d \ + ${pkgdir}/etc/conf.d/bluetooth + + # FS#27630 + install -Dm755 test/simple-agent "${pkgdir}"/usr/bin/bluez-simple-agent + install -Dm755 test/test-device "${pkgdir}"/usr/bin/bluez-test-device + install -Dm755 test/test-input "${pkgdir}"/usr/bin/bluez-test-input + sed -i 's#/usr/bin/python#/usr/bin/python2#' \ + "${pkgdir}"/usr/bin/bluez-simple-agent \ + "${pkgdir}"/usr/bin/bluez-test-device \ + "${pkgdir}"/usr/bin/bluez-test-input + + # http://mailman.archlinux.org/pipermail/arch-general/2011-April/019787.html + rm "${pkgdir}"/lib/udev/rules.d/97-bluetooth.rules +} diff --git a/testing/bluez/bluetooth.conf.d b/testing/bluez/bluetooth.conf.d new file mode 100644 index 000000000..1c1e02589 --- /dev/null +++ b/testing/bluez/bluetooth.conf.d @@ -0,0 +1,30 @@ +# Bluetooth configuraton file + +# Bluetooth services (allowed values are "true" and "false") + +# Run the bluetoothd daemon (default: true) +#DAEMON_ENABLE="false" + +# Run the sdp daemon (default: false) +# If this is disabled, hcid's internal sdp daemon will be used +#SDPD_ENABLE="true" + +# Run the bluetooth HID daemon (default: false) +#HIDD_ENABLE="true" + +# Activate rfcomm ports (default: false) +#RFCOMM_ENABLE="true" + +# Run bluetooth dial-up networking daemon (default: false) +#DUND_ENABLE="true" + +# Run bluetooth PAN daemon (default: false) +#PAND_ENABLE="true" + +# rfcomm configuration file (default: /etc/bluetooth/rfcomm.conf) +#RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf" + +# Options for hidd, dund and pand (default: none) +HIDD_OPTIONS="--server" +#DUND_OPTIONS="" +#PAND_OPTIONS="" diff --git a/testing/bluez/fix-a2dp.patch b/testing/bluez/fix-a2dp.patch new file mode 100644 index 000000000..e4bb1372a --- /dev/null +++ b/testing/bluez/fix-a2dp.patch @@ -0,0 +1,68 @@ +From 0109fa0b6fa731c00b4c6b78d5694b2aaa088862 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz +Date: Thu, 26 Jan 2012 23:39:02 +0200 +Subject: [PATCH] audio: Fix disabling local A2DP endpoints when UNIX socket + is disabled + +Local endpoints can only be used when UNIX socket API is available. +--- + audio/a2dp.c | 15 +++++++-------- + 1 files changed, 7 insertions(+), 8 deletions(-) + +diff --git a/audio/a2dp.c b/audio/a2dp.c +index 5ca105c..bbb91ce 100644 +--- a/audio/a2dp.c ++++ b/audio/a2dp.c +@@ -1388,9 +1388,9 @@ static struct a2dp_server *find_server(GSList *list, const bdaddr_t *src) + + int a2dp_register(DBusConnection *conn, const bdaddr_t *src, GKeyFile *config) + { +- int sbc_srcs = 1, sbc_sinks = 1; ++ int sbc_srcs = 0, sbc_sinks = 0; + int mpeg12_srcs = 0, mpeg12_sinks = 0; +- gboolean source = TRUE, sink = FALSE, socket = TRUE; ++ gboolean source = TRUE, sink = FALSE, socket = FALSE; + gboolean delay_reporting = FALSE; + char *str; + GError *err = NULL; +@@ -1410,6 +1410,8 @@ int a2dp_register(DBusConnection *conn, const bdaddr_t *src, GKeyFile *config) + source = TRUE; + if (strstr(str, "Source")) + sink = TRUE; ++ if (strstr(str, "Socket")) ++ socket = TRUE; + g_free(str); + } + +@@ -1429,18 +1431,14 @@ int a2dp_register(DBusConnection *conn, const bdaddr_t *src, GKeyFile *config) + } + + /* Don't register any local sep if Socket is disabled */ +- if (socket == FALSE) { +- sbc_srcs = 0; +- sbc_sinks = 0; +- mpeg12_srcs = 0; +- mpeg12_sinks = 0; ++ if (socket == FALSE) + goto proceed; +- } + + str = g_key_file_get_string(config, "A2DP", "SBCSources", &err); + if (err) { + DBG("audio.conf: %s", err->message); + g_clear_error(&err); ++ sbc_srcs = 1; + } else { + sbc_srcs = atoi(str); + g_free(str); +@@ -1459,6 +1457,7 @@ int a2dp_register(DBusConnection *conn, const bdaddr_t *src, GKeyFile *config) + if (err) { + DBG("audio.conf: %s", err->message); + g_clear_error(&err); ++ sbc_sinks = 1; + } else { + sbc_sinks = atoi(str); + g_free(str); +-- +1.7.6.5 + diff --git a/testing/bluez/rc.bluetooth b/testing/bluez/rc.bluetooth new file mode 100644 index 000000000..a46ee2abb --- /dev/null +++ b/testing/bluez/rc.bluetooth @@ -0,0 +1,100 @@ +#!/bin/bash +# +# Start/stop the Bluetooth daemons +# + +. /etc/rc.conf +. /etc/rc.d/functions + +DAEMON_NAME="bluetoothd" +HIDD_NAME="hidd" +RFCOMM_NAME="rfcomm" +PAND_NAME="pand" +DUND_NAME="dund" + +DAEMON_EXEC="/usr/sbin/bluetoothd" +HIDD_EXEC="/usr/bin/hidd" +RFCOMM_EXEC="/usr/bin/rfcomm" +PAND_EXEC="/usr/bin/pand" +DUND_EXEC="/usr/bin/dund" + +DAEMON_ENABLE="true" +HIDD_ENABLE="false" +RFCOMM_ENABLE="false" +DUND_ENABLE="false" +PAND_ENABLE="false" + +RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf" + +HIDD_OPTIONS="" +DUND_OPTIONS="" +PAND_OPTIONS="" + +[ -f /etc/conf.d/bluetooth ] && . /etc/conf.d/bluetooth + +case "$1" in + start) + stat_busy "Starting bluetooth subsystem:" + if [ "$DAEMON_ENABLE" = "true" -a -x "$DAEMON_EXEC" ] ; then + stat_append " $DAEMON_NAME" + $DAEMON_EXEC + sleep 1 + fi + if [ "$SDPD_ENABLE" = "true" -a -x "$SDPD_EXEC" ] ; then + stat_append " $SDPD_NAME" + $SDPD_EXEC + fi + if [ "$HIDD_ENABLE" = "true" -a -x "$HIDD_EXEC" ]; then + stat_append " $HIDD_NAME" + $HIDD_EXEC $HIDD_OPTIONS + fi + if [ "$RFCOMM_ENABLE" = "true" -a -x "$RFCOMM_EXEC" -a -f "$RFCOMM_CONFIG" ]; then + stat_append " $RFCOMM_NAME" + $RFCOMM_EXEC -f $RFCOMM_CONFIG bind all + fi + if [ "$DUND_ENABLE" = "true" -a -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ]; then + stat_append " $DUND_NAME" + $DUND_EXEC $DUND_OPTIONS + fi + if [ "$PAND_ENABLE" = "true" -a -x "$PAND_EXEC" -a -n "$PAND_OPTIONS" ]; then + stat_append " $PAND_NAME" + $PAND_EXEC $PAND_OPTIONS + fi + add_daemon bluetooth + stat_done + ;; + stop) + stat_busy "Stopping bluetooth subsystem:" + + stat_append " $PAND_NAME" + killall $PAND_NAME >/dev/null 2>&1 + + stat_append " $DUND_NAME" + killall $DUND_NAME >/dev/null 2>&1 + + if [ -x "$RFCOMM_EXEC" ]; then + stat_append " $RFCOMM_NAME" + $RFCOMM_EXEC release all >/dev/null 2>&1 + fi + + stat_append " $HIDD_NAME" + killall $HIDD_NAME >/dev/null 2>&1 + + stat_append " $SDPD_NAME" + killall $SDPD_NAME >/dev/null 2>&1 + + stat_append " $DAEMON_NAME" + killall $DAEMON_NAME >/dev/null 2>&1 + + rm_daemon bluetooth + stat_done + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 -- cgit v1.2.3-54-g00ecf