4 # avoid insecure tempfile creation
7 # This script will download binary codecs for MPlayer unto a Debian system.
9 # Author: thuglife, mennucc1
12 CODECDIR
=/usr
/lib
/codecs
13 PREFDIR
=/var
/lib
/mplayer
/prefs
14 MYSITE
='http://people.debian.org/~mennucc1/mplayer'
16 dpkgarch
=$
(dpkg
--print-architecture)
18 [ -d $PREFDIR ] || mkdir
-v $PREFDIR
19 [ -d $CODECDIR ] || mkdir
-v $CODECDIR
21 [ -d mplayer_binary_codecs
] || mkdir
-v mplayer_binary_codecs
28 #if [ ! -r mirrors ] || find mirrors -mtime +20 ; then
29 echo "Downloading mirrors list"
30 wget
-nv -c -N $MYSITE/mirrors || true
32 if [ ! -r bestsites
] ||
[ mirrors
-nt bestsites
] || \
33 find bestsites
-mtime +20 |
grep -q bestsites
; then
34 if which netselect
> /dev
/null
; then
35 echo Choosing best mirrors using netselect
36 netselect
-s 5 -t 5 $
( cat mirrors
) |
awk '{print $2}' > bestsites
37 elif which fping
> /dev
/null
; then
38 fping
-C 1 $
( sed 's#.*//##;s#/.*##' mirrors
) 2>&1 | \
39 egrep -v 'bytes.*loss' |
sort -n -k3 | \
40 grep -v ': *-' |
awk '/:/{print $1}' |
head -5 |
( while read mainsite
; do
41 grep $mainsite $PREFDIR/mirrors
; done ) > bestsites
43 echo "(If you install 'netselect' or 'fping', it will select the best mirror for you"
44 echo " you may wish to stop this script and rerun after installation)"
57 cd $CODECDIR/mplayer_binary_codecs
59 if [ -r $filename ] ; then
60 cp $filename $filename.bak
63 if [ "$url" = @MAINSITE@
] ; then
64 list
=$PREFDIR/bestsites
65 test -r $list || list
=$PREFDIR/mirrors
66 cat $list |
while read mainsite
; do
67 echo Downloading
$filename from
$mainsite ...
68 wget
-c -N $mainsite/$dir/$filename || true
69 if [ -r "$filename" ] ; then
75 wget
-c -N $url/$dir/$filename || true
76 if [ -r "$filename" ] ; then
89 if [ -r $filename.bak
] && cmp $filename.bak
$filename && [ -r $filename.list
] ; then
90 echo It appears that
$filename was already succesfully installed
91 [ -r $filename.bak
] && rm $filename.bak
93 if grep -q " $filename$" $PREFDIR/MD5SUMS
; then
94 echo Checking MD5
for $filename
95 grep " $filename$" $PREFDIR/MD5SUMS |
md5sum -c -
97 echo Warning
: no MD5
for $filename were found. Hit enter to
continue.
100 echo Installing
$filename ...
101 if [ -r $filename.list
] ; then
102 tr '\n' '\000' < $filename.list |
xargs -r0 rm || true
103 UNLINK
$filename.list
107 tarfail
() { echo FAILED
$filename ; rm $filename.list
; exit 1 ; }
111 tar xvzf
$filename > $filename.list || tarfail
115 tar xvzf
$filename > $filename.list || tarfail
119 tar --bzip2 -xvf $filename > $filename.list || tarfail
123 [ -r $filename.bak
] && rm $filename.bak
125 echo "Installed $filename Succesfully!"
131 cat $CODECDIR/mplayer_binary_codecs
/$1 |
while read f
; do
132 ln -sbf mplayer_binary_codecs
/"$f" .
139 # cat $CODECDIR/mplayer_binary_codecs/$1 | while f do
140 # ln -sbf mplayer_binary_codecs/"$f"
142 if which symlinks
> /dev
/null
; then
143 symlinks
-d $CODECDIR
147 if [ `whoami` != root
]; then
148 echo "You must be 'root' to use this script. Login as root first!"
154 if test -x /bin
/bzip2 ||
test -x /usr
/bin
/bzip2 ; then : ; else
155 echo You need to
install bzip2
160 #if [ ! -r codecs_list ] || find codecs_list -mtime +20 ; then
161 echo "Getting codecs list"
162 wget
-nv -c -N $MYSITE/codecs_list || true
166 echo Downloading MD5 sums from main site
167 [ -r MD5SUMS
] && mv MD5SUMS MD5SUMS.bak
168 if wget
-nv -N http
://www.mplayerhq.hu
/MPlayer
/releases
/codecs
/MD5SUMS
; then
169 [ -r MD5SUMS.bak
] && rm MD5SUMS.bak
172 if [ -r MD5SUMS.bak
] ; then
173 echo "trying to use backup"
174 mv MD5SUMS.bak MD5SUMS
178 if grep -q "^$dpkgarch" $PREFDIR/codecs_list
; then
179 egrep -v "^[[:space:]]*(#|$)" $PREFDIR/codecs_list | \
180 while read arch url dir
file info
; do
181 if [ "$dpkgarch" = "$arch" ]; then
182 echo Downloading and installing
$file $info...
183 INSTALL
"$url" "$dir" "$file"
187 test "$dpkgarch" = "powerpc" && needlibstd
=yes
188 test "$dpkgarch" = "i386" && needlibstd
=yes
189 if test "$needlibstd" = "yes" && ! test -r /usr
/lib
/libstdc
++.so
.5 ; then
190 echo "Warning: you need to install libstdc++ 5 libraries"
191 echo -n "Do it now? "
194 y
*) apt-get
install libstdc
++5 ;;
195 *) echo "If you change your mind, use the command"
196 echo " apt-get install libstdc++5" ;;
200 echo "Sorry, no codecs for your arch '$dpkgarch'. Sorry dude :("
207 rm -rf mplayer_binary_codecs
208 #FIXME we need a better clean system
209 if which symlinks
> /dev
/null
; then
212 echo "please install the package 'symlinks' and run 'symlinks -d $CODECDIR' "
214 echo "Uninstalled Succesfully!"
218 echo "Usage: {install|uninstall}"
219 echo "This program will install binary codecs for MPlayer."