Bug 244129

Summary: Support for old iso API removed, breaks other libs like libdc1394
Product: [Fedora] Fedora Reporter: Kyle <heathbar82>
Component: libraw1394Assignee: Jarod Wilson <jarod>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: mefoster, stefan-r-rhbz
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-07-18 17:35:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kyle 2007-06-14 00:21:33 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.4) Gecko/20070603 Fedora/2.0.0.4-2.fc7 Firefox/2.0.0.4

Description of problem:
libraw1394 has marked part of the API as deprecated, but other libraries still use these functions so they have been retained in the latest src distribution 1.2.0 for compatibility.  Yet the rpm distributed for fedora 7 does not include the deprecated functions.  Other libs depend on this older API like libdc1394 (version 1) and give "undefined reference" errors for the missing functions. 



Version-Release number of selected component (if applicable):
libraw1394 1.2.1-7.fc7

How reproducible:
Always


Steps to Reproduce:
1. Get a fedora 7 x86_64 install and yum install libraw1394 
2. Download src for libdc1394 (v1 not v2)
3. Try to compile

Actual Results:


gcc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
-m64 -mtune=generic -Wall -Wunused -MT affine.o -MD -MP -MF ".deps/affine.Tpo"
-c -o affine.o affine.c; \
        then mv -f ".deps/affine.Tpo" ".deps/affine.Po"; else rm -f
".deps/affine.Tpo"; exit 1; fi
/bin/sh ../libtool --tag=CC --mode=link gcc  -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
-m64 -mtune=generic -Wall -Wunused   -o dc1394_vloopback  dc1394_vloopback.o
affine.o -lm ../libdc1394/libdc1394_control.la -lraw1394 -lraw1394
mkdir .libs
DIE_RPATH_DIE="/usr/lib64:$DIE_RPATH_DIE" gcc -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
-m64 -mtune=generic -Wall -Wunused -o .libs/dc1394_vloopback dc1394_vloopback.o
affine.o  -lm ../libdc1394/.libs/libdc1394_control.so -lraw1394
../libdc1394/.libs/libdc1394_control.so: undefined reference to
`raw1394_set_iso_handler'
../libdc1394/.libs/libdc1394_control.so: undefined reference to
`raw1394_stop_iso_rcv'
../libdc1394/.libs/libdc1394_control.so: undefined reference to
`raw1394_start_iso_rcv'
collect2: ld returned 1 exit status

Expected Results:
The libraw1394.so should contain the missing symbols (`raw1394_stop_iso_rcv' , etc...) but it doesn't.

Additional info:
I downloaded the libraw1394 1.2.0 src from SF and compiled which gives a lib that does include the symbols missing from the fedora 7 rpm 

It seems that the rpm version of the lib should not change the API from the source version of the lib.

Comment 1 Stefan Richter 2007-06-22 15:09:18 UTC
AFAIK libdc1394 v1 can use either this deprecated 1st generation isochronous API
of libraw1394 or the video1394 driver ABI.  Neither of these is directly
supported by the new fw-core driver.  But the libdc1394 v2 prerelease has been
adapted to fw-core.  See also bug 239043 and bug 239184.  BTW, we plan for
upstream linux kernel to remove runtime support of libraw1349's deprecated API
parts from the old FireWire stack.

Comment 2 Jarod Wilson 2007-07-18 17:35:33 UTC
Given that the old API is going away entirely anyhow, and libdc1394 v2 works
with the new stack, I don't think committing time and effort to the old
libdc1394 is particularly wise. Such time would be better spent on v2 and other
improvements to the new stack and interfaces.

Comment 3 Mary Ellen Foster 2008-11-04 10:08:16 UTC
Sorry, jumping in late -- the issue is, the header files still indicate that the library provides the deprecated functions, while the functions themselves aren't defined in the .so file. So instead of nice errors like "no such function", you instead get obscure link-time errors like this (while I tried to compile libdc1394 version 1 just now):
../libdc1394/.libs/libdc1394_control.so: undefined reference to `raw1394_set_iso_handler'
../libdc1394/.libs/libdc1394_control.so: undefined reference to `raw1394_stop_iso_rcv'
../libdc1394/.libs/libdc1394_control.so: undefined reference to `raw1394_start_iso_rcv'

It might be best to remove the function headers from the .h file as well if the functions have actually truly been removed.

Comment 4 Stefan Richter 2008-11-04 14:11:58 UTC
These declarations do not exist in the header files of vanilla libraw1394 v2.0.0. (This is the first upstream version which does not provide these functions anymore.)

Check if you have the latest Fedora libraw1394 (-devel, I presume) package installed.

Comment 5 Mary Ellen Foster 2008-11-04 14:26:05 UTC
I'm running Fedora 9, and I have libraw1394-devel-1.3.0-7.fc9.i386 (and the corresponding non-devel package). Is 2.0 only in Rawhide, or is my computer messed up somehow?

Comment 6 Stefan Richter 2008-11-04 18:04:54 UTC
My guess is that libraw1394 v2 is only in rawhide and in the F10 preview.  (I don't have Fedora installed myself.)

Jarod, if you think this header bug should still be fixed in F9, then I think a straight diff from F9's raw1394.h to v2's raw1394.h should be safe to apply to F9's libraw1394-devel package.  This diff contains the removal of the old iso functions and a few documentation fixes.  Or only take the src/raw1394.h part of http://dennedy.org/cgi-bin/gitweb.cgi?p=dennedy.org/libraw1394.git;a=commit;h=0ea462ae9895ca903c8d3134910c06e1869560c4  i.e. http://dennedy.org/cgi-bin/gitweb.cgi?p=dennedy.org/libraw1394.git;a=blobdiff_plain;f=src/raw1394.h;fp=src/raw1394.h;h=d59b1b2210f3c45ab860d017585f9d7134453913;hp=89e601f33a644ffaa47486557d109227fae25258;hb=0ea462ae9895ca903c8d3134910c06e1869560c4;hpb=919e3999366a8a69f0ad706247004b1568d86841

Comment 7 Jarod Wilson 2008-12-05 21:27:21 UTC
Gah. No, this never got fixed in F9, which is still libraw1394 1.3.0-based. Yeah, I suppose I should fix that header up.