rpms/libiec61883/F-10 libiec61883-1.2.0-installtests.patch, NONE, 1.1 libiec61883-channel-allocation-without-local-node-rw.patch, NONE, 1.1 libiec61883.spec, 1.15, 1.16 sources, 1.3, 1.4 libiec61883-1.1.0-installtests.patch, 1.1, NONE

Jarod Wilson jwilson at fedoraproject.org
Thu Jan 15 16:04:09 UTC 2009


Author: jwilson

Update of /cvs/pkgs/rpms/libiec61883/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv31678

Modified Files:
	libiec61883.spec sources 
Added Files:
	libiec61883-1.2.0-installtests.patch 
	libiec61883-channel-allocation-without-local-node-rw.patch 
Removed Files:
	libiec61883-1.1.0-installtests.patch 
Log Message:
* Thu Jan 15 2009 Jarod Wilson <jarod at redhat.com> 1.2.0-1
- Update to libiec61883 v1.2.0 release
- Rework installtests patch to not require autoreconf
- Make iso channel allocation work w/o local fw node r/w


libiec61883-1.2.0-installtests.patch:

--- NEW FILE libiec61883-1.2.0-installtests.patch ---
diff -Naurp libiec61883-1.2.0.orig/examples/Makefile.am libiec61883-1.2.0/examples/Makefile.am
--- libiec61883-1.2.0.orig/examples/Makefile.am	2006-09-24 15:34:12.000000000 -0400
+++ libiec61883-1.2.0/examples/Makefile.am	2009-01-15 10:29:02.265594991 -0500
@@ -1,6 +1,6 @@
 
-noinst_PROGRAMS = test-amdtp test-dv test-mpeg2 test-plugs
-bin_PROGRAMS = plugreport plugctl
+noinst_PROGRAMS =
+bin_PROGRAMS = plugreport plugctl test-amdtp test-dv test-mpeg2 test-plugs
 man_MANS = plugreport.1 plugctl.1
 EXTRA_DIST = plugreport.1 plugctl.1
 
diff -Naurp libiec61883-1.2.0.orig/examples/Makefile.in libiec61883-1.2.0/examples/Makefile.in
--- libiec61883-1.2.0.orig/examples/Makefile.in	2009-01-15 01:33:33.000000000 -0500
+++ libiec61883-1.2.0/examples/Makefile.in	2009-01-15 10:28:57.088402078 -0500
@@ -32,9 +32,10 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = test-amdtp$(EXEEXT) test-dv$(EXEEXT) \
+noinst_PROGRAMS =
+bin_PROGRAMS = plugreport$(EXEEXT) plugctl$(EXEEXT) \
+	test-amdtp$(EXEEXT) test-dv$(EXEEXT) \
 	test-mpeg2$(EXEEXT) test-plugs$(EXEEXT)
-bin_PROGRAMS = plugreport$(EXEEXT) plugctl$(EXEEXT)
 subdir = examples
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4

libiec61883-channel-allocation-without-local-node-rw.patch:

--- NEW FILE libiec61883-channel-allocation-without-local-node-rw.patch ---
Date: Thu, 15 Jan 2009 15:41:16 +0100 (CET)
From: Stefan Richter <stefanr at s5r6.in-berlin.de>
Subject: [PATCH libiec61883] cmp: replace open-coded channel allocation by
	raw1394_channel_modify
To: Dan Dennedy <dan at dennedy.org>
Cc: linux1394-devel at lists.sourceforge.net

On 15 Jan, Dan Dennedy wrote:
> On Thu, Jan 1, 2009 at 5:13 AM, Stefan Richter
> <stefanr at s5r6.in-berlin.de> wrote:
>> input plug register on the local node?  AFAICT neither dvgrab nor kino
>> use raw1394_channel_modify and raw1394_bandwidth_modify, not even
>> through libiec61883.)
> 
> dvgrab indirectly uses channel_modify when you use its -guid option to
> establish a point-to-point connection.
> 

Hmm.

$ dvgrab -guid 0x008088030960484b
libiec61883 error: Failed to get channels available.
Established connection over channel 63
[...proceeds with capture...]


--------------------------------- 8< ---------------------------------

cmp: replace open-coded channel allocation by raw1394_channel_modify

