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
27 #if [ ! -r mirrors ] || find mirrors -mtime +20 ; then
28 echo "Downloading mirrors list"
29 wget
-nv -c -N $MYSITE/mirrors || true
31 if [ ! -r bestsites
] ||
[ mirrors
-nt bestsites
] || \
32 find bestsites
-mtime +20 |
grep -q bestsites
; then
33 if which netselect
> /dev
/null
; then
34 echo Choosing best mirrors using netselect
35 netselect
-s 5 -t 5 $
( cat mirrors
) |
awk '{print $2}' > bestsites
36 elif which fping
> /dev
/null
; then
37 fping
-C 1 $
( sed 's#.*//##;s#/.*##' mirrors
) 2>&1 | \
38 egrep -v 'bytes.*loss' |
sort -n -k3 | \
39 grep -v ': *-' |
awk '/:/{print $1}' |
head -5 |
( while read mainsite
; do
40 grep $mainsite $PREFDIR/mirrors
; done ) > bestsites
42 echo "(If you install 'netselect' or 'fping', it will select the best mirror for you"
43 echo " you may wish to stop this script and rerun after installation)"
54 cd $CODECDIR/mplayer_binary_codecs
56 if [ -r $filename ] ; then
57 cp $filename $filename.bak
60 if [ "$url" = @MAINSITE@
] ; then
61 list
=$PREFDIR/bestsites
62 test -r $list || list
=$PREFDIR/mirrors
63 cat $list |
while read mainsite
; do
64 echo Downloading
$filename from
$mainsite ...
65 wget
-c -N $mainsite/$dir/$filename || true
66 if [ -r "$filename" ] ; then
72 wget
-c -N $url/$dir/$filename || true
73 if [ -r "$filename" ] ; then
84 if [ -r $filename.bak
] && cmp $filename.bak
$filename && [ -r $filename.list
] ; then
85 echo It appears that
$filename was already succesfully installed
86 [ -r $filename.bak
] && rm $filename.bak
88 if grep -q " $filename$" $PREFDIR/MD5SUMS
; then
89 echo Checking MD5
for $filename
90 grep " $filename$" $PREFDIR/MD5SUMS |
md5sum -c -
92 echo Warning
: no MD5
for $filename were found. Hit enter to
continue.
95 echo Installing
$filename ...
96 if [ -r $filename.list
] ; then
97 tr '\n' '\000' < $filename.list |
xargs -r0 rm || true
102 tarfail
() { echo FAILED
$filename ; rm $filename.list
; exit 1 ; }
106 tar xvzf
$filename > $filename.list || tarfail
110 tar xvzf
$filename > $filename.list || tarfail
114 tar --bzip2 -xvf $filename > $filename.list || tarfail
118 [ -r $filename.bak
] && rm $filename.bak
120 echo "Installed $filename Succesfully!"
126 cat $CODECDIR/mplayer_binary_codecs
/$1 |
while read f
; do
127 ln -sbf mplayer_binary_codecs
/"$f" .
134 # cat $CODECDIR/mplayer_binary_codecs/$1 | while f do
135 # ln -sbf mplayer_binary_codecs/"$f"
137 if which symlinks
> /dev
/null
; then
138 symlinks
-d $CODECDIR
142 if [ `whoami` != root
]; then
143 echo "You must be 'root' to use this script. Login as root first!"
149 if test -x /bin
/bzip2 ||
test -x /usr
/bin
/bzip2 ; then : ; else
150 echo You need to
install bzip2
155 #if [ ! -r codecs_list ] || find codecs_list -mtime +20 ; then
156 echo "Getting codecs list"
157 wget
-nv -c -N $MYSITE/codecs_list || true
161 echo Downloading MD5 sums from main site
162 [ -r MD5SUMS
] && mv MD5SUMS MD5SUMS.bak
163 if wget
-nv -N http
://www.mplayerhq.hu
/MPlayer
/releases
/codecs
/MD5SUMS
; then
164 [ -r MD5SUMS.bak
] && rm MD5SUMS.bak
167 if [ -r MD5SUMS.bak
] ; then
168 echo "trying to use backup"
169 mv MD5SUMS.bak MD5SUMS
173 if grep -q "^$dpkgarch" $PREFDIR/codecs_list
; then
174 egrep -v "^[[:space:]]*(#|$)" $PREFDIR/codecs_list | \
175 while read arch url dir
file info
; do
176 if [ "$dpkgarch" = "$arch" ]; then
177 echo Downloading and installing
$file $info...
178 INSTALL
"$url" "$dir" "$file"
182 test "$dpkgarch" = "powerpc" && needlibstd
=yes
183 test "$dpkgarch" = "i386" && needlibstd
=yes
184 if test "$needlibstd" = "yes" && ! test -r /usr
/lib
/libstdc
++.so
.5 ; then
185 echo "Warning: you need to install libstdc++ 5 libraries"
186 echo -n "Do it now? "
189 y
*) apt-get
install libstdc
++5 ;;
190 *) echo "If you change your mind, use the command"
191 echo " apt-get install libstdc++5" ;;
195 echo "Sorry, no codecs for your arch '$dpkgarch'. Sorry dude :("
202 rm -rf mplayer_binary_codecs
203 #FIXME we need a better clean system
204 if which symlinks
> /dev
/null
; then
207 echo "please install the package 'symlinks' and run 'symlinks -d $CODECDIR' "
209 echo "Uninstalled Succesfully!"
213 echo "Usage: {install|uninstall}"
214 echo "This program will install binary codecs for MPlayer."