summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Pielmeier <billie@gentoo.org>2009-10-08 16:05:48 +0000
committerDaniel Pielmeier <billie@gentoo.org>2009-10-08 16:05:48 +0000
commitca67ff2d5952cb819ed720d06268b98b6978107f (patch)
tree6cb6fa42235b447ca6fa9067f034201bd69c6ae6 /media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild
parent[kde-base] Drop KDE 4.3.0 (diff)
downloadgentoo-2-ca67ff2d5952cb819ed720d06268b98b6978107f.tar.gz
gentoo-2-ca67ff2d5952cb819ed720d06268b98b6978107f.tar.bz2
gentoo-2-ca67ff2d5952cb819ed720d06268b98b6978107f.zip
Version bump. Use updated get-dvb-firmware script to extract the usb-af9015 firmware from installer instead of downloading the pre-extracted firmware. Remove old.
(Portage version: 2.1.6.13/cvs/Linux i686)
Diffstat (limited to 'media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild')
-rw-r--r--media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild344
1 files changed, 344 insertions, 0 deletions
diff --git a/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild b/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild
new file mode 100644
index 000000000000..89f13b3cce84
--- /dev/null
+++ b/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild
@@ -0,0 +1,344 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.09.19.ebuild,v 1.1 2009/10/08 16:05:47 billie Exp $
+
+DESCRIPTION="Firmware files needed for operation of some dvb-devices"
+HOMEPAGE="http://www.linuxtv.org"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+RESTRICT="mirror"
+
+S="${WORKDIR}"
+
+# Files which can be fetched from linuxtv.org
+PACKET_NAME=dvb-firmwares-1.tar.bz2
+PACKET_SRC_URI="http://www.linuxtv.org/downloads/firmware/${PACKET_NAME}"
+get_dvb_firmware="${FILESDIR}/get_dvb_firmware-${PV}"
+# from http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=history;f=Documentation/dvb/get_dvb_firmware
+
+FW_USE_FLAGS=(
+# packet
+ "usb-a800"
+ "dibusb-usb2"
+ "usb-dtt200u"
+ "usb-umt"
+ "usb-vp702x"
+ "usb-vp7045"
+ "usb-wt220u"
+ "dibusb-usb1"
+ "or51211"
+ "or51132"
+ "or51132"
+# own URL
+ "ttpci"
+ "bcm3510"
+ "usb-wt220u"
+ "usb-wt220u"
+ "usb-dib0700"
+ "sp887x"
+ "af9005"
+ "cx231xx"
+ "cx18"
+ "cx18"
+ "cx18"
+ "cx23885"
+ "cx23885"
+ "pvrusb2"
+ "usb-bluebird"
+ "tda10045"
+# get_dvb_firmware
+ "sp8870"
+ "tda10046"
+ "tda10046lifeview"
+ "ttusb-dec"
+ "ttusb-dec"
+ "ttusb-dec"
+ "opera1"
+ "opera1"
+ "vp7041"
+ "nxt200x"
+ "mpc718"
+ "usb-af9015"
+)
+
+FW_FILES=(
+# packet
+ "dvb-usb-avertv-a800-02.fw"
+ "dvb-usb-dibusb-6.0.0.8.fw"
+ "dvb-usb-dtt200u-01.fw"
+ "dvb-usb-umt-010-02.fw"
+ "dvb-usb-vp702x-01.fw"
+ "dvb-usb-vp7045-01.fw"
+ "dvb-usb-wt220u-01.fw"
+ "dvb-usb-dibusb-5.0.0.11.fw"
+ "dvb-fe-or51211.fw"
+ "dvb-fe-or51132-qam.fw"
+ "dvb-fe-or51132-vsb.fw"
+# own URL
+ "dvb-ttpci-01.fw"
+ "dvb-fe-bcm3510-01.fw"
+ "dvb-usb-wt220u-02.fw"
+ "dvb-usb-wt220u-fc03.fw"
+ "dvb-usb-dib0700-1.20.fw"
+ "dvb-fe-sp887x.fw"
+ "af9005.fw"
+ "v4l-cx231xx-avcore-01.fw"
+ "v4l-cx23418-apu.fw"
+ "v4l-cx23418-cpu.fw"
+ "v4l-cx23418-dig.fw"
+ "v4l-cx23885-avcore-01.fw"
+ "v4l-cx23885-enc.fw"
+ "v4l-cx25840.fw"
+ "dvb-usb-bluebird-01.fw"
+ "dvb-fe-tda10045.fw"
+# get_dvb_firmware
+ "dvb-fe-sp8870.fw"
+ "dvb-fe-tda10046.fw"
+ "dvb-fe-tda10046.fw"
+ "dvb-ttusb-dec-2000t.fw"
+ "dvb-ttusb-dec-2540t.fw"
+ "dvb-ttusb-dec-3000s.fw"
+ "dvb-usb-opera1-fpga-01.fw"
+ "dvb-usb-opera-01.fw"
+ "dvb-vp7041-2.422.fw"
+ "dvb-fe-nxt2004.fw"
+ "dvb-cx18-mpc718-mt352.fw"
+ "dvb-usb-af9015.fw"
+)
+
+FW_GET_PARAMETER=(
+# packet
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+# own URL
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+ "-"
+# get_dvb_firmware
+ "sp8870"
+ "tda10046"
+ "tda10046lifeview"
+ "dec2000t"
+ "dec2540t"
+ "dec3000s"
+ "opera1"
+ "-"
+ "vp7041"
+ "nxt2004"
+ "mpc718"
+ "af9015"
+)
+
+FW_URLS=(
+# packet
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+ "${PACKET_SRC_URI}"
+# own URL
+ "http://www.escape-edv.de/endriss/firmware/dvb-ttpci-01.fw-fc2624"
+ "http://www.linuxtv.org/downloads/firmware/dvb-fe-bcm3510-01.fw"
+ "http://www.linuxtv.org/downloads/firmware/dvb-usb-wt220u-02.fw"
+ "http://home.arcor.de/efocht/dvb-usb-wt220u-fc03.fw"
+ "http://www.wi-bw.tfh-wildau.de/~pboettch/home/files/dvb-usb-dib0700-1.20.fw"
+ "http://peterdamen.com/dvb-fe-sp887x.fw"
+ "http://ventoso.org/luca/af9005/af9005.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx231xx-avcore-01.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx23418-apu.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx23418-cpu.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx23418-dig.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx23885-avcore-01.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx23885-enc.fw"
+ "http://linuxtv.org/downloads/firmware/v4l-cx25840.fw"
+ "http://linuxtv.org/downloads/firmware/dvb-usb-bluebird-01.fw"
+ "http://www.fireburn.co.uk/dvb-fe-tda10045.fw"
+# get_dvb_firmware
+ "http://2.download.softwarepatch.pl/1619edb0dcb493dd5337b94a1f79c3f6/tt_Premium_217g.zip"
+ "http://www.tt-download.com/download/updates/219/TT_PCI_2.19h_28_11_2006.zip"
+ "http://www.lifeview.hk/dbimages/document/7%5Cdrv_2.11.02.zip"
+ "http://hauppauge.lightpath.net/de/dec217g.exe"
+ "http://hauppauge.lightpath.net/de/dec217g.exe"
+ "http://hauppauge.lightpath.net/de/dec217g.exe"
+ "http://www.informatik.uni-leipzig.de/~hlawit/dvb/2830SCap2.sys"
+ "http://www.informatik.uni-leipzig.de/~hlawit/dvb/2830SLoad2.sys"
+ "http://www.twinhan.com/files/AW/Software/TwinhanDTV2.608a.zip"
+ "http://www.avermedia-usa.com/support/Drivers/AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip"
+ "ftp://ftp.work.acer-euro.com/desktop/aspire_idea510/vista/Drivers/Yuan%20MPC718%20TV%20Tuner%20Card%202.13.10.1016.zip"
+ "http://www.ite.com.tw/EN/Services/download.ashx?file=57"
+)
+
+SRC_URI=""
+NEGATIVE_USE_FLAGS=""
+NEGATIVE_END_BRACKETS=""
+ALL_URLS=""
+
+for ((CARD=0; CARD < ${#FW_USE_FLAGS[*]}; CARD++)) do
+ URL="${FW_URLS[CARD]}"
+
+ if [[ -z ${URL} ]]; then
+ echo "missing url for ${FW_USE_FLAGS[CARD]}"
+ continue
+ fi
+ SRC_URI="${SRC_URI} dvb_cards_${FW_USE_FLAGS[CARD]}? ( ${URL} )"
+
+ IUSE="${IUSE} dvb_cards_${FW_USE_FLAGS[CARD]}"
+ NEGATIVE_USE_FLAGS="${NEGATIVE_USE_FLAGS} !dvb_cards_${FW_USE_FLAGS[CARD]}? ( "
+ NEGATIVE_END_BRACKETS="${NEGATIVE_END_BRACKETS} )"
+ ALL_URLS="${ALL_URLS} ${URL}"
+
+ GET_PARAM="${FW_GET_PARAMETER[CARD]}"
+ if [[ ${GET_PARAM} != "-" ]]; then
+ # all firmwares extracted by get_dvb_firmware need unzip
+ DEPEND="${DEPEND} dvb_cards_${FW_USE_FLAGS[CARD]}? ( app-arch/unzip )"
+ fi
+done
+
+SRC_URI="${SRC_URI} ${NEGATIVE_USE_FLAGS} ${ALL_URLS} ${NEGATIVE_END_BRACKETS}"
+
+DEPEND="${DEPEND}
+ ${NEGATIVE_USE_FLAGS}
+ app-arch/unzip
+ ${NEGATIVE_END_BRACKETS}"
+
+install_dvb_card() {
+ if [[ -z ${DVB_CARDS} ]]; then
+ # install (almost) all firmware files
+ # do not install this one due to conflicting filenames
+ [[ "${1}" != "tda10046lifeview" ]]
+ else
+ # Check if this flag is set
+ use dvb_cards_${1}
+ fi
+}
+
+pkg_setup() {
+ #echo SRC_URI=${SRC_URI}
+ #echo DEPEND=${DEPEND}
+ if has tda1004x ${DVB_CARDS}; then
+ eerror
+ eerror "DVB_CARDS flag tda1004x has been split into"
+ eerror "tda10045, tda10046 and tda10046lifeview".
+ eerror
+ eerror "But beware that you cannot enable tda10046 and"
+ eerror "tda10046lifeview at the same time."
+ fi
+
+ if [[ -z ${DVB_CARDS} ]]; then
+ elog
+ elog "DVB_CARDS is not set, installing all available firmware files."
+ elog "To save bandwidth please consider setting the DVB_CARDS variable"
+ elog "in ${ROOT%/}/etc/make.conf. This way only the firmwares you own"
+ elog "the hardware will be installed."
+ fi
+ # according to http://devmanual.gentoo.org/general-concepts/use-flags/index.html
+ # we should not die here. However, there is no sensible fallback choice to make
+ # because the user may have either the one or the other. WYGIWYG
+ if use dvb_cards_tda10046 && use dvb_cards_tda10046lifeview; then
+ eerror
+ eerror "You cannot have both tda10046 and tda10046lifeview in DVB_CARDS"
+ eerror "because of colliding firmware filenames (dvb-fe-tda10046.fw)."
+ eerror "Sorry."
+ die "Conflicting values for DVB_CARDS set."
+ fi
+ elog
+ elog "List of possible card-names to use for DVB_CARDS:"
+ echo ${FW_USE_FLAGS[*]}| tr ' ' '\n' | sort | uniq | fmt \
+ | while read line; do
+ elog " ${line}"
+ done
+ elog
+ elog "If you need another firmware file and want it included create a bug"
+ elog "at bugs.gentoo.org."
+ elog "In case some firmware sources are not fetchable please try again at"
+ elog "a later time and if it still does not fetch report a bug. If there"
+ elog "is no alternative source or an update to the firmware available we"
+ elog "have to remove it from the ebuild and you are on your own."
+}
+
+src_unpack() {
+ local distfile
+
+ # link all downloaded files to ${S}
+ for distfile in ${A}; do
+ [[ -L ${distfile} ]] || ln -s ${DISTDIR}/${distfile} ${distfile}
+ done
+
+ # unpack firmware-packet
+ if has ${PACKET_NAME} ${A}; then
+ unpack ${PACKET_NAME}
+ fi
+
+ if [[ -z ${DVB_CARDS} ]] || use dvb_cards_mpc718 ; then
+ mv Yuan%20MPC718%20TV%20Tuner%20Card%202.13.10.1016.zip "Yuan MPC718 TV Tuner Card 2.13.10.1016.zip"
+ fi
+ if [[ -z ${DVB_CARDS} ]] || use dvb_cards_ttpci ; then
+ mv dvb-ttpci-01.fw-fc2624 dvb-ttpci-01.fw
+ fi
+
+ local script_v=${PV}
+
+ # Adjust temp-dir of get_dvb_firmware
+ sed "${FILESDIR}"/get_dvb_firmware-${script_v} \
+ -e "s#/tmp#${T}#g" > get_dvb_firmware
+ chmod a+x get_dvb_firmware
+
+ # extract the firmware-files
+ for ((CARD=0; CARD < ${#FW_USE_FLAGS[*]}; CARD++)) do
+ install_dvb_card ${FW_USE_FLAGS[CARD]} || continue
+
+ GET_PARAM=${FW_GET_PARAMETER[CARD]}
+ if [[ ${GET_PARAM} != "-" ]]; then
+ [[ -f ${FW_FILES[CARD]} ]] && ewarn "Already existing: ${FW_FILES[CARD]}"
+ elog "Extracting ${FW_FILES[CARD]}"
+ ./get_dvb_firmware ${GET_PARAM}
+ fi
+ done
+}
+
+src_install() {
+ insinto /lib/firmware
+
+ for ((CARD=0; CARD < ${#FW_USE_FLAGS[*]}; CARD++)) do
+ if install_dvb_card ${FW_USE_FLAGS[CARD]}; then
+ local file=${FW_FILES[CARD]}
+ [[ -f ${file} ]] || die "File ${file} does not exist!"
+ doins ${file}
+ fi
+ done
+}