The benefit is that it works on kernel 2.6.30 firewire-core without
write permission to the IRM's device file (provided that libraw1394 is
extended for 2.6.30 ioctls too, otherwise it still needs access to the
IRM's file).

If I read the code correctly, iec61883_cmp_normalize_output doesn't care
whether the channel was already allocated by somebody else; it only
cares that the channel is allocated.  That's what the new code does too.
---
 src/cmp.c |   56 +++++++++---------------------------------------------
 1 file changed, 10 insertions(+), 46 deletions(-)

Index: libiec61883-1.2.0/src/cmp.c
===================================================================
--- libiec61883-1.2.0.orig/src/cmp.c
+++ libiec61883-1.2.0/src/cmp.c
@@ -973,55 +973,19 @@ iec61883_cmp_normalize_output (raw1394ha
 
 	DEBUG ("iec61883_cmp_normalize_output: node %d\n", (int) node & 0x3f);
 
-	// Check for plugs on output
+	/* Check for plugs on output */
 	result = iec61883_get_oMPR (handle, node, &ompr);
 	if (result < 0)
 		return result;
 	
-	// locate an ouput plug that has a connection
-	for (oplug = 0; oplug < ompr.n_plugs; oplug++) {
-		if (iec61883_get_oPCRX (handle, node, &opcr, oplug) == 0) {
-			if (opcr.online && (opcr.n_p2p_connections > 0 || 
-				                opcr.bcast_connection == 1)) {
+	/* Locate an ouptut plug that has a connection,
+	 * make sure the plug's channel is allocated with IRM */
+	for (oplug = 0; oplug < ompr.n_plugs; oplug++)
+		if (iec61883_get_oPCRX (handle, node, &opcr, oplug) == 0
+		    && opcr.online
+		    && (opcr.n_p2p_connections > 0 || opcr.bcast_connection == 1)
+		    && raw1394_channel_modify (handle, opcr.channel, RAW1394_MODIFY_ALLOC) < 0)
+			DEBUG ("Channel %d already allocated, or can't reach IRM", opcr.channel);
 
-				// Make sure the plug's channel is allocated with IRM
-				quadlet_t buffer;
-				nodeaddr_t addr = CSR_REGISTER_BASE;
-				unsigned int c = opcr.channel;
-				quadlet_t compare, swap = 0;
-				quadlet_t new;
-				
-				if (c > 31 && c < 64) {
-					addr += CSR_CHANNELS_AVAILABLE_LO;
-					c -= 32;
-				} else if (c < 64)
-					addr += CSR_CHANNELS_AVAILABLE_HI;
-				else
-					FAIL ("Invalid channel");
-				c = 31 - c;
-
-				result = iec61883_cooked_read (handle, raw1394_get_irm_id (handle), addr, 
-					sizeof (quadlet_t), &buffer);
-				if (result < 0)
-					FAIL ("Failed to get channels available.");
-				
-				buffer = ntohl (buffer);
-				DEBUG ("channels available before: 0x%08x", buffer);
-
-				if ((buffer & (1 << c)) != 0) {
-					swap = htonl (buffer & ~(1 << c));
-					compare = htonl (buffer);
-
-					result = raw1394_lock (handle, raw1394_get_irm_id (handle), addr,
-							   EXTCODE_COMPARE_SWAP, swap, compare, &new);
-					if ( (result < 0) || (new != compare) ) {
-						FAIL ("Failed to modify channel %d", opcr.channel);
-					}
-					DEBUG ("channels available after: 0x%08x", ntohl (swap));
-				}
-			}
-		}
-	}
-		
-	return result;
+	return 0;
 }

-- 
Stefan Richter
-=====-==--= ---= -====
http://arcgraph.de/sr/


Index: libiec61883.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libiec61883/F-10/libiec61883.spec,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- libiec61883.spec	22 Jul 2008 19:24:01 -0000	1.15
+++ libiec61883.spec	15 Jan 2009 16:03:39 -0000	1.16
@@ -1,18 +1,18 @@
 Summary:        Streaming library for IEEE1394
 Name:           libiec61883
-Version:        1.1.0
-Release:        5%{?dist}
+Version:        1.2.0
+Release:        1%{?dist}
 License:        LGPLv2+
 Group:          System Environment/Libraries
 Source:         http://linux1394.org/dl/%{name}-%{version}.tar.gz
