I tried on 2.6.7 and 2.6.7-r5 and it fails at compilation time. It compiled without problems on 2.6.5-r1 Reproducible: Always Steps to Reproduce: 1. emerge media-tv/ivtv 2. 3. Actual Results: Failed at compilation: # emerge ivtv Calculating dependencies ...done! >>> emerge (1 of 1) media-tv/ivtv-0.1.9-r3 to / >>> md5 src_uri ;-) ivtv-0.1.9.tar.gz >>> md5 src_uri ;-) pvr250_17_21288.exe >>> md5 src_uri ;-) ivtv-0.1.9-r3.patch >>> Unpacking source... >>> Unpacking ivtv-0.1.9.tar.gz to /var/tmp/portage/ivtv-0.1.9-r3/work * Applying ivtv-0.1.9-r3.patch... [ ok ] >>> Source unpacked. make -C /lib/modules/2.6.7-gentoo-r5/build SUBDIRS=/var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver modules make[1]: Entering directory `/usr/src/linux-2.6.7-gentoo-r5' CC [M] /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/msp3400.o CC [M] /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/saa7115.o CC [M] /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/tveeprom.o /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/tveeprom.c:81:2: warning: #warning Using temporary hack for missing I2C driver-ID for tveeprom /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/tveeprom.c:89: warning: `verbose' defined but not used CC [M] /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.o /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c: In function `ivtv_init_buffer': /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:347: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c: In function `ivtv_find_firmware_mailbox': /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:658: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:658: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:667: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:667: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:681: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:681: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:691: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:691: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:699: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:699: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:713: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:713: warning: use of cast expressions as lvalues is deprecated /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c: In function `ivtv_dec_poll': /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:2846: warning: comparison of distinct pointer types lacks a cast CC [M] /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-i2c.o /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-i2c.c:59: error: `I2C_ADAP_CLASS_TV_ANALOG' undeclared here (not in a function) /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-i2c.c:59: error: initializer element is not constant /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-i2c.c:59: error: (near initialization for `ivtv_i2c_adapter_template.class') make[2]: *** [/var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-i2c.o] Error 1 make[1]: *** [_module_/var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.7-gentoo-r5' make: *** [all] Error 2 !!! ERROR: media-tv/ivtv-0.1.9-r3 failed. !!! Function src_compile, Line 41, Exitcode 2 !!! build of driver failed Expected Results: # emerge info Portage 2.0.50-r8 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3_pre20040420-r0,2.3.3.20040420-r0, 2.6.7-gentoo-r5) ================================================================= System uname: 2.6.7-gentoo-r5 i686 AMD Athlon(tm) XP 2800+ Gentoo Base System version 1.4.16 distcc 2.14 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -fforce-addr -fomit-frame-pointer -fprefetch-loop-arrays -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -mmmx -msse -m3dnow -mfpmath=387,sse" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control /var/www/localhost/htdocs//mythweb/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe -fforce-addr -fomit-frame-pointer -fprefetch-loop-arrays -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -mmmx -msse -m3dnow -mfpmath=387,sse" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X X509 Xaw3d aalib acl acpi adns afs aim alsa apache2 apm arts athena audiofile avi berkdb bidi canna caps cdr cjk clanJavaScript clanVoice crypt cscope cups curl dga directfb divx4linux djbfft dnd doc dv dvb dvd dvdr encode ethereal evo faad2 fam fastcgi fbcon fdftk fftw flac flash fmod foomaticdb freewnn gd gdbm ggi gif gimp gimpprint gmp gphoto2 gstreamer gtk gtk2 hbci icq imagemagick imap imlib imlib2 jack java javamail javascript jbig jikes joystick jpeg junit justify kde ladcca lcms lesstif libcaca libwww linguas_ar linguas_de linguas_en linguas_fr linguas_hu linguas_jp linguas_ro linguas_ru linguas_sp lirc live lzw-tiff mad maildir matroska mbox mcal md5sum memlimit migemo mikmod mmx mng monkey motif mozilla mpeg msn mysql nas ncurses neXt netcdf nls nocardbus nocd ntlm nvidia oav odbc offensive ofx oggvorbis openal opengl oscar pam parse-clocks pcre pda pdflib perl physfs pic pie plotutils png portaudio ppds prelude pwdb python qt quicktime readline samba sasl scanner sdl slang slp sndfile speex spell sse ssl svg svga szip tcltk tcpd tetex theora tiff tools transcode truetype ucs2 unicode usb v4l v4l2 vhosts videos vim-with-x wifi wmf wxwindows x86 xinerama xml xml2 xmms xosd xv xvid yahoo yv12 zlib"
Created attachment 34088 [details] Kernel .config file
I forgot: the .config file is the same as 2.6.5-r1 I juste copied it to the new kernel tree and did a "make oldconfig"...
I get the same issue.
It compile perfectly on 2.6.4, but fails identically on kernel 2.6.7 Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7) ================================================================= System uname: 2.6.7 i686 VIA Samuel 2 Gentoo Base System version 1.4.16 distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer -mmmx" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer -mmmx" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs buildpkg ccache distcc fixpackages sandbox" GENTOO_MIRRORS="http://194.117.158.29 http://194.117.158.28 ftp://194.117.158.29/mirrors/gentoo http://ftp.heanet.ie/pub/gentoo/ ftp://194.117.158.28/mirrors/gentoo" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.uk.gentoo.org/gentoo-portage" USE="3dnow X aalib acpi4linux alsa amd apache2 apm arts avi berkdb bluetooth bzlib cdr cle266 crypt cups curl dga directfb divx4linux dnd dvd emacs encode esd ethereal faad fbcon fbdev ffmpeg flash gd gdbm ggi gif gpm gtk gtk2 imlib jack java joystick jpeg kde lcms libg++ libwww lirc mad mikmod mmx motif mozilla mpeg mpeg4 msn mysql nas ncurses nls oggvorbis opengl oss pam pda pdflib perl php png pnp python qt quicktime readline samba sdl slang speedo speex spell ssl svg svga tcpd theora tiff truetype unicode v4l v4l2 wifi wmf wxwindows x86 xinerama xml2 xmms xosd xv xvid yahoo zlib"
Hum... someone working on it?
The fix is easy. You just have to replace I2C_ADAP_CLASS_TV_ANALOG with I2C_CLASS_TV_ANALOG in the ivtv driver because this name has changed in the 2.6.7 kernel. However I am new to gentoo and therefor don't know how to integrate this into the ivtv ebuild. Till someone patches the ebuild you can just add the line #define I2C_ADAP_CLASS_TV_ANALOG (1<<1) to the definitions at line 288+ in /usr/src/linux/include/linux/i2c.h as a workaround. Works fine on my system here.
Created attachment 34697 [details, diff] Fixing ivtv build for 2.6.7 kernels Here is a patch that makes the change proposed in comment #6. To use it you have two options: - either you copy the patch to /usr/portage/distfiles, copy /usr/portage/media-tv/ivtv/ivtv-0.1.9-r3.ebuild to /usr/portage/media-tv/ivtv/ivtv-0.1.9-r4.ebuild and generate digests for this ebuild (ebuild /usr/portage/media-tv/ivtv/ivtv-0.1.9-r4.ebuild digest) - or you copy the patch to /usr/portage/distfiles and rename it to ivtv-0.1.9-r3.patch If you make the changes like this they will be overwritten the next time you do an emerge sync. To prevent that, use the portage overlay directory instead.
Forgot to mention this patch is a superset of the already present set of patches. This patch = -r3 patch + fix for 2.6.7.
Yes, this patch works for me. Thanks!
Uh, can we get this into portage?
Seems like things are deteriorating... I can still build ivtv, but it does not work anymore. During the build, I get: /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:459: warning: implicit declaration of function `open' /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:465: warning: implicit declaration of function `lseek' /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:476: warning: implicit declaration of function `read' /var/tmp/portage/ivtv-0.1.9-r3/work/ivtv/driver/ivtv-driver.c:482: warning: implicit declaration of function `close' Followed a little later by: MODPOST *** Warning: "close" [/var/tmp/portage/ivtv-0.1.9-r4/work/ivtv/driver/ivtv.ko] undefined! *** Warning: "open" [/var/tmp/portage/ivtv-0.1.9-r4/work/ivtv/driver/ivtv.ko] undefined! *** Warning: "read" [/var/tmp/portage/ivtv-0.1.9-r4/work/ivtv/driver/ivtv.ko] undefined! *** Warning: "lseek" [/var/tmp/portage/ivtv-0.1.9-r4/work/ivtv/driver/ivtv.ko] undefined! The emerge completes seemingly successful, but when modprobing: FATAL: Error inserting ivtv (/lib/modules/2.6.8-rc3/extra/ivtv.ko): Unknown symbol in module, or unknown parameter (see dmesg) dmesg: ivtv: Unknown symbol lseek ivtv: Unknown symbol read ivtv: Unknown symbol open ivtv: Unknown symbol close
Created attachment 37111 [details, diff] Modifies ivtv to work with kernel interface >=2.6.8-rc3 Needs to be applied only for 2.6.8-rc3 and later kernels.
Created attachment 37112 [details] New ebuild that conditionally applies syscallh patch This ebuild should fix the last problem I mentioned.
Created attachment 37203 [details] ebuild that gets rid of error message during emerge Fixed one more error during build. More of a cosmetic thing really.
fixed in -r4