Your message dated Fri, 04 Jul 2008 16:21:00 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#458198: fixed in bluetooth-alsa 0.5cvs20080601-1
has caused the Debian Bug report #458198,
regarding updated scoflow-control patch for 2.6.23.12
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
458198: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458198
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: bluetooth-alsa
Version: 0.5cvs20070908-1
Severity: normal
Tags: patch

--- Please enter the report below this line. ---

Hey,

ich recreated the patch for the scoflowcontrol, which now applies
against 2.6.23.12. The current patches in the cvs of the project only
apply against the 2.6.22. 

HTH

Matthias

--- System information. ---
Architecture: i386
Kernel:       Linux 2.6.23.12

Debian Release: lenny/sid
  500 unstable        www.debian-multimedia.org 
  500 unstable        opensync.gforge.punktart.de 
  500 unstable        ftp.informatik.rwth-aachen.de 
  500 unstable        ftp.de.debian.org 
  500 testing         ftp.informatik.rwth-aachen.de 
  500 testing         ftp.de.debian.org 
  500 feisty          wine.budgetdedicated.com 
    1 experimental    ftp.de.debian.org 

--- Package information. ---
Depends                 (Version) | Installed
=================================-+-=============
libasound2            (>> 1.0.14) | 1.0.15-3
libbluetooth2            (>= 3.0) | 3.22-1
libc6                (>= 2.6.1-1) | 2.7-5
libdbus-1-3            (>= 1.1.1) | 1.1.2-1
libdbus-glib-1-2        (>= 0.74) | 0.74-1
libglib2.0-0          (>= 2.14.0) | 2.14.4-2
libsbc0                           | 0.0cvs20070728-1

--- ./linux-2.6.23/net/bluetooth/sco.c.orig	2007-10-09 22:31:38.000000000 +0200
+++ ./linux-2.6.23/net/bluetooth/sco.c	2007-12-28 20:01:35.000000000 +0100
@@ -53,7 +53,13 @@
 #define BT_DBG(D...)
 #endif
 
-#define VERSION "0.5"
+#define VERSION "0.6"
+
+#define MAX_SCO_TXBUFS 200
+#define MAX_SCO_RXBUFS 200
+
+#define DEFAULT_SCO_TXBUFS 5
+#define DEFAULT_SCO_RXBUFS 5
 
 static const struct proto_ops sco_sock_ops;
 
@@ -69,6 +75,33 @@
 static void sco_sock_close(struct sock *sk);
 static void sco_sock_kill(struct sock *sk);
 
