Bug 693029

Summary: cannot build sane-backends in current fedora due to v4l header conflict
Product: [Fedora] Fedora Reporter: John Heidemann <johnh>
Component: sane-backendsAssignee: Nils Philippsen <nphilipp>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 14CC: nphilipp
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: sane-backends-1.0.22-1.fc14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-04-12 21:30:52 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:
Attachments:
Description Flags
patch to deconflict v4l headers none

Description John Heidemann 2011-04-02 05:23:07 UTC
Description of problem:

sane-backends-1.0.21-6.fc14.src.rpm
doesn't build due to a conflict between an internal and a system v4l header.


Version-Release number of selected component (if applicable):
sane-backends-1.0.21-6.fc14.src.rpm
libv4l-devel-0.8.3-2.fc14.i686

How reproducible:
every time


Steps to Reproduce:
1. rpm install sane-backends-1.0.21-6.fc14.src.rpm
2. rpmbuild -ba SPECS/sane-backends.spec
3. weap
  
Actual results:

/bin/sh ../libtool --silent  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include/sane -I/usr/local/include -I. -I. -I../include -I../include -DLIBDIR="/usr/lib/sane"   -DBACKEND_NAME=v4l -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/etc/sane.d 	  -DPATH_SANE_DATA_DIR=/usr/share 	  -DPATH_SANE_LOCK_DIR=/var/lock/sane 	  -DV_MAJOR=1 -DV_MINOR=0  -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fno-strict-aliasing -W -c -o libv4l_la-v4l.lo `test -f 'v4l.c' || echo './'`v4l.c
In file included from /usr/include/libv4l1.h:29:0,
                 from v4l.c:89:
/usr/include/libv4l1-videodev.h:23:8: error: redefinition of 'struct video_capability'
v4l.h:50:8: note: originally defined here
/usr/include/libv4l1-videodev.h:36:8: error: redefinition of 'struct video_channel'
v4l.h:122:8: note: originally defined here
/usr/include/libv4l1-videodev.h:72:8: error: redefinition of 'struct video_picture'
v4l.h:62:8: note: originally defined here
/usr/include/libv4l1-videodev.h:130:8: error: redefinition of 'struct video_window'
v4l.h:91:8: note: originally defined here
/usr/include/libv4l1-videodev.h:153:8: error: redefinition of 'struct video_mmap'
v4l.h:115:8: note: originally defined here
/usr/include/libv4l1-videodev.h:160:8: error: redefinition of 'struct video_mbuf'
v4l.h:108:8: note: originally defined here
make[2]: *** [libv4l_la-v4l.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
umax_pp_low.c: In function 'sanei_umax_pp_startScan':
umax_pp_low.c:10985:7: warning: 'dcRed' may be used uninitialized in this function
umax_pp_low.c:10985:23: warning: 'dcBlue' may be used uninitialized in this function
make[2]: Leaving directory `/home/johnh/rpmbuild/BUILD/sane-backends-1.0.21/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/johnh/rpmbuild/BUILD/sane-backends-1.0.21/backend'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.rO4GEb (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.rO4GEb (%build)


Expected results:

no compile errors and a working rpm in RPMS/*

Additional info:

I have a patch to work around the bug.

Comment 1 John Heidemann 2011-04-02 05:28:00 UTC
Created attachment 489544 [details]
patch to deconflict v4l headers

The attached patch comments out enough of the component's v4l.h to make it build without error.

I did NOT verify that the v4l driver actually works.
(See Ubuntu discussion about disabling v4l in sane:
https://bugs.launchpad.net/ubuntu/+source/sane-backends/+bug/87312
about which I would agree).

The attached patch was actually made against sane-backends-1.0.22,
but it should apply on 1.0.21.

Of course, you're encouraged to roll forward to 1.0.22 so you can also support 
the Canon LiDE 210 scanner, if you want.

Comment 2 Fedora Update System 2011-04-04 10:14:30 UTC
sane-backends-1.0.22-1.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/sane-backends-1.0.22-1.fc14

Comment 3 Fedora Update System 2011-04-12 21:30:34 UTC
sane-backends-1.0.22-1.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.