[Pkg-bluetooth-maintainers] Bug#412751: Please permit passing
options to hcid, as required by gnome-vfs-obexftp
Loïc Minier
lool at dooz.org
Tue Feb 27 22:07:22 CET 2007
Package: bluez-utils
Version: 3.7-1
Severity: normal
Tags: patch
Hi,
gnome-vfs-obexftp needs hcid running with the -x flags; could you
please set this by default and/or add HCID_OPTIONS= to permit users to
set this?
It seems this flag is undocumented.
I'm attaching the modified /etc/init.d I'm using.
Bye,
-- System Information:
Debian Release: 4.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.20-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Versions of packages bluez-utils depends on:
ii dbus 1.0.2-1 simple interprocess messaging syst
ii libbluetooth2 3.7-1 Library to use the BlueZ Linux Blu
ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries
ii libdbus-1-3 1.0.2-1 simple interprocess messaging syst
ii libusb-0.1-4 2:0.1.12-5 userspace USB programming library
ii lsb-base 3.1-23 Linux Standard Base 3.1 init scrip
ii makedev 2.3.1-83 creates device files in /dev
ii module-init-tools 3.3-pre4-2 tools for managing Linux kernel mo
ii modutils 2.4.27.0-6 Linux module utilities
ii udev 0.105-2 /dev/ and hotplug management daemo
Versions of packages bluez-utils recommends:
ii bluez-passkey-gnome 0.5-2 Bluetooth passkey (PIN) agent for
-- no debconf information
--
Loïc Minier <lool at dooz.org>
-------------- next part --------------
#! /bin/bash
### BEGIN INIT INFO
# Provides: bluetooth
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start bluetooth daemons
### END INIT INFO
#
# bluez-utils Bluetooth subsystem starting and stopping
#
# originally from bluez's scripts/bluetooth.init
#
# Edd Dumbill <ejad at debian.org>
# LSB 3.0 compilance and enhancements by Filippo Giunchedi <filippo at debian.org>
#
# startup control over dund and pand can be changed by editing
# /etc/default/bluez-utils
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC=bluetooth
HCID=/usr/sbin/hcid
HCIATTACH=/usr/sbin/hciattach
HCID_NAME=hcid
HID2HCI=/usr/sbin/hid2hci
UART_CONF=/etc/bluetooth/uart
RFCOMM=/usr/bin/rfcomm
RFCOMM_NAME=rfcomm
RFCOMM_CONF=/etc/bluetooth/rfcomm.conf
SDPD=/usr/sbin/sdpd
SDPD_NAME=sdpd
SDPTOOL=/usr/bin/sdptool
DUND_DAEMON=/usr/bin/dund
DUND_NAME=dund
PAND_DAEMON=/usr/bin/pand
PAND_NAME=pand
HIDD_DAEMON=/usr/bin/hidd
HIDD_NAME=hidd
DUND_ENABLED=0
PAND_ENABLED=0
HIDD_ENABLED=0
HCID_OPTIONS="-x"
DUND_OPTIONS=""
PAND_OPTIONS=""
HIDD_OPTIONS="--master --server"
test -f /etc/default/bluetooth && . /etc/default/bluetooth
. /lib/lsb/init-functions
# test for essential daemons
test -x $HCID || exit 0
test -x $HCIATTACH || exit 0
test -x $RFCOMM || exit 0
test -x $SDPD || exit 0
# disable nonessential daemons if not present
if test "$DUND_ENABLED" != "0"; then
if ! test -f $DUND_DAEMON; then
DUND_ENABLED=0
fi
fi
if test "$PAND_ENABLED" != "0"; then
if ! test -f $PAND_DAEMON; then
PAND_ENABLED=0
fi
fi
if test "$HIDD_ENABLED" != "0"; then
if ! test -f $HIDD_DAEMON; then
HIDD_ENABLED=0
fi
fi
set -e
run_sdptool()
{
test -x $SDPTOOL || return 1
if ! test -z "$SDPTOOL_OPTIONS" ; then
oldifs="$IFS"
IFS=";"
for o in $SDPTOOL_OPTIONS ; do
#echo "execing $SDPTOOL $o"
IFS=" "
$SDPTOOL $o &>/dev/null
done
IFS="$oldifs"
fi
}
enable_hci_input()
{
#echo "Switching on Bluetooth input devices."
$HID2HCI -q --tohci
}
disable_hci_input()
{
#echo "Switching Bluetooth input devices back to HCI mode."
$HID2HCI -q --tohid
}
start_pan()
{
if test "$DUND_ENABLED" != "0"; then
start-stop-daemon --start --quiet --exec $DUND_DAEMON -- $DUND_OPTIONS
log_progress_msg "dund"
fi
if test "$PAND_ENABLED" != "0"; then
start-stop-daemon --start --quiet --exec $PAND_DAEMON -- $PAND_OPTIONS
log_progress_msg "pand"
fi
}
stop_pan()
{
if test "$DUND_ENABLED" != "0"; then
start-stop-daemon --stop --quiet --exec $DUND_DAEMON || true
log_progress_msg "dund"
fi
if test "$PAND_ENABLED" != "0"; then
start-stop-daemon --stop --quiet --exec $PAND_DAEMON || true
log_progress_msg "pand"
fi
}
start_hid()
{
if test "$HIDD_ENABLED" != "0"; then
start-stop-daemon --start --quiet --exec $HIDD_DAEMON -- $HIDD_OPTIONS
log_progress_msg "hidd"
fi
}
stop_hid()
{
if test "$HIDD_ENABLED" != "0"; then
$HIDD_DAEMON --killall
start-stop-daemon --stop --quiet --exec $HIDD_DAEMON || true
log_progress_msg "hidd"
fi
}
start_uarts()
{
[ -f $HCIATTACH ] && [ -f $UART_CONF ] || return
grep -v '^#' $UART_CONF | while read i; do
$HCIATTACH $i
done
}
stop_uarts()
{
killall hciattach > /dev/null 2>&1 || true
}
start_rfcomm()
{
if [ -x $RFCOMM ] && [ -f $RFCOMM_CONF ] ; then
# rfcomm must always succeed for now: users
# may not yet have an rfcomm-enabled kernel
$RFCOMM -f $RFCOMM_CONF bind all || true
log_progress_msg "$RFCOMM_NAME"
fi
}
stop_rfcomm()
{
if [ -x $RFCOMM ] ; then
log_progress_msg "$RFCOMM_NAME"
$RFCOMM unbind all || true
fi
}
restart_rfcomm()
{
if [ -x $RFCOMM ] && [ -f $RFCOMM_CONF ] ; then
$RFCOMM unbind all || true
$RFCOMM -f $RFCOMM_CONF bind all || true
log_progress_msg "$RFCOMM_NAME"
fi
}
case "$1" in
start)
log_daemon_msg "Starting $DESC"
if test "$BLUETOOTH_ENABLED" == "0"; then
log_progress_msg "disabled. see /etc/default/bluetooth"
log_end_msg 0
exit 0
fi
start-stop-daemon --start --quiet --exec $HCID -- $HCID_OPTIONS || true
log_progress_msg "hcid"
start_uarts || true
start-stop-daemon --start --quiet --exec $SDPD || true
log_progress_msg "sdpd"
run_sdptool || true
log_progress_msg "sdp_options"
start_hid || true
enable_hci_input || true
start_rfcomm || true
start_pan || true
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping $DESC"
stop_pan || true
stop_rfcomm || true
disable_hci_input || true
stop_hid || true
start-stop-daemon --stop --quiet --exec $SDPD || true
log_progress_msg "$SDPD_NAME"
start-stop-daemon --stop --quiet --exec $HCID || true
log_progress_msg "$HCID_NAME"
stop_uarts || true
log_end_msg 0
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC"
stop_hid || true
stop_pan || true
start-stop-daemon --stop --quiet --exec $SDPD || true
start-stop-daemon --stop --quiet --exec $HCID || true
sleep 1
if test "$BLUETOOTH_ENABLED" == "0"; then
log_progress_msg "disabled. see /etc/default/bluetooth"
log_end_msg 0
exit 0
fi
start-stop-daemon --start --quiet --exec $HCID -- $HCID_OPTIONS|| true
start-stop-daemon --start --quiet --exec $SDPD || true
log_progress_msg "$HCID_NAME"
log_progress_msg "$SDPD_NAME"
start_pan || true
start_hid || true
restart_rfcomm
log_end_msg 0
;;
*)
N=/etc/init.d/bluetooth
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
# vim:noet
More information about the Pkg-bluetooth-maintainers
mailing list