diff options
author | Daniel Pielmeier <billie@gentoo.org> | 2009-09-02 20:49:58 +0000 |
---|---|---|
committer | Daniel Pielmeier <billie@gentoo.org> | 2009-09-02 20:49:58 +0000 |
commit | a143efec7f37ec2ec6dd9b7d79a6fc035563389f (patch) | |
tree | 352377ace10a835d5ee27533b582981896fa2859 /media-tv | |
parent | Add back some entries to dvb_cards.desc. (diff) | |
download | historical-a143efec7f37ec2ec6dd9b7d79a6fc035563389f.tar.gz historical-a143efec7f37ec2ec6dd9b7d79a6fc035563389f.tar.bz2 historical-a143efec7f37ec2ec6dd9b7d79a6fc035563389f.zip |
Version bump.
Package-Manager: portage-2.1.6.13/cvs/Linux i686
Diffstat (limited to 'media-tv')
-rw-r--r-- | media-tv/linuxtv-dvb-firmware/ChangeLog | 13 | ||||
-rw-r--r-- | media-tv/linuxtv-dvb-firmware/Manifest | 22 | ||||
-rw-r--r-- | media-tv/linuxtv-dvb-firmware/files/get_dvb_firmware-2009.07.06 | 638 | ||||
-rw-r--r-- | media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.07.06.ebuild | 331 |
4 files changed, 1001 insertions, 3 deletions
diff --git a/media-tv/linuxtv-dvb-firmware/ChangeLog b/media-tv/linuxtv-dvb-firmware/ChangeLog index c4ac30b5c73c..4d5fbc1aaaef 100644 --- a/media-tv/linuxtv-dvb-firmware/ChangeLog +++ b/media-tv/linuxtv-dvb-firmware/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for media-tv/linuxtv-dvb-firmware -# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-tv/linuxtv-dvb-firmware/ChangeLog,v 1.21 2007/11/27 10:39:37 zzam Exp $ +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/media-tv/linuxtv-dvb-firmware/ChangeLog,v 1.22 2009/09/02 20:49:58 billie Exp $ + +*linuxtv-dvb-firmware-2009.07.06 (02 Sep 2009) + + 02 Sep 2009; Pielmeier Daniel <billie@gentoo.org> + +files/get_dvb_firmware-2009.07.06, + +linuxtv-dvb-firmware-2009.07.06.ebuild: + Version bump. Use a more recent get_dvb_firmware script from + git.kernel.org. Add more firmwares. Should fix bugs #181908, #225047, + #225233, #245813, #260737 and #275667. 27 Nov 2007; Matthias Schwarzott <zzam@gentoo.org> linuxtv-dvb-firmware-1.ebuild, linuxtv-dvb-firmware-2006.11.13.ebuild, diff --git a/media-tv/linuxtv-dvb-firmware/Manifest b/media-tv/linuxtv-dvb-firmware/Manifest index 936c926841eb..1dae4dc564e7 100644 --- a/media-tv/linuxtv-dvb-firmware/Manifest +++ b/media-tv/linuxtv-dvb-firmware/Manifest @@ -1,20 +1,40 @@ AUX get_dvb_firmware-1 11563 RMD160 a6e4eea42360c06d18bc9c15434f068778763cd9 SHA1 f9f035b8e6a5c9644d1db73b46a269f44580b851 SHA256 b0724c597a2196815b03fdbad928c6d6e9507448dad1a12eda5e67178e2a4a2f AUX get_dvb_firmware-2006.11.13 12432 RMD160 a52b3736195cff1691eaa1d79c02070692ca8a50 SHA1 328b1db86029f93199ecc71f2fe679f9bc55b072 SHA256 0f89498674b5dc41ccab191cf870da5c76dd2339b6f585c6dc612fbad8bcae2c +AUX get_dvb_firmware-2009.07.06 17269 RMD160 2df4f810ed933e018c2b91c7612d5e2aa88f317c SHA1 d34119601d22427b89c07c2c4f710b593f68abe5 SHA256 a63b6f3f434b8cac65c8bdfd512296d6fcc1298494539606e7d3fcac4ef666ba +DIST 2830SCap2.sys 86912 RMD160 eb27a02d81b165286a5073dfa13ab2ffc06e4a6a SHA1 f477108355f640a01e1d53efb2d053642cac09c2 SHA256 ba96cf8e973c721a7a5a78f99b46065fef6a44169f7c2c75007f51b1432b2538 +DIST 2830SLoad2.sys 15872 RMD160 36d7cc34b84b377770f229b9212052c28f588437 SHA1 1a519f95944528edee141c5cb077b33a71996330 SHA256 899c3ddecd4227d0bf8ac393a297bc3fe9cd5e366d389154044d14a7dcf255b6 +DIST 7%5Cdrv_2.11.02.zip 235227 RMD160 b47dd9508fd5dd57355e138eea93658ab413ac13 SHA1 1796ed41f2c8c1ccd10f61e634c7733ed8be14fa SHA256 a8e994a4af94cc5c4808603d648a19d5056f85338cfa6bfffffb072f2fde36bf DIST AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip 156028 RMD160 59f0b35f04d0030b39cde9c1a2e04cf060670769 SHA1 42a8f736fc0c1d62c91d9f8f4337d37d07216840 SHA256 7f65564416b12bc34d0d2e49b61a11c557e0f48a49064a8c880423606d43aa3f DIST Drv_2.11.02.zip 235227 RMD160 b47dd9508fd5dd57355e138eea93658ab413ac13 SHA1 1796ed41f2c8c1ccd10f61e634c7733ed8be14fa SHA256 a8e994a4af94cc5c4808603d648a19d5056f85338cfa6bfffffb072f2fde36bf DIST Dvbt1.3.57.6.zip 12174738 RMD160 f06ea9bcf8e362e26b0387edcaba0d171fb3fc92 SHA1 c839bd71b48596c2c5c256bc80c42f0b50790b92 SHA256 a2688def053bc3e01103d1894a1027c7cf896d40b238c59ad7f6da1c72e74903 +DIST TT_PCI_2.19h_28_11_2006.zip 22366414 RMD160 4620a276149fd10a4423c49485bfcf347c886261 SHA1 0e731714adc12f5507ee1912fa2512228274fdef SHA256 887492ba12193ed39ac28ed98f02e6ebb7290807461f4c7ffb10750685098061 DIST Technisat_DVB-PC_4_4_COMPACT.zip 20589158 RMD160 a53dd1eb6cc997aa4f5a0e0da6b8510f064f535f SHA1 45411773dcd21be1050534edf1b456e43a1d3a3a SHA256 11751b445f13f5b7e7ce15349d2f086c271096927c4d974008a362f714314175 +DIST TwinhanDTV2.608a.zip 22316104 RMD160 d8d80b4451bc8bcef5c90bd4c87ef8c03cf13ead SHA1 1aa9c294f007796961803f056ed9cc01ff02821b SHA256 5e6007e28d2d043c63bb917189f6ddfe8e8a25edd007af0328926a093e2390a6 +DIST Yuan%20MPC718%20TV%20Tuner%20Card%202.13.10.1016.zip 2485056 RMD160 3115b2d68f103daa22d88a87cd91b665d6dec99b SHA1 2f651be072a601e7dcc6b3220e553bb04c0ac009 SHA256 0a3e5272ccbc7fbd3ac006d8677a22a556b39594febb52d2cbab637d153e7381 +DIST af9005.fw 28250 RMD160 ad88928d271b0bf3d172dd44e09db0c83d87c3b1 SHA1 25d75856bbae1afd1cac24c083584db831e00a0b SHA256 5d1eedb40067a622c3ac6ec782f8c2de3af8d11e76603deed738deac7144cd82 DIST dec217g.exe 16371951 RMD160 34ffa441adba1c34a2fafe067758f12782e54662 SHA1 02ec3582d5e8b9145de4a6e9804132b2cac7cb89 SHA256 fd20902bcc3178a26b5a27fe88adcdfce888daa8d2206b67b13e5f3a3973dc1c DIST dvb-fe-bcm3510-01.fw 2285 RMD160 894ecf8ddcf0bd7b34caed81053a18233a82f9f0 SHA1 09a2478fdff67ed6a4e77f4dcd05da43841874a9 SHA256 978ece002a3e1f5eb760f6ca48496e05da00b7aa76e0f6f2cb108bde2ea14f51 +DIST dvb-fe-sp887x.fw 23620 RMD160 e83382b4cb2dfa90c216e0a2b0e10cdddf5ce593 SHA1 bd64a6042f4f1884c87f0cfda24ed656f2333bcd SHA256 e0a3b66c7b059c3be93764bea82866121c1f4fa2336f4b6abed1047360e92368 DIST dvb-firmwares-1.tar.bz2 182356 RMD160 2e70e8111e0d8889f5cd017dfa1c8d2b635f61a2 SHA1 5431a0f6c95ca14f36531e841f95a2472d2c96b9 SHA256 11772d539e5605e92f51a1edc82382c19808dea2bb9f0b425efad354e0d9bd52 +DIST dvb-ttpci-01.fw-fc2624 242696 RMD160 ac6874b80744120406e003c9a5209d4245251af9 SHA1 f14aef72fb3b86058980bec2d8f1e59a02b0283b SHA256 dc4e47c3939956f2f3466fd0996a9ca62adc7068ac061afdd14bbc3b3d09e9d2 +DIST dvb-usb-af9015.fw 15913 RMD160 3dd2635d0d8e9fd5001e6c7e636fbc1e6ac533e5 SHA1 6a0edcc65f490d69534d4f071915fc73f5461560 SHA256 a0ae064c3acef212172f13317d627492d0ed3c0a43f3634821b33a00fbf99621 DIST dvb-usb-bluebird-01.fw 9025 RMD160 878f8f820993dbc1f03de43145a51e49e55e0733 SHA1 5a44455b383e5b8104215481693baa9498841f63 SHA256 1d9d8c5a320a0a76c476e08bd212291144439121d4147dbf8d48822b576306fc DIST dvb-usb-dib0700-01.fw 29955 RMD160 2e0ecb4c33ebffd060bc9db1cf405e8b8cf1dbc2 SHA1 6ee5e2c794d9303154becc5ccaa9242bab478c75 SHA256 df7c9ee69d0f4800894b281c743bd619e0a95233593f5bfa3ccba749e49df367 +DIST dvb-usb-dib0700-1.20.fw 33768 RMD160 ee241d2a59a9e04d94723b15ac86483b36daf0dd SHA1 415bd83150ebca3ed3ba8c1f74bf0b6a8a225c01 SHA256 74f5ffeb43767e1af6d379d6cc2e0efeaa54455d030bcd71d95f0f2a908c672a DIST dvb-usb-wt220u-02.fw 8480 RMD160 a291280a67a04bae78c83763150d2d81aef0bd38 SHA1 149c2fe9912707100360829d3302dfcc3e596275 SHA256 ed8cd2ae6b5ad540fd4a14de9ccaa10f662781961f44cfe58b623679a5f508df DIST dvb-usb-wt220u-fc03.fw 12902 RMD160 33dd26ffe5129ce56a20d28762d7e12e04882082 SHA1 b3e1a394fdc5d4bae921487b3b1fc4bf89594aab SHA256 838044a2f98736fe5b1266598a36eed4b5c9aa845e65c5d1d4054b8b72f808dc DIST tt_Premium_217g.zip 11348671 RMD160 b7e63f5f96ab1aba1cfad3647a76b81952dcf2af SHA1 13b721bf8f49f0c73c18d0c24456ba95ae491748 SHA256 cfe84a039c20473ba41c2e3da165c668a0e227f197ea0e272abc253c5f9f5a83 DIST tt_budget_217g.zip 12656253 RMD160 41458fe742df0526847681ca8265bc485edba922 SHA1 44ce1bddd6617e2dbbfddbc3bc9460bfe844883d SHA256 0e6e00f34273bd034370ee274d02eaa318bd6bb11c01b19d5b1a8e9b20ed5479 +DIST v4l-cx231xx-avcore-01.fw 16382 RMD160 899016dd0024e2c7b0ed4b9b11a3c046a7e9faf1 SHA1 86d5d19ee61e37b3ea33fb644c112b8e3fbb120d SHA256 c2a75fc710f51c778abe7c7e8b54ed5686b17811dd203d1de3070d3df70d70f6 +DIST v4l-cx23418-apu.fw 141200 RMD160 c2db1e77ad543fa45578d59f58a888df776d3013 SHA1 2d67cd2a3dbc9eb2c98db246840788ba5ebcd236 SHA256 770351d86c757f4be635f276386269eeaf0448e7c3fa1791507e77e5556c063a +DIST v4l-cx23418-cpu.fw 158332 RMD160 3408beb757cfc9d75aa040d2fe7d270d83b68ab9 SHA1 b4b37ef07e5e2a9498cfeea1e30e775a53539ef9 SHA256 058eebb8072bbf0628de3774aad0e5eaa83f871334f8120c0e12c9b971be9bce +DIST v4l-cx23418-dig.fw 16382 RMD160 46e934735cbee5007d6f2686c83472440cbe4f63 SHA1 d267885968790d0d5da713840c1dcaabb691dc15 SHA256 a6505aee99fa71768daece0a7ced1ac1f60bf7f8d823707640778fe0a4fd0a81 +DIST v4l-cx23885-avcore-01.fw 16382 RMD160 899016dd0024e2c7b0ed4b9b11a3c046a7e9faf1 SHA1 86d5d19ee61e37b3ea33fb644c112b8e3fbb120d SHA256 c2a75fc710f51c778abe7c7e8b54ed5686b17811dd203d1de3070d3df70d70f6 +DIST v4l-cx23885-enc.fw 16382 RMD160 899016dd0024e2c7b0ed4b9b11a3c046a7e9faf1 SHA1 86d5d19ee61e37b3ea33fb644c112b8e3fbb120d SHA256 c2a75fc710f51c778abe7c7e8b54ed5686b17811dd203d1de3070d3df70d70f6 +DIST v4l-cx25840.fw 16382 RMD160 904d1921a2e12551b35776ee06bffe636e795c6b SHA1 fb298a12c7a267ab3b96d025e4703cc9d642b2dd SHA256 67a06c2dbcdf893c309357c4de181655be55708b6985c99b2e7ba8bebc417212 EBUILD linuxtv-dvb-firmware-1.ebuild 4650 RMD160 c2e1f60fab881f33237797d207edf571e3aafff6 SHA1 327948b85e53794f8c57f5f24b44e4cc3ea096bd SHA256 4622276cd5254414811ae3a03ba345c28c241dd12d523aea79a4aad424ef06a0 EBUILD linuxtv-dvb-firmware-2006.11.13.ebuild 5767 RMD160 7f7e2441bf4417814ab37fdd371858529709e358 SHA1 3c3171252dae4b96ca8727d543f8101bb231a702 SHA256 d235d858f6089bd0172e34e3ca51911a56efbd1beb017b8e47996da54a5fa846 EBUILD linuxtv-dvb-firmware-2007.04.13.ebuild 6973 RMD160 5d09ef4c6f8024a5067403be48d3d99e9d19347b SHA1 a52e6f0e91fe4c9814dd469bdbd3bf0baffca1de SHA256 82ae77fcd315303aeedc384b3d5a2d8a94ad226f4d7b4623f36460758d251360 -MISC ChangeLog 3972 RMD160 e19e3f238aec0e7ba0db8096ce79f756fe63a145 SHA1 8c919abbcff78fd1e3ea1acafe64d0dab04dfde6 SHA256 3ef7b57d6d27f732e88cce2973297ba02826e53cdb6870a5ecaa3faf9eecb7d9 +EBUILD linuxtv-dvb-firmware-2009.07.06.ebuild 8631 RMD160 720e5c647fe7d7b2f9beb9e20e00436a5f28ebe8 SHA1 4d4af8e9c0b749cbd5d8d0b6aa59dcb3184af926 SHA256 942324f55542ca6a805aafdf2b75fc4ae084ffefd0b0afca433c9449d3bfd518 +MISC ChangeLog 4332 RMD160 c31caa8d13e8cf641a77a891e343742b6f890e05 SHA1 c406b79d1b6a9b4f710331814218a348856d3007 SHA256 fbc8bb03150e71113d257430f2a5afc71fb05cc15cf45fc99e66ed53e1f8d081 MISC metadata.xml 162 RMD160 8bd24f9f2805b005cef731c0cda868c72e6980af SHA1 7464d1657179a3f30c5ea2ad401590e4489ac945 SHA256 aaad144c69dd58781e1dc97b5fbad08a5b4db504bd3cbbb4ab27018a307d5d81 diff --git a/media-tv/linuxtv-dvb-firmware/files/get_dvb_firmware-2009.07.06 b/media-tv/linuxtv-dvb-firmware/files/get_dvb_firmware-2009.07.06 new file mode 100644 index 000000000000..73b774577811 --- /dev/null +++ b/media-tv/linuxtv-dvb-firmware/files/get_dvb_firmware-2009.07.06 @@ -0,0 +1,638 @@ +#!/usr/bin/perl +# DVB firmware extractor +# +# (c) 2004 Andrew de Quincey +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +use File::Temp qw/ tempdir /; +use IO::Handle; + +@components = ( "sp8870", "sp887x", "tda10045", "tda10046", + "tda10046lifeview", "av7110", "dec2000t", "dec2540t", + "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", + "or51211", "or51132_qam", "or51132_vsb", "bluebird", + "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718" ); + +# Check args +syntax() if (scalar(@ARGV) != 1); +$cid = $ARGV[0]; + +# Do it! +for ($i=0; $i < scalar(@components); $i++) { + if ($cid eq $components[$i]) { + $outfile = eval($cid); + die $@ if $@; + print STDERR <<EOF; +Firmware(s) $outfile extracted successfully. +Now copy it(they) to either /usr/lib/hotplug/firmware or /lib/firmware +(depending on configuration of firmware hotplug). +EOF + exit(0); + } +} + +# If we get here, it wasn't found +print STDERR "Unknown component \"$cid\"\n"; +syntax(); + + + + +# --------------------------------------------------------------- +# Firmware-specific extraction subroutines + +sub sp8870 { + my $sourcefile = "tt_Premium_217g.zip"; + my $url = "http://2.download.softwarepatch.pl/1619edb0dcb493dd5337b94a1f79c3f6/$sourcefile"; + my $hash = "53970ec17a538945a6d8cb608a7b3899"; + my $outfile = "dvb-fe-sp8870.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + verify("$tmpdir/software/OEM/HE/App/boot/SC_MAIN.MC", $hash); + copy("$tmpdir/software/OEM/HE/App/boot/SC_MAIN.MC", $outfile); + + $outfile; +} + +sub sp887x { + my $sourcefile = "Dvbt1.3.57.6.zip"; + my $url = "http://www.avermedia.com/software/$sourcefile"; + my $cabfile = "DVBT Net Ver1.3.57.6/disk1/data1.cab"; + my $hash = "237938d53a7f834c05c42b894ca68ac3"; + my $outfile = "dvb-fe-sp887x.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + checkunshield(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + unshield("$tmpdir/$cabfile", $tmpdir); + verify("$tmpdir/ZEnglish/sc_main.mc", $hash); + copy("$tmpdir/ZEnglish/sc_main.mc", $outfile); + + $outfile; +} + +sub tda10045 { + my $sourcefile = "tt_budget_217g.zip"; + my $url = "http://www.technotrend.de/new/217g/$sourcefile"; + my $hash = "2105fd5bf37842fbcdfa4bfd58f3594a"; + my $outfile = "dvb-fe-tda10045.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + extract("$tmpdir/software/OEM/PCI/App/ttlcdacc.dll", 0x37ef9, 30555, "$tmpdir/fwtmp"); + verify("$tmpdir/fwtmp", $hash); + copy("$tmpdir/fwtmp", $outfile); + + $outfile; +} + +sub tda10046 { + my $sourcefile = "TT_PCI_2.19h_28_11_2006.zip"; + my $url = "http://www.tt-download.com/download/updates/219/$sourcefile"; + my $hash = "6a7e1e2f2644b162ff0502367553c72d"; + my $outfile = "dvb-fe-tda10046.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + extract("$tmpdir/TT_PCI_2.19h_28_11_2006/software/OEM/PCI/App/ttlcdacc.dll", 0x65389, 24478, "$tmpdir/fwtmp"); + verify("$tmpdir/fwtmp", $hash); + copy("$tmpdir/fwtmp", $outfile); + + $outfile; +} + +sub tda10046lifeview { + my $sourcefile = "7%5Cdrv_2.11.02.zip"; + my $url = "http://www.lifeview.hk/dbimages/document/$sourcefile"; + my $hash = "1ea24dee4eea8fe971686981f34fd2e0"; + my $outfile = "dvb-fe-tda10046.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp"); + verify("$tmpdir/fwtmp", $hash); + copy("$tmpdir/fwtmp", $outfile); + + $outfile; +} + +sub av7110 { + my $sourcefile = "dvb-ttpci-01.fw-261d"; + my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; + my $hash = "603431b6259715a8e88f376a53b64e2f"; + my $outfile = "dvb-ttpci-01.fw"; + + checkstandard(); + + wgetfile($sourcefile, $url); + verify($sourcefile, $hash); + copy($sourcefile, $outfile); + + $outfile; +} + +sub dec2000t { + my $sourcefile = "dec217g.exe"; + my $url = "http://hauppauge.lightpath.net/de/$sourcefile"; + my $hash = "bd86f458cee4a8f0a8ce2d20c66215a9"; + my $outfile = "dvb-ttusb-dec-2000t.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_T.bin", $hash); + copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_T.bin", $outfile); + + $outfile; +} + +sub dec2540t { + my $sourcefile = "dec217g.exe"; + my $url = "http://hauppauge.lightpath.net/de/$sourcefile"; + my $hash = "53e58f4f5b5c2930beee74a7681fed92"; + my $outfile = "dvb-ttusb-dec-2540t.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_X.bin", $hash); + copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_X.bin", $outfile); + + $outfile; +} + +sub dec3000s { + my $sourcefile = "dec217g.exe"; + my $url = "http://hauppauge.lightpath.net/de/$sourcefile"; + my $hash = "b013ececea83f4d6d8d2a29ac7c1b448"; + my $outfile = "dvb-ttusb-dec-3000s.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_S.bin", $hash); + copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_S.bin", $outfile); + + $outfile; +} +sub opera1{ + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0); + + checkstandard(); + my $fwfile1="dvb-usb-opera1-fpga-01.fw"; + my $fwfile2="dvb-usb-opera-01.fw"; + extract("2830SCap2.sys", 0x62e8, 55024, "$tmpdir/opera1-fpga.fw"); + extract("2830SLoad2.sys",0x3178,0x3685-0x3178,"$tmpdir/fw1part1"); + extract("2830SLoad2.sys",0x0980,0x3150-0x0980,"$tmpdir/fw1part2"); + delzero("$tmpdir/fw1part1","$tmpdir/fw1part1-1"); + delzero("$tmpdir/fw1part2","$tmpdir/fw1part2-1"); + verify("$tmpdir/fw1part1-1","5e0909858fdf0b5b09ad48b9fe622e70"); + verify("$tmpdir/fw1part2-1","d6e146f321427e931df2c6fcadac37a1"); + verify("$tmpdir/opera1-fpga.fw","0f8133f5e9051f5f3c1928f7e5a1b07d"); + + my $RES1="\x01\x92\x7f\x00\x01\x00"; + my $RES0="\x01\x92\x7f\x00\x00\x00"; + my $DAT1="\x01\x00\xe6\x00\x01\x00"; + my $DAT0="\x01\x00\xe6\x00\x00\x00"; + open FW,">$tmpdir/opera.fw"; + print FW "$RES1"; + print FW "$DAT1"; + print FW "$RES1"; + print FW "$DAT1"; + appendfile(FW,"$tmpdir/fw1part1-1"); + print FW "$RES0"; + print FW "$DAT0"; + print FW "$RES1"; + print FW "$DAT1"; + appendfile(FW,"$tmpdir/fw1part2-1"); + print FW "$RES1"; + print FW "$DAT1"; + print FW "$RES0"; + print FW "$DAT0"; + copy ("$tmpdir/opera1-fpga.fw",$fwfile1); + copy ("$tmpdir/opera.fw",$fwfile2); + + $fwfile1.",".$fwfile2; +} +sub vp7041 { + my $sourcefile = "TwinhanDTV2.608a.zip"; + my $url = "http://www.twinhan.com/files/AW/Software/$sourcefile"; + my $hash = "e88c9372d1f66609a3e7b072c53fbcfe"; + my $outfile = "dvb-vp7041-2.422.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + extract("$tmpdir/TwinhanDTV2.608a/Drivers/7041/WinXP/UDTTload.sys", 12503, 3036, "$tmpdir/fwtmp1"); + extract("$tmpdir/TwinhanDTV2.608a/Drivers/7041/WinXP/UDTTload.sys", 2207, 10274, "$tmpdir/fwtmp2"); + + my $CMD = "\000\001\000\222\177\000"; + my $PAD = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"; + my ($FW); + open $FW, ">$tmpdir/fwtmp3"; + print $FW "$CMD\001$PAD"; + print $FW "$CMD\001$PAD"; + appendfile($FW, "$tmpdir/fwtmp1"); + print $FW "$CMD\000$PAD"; + print $FW "$CMD\001$PAD"; + appendfile($FW, "$tmpdir/fwtmp2"); + print $FW "$CMD\001$PAD"; + print $FW "$CMD\000$PAD"; + close($FW); + + verify("$tmpdir/fwtmp3", $hash); + copy("$tmpdir/fwtmp3", $outfile); + + $outfile; +} + +sub dibusb { + my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw"; + my $outfile = "dvb-dibusb-5.0.0.11.fw"; + my $hash = "fa490295a527360ca16dcdf3224ca243"; + + checkstandard(); + + wgetfile($outfile, $url); + verify($outfile,$hash); + + $outfile; +} + +sub nxt2002 { + my $sourcefile = "Technisat_DVB-PC_4_4_COMPACT.zip"; + my $url = "http://www.bbti.us/download/windows/$sourcefile"; + my $hash = "476befae8c7c1bb9648954060b1eec1f"; + my $outfile = "dvb-fe-nxt2002.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + verify("$tmpdir/SkyNET.sys", $hash); + extract("$tmpdir/SkyNET.sys", 331624, 5908, $outfile); + + $outfile; +} + +sub nxt2004 { + my $sourcefile = "AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip"; + my $url = "http://www.avermedia-usa.com/support/Drivers/$sourcefile"; + my $hash = "111cb885b1e009188346d72acfed024c"; + my $outfile = "dvb-fe-nxt2004.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + + wgetfile($sourcefile, $url); + unzip($sourcefile, $tmpdir); + verify("$tmpdir/3xHybrid.sys", $hash); + extract("$tmpdir/3xHybrid.sys", 465304, 9584, $outfile); + + $outfile; +} + +sub or51211 { + my $fwfile = "dvb-fe-or51211.fw"; + my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; + my $hash = "d830949c771a289505bf9eafc225d491"; + + checkstandard(); + + wgetfile($fwfile, $url); + verify($fwfile, $hash); + + $fwfile; +} + +sub cx231xx { + my $fwfile = "v4l-cx231xx-avcore-01.fw"; + my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; + my $hash = "7d3bb956dc9df0eafded2b56ba57cc42"; + + checkstandard(); + + wgetfile($fwfile, $url); + verify($fwfile, $hash); + + $fwfile; +} + +sub cx18 { + my $url = "http://linuxtv.org/downloads/firmware/"; + + my %files = ( + 'v4l-cx23418-apu.fw' => '588f081b562f5c653a3db1ad8f65939a', + 'v4l-cx23418-cpu.fw' => 'b6c7ed64bc44b1a6e0840adaeac39d79', + 'v4l-cx23418-dig.fw' => '95bc688d3e7599fd5800161e9971cc55', + ); + + checkstandard(); + + my $allfiles; + foreach my $fwfile (keys %files) { + wgetfile($fwfile, "$url/$fwfile"); + verify($fwfile, $files{$fwfile}); + $allfiles .= " $fwfile"; + } + + $allfiles =~ s/^\s//; + + $allfiles; +} + +sub mpc718 { + my $archive = 'Yuan MPC718 TV Tuner Card 2.13.10.1016.zip'; + my $url = "ftp://ftp.work.acer-euro.com/desktop/aspire_idea510/vista/Drivers/$archive"; + my $fwfile = "dvb-cx18-mpc718-mt352.fw"; + my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); + + checkstandard(); + wgetfile($archive, $url); + unzip($archive, $tmpdir); + + my $sourcefile = "$tmpdir/Yuan MPC718 TV Tuner Card 2.13.10.1016/mpc718_32bit/yuanrap.sys"; + my $found = 0; + + open IN, '<', $sourcefile or die "Couldn't open $sourcefile to extract $fwfile data\n"; + binmode IN; + open OUT, '>', $fwfile; + binmode OUT; + { + # Block scope because we change the line terminator variable $/ + my $prevlen = 0; + my $currlen; + + # Buried in the data segment are 3 runs of almost identical + # register-value pairs that end in 0x5d 0x01 which is a "TUNER GO" + # command for the MT352. + # Pull out the middle run (because it's easy) of register-value + # pairs to make the "firmware" file. + + local $/ = "\x5d\x01"; # MT352 "TUNER GO" + + while (<IN>) { + $currlen = length($_); + if ($prevlen == $currlen && $currlen <= 64) { + chop; chop; # Get rid of "TUNER GO" + s/^\0\0//; # get rid of leading 00 00 if it's there + printf OUT "$_"; + $found = 1; + last; + } + $prevlen = $currlen; + } + } + close OUT; + close IN; + if (!$found) { + unlink $fwfile; + die "Couldn't find valid register-value sequence in $sourcefile for $fwfile\n"; + } + $fwfile; +} + +sub cx23885 { + my $url = "http://linuxtv.org/downloads/firmware/"; + + my %files = ( + 'v4l-cx23885-avcore-01.fw' => 'a9f8f5d901a7fb42f552e1ee6384f3bb', + 'v4l-cx23885-enc.fw' => 'a9f8f5d901a7fb42f552e1ee6384f3bb', + ); + + checkstandard(); + + my $allfiles; + foreach my $fwfile (keys %files) { + wgetfile($fwfile, "$url/$fwfile"); + verify($fwfile, $files{$fwfile}); + $allfiles .= " $fwfile"; + } + + $allfiles =~ s/^\s//; + + $allfiles; +} + +sub pvrusb2 { + my $url = "http://linuxtv.org/downloads/firmware/"; + + my %files = ( + 'v4l-cx25840.fw' => 'dadb79e9904fc8af96e8111d9cb59320', + ); + + checkstandard(); + + my $allfiles; + foreach my $fwfile (keys %files) { + wgetfile($fwfile, "$url/$fwfile"); + verify($fwfile, $files{$fwfile}); + $allfiles .= " $fwfile"; + } + + $allfiles =~ s/^\s//; + + $allfiles; +} + +sub or51132_qam { + my $fwfile = "dvb-fe-or51132-qam.fw"; + my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; + my $hash = "7702e8938612de46ccadfe9b413cb3b5"; + + checkstandard(); + + wgetfile($fwfile, $url); + verify($fwfile, $hash); + + $fwfile; +} + +sub or51132_vsb { + my $fwfile = "dvb-fe-or51132-vsb.fw"; + my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; + my $hash = "c16208e02f36fc439a557ad4c613364a"; + + checkstandard(); + + wgetfile($fwfile, $url); + verify($fwfile, $hash); + + $fwfile; +} + +sub bluebird { + my $url = "http://www.linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw"; + my $outfile = "dvb-usb-bluebird-01.fw"; + my $hash = "658397cb9eba9101af9031302671f49d"; + + checkstandard(); + + wgetfile($outfile, $url); + verify($outfile,$hash); + + $outfile; +} + +# --------------------------------------------------------------- +# Utilities + +sub checkstandard { + if (system("which unzip > /dev/null 2>&1")) { + die "This firmware requires the unzip command - see ftp://ftp.info-zip.org/pub/infozip/UnZip.html\n"; + } + if (system("which md5sum > /dev/null 2>&1")) { + die "This firmware requires the md5sum command - see http://www.gnu.org/software/coreutils/\n"; + } + if (system("which wget > /dev/null 2>&1")) { + die "This firmware requires the wget command - see http://wget.sunsite.dk/\n"; + } +} + +sub checkunshield { + if (system("which unshield > /dev/null 2>&1")) { + die "This firmware requires the unshield command - see http://sourceforge.net/projects/synce/\n"; + } +} + +sub wgetfile { + my ($sourcefile, $url) = @_; + + if (! -f $sourcefile) { + system("wget -O \"$sourcefile\" \"$url\"") and die "wget failed - unable to download firmware"; + } +} + +sub unzip { + my ($sourcefile, $todir) = @_; + + $status = system("unzip -q -o -d \"$todir\" \"$sourcefile\" 2>/dev/null" ); + if ((($status >> 8) > 2) || (($status & 0xff) != 0)) { + die ("unzip failed - unable to extract firmware"); + } +} + +sub unshield { + my ($sourcefile, $todir) = @_; + + system("unshield x -d \"$todir\" \"$sourcefile\" > /dev/null" ) and die ("unshield failed - unable to extract firmware"); +} + +sub verify { + my ($filename, $hash) = @_; + my ($testhash); + + open(CMD, "md5sum \"$filename\"|"); + $testhash = <CMD>; + $testhash =~ /([a-zA-Z0-9]*)/; + $testhash = $1; + close CMD; + die "Hash of extracted file does not match!\n" if ($testhash ne $hash); +} + +sub copy { + my ($from, $to) = @_; + + system("cp -f \"$from\" \"$to\"") and die ("cp failed"); +} + +sub extract { + my ($infile, $offset, $length, $outfile) = @_; + my ($chunklength, $buf, $rcount); + + open INFILE, "<$infile"; + open OUTFILE, ">$outfile"; + sysseek(INFILE, $offset, SEEK_SET); + while($length > 0) { + # Calc chunk size + $chunklength = 2048; + $chunklength = $length if ($chunklength > $length); + + $rcount = sysread(INFILE, $buf, $chunklength); + die "Ran out of data\n" if ($rcount != $chunklength); + syswrite(OUTFILE, $buf); + $length -= $rcount; + } + close INFILE; + close OUTFILE; +} + +sub appendfile { + my ($FH, $infile) = @_; + my ($buf); + + open INFILE, "<$infile"; + while(1) { + $rcount = sysread(INFILE, $buf, 2048); + last if ($rcount == 0); + print $FH $buf; + } + close(INFILE); +} + +sub delzero{ + my ($infile,$outfile) =@_; + + open INFILE,"<$infile"; + open OUTFILE,">$outfile"; + while (1){ + $rcount=sysread(INFILE,$buf,22); + $len=ord(substr($buf,0,1)); + print OUTFILE substr($buf,0,1); + print OUTFILE substr($buf,2,$len+3); + last if ($rcount<1); + printf OUTFILE "%c",0; +#print $len." ".length($buf)."\n"; + + } + close(INFILE); + close(OUTFILE); +} + +sub syntax() { + print STDERR "syntax: get_dvb_firmware <component>\n"; + print STDERR "Supported components:\n"; + for($i=0; $i < scalar(@components); $i++) { + print STDERR "\t" . $components[$i] . "\n"; + } + exit(1); +} diff --git a/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.07.06.ebuild b/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.07.06.ebuild new file mode 100644 index 000000000000..a19d334174b0 --- /dev/null +++ b/media-tv/linuxtv-dvb-firmware/linuxtv-dvb-firmware-2009.07.06.ebuild @@ -0,0 +1,331 @@ +# 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.07.06.ebuild,v 1.1 2009/09/02 20:49:58 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" + "usb-af9015" + "sp887x" + "af9005" + "cx231xx" + "cx18" + "cx18" + "cx18" + "cx23885" + "cx23885" + "pvrusb2" + "usb-bluebird" +# get_dvb_firmware + "sp8870" + "tda10046" + "tda10046lifeview" + "ttusb-dec" + "ttusb-dec" + "ttusb-dec" + "opera1" + "opera1" + "vp7041" + "nxt200x" + "mpc718" +) + +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-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-usb-af9015.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" +# 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" +) + +FW_GET_PARAMETER=( +# packet + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" +# own URL + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" + "-" +# get_dvb_firmware + "sp8870" + "tda10046" + "tda10046lifeview" + "dec2000t" + "dec2540t" + "dec3000s" + "opera1" + "-" + "vp7041" + "nxt2004" + "mpc718" +) + +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://www.otit.fi/~crope/v4l-dvb/af9015/af9015_firmware_cutter/firmware_files/4.95.0/dvb-usb-af9015.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" +# 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" +) + +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." + eerror + fi + + if [[ -z ${DVB_CARDS} ]]; then + elog "DVB_CARDS is not set, installing all available firmware files." + 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." + eerror + die "Conflicting values for DVB_CARDS set." + fi + 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 "If you need another firmware file and want it included create a bug" + elog "at bugs.gentoo.org." + elog "If some firmware sources are not fetchable anymore please also report" + elog "a bug. If there is no alternative source or an update to the firmware" + elog "available we have to remove it from this ebuild and you are on your own." +} + +src_unpack() { + # link all downloaded files to ${S} + for f in ${A}; do + [[ -L ${f} ]] || ln -s ${DISTDIR}/${f} ${f} + done + + # unpack firmware-packet + if has ${PACKET_NAME} ${A}; then + unpack ${PACKET_NAME} + fi + + use dvb_cards_mpc718 && mv Yuan%20MPC718%20TV%20Tuner%20Card%202.13.10.1016.zip "Yuan MPC718 TV Tuner Card 2.13.10.1016.zip" + use dvb_cards_dibusb-usb1 && mv dvb-usb-dibusb-5.0.0.11.fw dvb-dibusb-5.0.0.11.fw + use dvb_cards_ttpci && mv dvb-ttpci-01.fw-fc2624 dvb-ttpci-01.fw + + 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 +} |