diff --git a/.cvsignore b/.cvsignore
index 5de9d16..ad0dec6 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,3 +1,4 @@
libraw1394-1.2.0.tar.gz
libraw1394-1.2.1.tar.gz
fw-device-cdev.h
+libraw1394-1.3.0.tar.gz
diff --git a/libraw1394-juju.patch b/libraw1394-juju.patch
index 47a5613..fe2d80b 100644
--- a/libraw1394-juju.patch
+++ b/libraw1394-juju.patch
@@ -1,49 +1,36 @@
-diff --git a/Makefile.am b/Makefile.am
-index 04ed38a..21df527 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,6 +1,7 @@
- # process this file with automake to create a Makefile.in
-
--SUBDIRS = src tools doc debian
-+SUBDIRS = $(LIB_SUBDIR) tools doc debian
-+DIST_SUBDIRS = src juju
-
- pkgconfigdir = @libdir@/pkgconfig
- pkgconfig_DATA = libraw1394.pc
-diff --git a/configure.ac b/configure.ac
-index fe23ca8..7e5dd66 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -24,6 +24,27 @@ AC_SUBST(lt_major)
+diff -Naurp libraw1394-1.3.0.orig/configure.ac libraw1394-1.3.0/configure.ac
+--- libraw1394-1.3.0.orig/configure.ac 2007-05-30 01:32:37.000000000 -0400
++++ libraw1394-1.3.0/configure.ac 2007-10-18 22:21:34.000000000 -0400
+@@ -24,6 +24,28 @@ AC_SUBST(lt_major)
AC_SUBST(lt_revision)
AC_SUBST(lt_age)
+AC_ARG_WITH(juju-dir,[ --with-juju-dir=
Path to juju include files])
+if ! test -z "$with_juju_dir" ; then
-+ JUJU_DIR="$with_juju_dir"
-+ LIB_SUBDIR=juju
-+ AC_SUBST(JUJU_DIR)
++ JUJU_DIR="$with_juju_dir"
++ LIB_SUBDIR=juju
++ AC_SUBST(JUJU_DIR)
+else
-+ LIB_SUBDIR=src
++ LIB_SUBDIR=src
+fi
+AC_SUBST(LIB_SUBDIR)
+
+AC_ARG_WITH(fw-device-prefix,
-+ [ --with-fw-device-prefix= Prefix of firewire device file names (default "fw").],
-+ [FW_DEVICE_PREFIX="\"$withval\""], [FW_DEVICE_PREFIX="\"fw\""])
++ [ --with-fw-device-prefix= Prefix of firewire device file names (default "fw").],
++ [FW_DEVICE_PREFIX="\"$withval\""], [FW_DEVICE_PREFIX="\"fw\""])
+AC_ARG_WITH(fw-device-dir,
-+ [ --with-fw-device-dir= Directory to watch for firewire device files (default "/dev").],
-+ [FW_DEVICE_DIR="\"$withval\""], [FW_DEVICE_DIR="\"/dev\""])
++ [ --with-fw-device-dir= Directory to watch for firewire device files (default "/dev").],
++ [FW_DEVICE_DIR="\"$withval\""], [FW_DEVICE_DIR="\"/dev\""])
+
+AC_DEFINE_UNQUOTED(FW_DEVICE_PREFIX, $FW_DEVICE_PREFIX,
-+ [Prefix of firewire device file names.])
++ [Prefix of firewire device file names.])
+AC_DEFINE_UNQUOTED(FW_DEVICE_DIR, $FW_DEVICE_DIR,
-+ [Directory to watch for firewire device files.])
-
- #CFLAGS=${CFLAGS:-"-Wall"}
- AC_OUTPUT([
-@@ -31,6 +52,7 @@ Makefile
++ [Directory to watch for firewire device files.])
++
+ dnl Check to see if valgrind is available
+ AC_ARG_WITH(valgrind, AC_HELP_STRING([--with-valgrind],[compile with valgrind support]))
+ if test x$with_valgrind = xyes ; then
+@@ -36,6 +58,7 @@ Makefile
libraw1394.pc
libraw1394.spec
src/Makefile
@@ -51,25 +38,9 @@ index fe23ca8..7e5dd66 100644
tools/Makefile
doc/Makefile
doc/testlibraw.1
-diff --git a/juju/Makefile.am b/juju/Makefile.am
-new file mode 100644
-index 0000000..6fd6a5e
---- /dev/null
-+++ b/juju/Makefile.am
-@@ -0,0 +1,8 @@
-+lib_LTLIBRARIES = libraw1394.la
-+
-+INCLUDES = -I$(JUJU_DIR)
-+libraw1394_la_LDFLAGS = -version-info @lt_major@:@lt_revision@:@lt_age@
-+
-+libraw1394_la_SOURCES = raw1394.c raw1394-iso.c juju.h
-+
-+pkginclude_HEADERS = ../src/raw1394.h ../src/csr.h ../src/ieee1394.h
-diff --git a/juju/juju.h b/juju/juju.h
-new file mode 100644
-index 0000000..c7a2ebd
---- /dev/null
-+++ b/juju/juju.h
+diff -Naurp libraw1394-1.3.0.orig/juju/juju.h libraw1394-1.3.0/juju/juju.h
+--- libraw1394-1.3.0.orig/juju/juju.h 1969-12-31 19:00:00.000000000 -0500
++++ libraw1394-1.3.0/juju/juju.h 2007-10-18 22:18:46.000000000 -0400
@@ -0,0 +1,143 @@
+/* -*- c-basic-offset: 8 -*-
+ *
@@ -214,539 +185,21 @@ index 0000000..c7a2ebd
+};
+
+#endif
-diff --git a/juju/raw1394-iso.c b/juju/raw1394-iso.c
-new file mode 100644
-index 0000000..5e18dab
---- /dev/null
-+++ b/juju/raw1394-iso.c
-@@ -0,0 +1,522 @@
-+/* -*- c-basic-offset: 8 -*-
-+ *
-+ * raw1394-iso.c -- Emulation of the raw1394 rawiso API on the juju stack
-+ *
-+ * Copyright (C) 2007 Kristian Hoegsberg
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software Foundation,
-+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
+diff -Naurp libraw1394-1.3.0.orig/juju/Makefile.am libraw1394-1.3.0/juju/Makefile.am
+--- libraw1394-1.3.0.orig/juju/Makefile.am 1969-12-31 19:00:00.000000000 -0500
++++ libraw1394-1.3.0/juju/Makefile.am 2007-10-18 22:18:46.000000000 -0400
+@@ -0,0 +1,8 @@
++lib_LTLIBRARIES = libraw1394.la
+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
++INCLUDES = -I$(JUJU_DIR)
++libraw1394_la_LDFLAGS = -version-info @lt_major@:@lt_revision@:@lt_age@
+
-+#include "juju.h"
++libraw1394_la_SOURCES = raw1394.c raw1394-iso.c juju.h
+
-+static int
-+queue_packet(raw1394handle_t handle,
-+ unsigned int length, unsigned int header_length,
-+ unsigned char tag, unsigned char sy)
-+{
-+ struct fw_cdev_queue_iso queue_iso;
-+ struct fw_cdev_iso_packet *p;
-+ int err;
-+
-+ p = &handle->iso.packets[handle->iso.packet_index];
-+ p->payload_length = length;
-+ p->interrupt =
-+ handle->iso.packet_phase == handle->iso.irq_interval - 1;
-+ p->skip = 0;
-+ p->tag = tag;
-+ p->sy = sy;
-+ p->header_length = header_length;
-+
-+ handle->iso.head += length;
-+ handle->iso.packet_count++;
-+ handle->iso.packet_phase++;
-+ handle->iso.packet_index++;
-+
-+ if (handle->iso.packet_phase == handle->iso.irq_interval)
-+ handle->iso.packet_phase = 0;
-+
-+ if (handle->iso.head + handle->iso.max_packet_size > handle->iso.buffer_end)
-+ handle->iso.head = handle->iso.buffer;
-+
-+ /* Queue the packets in the kernel if we filled up the packets
-+ * array or wrapped the payload buffer. */
-+ if (handle->iso.packet_index == handle->iso.irq_interval ||
-+ handle->iso.head == handle->iso.buffer) {
-+ queue_iso.packets = ptr_to_u64(handle->iso.packets);
-+ queue_iso.size = handle->iso.packet_index * sizeof handle->iso.packets[0];
-+ queue_iso.data = ptr_to_u64(handle->iso.first_payload);
-+ queue_iso.handle = 0;
-+ handle->iso.packet_index = 0;
-+ handle->iso.first_payload = handle->iso.head;
-+
-+ err = ioctl(handle->iso.fd, FW_CDEV_IOC_QUEUE_ISO, &queue_iso);
-+ if (err < 0)
-+ return -1;
-+ }
-+}
-+
-+static int
-+queue_xmit_packets(raw1394handle_t handle, int limit)
-+{
-+ enum raw1394_iso_disposition d;
-+ unsigned char tag, sy;
-+ int len, cycle, dropped;
-+
-+ if (handle->iso.xmit_handler == NULL)
-+ return 0;
-+
-+ while (handle->iso.packet_count < limit) {
-+
-+ d = handle->iso.xmit_handler(handle, handle->iso.head,
-+ &len, &tag, &sy, cycle, dropped);
-+
-+ switch (d) {
-+ case RAW1394_ISO_OK:
-+ queue_packet(handle, len, 0, tag, sy);
-+ break;
-+ case RAW1394_ISO_DEFER:
-+ case RAW1394_ISO_AGAIN:
-+ default:
-+ return 0;
-+ case RAW1394_ISO_ERROR:
-+ return -1;
-+ case RAW1394_ISO_STOP:
-+ raw1394_iso_stop(handle);
-+ return 0;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+int raw1394_iso_xmit_start(raw1394handle_t handle, int start_on_cycle,
-+ int prebuffer_packets)
-+{
-+ struct fw_cdev_start_iso start_iso;
-+ int retval;
-+
-+ if (prebuffer_packets == -1)
-+ prebuffer_packets = handle->iso.irq_interval;
-+
-+ handle->iso.prebuffer = prebuffer_packets;
-+ handle->iso.start_on_cycle = start_on_cycle;
-+
-+ queue_xmit_packets(handle, prebuffer_packets);
-+
-+ if (handle->iso.prebuffer <= handle->iso.packet_count) {
-+ start_iso.cycle = start_on_cycle;
-+ start_iso.handle = 0;
-+
-+ retval = ioctl(handle->iso.fd,
-+ FW_CDEV_IOC_START_ISO, &start_iso);
-+ if (retval < 0)
-+ return retval;
-+ }
-+
-+ return queue_xmit_packets(handle, handle->iso.buf_packets);
-+}
-+
-+static int
-+queue_recv_packets(raw1394handle_t handle)
-+{
-+ while (handle->iso.packet_count <= handle->iso.buf_packets)
-+ queue_packet(handle, handle->iso.max_packet_size, 4, 0, 0);
-+
-+ return 0;
-+}
-+
-+static enum raw1394_iso_disposition
-+flush_recv_packets(raw1394handle_t handle,
-+ struct fw_cdev_event_iso_interrupt *interrupt)
-+{
-+ enum raw1394_iso_disposition d;
-+ quadlet_t header, *p, *end;
-+ unsigned int len, cycle, dropped;
-+ unsigned char channel, tag, sy;
-+
-+ p = interrupt->header;
-+ end = (void *) interrupt->header + interrupt->header_length;
-+ cycle = interrupt->cycle;
-+ dropped = 0;
-+ d = RAW1394_ISO_OK;
-+
-+ while (p < end) {
-+ header = be32_to_cpu(*p++);
-+ len = header >> 16;
-+ tag = (header >> 14) & 0x3;
-+ channel = (header >> 8) & 0x3f;
-+ sy = header & 0x0f;
-+
-+ d = handle->iso.recv_handler(handle, handle->iso.tail, len,
-+ channel, tag, sy, cycle, dropped);
-+ if (d != RAW1394_ISO_OK)
-+ /* FIXME: we need to save the headers so we
-+ * can restart this loop. */
-+ break;
-+ cycle++;
-+
-+ handle->iso.tail += handle->iso.max_packet_size;
-+ handle->iso.packet_count--;
-+
-+ if (handle->iso.tail + handle->iso.max_packet_size > handle->iso.buffer_end)
-+ handle->iso.tail = handle->iso.buffer;
-+ }
-+
-+ switch (d) {
-+ case RAW1394_ISO_OK:
-+ case RAW1394_ISO_DEFER:
-+ default:
-+ break;
-+
-+ case RAW1394_ISO_ERROR:
-+ return -1;
-+
-+ case RAW1394_ISO_STOP:
-+ raw1394_iso_stop(handle);
-+ return 0;
-+ }
-+
-+ queue_recv_packets(handle);
-+
-+ return 0;
-+}
-+
-+int raw1394_iso_recv_start(raw1394handle_t handle, int start_on_cycle,
-+ int tag_mask, int sync)
-+{
-+ struct fw_cdev_start_iso start_iso;
-+
-+ queue_recv_packets(handle);
-+
-+ start_iso.cycle = start_on_cycle;
-+ start_iso.tags =
-+ tag_mask == -1 ? FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS : tag_mask;
-+ /* sync is documented as 'not used' */
-+ start_iso.sync = 0;
-+ start_iso.handle = 0;
-+
-+ return ioctl(handle->iso.fd, FW_CDEV_IOC_START_ISO, &start_iso);
-+}
-+
-+static int handle_iso_event(raw1394handle_t handle,
-+ struct epoll_closure *closure, __uint32_t events)
-+{
-+ struct fw_cdev_event_iso_interrupt *interrupt;
-+ int len;
-+
-+ len = read(handle->iso.fd, handle->buffer, sizeof handle->buffer);
-+ if (len < 0)
-+ return -1;
-+
-+ interrupt = (struct fw_cdev_event_iso_interrupt *) handle->buffer;
-+ if (interrupt->type != FW_CDEV_EVENT_ISO_INTERRUPT)
-+ return 0;
-+
-+ switch (handle->iso.type) {
-+ case FW_CDEV_ISO_CONTEXT_TRANSMIT:
-+ handle->iso.packet_count -= handle->iso.irq_interval;
-+ return queue_xmit_packets(handle, handle->iso.buf_packets);
-+ case FW_CDEV_ISO_CONTEXT_RECEIVE:
-+ return flush_recv_packets(handle, interrupt);
-+ default:
-+ /* Doesn't happen. */
-+ return -1;
-+ }
-+}
-+
-+int raw1394_iso_xmit_write(raw1394handle_t handle, unsigned char *data,
-+ unsigned int len, unsigned char tag,
-+ unsigned char sy)
-+{
-+ struct fw_cdev_queue_iso queue_iso;
-+ struct fw_cdev_start_iso start_iso;
-+ struct fw_cdev_iso_packet *p;
-+
-+ if (len > handle->iso.max_packet_size) {
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ /* Block until we have space for another packet. */
-+ while (handle->iso.packet_count + handle->iso.irq_interval >
-+ handle->iso.buf_packets)
-+ raw1394_loop_iterate(handle);
-+
-+ memcpy(handle->iso.head, data, len);
-+ if (queue_packet(handle, len, 0, tag, sy) < 0)
-+ return -1;
-+
-+ /* Start the streaming if it's not already running and if
-+ * we've buffered up enough packets. */
-+ if (handle->iso.prebuffer > 0 &&
-+ handle->iso.packet_count >= handle->iso.prebuffer) {
-+ /* Set this to 0 to indicate that we're running. */
-+ handle->iso.prebuffer = 0;
-+ start_iso.cycle = handle->iso.start_on_cycle;
-+ start_iso.handle = 0;
-+
-+ len = ioctl(handle->iso.fd,
-+ FW_CDEV_IOC_START_ISO, &start_iso);
-+ if (len < 0)
-+ return len;
-+ }
-+
-+ return 0;
-+}
-+
-+int raw1394_iso_xmit_sync(raw1394handle_t handle)
-+{
-+ struct fw_cdev_iso_packet skip;
-+ struct fw_cdev_queue_iso queue_iso;
-+ int len;
-+
-+ skip.payload_length = 0;
-+ skip.interrupt = 1;
-+ skip.skip = 1;
-+ skip.tag = 0;
-+ skip.sy = 0;
-+ skip.header_length = 0;
-+
-+ queue_iso.packets = ptr_to_u64(&skip);
-+ queue_iso.size = sizeof skip;
-+ queue_iso.data = 0;
-+ queue_iso.handle = 0;
-+
-+ len = ioctl(handle->iso.fd, FW_CDEV_IOC_QUEUE_ISO, &queue_iso);
-+ if (len < 0)
-+ return -1;
-+
-+ /* Now that we've queued the skip packet, we'll get an
-+ * interrupt when the transmit buffer is flushed, so all we do
-+ * here is wait. */
-+ while (handle->iso.packet_count > 0)
-+ raw1394_loop_iterate(handle);
-+
-+ /* The iso mainloop thinks that interrutps indicate another
-+ * irq_interval number of packets was sent, so the skip
-+ * interrupt makes it go out of whack. We just reset it. */
-+ handle->iso.head = handle->iso.buffer;
-+ handle->iso.tail = handle->iso.buffer;
-+ handle->iso.first_payload = handle->iso.buffer;
-+ handle->iso.packet_phase = 0;
-+ handle->iso.packet_count = 0;
-+
-+ return 0;
-+}
-+
-+int raw1394_iso_recv_flush(raw1394handle_t handle)
-+{
-+ /* FIXME: huh, we'll need kernel support here... */
-+
-+ return 0;
-+}
-+
-+static unsigned int
-+round_to_power_of_two(unsigned int value)
-+{
-+ unsigned int pot;
-+
-+ pot = 1;
-+ while (pot < value)
-+ pot <<= 1;
-+
-+ return pot;
-+}
-+
-+static int
-+iso_init(raw1394handle_t handle, int type,
-+ raw1394_iso_xmit_handler_t xmit_handler,
-+ raw1394_iso_recv_handler_t recv_handler,
-+ unsigned int buf_packets,
-+ unsigned int max_packet_size,
-+ unsigned char channel,
-+ enum raw1394_iso_speed speed,
-+ int irq_interval)
-+{
-+ struct fw_cdev_create_iso_context create;
-+ struct epoll_event ep;
-+ int retval, prot;
-+
-+ if (handle->iso.fd != -1) {
-+ errno = EBUSY;
-+ return -1;
-+ }
-+
-+ switch (type) {
-+ case FW_CDEV_ISO_CONTEXT_TRANSMIT:
-+ prot = PROT_READ | PROT_WRITE;
-+ break;
-+ case FW_CDEV_ISO_CONTEXT_RECEIVE:
-+ prot = PROT_READ;
-+ break;
-+ default:
-+ errno = EINVAL;
-+ return -1;
-+ }
-+
-+ handle->iso.type = type;
-+ if (irq_interval < 0)
-+ handle->iso.irq_interval = 256;
-+ else
-+ handle->iso.irq_interval = irq_interval;
-+ handle->iso.xmit_handler = xmit_handler;
-+ handle->iso.recv_handler = recv_handler;
-+ handle->iso.buf_packets = buf_packets;
-+ handle->iso.max_packet_size = round_to_power_of_two(max_packet_size);
-+ handle->iso.packet_phase = 0;
-+ handle->iso.packet_count = 0;
-+ handle->iso.packets =
-+ malloc(handle->iso.irq_interval * sizeof handle->iso.packets[0]);
-+ if (handle->iso.packets == NULL)
-+ return -1;
-+
-+ handle->iso.fd = open(handle->local_filename, O_RDWR);
-+ if (handle->iso.fd < 0) {
-+ free(handle->iso.packets);
-+ return -1;
-+ }
-+
-+ handle->iso.closure.func = handle_iso_event;
-+ ep.events = EPOLLIN;
-+ ep.data.ptr = &handle->iso.closure;
-+ if (epoll_ctl(handle->epoll_fd, EPOLL_CTL_ADD,
-+ handle->iso.fd, &ep) < 0) {
-+ close(handle->iso.fd);
-+ free(handle->iso.packets);
-+ return -1;
-+ }
-+
-+ create.type = type;
-+ create.channel = channel;
-+ create.speed = speed;
-+ create.header_size = 4;
-+
-+ retval = ioctl(handle->iso.fd,
-+ FW_CDEV_IOC_CREATE_ISO_CONTEXT, &create);
-+ if (retval < 0) {
-+ close(handle->iso.fd);
-+ free(handle->iso.packets);
-+ return retval;
-+ }
-+
-+ handle->iso.buffer =
-+ mmap(NULL, buf_packets * max_packet_size,
-+ prot, MAP_SHARED, handle->iso.fd, 0);
-+
-+ if (handle->iso.buffer == MAP_FAILED) {
-+ close(handle->iso.fd);
-+ free(handle->iso.packets);
-+ return -1;
-+ }
-+
-+ handle->iso.buffer_end = handle->iso.buffer +
-+ buf_packets * max_packet_size;
-+ handle->iso.head = handle->iso.buffer;
-+ handle->iso.tail = handle->iso.buffer;
-+ handle->iso.first_payload = handle->iso.buffer;
-+
-+ return 0;
-+}
-+
-+int raw1394_iso_xmit_init(raw1394handle_t handle,
-+ raw1394_iso_xmit_handler_t handler,
-+ unsigned int buf_packets,
-+ unsigned int max_packet_size,
-+ unsigned char channel,
-+ enum raw1394_iso_speed speed,
-+ int irq_interval)
-+{
-+ return iso_init(handle, FW_CDEV_ISO_CONTEXT_TRANSMIT,
-+ handler, NULL, buf_packets, max_packet_size,
-+ channel, speed, irq_interval);
-+}
-+
-+int raw1394_iso_recv_init(raw1394handle_t handle,
-+ raw1394_iso_recv_handler_t handler,
-+ unsigned int buf_packets,
-+ unsigned int max_packet_size,
-+ unsigned char channel,
-+ enum raw1394_iso_dma_recv_mode mode,
-+ int irq_interval)
-+{
-+ return iso_init(handle, FW_CDEV_ISO_CONTEXT_RECEIVE,
-+ NULL, handler, buf_packets, max_packet_size,
-+ channel, 0, irq_interval);
-+}
-+
-+int raw1394_iso_multichannel_recv_init(raw1394handle_t handle,
-+ raw1394_iso_recv_handler_t handler,
-+ unsigned int buf_packets,
-+ unsigned int max_packet_size,
-+ int irq_interval)
-+{
-+ /* FIXME: gah */
-+ errno = ENOSYS;
-+ return -1;
-+}
-+
-+int raw1394_iso_recv_listen_channel(raw1394handle_t handle,
-+ unsigned char channel)
-+{
-+ /* FIXME: multichannel */
-+ errno = ENOSYS;
-+ return -1;
-+}
-+
-+int raw1394_iso_recv_unlisten_channel(raw1394handle_t handle,
-+ unsigned char channel)
-+{
-+ /* FIXME: multichannel */
-+ errno = ENOSYS;
-+ return -1;
-+}
-+
-+int raw1394_iso_recv_set_channel_mask(raw1394handle_t handle, u_int64_t mask)
-+{
-+ /* FIXME: multichannel */
-+ errno = ENOSYS;
-+ return -1;
-+}
-+
-+void raw1394_iso_stop(raw1394handle_t handle)
-+{
-+ struct fw_cdev_stop_iso stop_iso;
-+
-+ stop_iso.handle = 0;
-+ ioctl(handle->iso.fd, FW_CDEV_IOC_STOP_ISO);
-+
-+ handle->iso.head = handle->iso.buffer;
-+ handle->iso.tail = handle->iso.buffer;
-+ handle->iso.first_payload = handle->iso.buffer;
-+ handle->iso.packet_phase = 0;
-+ handle->iso.packet_count = 0;
-+}
-+
-+void raw1394_iso_shutdown(raw1394handle_t handle)
-+{
-+ munmap(handle->iso.buffer,
-+ handle->iso.buf_packets * handle->iso.max_packet_size);
-+ close(handle->iso.fd);
-+ free(handle->iso.packets);
-+}
-diff --git a/juju/raw1394.c b/juju/raw1394.c
-new file mode 100644
-index 0000000..7f73b3b
---- /dev/null
-+++ b/juju/raw1394.c
++pkginclude_HEADERS = ../src/raw1394.h ../src/csr.h ../src/ieee1394.h
+diff -Naurp libraw1394-1.3.0.orig/juju/raw1394.c libraw1394-1.3.0/juju/raw1394.c
+--- libraw1394-1.3.0.orig/juju/raw1394.c 1969-12-31 19:00:00.000000000 -0500
++++ libraw1394-1.3.0/juju/raw1394.c 2007-10-18 22:18:46.000000000 -0400
@@ -0,0 +1,1441 @@
+/* -*- c-basic-offset: 8 -*-
+ *
@@ -2189,20 +1642,556 @@ index 0000000..7f73b3b
+
+ return 0;
+}
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 29b250e..5be1b6f 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
+diff -Naurp libraw1394-1.3.0.orig/juju/raw1394-iso.c libraw1394-1.3.0/juju/raw1394-iso.c
+--- libraw1394-1.3.0.orig/juju/raw1394-iso.c 1969-12-31 19:00:00.000000000 -0500
++++ libraw1394-1.3.0/juju/raw1394-iso.c 2007-10-18 22:18:46.000000000 -0400
+@@ -0,0 +1,522 @@
++/* -*- c-basic-offset: 8 -*-
++ *
++ * raw1394-iso.c -- Emulation of the raw1394 rawiso API on the juju stack
++ *
++ * Copyright (C) 2007 Kristian Hoegsberg
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software Foundation,
++ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++#include "juju.h"
++
++static int
++queue_packet(raw1394handle_t handle,
++ unsigned int length, unsigned int header_length,
++ unsigned char tag, unsigned char sy)
++{
++ struct fw_cdev_queue_iso queue_iso;
++ struct fw_cdev_iso_packet *p;
++ int err;
++
++ p = &handle->iso.packets[handle->iso.packet_index];
++ p->payload_length = length;
++ p->interrupt =
++ handle->iso.packet_phase == handle->iso.irq_interval - 1;
++ p->skip = 0;
++ p->tag = tag;
++ p->sy = sy;
++ p->header_length = header_length;
++
++ handle->iso.head += length;
++ handle->iso.packet_count++;
++ handle->iso.packet_phase++;
++ handle->iso.packet_index++;
++
++ if (handle->iso.packet_phase == handle->iso.irq_interval)
++ handle->iso.packet_phase = 0;
++
++ if (handle->iso.head + handle->iso.max_packet_size > handle->iso.buffer_end)
++ handle->iso.head = handle->iso.buffer;
++
++ /* Queue the packets in the kernel if we filled up the packets
++ * array or wrapped the payload buffer. */
++ if (handle->iso.packet_index == handle->iso.irq_interval ||
++ handle->iso.head == handle->iso.buffer) {
++ queue_iso.packets = ptr_to_u64(handle->iso.packets);
++ queue_iso.size = handle->iso.packet_index * sizeof handle->iso.packets[0];
++ queue_iso.data = ptr_to_u64(handle->iso.first_payload);
++ queue_iso.handle = 0;
++ handle->iso.packet_index = 0;
++ handle->iso.first_payload = handle->iso.head;
++
++ err = ioctl(handle->iso.fd, FW_CDEV_IOC_QUEUE_ISO, &queue_iso);
++ if (err < 0)
++ return -1;
++ }
++}
++
++static int
++queue_xmit_packets(raw1394handle_t handle, int limit)
++{
++ enum raw1394_iso_disposition d;
++ unsigned char tag, sy;
++ int len, cycle, dropped;
++
++ if (handle->iso.xmit_handler == NULL)
++ return 0;
++
++ while (handle->iso.packet_count < limit) {
++
++ d = handle->iso.xmit_handler(handle, handle->iso.head,
++ &len, &tag, &sy, cycle, dropped);
++
++ switch (d) {
++ case RAW1394_ISO_OK:
++ queue_packet(handle, len, 0, tag, sy);
++ break;
++ case RAW1394_ISO_DEFER:
++ case RAW1394_ISO_AGAIN:
++ default:
++ return 0;
++ case RAW1394_ISO_ERROR:
++ return -1;
++ case RAW1394_ISO_STOP:
++ raw1394_iso_stop(handle);
++ return 0;
++ }
++ }
++
++ return 0;
++}
++
++int raw1394_iso_xmit_start(raw1394handle_t handle, int start_on_cycle,
++ int prebuffer_packets)
++{
++ struct fw_cdev_start_iso start_iso;
++ int retval;
++
++ if (prebuffer_packets == -1)
++ prebuffer_packets = handle->iso.irq_interval;
++
++ handle->iso.prebuffer = prebuffer_packets;
++ handle->iso.start_on_cycle = start_on_cycle;
++
++ queue_xmit_packets(handle, prebuffer_packets);
++
++ if (handle->iso.prebuffer <= handle->iso.packet_count) {
++ start_iso.cycle = start_on_cycle;
++ start_iso.handle = 0;
++
++ retval = ioctl(handle->iso.fd,
++ FW_CDEV_IOC_START_ISO, &start_iso);
++ if (retval < 0)
++ return retval;
++ }
++
++ return queue_xmit_packets(handle, handle->iso.buf_packets);
++}
++
++static int
++queue_recv_packets(raw1394handle_t handle)
++{
++ while (handle->iso.packet_count <= handle->iso.buf_packets)
++ queue_packet(handle, handle->iso.max_packet_size, 4, 0, 0);
++
++ return 0;
++}
++
++static enum raw1394_iso_disposition
++flush_recv_packets(raw1394handle_t handle,
++ struct fw_cdev_event_iso_interrupt *interrupt)
++{
++ enum raw1394_iso_disposition d;
++ quadlet_t header, *p, *end;
++ unsigned int len, cycle, dropped;
++ unsigned char channel, tag, sy;
++
++ p = interrupt->header;
++ end = (void *) interrupt->header + interrupt->header_length;
++ cycle = interrupt->cycle;
++ dropped = 0;
++ d = RAW1394_ISO_OK;
++
++ while (p < end) {
++ header = be32_to_cpu(*p++);
++ len = header >> 16;
++ tag = (header >> 14) & 0x3;
++ channel = (header >> 8) & 0x3f;
++ sy = header & 0x0f;
++
++ d = handle->iso.recv_handler(handle, handle->iso.tail, len,
++ channel, tag, sy, cycle, dropped);
++ if (d != RAW1394_ISO_OK)
++ /* FIXME: we need to save the headers so we
++ * can restart this loop. */
++ break;
++ cycle++;
++
++ handle->iso.tail += handle->iso.max_packet_size;
++ handle->iso.packet_count--;
++
++ if (handle->iso.tail + handle->iso.max_packet_size > handle->iso.buffer_end)
++ handle->iso.tail = handle->iso.buffer;
++ }
++
++ switch (d) {
++ case RAW1394_ISO_OK:
++ case RAW1394_ISO_DEFER:
++ default:
++ break;
++
++ case RAW1394_ISO_ERROR:
++ return -1;
++
++ case RAW1394_ISO_STOP:
++ raw1394_iso_stop(handle);
++ return 0;
++ }
++
++ queue_recv_packets(handle);
++
++ return 0;
++}
++
++int raw1394_iso_recv_start(raw1394handle_t handle, int start_on_cycle,
++ int tag_mask, int sync)
++{
++ struct fw_cdev_start_iso start_iso;
++
++ queue_recv_packets(handle);
++
++ start_iso.cycle = start_on_cycle;
++ start_iso.tags =
++ tag_mask == -1 ? FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS : tag_mask;
++ /* sync is documented as 'not used' */
++ start_iso.sync = 0;
++ start_iso.handle = 0;
++
++ return ioctl(handle->iso.fd, FW_CDEV_IOC_START_ISO, &start_iso);
++}
++
++static int handle_iso_event(raw1394handle_t handle,
++ struct epoll_closure *closure, __uint32_t events)
++{
++ struct fw_cdev_event_iso_interrupt *interrupt;
++ int len;
++
++ len = read(handle->iso.fd, handle->buffer, sizeof handle->buffer);
++ if (len < 0)
++ return -1;
++
++ interrupt = (struct fw_cdev_event_iso_interrupt *) handle->buffer;
++ if (interrupt->type != FW_CDEV_EVENT_ISO_INTERRUPT)
++ return 0;
++
++ switch (handle->iso.type) {
++ case FW_CDEV_ISO_CONTEXT_TRANSMIT:
++ handle->iso.packet_count -= handle->iso.irq_interval;
++ return queue_xmit_packets(handle, handle->iso.buf_packets);
++ case FW_CDEV_ISO_CONTEXT_RECEIVE:
++ return flush_recv_packets(handle, interrupt);
++ default:
++ /* Doesn't happen. */
++ return -1;
++ }
++}
++
++int raw1394_iso_xmit_write(raw1394handle_t handle, unsigned char *data,
++ unsigned int len, unsigned char tag,
++ unsigned char sy)
++{
++ struct fw_cdev_queue_iso queue_iso;
++ struct fw_cdev_start_iso start_iso;
++ struct fw_cdev_iso_packet *p;
++
++ if (len > handle->iso.max_packet_size) {
++ errno = EINVAL;
++ return -1;
++ }
++
++ /* Block until we have space for another packet. */
++ while (handle->iso.packet_count + handle->iso.irq_interval >
++ handle->iso.buf_packets)
++ raw1394_loop_iterate(handle);
++
++ memcpy(handle->iso.head, data, len);
++ if (queue_packet(handle, len, 0, tag, sy) < 0)
++ return -1;
++
++ /* Start the streaming if it's not already running and if
++ * we've buffered up enough packets. */
++ if (handle->iso.prebuffer > 0 &&
++ handle->iso.packet_count >= handle->iso.prebuffer) {
++ /* Set this to 0 to indicate that we're running. */
++ handle->iso.prebuffer = 0;
++ start_iso.cycle = handle->iso.start_on_cycle;
++ start_iso.handle = 0;
++
++ len = ioctl(handle->iso.fd,
++ FW_CDEV_IOC_START_ISO, &start_iso);
++ if (len < 0)
++ return len;
++ }
++
++ return 0;
++}
++
++int raw1394_iso_xmit_sync(raw1394handle_t handle)
++{
++ struct fw_cdev_iso_packet skip;
++ struct fw_cdev_queue_iso queue_iso;
++ int len;
++
++ skip.payload_length = 0;
++ skip.interrupt = 1;
++ skip.skip = 1;
++ skip.tag = 0;
++ skip.sy = 0;
++ skip.header_length = 0;
++
++ queue_iso.packets = ptr_to_u64(&skip);
++ queue_iso.size = sizeof skip;
++ queue_iso.data = 0;
++ queue_iso.handle = 0;
++
++ len = ioctl(handle->iso.fd, FW_CDEV_IOC_QUEUE_ISO, &queue_iso);
++ if (len < 0)
++ return -1;
++
++ /* Now that we've queued the skip packet, we'll get an
++ * interrupt when the transmit buffer is flushed, so all we do
++ * here is wait. */
++ while (handle->iso.packet_count > 0)
++ raw1394_loop_iterate(handle);
++
++ /* The iso mainloop thinks that interrutps indicate another
++ * irq_interval number of packets was sent, so the skip
++ * interrupt makes it go out of whack. We just reset it. */
++ handle->iso.head = handle->iso.buffer;
++ handle->iso.tail = handle->iso.buffer;
++ handle->iso.first_payload = handle->iso.buffer;
++ handle->iso.packet_phase = 0;
++ handle->iso.packet_count = 0;
++
++ return 0;
++}
++
++int raw1394_iso_recv_flush(raw1394handle_t handle)
++{
++ /* FIXME: huh, we'll need kernel support here... */
++
++ return 0;
++}
++
++static unsigned int
++round_to_power_of_two(unsigned int value)
++{
++ unsigned int pot;
++
++ pot = 1;
++ while (pot < value)
++ pot <<= 1;
++
++ return pot;
++}
++
++static int
++iso_init(raw1394handle_t handle, int type,
++ raw1394_iso_xmit_handler_t xmit_handler,
++ raw1394_iso_recv_handler_t recv_handler,
++ unsigned int buf_packets,
++ unsigned int max_packet_size,
++ unsigned char channel,
++ enum raw1394_iso_speed speed,
++ int irq_interval)
++{
++ struct fw_cdev_create_iso_context create;
++ struct epoll_event ep;
++ int retval, prot;
++
++ if (handle->iso.fd != -1) {
++ errno = EBUSY;
++ return -1;
++ }
++
++ switch (type) {
++ case FW_CDEV_ISO_CONTEXT_TRANSMIT:
++ prot = PROT_READ | PROT_WRITE;
++ break;
++ case FW_CDEV_ISO_CONTEXT_RECEIVE:
++ prot = PROT_READ;
++ break;
++ default:
++ errno = EINVAL;
++ return -1;
++ }
++
++ handle->iso.type = type;
++ if (irq_interval < 0)
++ handle->iso.irq_interval = 256;
++ else
++ handle->iso.irq_interval = irq_interval;
++ handle->iso.xmit_handler = xmit_handler;
++ handle->iso.recv_handler = recv_handler;
++ handle->iso.buf_packets = buf_packets;
++ handle->iso.max_packet_size = round_to_power_of_two(max_packet_size);
++ handle->iso.packet_phase = 0;
++ handle->iso.packet_count = 0;
++ handle->iso.packets =
++ malloc(handle->iso.irq_interval * sizeof handle->iso.packets[0]);
++ if (handle->iso.packets == NULL)
++ return -1;
++
++ handle->iso.fd = open(handle->local_filename, O_RDWR);
++ if (handle->iso.fd < 0) {
++ free(handle->iso.packets);
++ return -1;
++ }
++
++ handle->iso.closure.func = handle_iso_event;
++ ep.events = EPOLLIN;
++ ep.data.ptr = &handle->iso.closure;
++ if (epoll_ctl(handle->epoll_fd, EPOLL_CTL_ADD,
++ handle->iso.fd, &ep) < 0) {
++ close(handle->iso.fd);
++ free(handle->iso.packets);
++ return -1;
++ }
++
++ create.type = type;
++ create.channel = channel;
++ create.speed = speed;
++ create.header_size = 4;
++
++ retval = ioctl(handle->iso.fd,
++ FW_CDEV_IOC_CREATE_ISO_CONTEXT, &create);
++ if (retval < 0) {
++ close(handle->iso.fd);
++ free(handle->iso.packets);
++ return retval;
++ }
++
++ handle->iso.buffer =
++ mmap(NULL, buf_packets * max_packet_size,
++ prot, MAP_SHARED, handle->iso.fd, 0);
++
++ if (handle->iso.buffer == MAP_FAILED) {
++ close(handle->iso.fd);
++ free(handle->iso.packets);
++ return -1;
++ }
++
++ handle->iso.buffer_end = handle->iso.buffer +
++ buf_packets * max_packet_size;
++ handle->iso.head = handle->iso.buffer;
++ handle->iso.tail = handle->iso.buffer;
++ handle->iso.first_payload = handle->iso.buffer;
++
++ return 0;
++}
++
++int raw1394_iso_xmit_init(raw1394handle_t handle,
++ raw1394_iso_xmit_handler_t handler,
++ unsigned int buf_packets,
++ unsigned int max_packet_size,
++ unsigned char channel,
++ enum raw1394_iso_speed speed,
++ int irq_interval)
++{
++ return iso_init(handle, FW_CDEV_ISO_CONTEXT_TRANSMIT,
++ handler, NULL, buf_packets, max_packet_size,
++ channel, speed, irq_interval);
++}
++
++int raw1394_iso_recv_init(raw1394handle_t handle,
++ raw1394_iso_recv_handler_t handler,
++ unsigned int buf_packets,
++ unsigned int max_packet_size,
++ unsigned char channel,
++ enum raw1394_iso_dma_recv_mode mode,
++ int irq_interval)
++{
++ return iso_init(handle, FW_CDEV_ISO_CONTEXT_RECEIVE,
++ NULL, handler, buf_packets, max_packet_size,
++ channel, 0, irq_interval);
++}
++
++int raw1394_iso_multichannel_recv_init(raw1394handle_t handle,
++ raw1394_iso_recv_handler_t handler,
++ unsigned int buf_packets,
++ unsigned int max_packet_size,
++ int irq_interval)
++{
++ /* FIXME: gah */
++ errno = ENOSYS;
++ return -1;
++}
++
++int raw1394_iso_recv_listen_channel(raw1394handle_t handle,
++ unsigned char channel)
++{
++ /* FIXME: multichannel */
++ errno = ENOSYS;
++ return -1;
++}
++
++int raw1394_iso_recv_unlisten_channel(raw1394handle_t handle,
++ unsigned char channel)
++{
++ /* FIXME: multichannel */
++ errno = ENOSYS;
++ return -1;
++}
++
++int raw1394_iso_recv_set_channel_mask(raw1394handle_t handle, u_int64_t mask)
++{
++ /* FIXME: multichannel */
++ errno = ENOSYS;
++ return -1;
++}
++
++void raw1394_iso_stop(raw1394handle_t handle)
++{
++ struct fw_cdev_stop_iso stop_iso;
++
++ stop_iso.handle = 0;
++ ioctl(handle->iso.fd, FW_CDEV_IOC_STOP_ISO);
++
++ handle->iso.head = handle->iso.buffer;
++ handle->iso.tail = handle->iso.buffer;
++ handle->iso.first_payload = handle->iso.buffer;
++ handle->iso.packet_phase = 0;
++ handle->iso.packet_count = 0;
++}
++
++void raw1394_iso_shutdown(raw1394handle_t handle)
++{
++ munmap(handle->iso.buffer,
++ handle->iso.buf_packets * handle->iso.max_packet_size);
++ close(handle->iso.fd);
++ free(handle->iso.packets);
++}
+diff -Naurp libraw1394-1.3.0.orig/Makefile.am libraw1394-1.3.0/Makefile.am
+--- libraw1394-1.3.0.orig/Makefile.am 2004-11-05 19:26:44.000000000 -0500
++++ libraw1394-1.3.0/Makefile.am 2007-10-18 22:18:46.000000000 -0400
+@@ -1,6 +1,7 @@
+ # process this file with automake to create a Makefile.in
+
+-SUBDIRS = src tools doc debian
++SUBDIRS = $(LIB_SUBDIR) tools doc debian
++DIST_SUBDIRS = src juju
+
+ pkgconfigdir = @libdir@/pkgconfig
+ pkgconfig_DATA = libraw1394.pc
+diff -Naurp libraw1394-1.3.0.orig/tools/Makefile.am libraw1394-1.3.0/tools/Makefile.am
+--- libraw1394-1.3.0.orig/tools/Makefile.am 2004-11-05 19:26:44.000000000 -0500
++++ libraw1394-1.3.0/tools/Makefile.am 2007-10-18 22:18:46.000000000 -0400
@@ -2,4 +2,4 @@ MAINTAINERCLEANFILES = Makefile.in
# testlibraw
bin_PROGRAMS = testlibraw sendiso dumpiso
-LDADD = ../src/libraw1394.la
+LDADD = ../$(LIB_SUBDIR)/libraw1394.la
-diff --git a/tools/testlibraw.c b/tools/testlibraw.c
-index 5f73bd9..2f02a6d 100644
---- a/tools/testlibraw.c
-+++ b/tools/testlibraw.c
+diff -Naurp libraw1394-1.3.0.orig/tools/testlibraw.c libraw1394-1.3.0/tools/testlibraw.c
+--- libraw1394-1.3.0.orig/tools/testlibraw.c 2004-01-31 15:26:03.000000000 -0500
++++ libraw1394-1.3.0/tools/testlibraw.c 2007-10-18 22:18:46.000000000 -0400
@@ -1,4 +1,5 @@
-/*
+/* -*- c-basic-offset: 8 -*-
@@ -2225,7 +2214,7 @@ index 5f73bd9..2f02a6d 100644
const char not_compatible[] = "\
This libraw1394 does not work with your version of Linux. You need a different\n\
-@@ -45,12 +47,18 @@ int my_tag_handler(raw1394handle_t handle, unsigned long tag,
+@@ -45,12 +47,18 @@ int my_tag_handler(raw1394handle_t handl
return 0;
}
@@ -2244,7 +2233,7 @@ index 5f73bd9..2f02a6d 100644
while (length) {
printf(" %02x", *data);
data++;
-@@ -62,6 +70,47 @@ int my_fcp_handler(raw1394handle_t handle, nodeid_t nodeid, int response,
+@@ -62,6 +70,47 @@ int my_fcp_handler(raw1394handle_t handl
return 0;
}
diff --git a/libraw1394-underquoted.patch b/libraw1394-underquoted.patch
deleted file mode 100644
index a1e677d..0000000
--- a/libraw1394-underquoted.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- libraw1394-0.10.1/libraw1394.m4.underquoted 2004-07-15 12:59:11.467143881 +0100
-+++ libraw1394-0.10.1/libraw1394.m4 2004-07-15 12:59:57.705291918 +0100
-@@ -3,7 +3,7 @@
- dnl This just unconditionally sets the options. It should offer an option for
- dnl explicitly giving the path to libraw1394 on the configure command line.
- dnl
--AC_DEFUN(AC_LIB_RAW1394_FLAGS, [
-+AC_DEFUN([AC_LIB_RAW1394_FLAGS], [
- LIBRAW1394_CPPFLAGS=""
- LIBRAW1394_CFLAGS=""
- LIBRAW1394_LIBS="-lraw1394"
-@@ -16,7 +16,7 @@
- dnl
- dnl AC_LIB_RAW1394_HEADERS([ACTION_IF_FOUND[,ACTION_IF_NOT_FOUND]])
- dnl
--AC_DEFUN(AC_LIB_RAW1394_HEADERS, [
-+AC_DEFUN([AC_LIB_RAW1394_HEADERS], [
- AC_REQUIRE([AC_LIB_RAW1394_FLAGS])
-
- ac_libraw1394_save_cppflags=$CPPFLAGS
-@@ -38,7 +38,7 @@
- dnl
- dnl AC_LIB_RAW1394_LIBVERSION(MINIMUMVERSION[,ACTION_IF_FOUND[,ACTION_IF_NOT_FOUND]])
- dnl
--AC_DEFUN(AC_LIB_RAW1394_LIBVERSION, [
-+AC_DEFUN([AC_LIB_RAW1394_LIBVERSION], [
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_LIB_RAW1394_FLAGS])
-
-@@ -72,7 +72,7 @@
- dnl
- dnl AC_LIB_RAW1394_RUNTEST(MINIMUMVERSION[,ACTION_IF_FOUND
- dnl [,ACTION_IF_NOT_FOUND[,ACTION_IF_CROSS_COMPILING]]])
--AC_DEFUN(AC_LIB_RAW1394_RUNTEST, [
-+AC_DEFUN([AC_LIB_RAW1394_RUNTEST], [
- ac_libraw1394_save_cppflags=$CPPFLAGS
- ac_libraw1394_save_cflags=$CFLAGS
- ac_libraw1394_save_libs=$LIBS
-@@ -135,7 +135,7 @@
- dnl Versions before 0.9 can't be checked, so this will always fail if the
- dnl installed libraw1394 is older than 0.9 as if the library weren't found.
- dnl
--AC_DEFUN(AC_LIB_RAW1394, [
-+AC_DEFUN([AC_LIB_RAW1394], [
-
- AC_LIB_RAW1394_FLAGS
- AC_LIB_RAW1394_HEADERS(ac_libraw1394_found=yes, ac_libraw1394_found=no)
diff --git a/libraw1394.spec b/libraw1394.spec
index ed7b49a..c12b991 100644
--- a/libraw1394.spec
+++ b/libraw1394.spec
@@ -1,7 +1,7 @@
Summary: Library providing low-level IEEE-1394 access
Name: libraw1394
-Version: 1.2.1
-Release: 10%{?dist}
+Version: 1.3.0
+Release: 1%{?dist}
License: LGPL
Group: System Environment/Libraries
Source: http://www.linux1394.org/dl/libraw1394-%{version}.tar.gz
@@ -77,6 +77,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Thu Oct 18 2007 Jarod Wilson - 1.3.0-1
+- libraw1394 v1.3.0
+
* Wed Aug 29 2007 Fedora Release Engineering - 1.2.1-10
- Rebuild for selinux ppc32 issue.
diff --git a/sources b/sources
index 09a25fe..23e349f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-e6210ff05b7f4ec0401ad3d11f493e1a libraw1394-1.2.1.tar.gz
+c5d9ab62bd25dba96af010b3471e816a libraw1394-1.3.0.tar.gz