diff options
Diffstat (limited to 'media-tv/ivtv/ivtv-0.4.0-r3.ebuild')
-rw-r--r-- | media-tv/ivtv/ivtv-0.4.0-r3.ebuild | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/media-tv/ivtv/ivtv-0.4.0-r3.ebuild b/media-tv/ivtv/ivtv-0.4.0-r3.ebuild new file mode 100644 index 000000000000..027fd00ff5c9 --- /dev/null +++ b/media-tv/ivtv/ivtv-0.4.0-r3.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-tv/ivtv/ivtv-0.4.0-r3.ebuild,v 1.1 2005/12/30 05:03:53 cardoe Exp $ + +inherit eutils linux-mod + +DESCRIPTION="ivtv driver for Hauppauge PVR PCI cards" +HOMEPAGE="http://www.ivtvdriver.org" + +FW_VER_DEC="pvr_1.18.21.22254_inf.zip" +FW_VER_ENC="pvr_2.0.24.23035.zip" +#Switched to recommended firmware by driver + +SRC_URI="http://dl.ivtvdriver.org/ivtv/archive/0.4.x/${P}.tar.gz + ftp://ftp.shspvr.com/download/wintv-pvr_150-500/inf/${FW_VER_ENC} + ftp://ftp.shspvr.com/download/wintv-pvr_250-350/inf/${FW_VER_DEC}" + +RESTRICT="nomirror" +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~amd64 x86 ppc" + +IUSE="" + +BUILD_TARGETS="all" +BUILD_PARAMS="KDIR=${KERNEL_DIR}" +CONFIG_CHECK="I2C_ALGOBIT VIDEO_DEV I2C_CHARDEV I2C" + +DEPEND="app-arch/unzip" + +pkg_setup() { + linux-mod_pkg_setup + MODULE_NAMES="ivtv(extra:${S}/driver) + msp3400(extra:${S}/driver) + saa7115(extra:${S}/driver) + tveeprom(extra:${S}/driver) + saa7127(extra:${S}/driver) + cx25840(extra:${S}/driver) + tuner(extra:${S}/driver) + wm8775(extra:${S}/driver) + tda9887(extra:${S}/driver) + cs53l32a(extra:${S}/driver)" + linux_chkconfig_present FB && \ + MODULE_NAMES="${MODULE_NAMES} ivtv-fb(extra:${S}/driver)" +} + +src_unpack() { + unpack ${P}.tar.gz + unpack ${FW_VER_ENC} + + sed -e "s:^VERS26=.*:VERS26=${KV_MAJOR}.${KV_MINOR}:g" \ + -i "${S}"/driver/Makefile || die "sed failed" + + cd "${S}" + # This powerpc patch patches the source of the driver to disable DMA on ppc, + # instead PIO is used. Also, it force enables -fsigned-char and does not + # build some modules that contain x86 asm. + + use ppc && epatch "${FILESDIR}"/${P}-ppc-odw.patch + + # patch to make it stop seg faulting because it uses wrong MAXDEV size + epatch "${FILESDIR}"/${P}-maxdev.patch +} + +src_compile() { + cd ${S}/driver + linux-mod_src_compile || die "failed to build driver " + + cd ${S}/utils + emake || die "failed to build utils " +} + +src_install() { + cd ${S}/utils + dodir /lib/modules + ./ivtvfwextract.pl ${DISTDIR}/${FW_VER_DEC} \ + ${D}/lib/modules/ivtv-fw-enc.bin \ + ${D}/lib/modules/ivtv-fw-dec.bin + + make KERNELDIR=${KERNEL_DIR} DESTDIR="${D}" PREFIX=/usr install || die "failed to install" + + insinto /lib/modules + newins ${WORKDIR}/HcwMakoA.ROM HcwMakoA.ROM + newins ${S}/ivtv_init_mpeg.bin ivtv_init_mpeg.bin + + cd ${S} + dodoc README doc/* utils/README.X11 + + cd ${S}/driver + linux-mod_src_install || die "failed to install modules" + + # Add the aliases + insinto /etc/modules.d + newins ${FILESDIR}/ivtv ivtv +} + +pkg_postinst() { + linux-mod_pkg_postinst + + # The MCE versions of the PVR cards come without remote control because (I + # assume) a remote control is included in Windows Media Center Edition. It + # is probably a good idea to just say that if your package comes with a + # remote then emerge lirc. Lirc should build all drivers anyway. + # + # einfo "To get the ir remote working, you'll need to emerge lirc" + # einfo "with the following set:" + # einfo "LIRC_OPTS=\"--with-x --with-driver=hauppauge --with-major=61 " + # einfo " --with-port=none --with-irq=none\" emerge lirc" + # echo + # einfo "You can also add the above LIRC_OPTS line to /etc/make.conf for" + # einfo "it to remain there for future updates." + # echo + # einfo "To use vbi, you'll need a few other things, check README.vbi in the docs dir" + # echo + + # Similar checks are performed by the make install in the drivers directory. + BADMODS="msp3400 tda9887 tuner tveeprom saa7115 saa7127 cx25840 wm8775" + + for MODNAME in ${BADMODS}; do + if [ -f "${ROOT}/lib/modules/${KV_FULL}/kernel/drivers/media/video/${MODNAME}.ko" ] ; then + ewarn "You have the ${MODNAME} module that comes with the kernel. It isn't compatible" + ewarn "with ivtv. You need to back it up to somewhere else, then run 'update-modules'" + ewarn "The file to remove is ${ROOT}/lib/modules/${KV_FULL}/kernel/drivers/media/video/${MODNAME}.ko" + echo + fi + done +} |