Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 361705

Summary: media-video/kino 1.3.3 fails to build without v4l
Product: Gentoo Linux Reporter: James <cctsurf>
Component: Current packagesAssignee: Denis Dupeyron (RETIRED) <calchan>
Status: RESOLVED FIXED    
Severity: normal CC: bircoph, egorov_egor, gibgibon, jcwren, Martin.vGagern, media-video, pva, silvio.gerli
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 290766    
Bug Blocks: 359595    
Attachments: Kino-1.3.3 build log
kino-1.3.3-v4l1.patch
kino-1.3.3.ebuild.patch

Description James 2011-04-02 18:44:43 UTC
Created attachment 268235 [details]
Kino-1.3.3 build log

I believe it is in relation to the linux-headers-2.6.38 removal of v4l1, it dies with a lack of linux/videodev.h

On a related note, there is a new version 1.3.4, however, it does not fix the problem.
Thanks in Advance,
cctsurf

emerge --info kino
Portage 2.1.9.45 (!/usr/portage/profiles/default/linux/amd64/10.0/desktop/kde/, gcc-4.5.2, glibc-2.13-r2, 2.6.38-gentoo-r1 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.38-gentoo-r1-x86_64-AMD_Phenom-tm-_II_X4_840_Processor-with-gentoo-2.0.2
Timestamp of tree: Sat, 02 Apr 2011 13:15:01 +0000
distcc 3.1 x86_64-pc-linux-gnu [disabled]
ccache version 3.1.4 [enabled]
app-shells/bash:     4.2_p8
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.7.1-r1, 3.1.3-r1
dev-util/ccache:     3.1.4
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.4_p6-r1, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* PUEL"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=amdfam10 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=amdfam10 -O2 -pipe"
DISTDIR="/mnt/nfs_portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FEATURES="assume-digests binpkg-logs ccache distlocks fixlafiles fixpackages metadata-transfer news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://gentoo.netnitco.net http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://gentoo.mirrors.tds.net/gentoo http://www.cyberuse.com/gentoo/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j3"
PKGDIR="/mnt/nfs_portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/mnt/nfs_portage"
PORTDIR_OVERLAY="/var/lib/layman/mozilla /var/lib/layman/x11 /var/lib/layman/piczu /var/lib/layman/gamerlay /var/lib/layman/mt-mythtv /var/lib/layman/kde /var/lib/layman/sunrise /var/lib/layman/arduino /usr/local/portage"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 audiofile avahi avi bluetooth branding bzip2 cairo ccache cdda cddb cdio cdr cdrkit cli consolekit cracklib crypt css cups cxx dbus divx4linux dlloader dri dts dv dvb dvd dvdnav dvdr dvdread emboss enca encode exif extras fam ffmpeg firefox flac fortran gdbm gif gimp glut gpm gtk gzip iconv ieee1394 imagemagick java jpeg json kde kerberos kontact ladspa lame lcms ldap libnotify live lm_sensors lv2 mad melt midi mikmod mjpeg mmx mmx2 mmxext mng modules mp2 mp3 mp4 mpeg mplayer mpm-worker mtp mudflap multilib musepack mythtv ncurses nls nptl nptlonly nsplugin nvidia ogg oggvorbis openal opengl openmp pam pango pcre pda pdf pdflib perl plasma png policykit posix ppds pppd pulseaudio python qt3support qt4 readline reflection scanner sdl semantic-desktop session smp sockets spell spl srt sse sse2 ssl startup-notification subtitles svg swat sysfs szip tcpd theora threads tiff truetype unicode usb vcd vim-syntax vorbis webkit wxwidgets x264 xanim xcb xine xinerama xml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="hda_intel usb_audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18" SANE_BACKENDS="hp umax" USERLAND="GNU" VIDEO_CARDS="nvidia vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

media-video/kino-1.3.3 was built with the following:
USE="alsa dvdr lame (multilib) vorbis -gpac -gstreamer -quicktime -sox"
CFLAGS="-march=k8 -O2 -pipe"
CXXFLAGS="-march=k8 -O2 -pipe"
Comment 1 James 2011-05-06 21:58:23 UTC
It appears that Ubuntu has, instead of linking to videodev.h which no longer exists, is linking to libv4l1-videodev.h, which is a part of the media-libs/libv4l package...  Until such a time as there is a better patch, I would suggest that we might do this temporarily as well...  It would add another dependency for kopete, but then we could build it...
I don't have time right now to try this, but will attempt soon if noone else can,
Comment 2 Andrew Savchenko gentoo-dev 2011-05-16 22:47:51 UTC
Created attachment 273525 [details, diff]
kino-1.3.3-v4l1.patch

Use media-libs/libv4l header as James suggested.
Comment 3 Andrew Savchenko gentoo-dev 2011-05-16 22:49:45 UTC
Created attachment 273527 [details, diff]
kino-1.3.3.ebuild.patch

Apply patch above only for kernels >= 2.6.38.

Unfortunately there is no sane way to make media-libs/libv4l dependecy present only when new kernel is used.
Comment 4 Martin von Gagern 2011-05-21 09:36:38 UTC
(In reply to comment #3)
> Unfortunately there is no sane way to make media-libs/libv4l dependecy present
> only when new kernel is used.

It's not the kernel that matters at compile time, it's linux-headers.
So you could depend on
  || ( <sys-kernel/linux-headers-2.6.38 media-libs/libv4l )
and have the ebuild apply the patch unless
  has_version '<sys-kernel/linux-headers-2.6.38'
is true.

I wonder whether referencing that header is really enough. We should probably link to v4l1compat.so in order to provide a v4l1 layer even if the kernel has none. In that case, the runtime setup of the package would be different, threfore we should not do any magic compile-time autodetection, but introduce a USE flag (perhaps "v4l1emu"?) instead.

Cross reference: media-video/mjpegtools has similar problems. Bug #359491 disabled v4l support altogether, and the upstream bug report referenced in bug #359491 comment #10 discusses building against libv4l for compatibility.
Comment 5 James 2011-05-22 03:02:53 UTC
the patch works for me.  Thanks!  With slight tweaking (the removal of the avutil patch), I was able to make 1.3.4 build with this patch as well.
Comment 6 Silvio 2011-05-22 15:51:34 UTC
(In reply to comment #5)
> the patch works for me.  Thanks!  With slight tweaking (the removal of the
> avutil patch), I was able to make 1.3.4 build with this patch as well.

Is it possibile to have this patch in portage?
Comment 7 Martin von Gagern 2011-05-22 21:27:52 UTC
Just filed https://sourceforge.net/tracker/?func=detail&aid=3306021&group_id=14103&atid=314103 for a patch that should in theory use libv4l in order to provide V4L1 compatibility on a V4L2-only kernel. Not sure whether you'd want that kind of patch in the portage tree before upstream accepts it, though.
Comment 8 Peter Volkov (RETIRED) gentoo-dev 2011-06-14 10:47:33 UTC
Thank you for report/fix guys. Fixed in 1.3.4.