Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 244918 - please add media-libs/libv4l to emul-linux-x86-medialibs or make the libv4l ebuild multilib
Summary: please add media-libs/libv4l to emul-linux-x86-medialibs or make the libv4l e...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: AMD64 Linux
: High enhancement with 2 votes (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: emul-tracker
  Show dependency tree
 
Reported: 2008-10-29 20:32 UTC by Alexandre Rostovtsev (RETIRED)
Modified: 2009-12-27 11:06 UTC (History)
15 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
libv4l-0.5.3.tbz2 (libv4l-0.5.3.tbz2,67.84 KB, application/x-bzip2)
2008-10-29 20:36 UTC, Alexandre Rostovtsev (RETIRED)
Details
proposed libv4l-0.5.7-r1.ebuild with multilib (libv4l-0.5.7-r1.ebuild,2.20 KB, text/plain)
2008-12-14 18:06 UTC, Alexandre Rostovtsev (RETIRED)
Details
proposed libv4l-0.5.8-r1.ebuild to add libv4l to env.d (libv4l-0.5.8-r1.ebuild,998 bytes, text/plain)
2009-06-29 00:02 UTC, Juanlu Pérez
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-10-29 20:32:09 UTC
libv4l is a library that performs pixel format conversion and is required for using most webcams supported by kernel 2.6.27's gspca driver (i.e. most USB webcams in existence).
libv4l also provides a couple of wrapper libraries that can be listed in LD_PRELOAD to automatically perform the conversion in legacy and binary apps.

There are a number of binary-only applications that use webcams - most prominently, skype. Without a 32-bit libv4l, there is no way to use a gspca webcam in skype. Therefore, it would be extremely useful if libv4l were added to app-emulation/emul-linux-x86-medialibs
Comment 1 Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-10-29 20:36:10 UTC
Created attachment 170252 [details]
libv4l-0.5.3.tbz2

libv4l-0.5.3.tbz2, compiled in a current 32-bit emul-chroot
Comment 2 Patrizio Bassi 2008-10-29 20:43:48 UTC
actually the libv4l automatically builds 32bit bins on an amd64 profile so that's no need for this (unless you want to split)
Comment 3 Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-10-29 20:51:30 UTC
(In reply to comment #2)
> actually the libv4l automatically builds 32bit bins on an amd64 profile so
> that's no need for this (unless you want to split)

No, the ebuild that is in the portage tree builds only 64-bit on amd64. (Currently, as a temporary workaround for skype users, there is a libv4l ebuild attached to bug 240090 that builds both 32-bit and 64-bit on amd64, but I am pretty sure it will not be going into the tree.)
Comment 4 Wormo (RETIRED) gentoo-dev 2008-10-29 22:24:32 UTC
Alex, thanks for all your work on libv4l packaging. Assigning to amd64 team who can decide to add this to the emul-linux stuff or vote for building the 32-bit compatibility in libv4l (i.e. commit something like you posted in bug 240090)
Comment 5 Patrizio Bassi 2008-12-14 11:33:10 UTC
can i ask the status of 32 bit multilib ebuild?

we are stuck unofficially to 0.5.1, i can bump to 0.5.7 manually but atm gentoo lacks lots of webcam support for 32bits apps.
Comment 6 Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-12-14 18:05:29 UTC
Judging by the inactivity, it looks like amd64 team is not interested in adding this to emul-linux-x86-*.

However, that may be for the best - libv4l is a fast-moving target, new versions are released quite often and fix serious bugs for certain webcam models. So at this point, I think adding a multilib libv4l ebuild to the tree is the best solution.
Comment 7 Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-12-14 18:06:31 UTC
Created attachment 175262 [details]
proposed libv4l-0.5.7-r1.ebuild with multilib
Comment 8 Michele Schiavo 2008-12-21 12:22:23 UTC
I found this problem, i think it's because of gcc-4.3.1

 * Building multilib libv4l for ABIs: x86 amd64
make -C libv4lconvert V4L2_LIB_VERSION=0.5.7 all
make[1]: Entering directory `/var/tmp/portage/media-libs/libv4l-0.5.7-r1/work/libv4l-0.5.7-x86/libv4lconvert'
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o libv4lconvert.o libv4lconvert.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o tinyjpeg.o tinyjpeg.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o sn9c10x.o sn9c10x.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o pac207.o pac207.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o flip.o flip.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o crop.o crop.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o jidctflt.o jidctflt.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o spca561-decompress.o spca561-decompress.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o rgbyuv.o rgbyuv.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o spca501.o spca501.c
x86_64-pc-linux-gnu-gcc -c -MMD -I../include -I../../../../linux/include -fvisibility=hidden -fPIC -O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1 -o bayer.o bayer.c
libv4lconvert.c: In function 'v4lconvert_create':
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:121: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
libv4lconvert.c:125: warning: cast from pointer to integer of different size
x86_64-pc-linux-gnu-gcc -shared -Wl,-O1 -Wl,-soname,libv4lconvert.so.0 -o libv4lconvert.so.0 libv4lconvert.o tinyjpeg.o sn9c10x.o pac207.o flip.o crop.o jidctflt.o spca561-decompress.o rgbyuv.o spca501.o bayer.o
collect2: ld terminated with signal 11 [Segmentation fault]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.1/../../../../x86_64-pc-linux-gnu/bin/ld: i386:x86-64 architecture of input file `libv4lconvert.o' is incompatible with i386 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.1/../../../../x86_64-pc-linux-gnu/bin/ld: i



 emerge --info
Portage 2.1.4.5 (default/linux/amd64/2008.0/desktop, gcc-4.3.1, glibc-2.7-r2, 2.6.27-gentoo-r7 x86_64)
=================================================================
System uname: 2.6.27-gentoo-r7 x86_64 Intel(R) Core(TM)2 Quad CPU Q9300 @ 2.50GHz
Timestamp of tree: Sun, 21 Dec 2008 11:30:01 +0000
distcc 3.0 x86_64-pc-linux-gnu [enabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.3.0-r1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/bind /var/lib/hsqldb /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -mtune=core2 -march=core2 -pipe -fomit-frame-pointer -msse4.1"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg_ collision-protect distcc distlocks maketest metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://pandemonium.tiscali.de/pub/gentoo/ http://mirror.switch.ch/ftp/mirror/gentoo/"
LANG="it_IT.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="it it_IT en en_US en_GB es es_ES"
MAKEOPTS="-j10"
PKGDIR="/usr/portage/packages"
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="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="16bit 64bit X X509 a52 aac aalib acl acpi aiglx aim alsa amd64 amr amrnb amrwb apache2 apm applet audiofile avi bash-completion berkdb bidi bitmap-fonts bittorrent bluetooth bonobo branding browserplugin bzip2 cairo caps cdda cddb cdio cdparanoia cdr cgi chroot cli cracklib crypt css ctype cups curl dbus dc1394 deskbar divx dlloader dri dts dv dvb dvd dvdr dvdread dvi dynamic eds em emboss emovix enca encode esd ethereal evo evolution exif expat faillog fam fame fbsplash ffmpeg firefox flac flash fontconfig foomaticdb fortran fping freetds freetype ftp gaim gcc4 gd gdbm gdm gedit gencertdaily geoip gif gimp gimpprint glitz glut gmail gmedia gmp gno gnome gnome-keyring gnutls gpac gphoto2 gpm gsf gsm gstreamer gtk gtk2 gtkhtml guile hal hash hddtemp howl iconv id3tag idea idn ieee1394 imagemagick imap imlib ipod isdnlog ithreads java jpeg kerberos lame lcms libcaca libclamav libedit libnotify libwww live lm_sensors logrotate logwatch lzo lzw lzw-tiff mad maildir maildrop matroska md5sum mhash midi mikmod mime ming mjpeg mmx mmxext mng mono motif mozilla mozsvg mp2 mp3 mpeg mplayer mpm-prefork msn mudflap multilib musepack musicbrainz mysql nautilus ncurses nemesei network networking new-login nfs ng nls nptl nptlonly nsplugin nvidia obex offensive ogg oggvorbis openal opengl openmp opensslcrypt optimisememory pam pcre pdf pdflib perl php pidgin png pnm pop posix ppds pppd prediction python qmail qt3support quicktime quotas radio readline realmedia recode reflection regex remote rtc samba scanner sdl sensord server session simplexml skins slang smp sms sndfile sni sound sox spamassassin speex spell spl sqlite srt sse sse2 sse3 ssl ssse2 ssse3 startup-notification stream subtitles svg symlink sysfs syslog tcltk tcpd teletext templates tetex theora threads threadsafe tiff tivo toolbar tools tracker truetype truetype-fonts twolame type1-fonts udev unicode upnp usb v4l v4l2 vcd vhosts vim-syntax vlm vorbis wavpack wifi wmf wmp wxgtk1 wxwindows x264 xanim xcomposite xml xml2 xmlreader xmlwriter xorg xpm xscreensaver xulrunner xv xvid xvmc zip zlib" ALSA_CARDS="intel8x0 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 auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CAMERAS="spca50x" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LINGUAS="it it_IT en en_US en_GB es es_ES" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 9 Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-12-21 19:15:50 UTC
(In reply to comment #8)
> I found this problem, i think it's because of gcc-4.3.1

I emerged libv4l-4.5.7-r1 with your CFLAGS and LDFLAGS, your version of portage, and gcc-4.3.2, and I cannot reproduce the problem. I suspect something is wrong either with your distcc setup or with your gcc.

Could you please:
1. Check if you can reproduce the bug without distcc and ccache (meaning FEATURES="-distcc -ccache")
2. Try updating from gcc-4.3.1 to 4.3.2
Comment 10 Michele Schiavo 2008-12-21 21:29:09 UTC
Solved disabling distcc
Comment 11 Atanas Kamburov 2009-02-12 13:42:48 UTC
Hi! I wanted to know the real status of this bug. I have installed libv4l with the multilib flag on on my amd64 and all runs well, actually this is the only way I found for using my camera under Skype. If the bug is resolved now, please add multilib to the "official" libv4l ebuild - otherwise many gentoo'ers must first discover this bug report and do the effort of installing the ebuild here in an overlay, etc. - I bet many people don't know about this bug and are angry why their camera doesn't work.... (since gspcav1 doesn't compile any more you know)...
Comment 12 James Le Cuirot gentoo-dev 2009-05-04 20:39:27 UTC
The quickest way to work around this is to do...

CFLAGS="-O2 -m32" ABI=x86 emerge --oneshot libv4l

But obviously this isn't ideal and it won't work if you need a 64-bit version as well. I just used this to fix Skype and it worked a treat. The solution wasn't obvious though and I think that Gentoo should set this up automatically.
Comment 13 James Le Cuirot gentoo-dev 2009-05-04 20:40:08 UTC
Errr sorry, ignore the --oneshot.
Comment 14 Ronan Arraes Jardim Chagas 2009-05-10 22:23:05 UTC
I am also wanting for this lib to be a part of app-emulation/emul-linux-x86-medialibs, since I'm use an old webcam with skype and I think that skype isn't planning to launch a 64-bits version for linux.

By the way, the advice of James Le Cuirot on comment #12 works perfectly but I think it is not a good way to do these webcams works with skype.
Comment 15 Jean-Francis Roy 2009-06-12 21:55:13 UTC
+1 vote for the libv4l ebuild with multilib.
Comment 16 Juanlu Pérez 2009-06-28 23:59:50 UTC
I propose to add these lines to src_install() in libv4l-0.5.8.ebuild

echo "LDPATH=\"/usr/$(get_libdir)\"" >> 99libv4l
doenvd 99libv4l

In this way we do not need to use LD_PRELOAD every time we exec a video app.
Comment 17 Juanlu Pérez 2009-06-29 00:02:02 UTC
Created attachment 196022 [details]
proposed libv4l-0.5.8-r1.ebuild to add libv4l to env.d
Comment 18 Bartosz Krzeszewski 2009-08-16 17:56:11 UTC
So, what is the status of 32bit libv4l on ADM64 now?
Comment 19 Attila Fazekas 2009-09-06 09:02:21 UTC
You can find a mulitlib variant here:
http://bugs.gentoo.org/show_bug.cgi?id=283746
Comment 20 Pacho Ramos gentoo-dev 2009-12-27 11:06:02 UTC
Included in app-emulation/emul-linux-x86-medialibs-20091226