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
Created attachment 170252 [details] libv4l-0.5.3.tbz2 libv4l-0.5.3.tbz2, compiled in a current 32-bit emul-chroot
actually the libv4l automatically builds 32bit bins on an amd64 profile so that's no need for this (unless you want to split)
(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.)
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)
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.
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.
Created attachment 175262 [details] proposed libv4l-0.5.7-r1.ebuild with multilib
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
(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
Solved disabling distcc
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)...
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.
Errr sorry, ignore the --oneshot.
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.
+1 vote for the libv4l ebuild with multilib.
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.
Created attachment 196022 [details] proposed libv4l-0.5.8-r1.ebuild to add libv4l to env.d
So, what is the status of 32bit libv4l on ADM64 now?
You can find a mulitlib variant here: http://bugs.gentoo.org/show_bug.cgi?id=283746
Included in app-emulation/emul-linux-x86-medialibs-20091226