-Patch:          libiec61883-1.1.0-installtests.patch
+Patch0:         libiec61883-1.2.0-installtests.patch
+Patch1:         libiec61883-channel-allocation-without-local-node-rw.patch
 URL:            http://linux1394.org
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
 ExcludeArch:    s390 s390x
 
 # Works only with newer libraw1394 versions
 BuildRequires:  libraw1394-devel >= 1.2.1
-BuildRequires:  autoconf, automake, libtool
 Requires:       libraw1394 >= 1.2.1
 
 %description
@@ -42,10 +42,10 @@
 
 %prep
 %setup -q
-%patch -p1 -b .installtests
+%patch0 -p1
+%patch1 -p1
 
 %build
-autoreconf
 export CFLAGS="$RPM_OPT_FLAGS"
 %configure
 make %{?_smp_mflags}
@@ -81,32 +81,37 @@
 %{_mandir}/man1/*.1*
 
 %changelog
+* Thu Jan 15 2009 Jarod Wilson <jarod at redhat.com> 1.2.0-1
+- Update to libiec61883 v1.2.0 release
+- Rework installtests patch to not require autoreconf
+- Make iso channel allocation work w/o local fw node r/w
+
 * Tue Jul 22 2008 Jarod Wilson <jwilson at redhat.com> 1.1.0-5
 - Bump and rebuild for libraw1394 v2.0.0
 
-* Thu Feb 14 2008 Jarod Wilson <jwilson at redhat.com> - 1.1.0-4
+* Thu Feb 14 2008 Jarod Wilson <jwilson at redhat.com> 1.1.0-4
 - Bump and rebuild with gcc 4.3
 
-* Wed Dec 19 2007 Jarod Wilson <jwilson at redhat.com> - 1.1.0-3
+* Wed Dec 19 2007 Jarod Wilson <jwilson at redhat.com> 1.1.0-3
 - Fix license and group tags (#411201)
 - Clean up spacing and macro/var inconsistency
 
-* Mon Mar 26 2007 Jarod Wilson <jwilson at redhat.com> - 1.1.0-2
+* Mon Mar 26 2007 Jarod Wilson <jwilson at redhat.com> 1.1.0-2
 - Own created directories (#233865)
 
-* Wed Oct 25 2006 Jarod Wilson <jwilson at redhat.com> - 1.1.0-1
+* Wed Oct 25 2006 Jarod Wilson <jwilson at redhat.com> 1.1.0-1
 - Update to 1.1.0 release
 
-* Wed Oct 11 2006 Jarod Wilson <jwilson at redhat.com> - 1.0.0-11
+* Wed Oct 11 2006 Jarod Wilson <jwilson at redhat.com> 1.0.0-11
 - Use %%dist tag
 
-* Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> - 1.0.0-10.fc5.2.1
+* Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> 1.0.0-10.fc5.2.1
 - rebuild
 
-* Fri Feb 10 2006 Jesse Keating <jkeating at redhat.com> - 1.0.0-10.fc5.2
+* Fri Feb 10 2006 Jesse Keating <jkeating at redhat.com> 1.0.0-10.fc5.2
 - bump again for double-long bug on ppc(64)
 
-* Tue Feb 07 2006 Jesse Keating <jkeating at redhat.com> - 1.0.0-10.fc5.1
+* Tue Feb 07 2006 Jesse Keating <jkeating at redhat.com> 1.0.0-10.fc5.1
 - rebuilt for new gcc4.1 snapshot and glibc changes
 
 * Fri Dec 30 2005 Jarod Wilson <jarod at wilsonet.com> 1.0.0-10


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/libiec61883/F-10/sources,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- sources	25 Oct 2006 17:18:29 -0000	1.3
+++ sources	15 Jan 2009 16:03:39 -0000	1.4
@@ -1 +1 @@
-08f46840912ae2032499186228842a32  libiec61883-1.1.0.tar.gz
+8af39fff74988073c3ad53fbab147da9  libiec61883-1.2.0.tar.gz


--- libiec61883-1.1.0-installtests.patch DELETED ---




More information about the fedora-extras-commits mailing list