+/* 
+ * Write buffer destructor automatically called from kfree_skb. 
+ */
+void sco_sock_wfree(struct sk_buff *skb)
+{
+	struct sock *sk = skb->sk;
+
+	atomic_dec(&sk->sk_wmem_alloc);
+	sk->sk_write_space(sk);
+	sock_put(sk);
+}
+
+static void sco_sock_write_space(struct sock *sk)
+{
+	read_lock(&sk->sk_callback_lock);
+
+	if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) {
+		if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
+			wake_up_interruptible(sk->sk_sleep);
+
+		if (sock_writeable(sk))
+			sk_wake_async(sk, 2, POLL_OUT);
+	}
+
+	read_unlock(&sk->sk_callback_lock);
+}
+
 /* ---- SCO timers ---- */
 static void sco_sock_timeout(unsigned long arg)
 {
@@ -234,33 +267,55 @@
 {
 	struct sco_conn *conn = sco_pi(sk)->conn;
 	struct sk_buff *skb;
-	int err, count;
-
-	/* Check outgoing MTU */
-	if (len > conn->mtu)
-		return -EINVAL;
+	int err;
 
 	BT_DBG("sk %p len %d", sk, len);
 
-	count = min_t(unsigned int, conn->mtu, len);
-	if (!(skb = bt_skb_send_alloc(sk, count, msg->msg_flags & MSG_DONTWAIT, &err)))
+	if (!(skb = bt_skb_send_alloc(sk, len, msg->msg_flags & MSG_DONTWAIT, &err)))
 		return err;
 
-	if (memcpy_fromiovec(skb_put(skb, count), msg->msg_iov, count)) {
+	/* fix sk_wmem_alloc value : by default it is increased by  skb->truesize, but
+	   we want it only increased by 1 */
+	atomic_sub(skb->truesize - 1, &sk->sk_wmem_alloc);
+	/* fix destructor */
+	skb->destructor = sco_sock_wfree;
+
+	if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
 		err = -EFAULT;
 		goto fail;
 	}
 
-	if ((err = hci_send_sco(conn->hcon, skb)) < 0)
-		return err;
+	err = hci_send_sco(conn->hcon, skb);
+
+	if (err < 0)
+		goto fail;
 
-	return count;
+	return len;
 
 fail:
 	kfree_skb(skb);
 	return err;
 }
 
+static int sco_sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+{
+	BT_DBG("sock %p, sk_rcvbuf %d, qlen %d", sk, sk->sk_rcvbuf, skb_queue_len(&sk->sk_receive_queue));
+
+	if (skb_queue_len(&sk->sk_receive_queue) + 1 > (unsigned)sk->sk_rcvbuf)
+		return -ENOMEM;
+
+	skb->dev = NULL;
+	skb->sk = sk;
+	skb->destructor = NULL;
+
+	skb_queue_tail(&sk->sk_receive_queue, skb);
+
+	if (!sock_flag(sk, SOCK_DEAD))
+		sk->sk_data_ready(sk, 1);
+
+	return 0;
+}
+
 static inline void sco_recv_frame(struct sco_conn *conn, struct sk_buff *skb)
 {
 	struct sock *sk = sco_chan_get(conn);
@@ -273,7 +328,7 @@
 	if (sk->sk_state != BT_CONNECTED)
 		goto drop;
 
-	if (!sock_queue_rcv_skb(sk, skb))
+	if (!sco_sock_queue_rcv_skb(sk, skb))
 		return;
 
 drop:
@@ -328,7 +383,6 @@
 	BT_DBG("sk %p", sk);
 
 	skb_queue_purge(&sk->sk_receive_queue);
-	skb_queue_purge(&sk->sk_write_queue);
 }
 
 static void sco_sock_cleanup_listen(struct sock *parent)
@@ -426,6 +480,10 @@
 	INIT_LIST_HEAD(&bt_sk(sk)->accept_q);
 
 	sk->sk_destruct = sco_sock_destruct;
+	sk->sk_write_space = sco_sock_write_space;
+
+	sk->sk_sndbuf = DEFAULT_SCO_TXBUFS;
+	sk->sk_rcvbuf = DEFAULT_SCO_RXBUFS;
 	sk->sk_sndtimeo = SCO_CONN_TIMEOUT;
 
 	sock_reset_flag(sk, SOCK_ZAPPED);
@@ -656,6 +714,7 @@
 static int sco_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen)
 {
 	struct sock *sk = sock->sk;
+	u32 opt;
 	int err = 0;
 
 	BT_DBG("sk %p", sk);
@@ -663,6 +722,32 @@
 	lock_sock(sk);
 
 	switch (optname) {
+	case SO_SNDBUF:
+		if (get_user(opt, (u32 __user *) optval)) {
+			err = -EFAULT;
+			break;
+		}
+		if (opt > MAX_SCO_TXBUFS) {
+			err = -EINVAL;
+			break;
+		}
+
+		sk->sk_sndbuf = opt;
+		/* Wake up sending tasks if we upped the value */
+		sk->sk_write_space(sk);
+		break;
+	case SO_RCVBUF:
+		if (get_user(opt, (u32 __user *) optval)) {
+			err = -EFAULT;
+			break;
+		}
+		if (opt > MAX_SCO_RXBUFS) {
+			err = -EINVAL;
+			break;
+		}
+
+		sk->sk_rcvbuf = opt;
+		break;
 	default:
 		err = -ENOPROTOOPT;
 		break;
@@ -678,6 +763,7 @@
 	struct sco_options opts;
 	struct sco_conninfo cinfo;
 	int len, err = 0;
+	int val;
 
 	BT_DBG("sk %p", sk);
 
@@ -687,6 +773,24 @@
 	lock_sock(sk);
 
 	switch (optname) {
+	case SO_RCVBUF:
+		val = sk->sk_rcvbuf;
+
+		len = min_t(unsigned int, len, sizeof(val));
+		if (copy_to_user(optval, (char *) &val, len))
+			err = -EFAULT;
+
+		break;
+
+	case SO_SNDBUF:
+		val = sk->sk_sndbuf;
+
+		len = min_t(unsigned int, len, sizeof(val));
+		if (copy_to_user(optval, (char *) &val, len))
+			err = -EFAULT;
+
+		break;
+
 	case SCO_OPTIONS:
 		if (sk->sk_state != BT_CONNECTED) {
 			err = -ENOTCONN;
@@ -698,7 +802,7 @@
 		BT_DBG("mtu %d", opts.mtu);
 
 		len = min_t(unsigned int, len, sizeof(opts));
-		if (copy_to_user(optval, (char *)&opts, len))
+		if (copy_to_user(optval, (char *) &opts, len))
 			err = -EFAULT;
 
 		break;
@@ -713,7 +817,7 @@
 		memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
 
 		len = min_t(unsigned int, len, sizeof(cinfo));
-		if (copy_to_user(optval, (char *)&cinfo, len))
+		if (copy_to_user(optval, (char *) &cinfo, len))
 			err = -EFAULT;
 
 		break;
--- ./linux-2.6.23/net/bluetooth/hci_event.c.orig	2007-10-09 22:31:38.000000000 +0200
+++ ./linux-2.6.23/net/bluetooth/hci_event.c	2007-12-28 20:10:00.000000000 +0100
@@ -394,7 +394,7 @@
 		}
 
 		hdev->acl_cnt = hdev->acl_pkts;
-		hdev->sco_cnt = hdev->sco_pkts;
+        atomic_set(&hdev->sco_cnt, hdev->sco_pkts);
 
 		BT_DBG("%s mtu: acl %d, sco %d max_pkt: acl %d, sco %d", hdev->name,
 			hdev->acl_mtu, hdev->sco_mtu, hdev->acl_pkts, hdev->sco_pkts);
@@ -892,14 +892,11 @@
 
 		conn = hci_conn_hash_lookup_handle(hdev, handle);
 		if (conn) {
-			conn->sent -= count;
+			atomic_sub(count, &conn->sent);
 
 			if (conn->type == ACL_LINK) {
 				if ((hdev->acl_cnt += count) > hdev->acl_pkts)
 					hdev->acl_cnt = hdev->acl_pkts;
-			} else {
-				if ((hdev->sco_cnt += count) > hdev->sco_pkts)
-					hdev->sco_cnt = hdev->sco_pkts;
 			}
 		}
 	}
--- ./linux-2.6.23/net/bluetooth/hci_conn.c.orig	2007-10-09 22:31:38.000000000 +0200
+++ ./linux-2.6.23/net/bluetooth/hci_conn.c	2007-12-28 20:01:35.000000000 +0100
@@ -165,6 +165,26 @@
 	hci_conn_enter_sniff_mode(conn);
 }
 
+static  enum hrtimer_restart hci_sco_tx_timer(struct hrtimer *timer)
+{
+	struct hci_conn *conn = container_of(timer, struct hci_conn, tx_timer);
+#ifdef CONFIG_BT_HCI_CORE_DEBUG
+	ktime_t now = timer->base->get_time();
+
+	BT_DBG("%s, conn %p, time %5lu.%06lu", conn->hdev->name, conn,
+		(unsigned long) now.tv64, 
+		do_div(now.tv64, NSEC_PER_SEC) / 1000);
+#endif
+
+	if (atomic_read(&conn->sent) > 0) {
+		atomic_dec(&conn->sent);
+		atomic_inc(&conn->hdev->sco_cnt);
+		hci_sched_tx(conn->hdev);
+	}
+	return HRTIMER_NORESTART;
+}
+ 
+
 struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
 {
 	struct hci_conn *conn;
@@ -185,6 +205,11 @@
 
 	skb_queue_head_init(&conn->data_q);
 
+	hrtimer_init(&conn->tx_timer, CLOCK_MONOTONIC, HRTIMER_NORESTART);
+
+	if(type == SCO_LINK)
+		conn->tx_timer.function = hci_sco_tx_timer;
+
 	init_timer(&conn->disc_timer);
 	conn->disc_timer.function = hci_conn_timeout;
 	conn->disc_timer.data = (unsigned long) conn;
@@ -194,6 +219,7 @@
 	conn->idle_timer.data = (unsigned long) conn;
 
 	atomic_set(&conn->refcnt, 0);
+	atomic_set(&conn->sent, 0);
 
 	hci_dev_hold(hdev);
 
@@ -220,13 +246,15 @@
 
 	del_timer(&conn->disc_timer);
 
+	hrtimer_cancel(&conn->tx_timer);
+
 	if (conn->type == ACL_LINK) {
 		struct hci_conn *sco = conn->link;
 		if (sco)
 			sco->link = NULL;
 
 		/* Unacked frames */
-		hdev->acl_cnt += conn->sent;
+		hdev->acl_cnt += atomic_read(&conn->sent);
 	} else {
 		struct hci_conn *acl = conn->link;
 		if (acl) {
--- ./linux-2.6.23/net/bluetooth/hci_core.c.orig	2007-10-09 22:31:38.000000000 +0200
+++ ./linux-2.6.23/net/bluetooth/hci_core.c	2007-12-28 20:16:49.000000000 +0100
@@ -618,7 +618,8 @@
 		hdev->flush(hdev);
 
 	atomic_set(&hdev->cmd_cnt, 1);
-	hdev->acl_cnt = 0; hdev->sco_cnt = 0;
+	atomic_set(&hdev->sco_cnt, 0);
+	hdev->acl_cnt = 0;
 
 	if (!test_bit(HCI_RAW, &hdev->flags))
 		ret = __hci_request(hdev, hci_reset_req, 0,
@@ -1224,6 +1225,7 @@
 {
 	struct hci_dev *hdev = conn->hdev;
 	struct hci_sco_hdr hdr;
+	ktime_t now;
 
 	BT_DBG("%s len %d", hdev->name, skb->len);
 
@@ -1232,6 +1234,13 @@
 		return -EINVAL;
 	}
 
+	now = conn->tx_timer.base->get_time();
+
+	/* force a clean start for 100 ms or later underrun */
+	if (conn->tx_timer.expires.tv64 + NSEC_PER_SEC / 10 <= now.tv64) {
+		conn->tx_timer.expires = now;
+	}
+
 	hdr.handle = cpu_to_le16(conn->handle);
 	hdr.dlen   = skb->len;
 
@@ -1249,12 +1258,12 @@
 
 /* ---- HCI TX task (outgoing data) ---- */
 
-/* HCI Connection scheduler */
-static inline struct hci_conn *hci_low_sent(struct hci_dev *hdev, __u8 type, int *quote)
+/* HCI ACL Connection scheduler */
+static inline struct hci_conn *hci_low_sent_acl(struct hci_dev *hdev, int *quote)
 {
 	struct hci_conn_hash *h = &hdev->conn_hash;
 	struct hci_conn *conn = NULL;
-	int num = 0, min = ~0;
+	unsigned int num = 0, min = ~0;
 	struct list_head *p;
 
 	/* We don't have to lock device here. Connections are always
@@ -1263,20 +1272,22 @@
 		struct hci_conn *c;
 		c = list_entry(p, struct hci_conn, list);
 
-		if (c->type != type || c->state != BT_CONNECTED
+		BT_DBG("c->type %d c->state %d len(c->data_q) %d min %d c->sent %d", 
+			c->type, c->state, skb_queue_len(&c->data_q), min, atomic_read(&c->sent));
+
+		if (c->type != ACL_LINK || c->state != BT_CONNECTED
 				|| skb_queue_empty(&c->data_q))
 			continue;
 		num++;
 
-		if (c->sent < min) {
-			min  = c->sent;
+		if (atomic_read(&c->sent) < min) {
+			min  = atomic_read(&c->sent);
 			conn = c;
 		}
 	}
 
 	if (conn) {
-		int cnt = (type == ACL_LINK ? hdev->acl_cnt : hdev->sco_cnt);
-		int q = cnt / num;
+		int q = hdev->acl_cnt / num;
 		*quote = q ? q : 1;
 	} else
 		*quote = 0;
@@ -1296,7 +1307,7 @@
 	/* Kill stalled connections */
 	list_for_each(p, &h->list) {
 		c = list_entry(p, struct hci_conn, list);
-		if (c->type == ACL_LINK && c->sent) {
+		if (c->type == ACL_LINK && atomic_read(&c->sent)) {
 			BT_ERR("%s killing stalled ACL connection %s",
 				hdev->name, batostr(&c->dst));
 			hci_acl_disconn(c, 0x13);
@@ -1319,7 +1330,7 @@
 			hci_acl_tx_to(hdev);
 	}
 
-	while (hdev->acl_cnt && (conn = hci_low_sent(hdev, ACL_LINK, &quote))) {
+	while (hdev->acl_cnt && (conn = hci_low_sent_acl(hdev, &quote))) {
 		while (quote-- && (skb = skb_dequeue(&conn->data_q))) {
 			BT_DBG("skb %p len %d", skb, skb->len);
 
@@ -1329,7 +1340,7 @@
 			hdev->acl_last_tx = jiffies;
 
 			hdev->acl_cnt--;
-			conn->sent++;
+			atomic_inc(&conn->sent);
 		}
 	}
 }
@@ -1337,22 +1348,54 @@
 /* Schedule SCO */
 static inline void hci_sched_sco(struct hci_dev *hdev)
 {
-	struct hci_conn *conn;
+	struct hci_conn_hash *h = &hdev->conn_hash;
 	struct sk_buff *skb;
-	int quote;
-
+	struct list_head *p;
+ 	struct hci_conn *c;
+ 	ktime_t now, pkt_time;
+ 	
 	BT_DBG("%s", hdev->name);
 
-	while (hdev->sco_cnt && (conn = hci_low_sent(hdev, SCO_LINK, &quote))) {
-		while (quote-- && (skb = skb_dequeue(&conn->data_q))) {
-			BT_DBG("skb %p len %d", skb, skb->len);
-			hci_send_frame(skb);
-
-			conn->sent++;
-			if (conn->sent == ~0)
-				conn->sent = 0;
-		}
-	}
+ 	/* We don't have to lock device here. Connections are always 
+ 	   added and removed with TX task disabled. */
+ 	list_for_each(p, &h->list) {
+ 		c = list_entry(p, struct hci_conn, list);
+   
+ 		/* SCO scheduling algorithm makes sure there is never more than
+ 		   1 outstanding packet for each connection */
+  
+ 		if (c->type == ACL_LINK)
+ 			continue;
+ 
+ 		if (atomic_read(&c->sent) >= 1)
+ 			continue;
+ 
+ 		if (c->state != BT_CONNECTED)
+ 			continue;
+ 
+ 		if (atomic_read(&hdev->sco_cnt) <= 0)
+ 			continue;
+  
+ 		if ((skb = skb_dequeue(&c->data_q)) == NULL)
+ 			continue;
+  
+ 		hci_send_frame(skb);
+  
+ 		atomic_inc(&c->sent);			
+ 		atomic_dec(&hdev->sco_cnt);
+ 					
+ 		pkt_time = ktime_set(0, NSEC_PER_SEC / 16000 * (skb->len - HCI_SCO_HDR_SIZE));
+ 		now = c->tx_timer.base->get_time();
+ 
+ 		c->tx_timer.expires.tv64 += pkt_time.tv64;
+ 		if (c->tx_timer.expires.tv64 > now.tv64) {
+ 			hrtimer_restart(&c->tx_timer);
+ 		} else {
+ 			/* Timer is to expire in the past - force timer expiration.
+ 			   this can happen if timer base precision is less than pkt_time */
+ 			c->tx_timer.function(&c->tx_timer);
+  		}
+  	}
 }
 
 static void hci_tx_task(unsigned long arg)
@@ -1362,14 +1405,14 @@
 
 	read_lock(&hci_task_lock);
 
-	BT_DBG("%s acl %d sco %d", hdev->name, hdev->acl_cnt, hdev->sco_cnt);
+	BT_DBG("%s acl %d sco %d", hdev->name, hdev->acl_cnt, atomic_read(&hdev->sco_cnt));
 
 	/* Schedule queues and send stuff to HCI driver */
 
-	hci_sched_acl(hdev);
-
 	hci_sched_sco(hdev);
 
+	hci_sched_acl(hdev);
+
 	/* Send next queued raw (unknown type) packet */
 	while ((skb = skb_dequeue(&hdev->raw_q)))
 		hci_send_frame(skb);
--- ./linux-2.6.23/include/net/bluetooth/hci_core.h.orig	2007-10-09 22:31:38.000000000 +0200
+++ ./linux-2.6.23/include/net/bluetooth/hci_core.h	2007-12-28 20:01:35.000000000 +0100
@@ -25,6 +25,8 @@
 #ifndef __HCI_CORE_H
 #define __HCI_CORE_H
 
+#include <linux/hrtimer.h>
+
 #include <net/bluetooth/hci.h>
 
 /* HCI upper protocols */
@@ -90,7 +92,7 @@
 
 	atomic_t	cmd_cnt;
 	unsigned int	acl_cnt;
-	unsigned int	sco_cnt;
+	atomic_t	sco_cnt;
 
 	unsigned int	acl_mtu;
 	unsigned int	sco_mtu;
@@ -147,7 +149,6 @@
 	struct list_head list;
 
 	atomic_t	 refcnt;
-	spinlock_t	 lock;
 
 	bdaddr_t	 dst;
 	__u16		 handle;
@@ -164,10 +165,11 @@
 	__u8             power_save;
 	unsigned long	 pend;
 
-	unsigned int	 sent;
+	atomic_t	 sent;
 
 	struct sk_buff_head data_q;
 
+	struct hrtimer tx_timer;
 	struct timer_list disc_timer;
 	struct timer_list idle_timer;
 

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


--- End Message ---
--- Begin Message ---
Source: bluetooth-alsa
Source-Version: 0.5cvs20080601-1

We believe that the bug you reported is fixed in the latest version of
bluetooth-alsa, which is due to be installed in the Debian FTP archive:

bluetooth-alsa_0.5cvs20080601-1.diff.gz
  to pool/main/b/bluetooth-alsa/bluetooth-alsa_0.5cvs20080601-1.diff.gz
bluetooth-alsa_0.5cvs20080601-1.dsc
  to pool/main/b/bluetooth-alsa/bluetooth-alsa_0.5cvs20080601-1.dsc
bluetooth-alsa_0.5cvs20080601-1_amd64.deb
  to pool/main/b/bluetooth-alsa/bluetooth-alsa_0.5cvs20080601-1_amd64.deb
bluetooth-alsa_0.5cvs20080601.orig.tar.gz
  to pool/main/b/bluetooth-alsa/bluetooth-alsa_0.5cvs20080601.orig.tar.gz
linux-patch-scoflowctrl_0.5cvs20080601-1_all.deb
  to pool/main/b/bluetooth-alsa/linux-patch-scoflowctrl_0.5cvs20080601-1_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Krzysztof Burghardt <[EMAIL PROTECTED]> (supplier of updated bluetooth-alsa 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sun, 22 Jun 2008 21:57:59 +0200
Source: bluetooth-alsa
Binary: bluetooth-alsa linux-patch-scoflowctrl
Architecture: source all amd64
Version: 0.5cvs20080601-1
Distribution: unstable
Urgency: low
Maintainer: Krzysztof Burghardt <[EMAIL PROTECTED]>
Changed-By: Krzysztof Burghardt <[EMAIL PROTECTED]>
Description: 
 bluetooth-alsa - Bluetooth audio for Linux
 linux-patch-scoflowctrl - SCO FlowControl patch for Linux
Closes: 458037 458198 474990
Changes: 
 bluetooth-alsa (0.5cvs20080601-1) unstable; urgency=low
 .
   * New upstream checkout
   * New binary package: linux-patch-scoflowctrl (Closes: #474990, #458037)
   * Removed /usr/share/doc/bluetooth-alsa/patches from bluetooth-alsa,
     patches available in linux-patch-scoflowctrl package
   * debian/control:
     + bluetooth-alsa suggests linux-patch-scoflowctrl
   * debian/docs renamed to debian/bluetooth-alsa.docs
   * debian/lintian-overrides renamed to debian/bluetooth-alsa.lintian-overrides
   * debian/linux-patch-scoflowctrl.kpatches:
     + add patch against 2.6.23 (Closes: #458198)
   * Bumped standard version (no changes needed)
Checksums-Sha1: 
 8a9e7240e9f77fb529abef22377be0e89bd557a9 1358 
bluetooth-alsa_0.5cvs20080601-1.dsc
 b9b22eb049855ddfc2104ac13a22eb24056d2398 231152 
bluetooth-alsa_0.5cvs20080601.orig.tar.gz
 36b82db6e28bc094193a9df53f4954e899536fbb 13729 
bluetooth-alsa_0.5cvs20080601-1.diff.gz
 1392c3a210aa531cf678d59a9ef820c641c605e3 36902 
linux-patch-scoflowctrl_0.5cvs20080601-1_all.deb
 a5d32ed09985cebdd7b019a32006089d432f6926 284804 
bluetooth-alsa_0.5cvs20080601-1_amd64.deb
Checksums-Sha256: 
 2c5ac0beaa0a3f2ca0ba05b0b552e7e2f015ebaa866ae285661f0db5c2d32aba 1358 
bluetooth-alsa_0.5cvs20080601-1.dsc
 2bb498d441df75990638de6e273e18f8f3eec36c3f639740b1e78b2fb2739e88 231152 
bluetooth-alsa_0.5cvs20080601.orig.tar.gz
 761049254c9562725384e92616f67f0d2977efe44bd9407667a9b6b0ea29d548 13729 
bluetooth-alsa_0.5cvs20080601-1.diff.gz
 da0e40fb340568b8f789a98d5e3bc593959265d533fe78aec90d7c816be0da99 36902 
linux-patch-scoflowctrl_0.5cvs20080601-1_all.deb
 e69bc2ea400f6b31e2684a26cf600eead5baff0a53dbee1e05c718ddc594c036 284804 
bluetooth-alsa_0.5cvs20080601-1_amd64.deb
Files: 
 5d939da4b7001f19520442e6a32be1c6 1358 sound extra 
bluetooth-alsa_0.5cvs20080601-1.dsc
 e67f7519b078cb33d5ea1b3e74acf392 231152 sound extra 
bluetooth-alsa_0.5cvs20080601.orig.tar.gz
 8d5e320377283f06430e340eaf199ab6 13729 sound extra 
bluetooth-alsa_0.5cvs20080601-1.diff.gz
 28753373a027e3faae439a1b8854bb36 36902 sound extra 
linux-patch-scoflowctrl_0.5cvs20080601-1_all.deb
 07244a77ea1a2576c2c7e61a5dd0b73f 284804 sound extra 
bluetooth-alsa_0.5cvs20080601-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkhgz1QACgkQIgvIgzMMSnW2BgCg6FfMZi6WOQ+2rw4gfjkahv7f
8RUAn2FMa1hc2Sdgdydc+oXK/dV4Q3P/
=hZSw
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to