#!/bin/sh HOMEDIR=`pwd` TMP=.tmp NEXT_LIST=.tmp2 GROUP=$1 SVNUSER=$2 SVNPASS=$3 SVNURL=$4 SVNPORT=$5 MAKETYPE=$6 CPUTYPE=$7 if [ ! -e "$HOMEDIR"/.firstrun ]; then echo "[make-ipk] first run remove old ipkg-build and ipkg-make-index links" sudo rm /bin/ipkg-build sudo rm /sbin/ipkg-build sudo rm /bin/ipkg-make-index sudo rm /sbin/ipkg-make-index touch "$HOMEDIR"/.firstrun fi if [ `which ipkg-build | wc -l` -eq 0 ]; then sudo ln -s $HOMEDIR/ipkg-utils-050831/ipkg-build /bin fi if [ `which ipkg-make-index | wc -l` -eq 0 ]; then sudo ln -s $HOMEDIR/ipkg-utils-050831/ipkg-make-index /bin fi if [ `which gzip | wc -l` -eq 0 ]; then echo "[make-ipk] install gzip" echo "[make-ipk] apt-get install gzip" exit elif [ `which python2.6 | wc -l` -eq 0 ]; then echo "[make-ipk] install python2.6 | search python2.6_2.6.1-1_i386.deb" exit elif [ `which wput | wc -l` -eq 0 ]; then echo "[make-ipk] install wput v0.6.2" echo "[make-ipk] apt-get install wput" exit fi if [ "$MAKETYPE" = "online" ];then WPUTCHECK=`wput --version | tr " " "\n" | tail -n1 | sed 's/\.//' | sed 's/\.//'` echo WPUTCHECK $WPUTCHECK if [ "$WPUTCHECK" -gt "061" ]; then echo "[make-flash] wput0.6.2 ok" else echo "[make-ipk] install wput0.6.2" echo "[make-ipk] cd /src" echo "[make-ipk] wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/wput-0.6.2.tar.gz" echo "[make-ipk] tar -zxvf wput-0.6.2.tar.gz" echo "[make-ipk] cd wput-0.6.2" echo "[make-ipk] ./configure" echo "[make-ipk] make" echo "[make-ipk] make install" exit fi fi if [ $# -ne 7 ]; then echo "|------------------------------------------------------------------------------------|" echo "| |" echo "| IPK Make Script |" echo "| |" echo '| use ./make-ipk |' echo "| |" echo "| for group |" echo "| for svnuser |" echo "| for svnpass |" echo "| for svnurl |" echo "| for svnport |" echo "| for maketype |" echo "| for cputype |" echo "| |" echo "|------------------------------------------------------------------------------------|" echo "| v1.1@dev-team |" echo "|------------------------------------------------------------------------------------|" exit 1 fi if [ $GROUP = "dev" ] || [ $GROUP = "update" ];then echo "[make-ipk] group=$GROUP" else echo "[make-ipk] group " exit 1 fi if [ $MAKETYPE = "online" ] || [ $MAKETYPE = "offline" ];then echo "[make-ipk] maketype=$MAKETYPE" else echo "[make-ipk] maketype " exit 1 fi if [ $CPUTYPE = "sh4" ] || [ $CPUTYPE = "mipsel" ];then echo "[make-ipk] cputype=$CPUTYPE" else echo "[make-ipk] cputype " exit 1 fi rm -rf "$HOMEDIR"/BUILD rm -rf "$HOMEDIR"/BUILDRELEASE mkdir -p "$HOMEDIR"/BUILD mkdir -p "$HOMEDIR"/BUILDRELEASE svn co --username $SVNUSER --password $SVNPASS svn://"$SVNURL":"$SVNPORT"/image/scripts $HOMEDIR/scripts svn co --username $SVNUSER --password $SVNPASS svn://"$SVNURL":"$SVNPORT"/image/config $HOMEDIR/config . ./config/make-config if [ $CPUTYPE = "sh4" ];then cp -a "$HOMEDIR"/source.sh4/* "$HOMEDIR"/BUILD elif [ $CPUTYPE = "mipsel" ];then cp -a "$HOMEDIR"/source.sh4/spinner* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/settings* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/radio* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/p* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/m* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/i* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/game* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/fonts* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/epg* "$HOMEDIR"/BUILD cp -a "$HOMEDIR"/source.sh4/editor* "$HOMEDIR"/BUILD sleep 5 rm -r "$HOMEDIR"/BUILD/*/CONTROL/pre* sed -i 's/sh4/mipsel/g' "$HOMEDIR"/BUILD/*/CONTROL/control cp -a "$HOMEDIR"/source.mipsel/* "$HOMEDIR"/BUILD fi ls -1 "$HOMEDIR"/BUILD > aaf-flashbeta.txt cp -a "$HOMEDIR"/bootvideos "$HOMEDIR"/BUILDRELEASE/boot LIST_LINE=`cat aaf-flashbeta.txt` ALLOWED=`cat "$HOMEDIR"/aaf-flashbeta_allowed` cd "$HOMEDIR"/BUILD echo "[make-ipk] set executable Folder rights 755 to CONTROL bin sbin emu" chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "CONTROL"` > /dev/null 2>&1 chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "bin"` > /dev/null 2>&1 chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "sbin"` > /dev/null 2>&1 chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "emu"` > /dev/null 2>&1 for ROUND in $ALLOWED; do for DIR in $LIST_LINE; do echo $DIR > $TMP if [ ! `grep "$ROUND" $TMP | wc -l` -eq 0 ]; then echo "[make-ipk] ROUND $ROUND == $DIR DIR" echo $DIR >> $NEXT_LIST fi done done LIST=`cat $NEXT_LIST` echo LIST: $LIST rm -rf `find "$HOMEDIR"/BUILD -type d -name "*.svn"` ################### SHRINK PYTHON FILES ######################### "$HOMEDIR"/scripts/kf-pyshrink.sh ./ "$HOMEDIR"/BUILD "$PYTHONVER" "$SKIPPEDSHRINK" ### cd $HOMEDIR echo make py var ls -R -1 "$HOMEDIR"/BUILD | grep "/" | sed 's/.$//' > tmp.txt LINE=`cat tmp.txt` for DIR in $LINE; do cd $HOMEDIR cd $DIR echo "[make-ipk] dir $DIR" ls -1 *.py > "$HOMEDIR"/pylist.tmp PYLINE=`cat "$HOMEDIR"/pylist.tmp` for RPY in $PYLINE; do python2.6 -OO "$HOMEDIR"/scripts/mkpyc.py $RPY PYO=`echo "$RPY" | sed "s/.py$/.pyo/"` PYC=`echo "$RPY" | sed "s/.py$/.pyc/"` if [ $CPUTYPE = "sh4" ];then mv $PYO $PYC elif [ $CPUTYPE = "mipsel" ];then mv $PYC $PYO fi if [ $? -ne 0 ]; then echo "[make-ipk] Fehler beim kompilieren $RPY" fi done done cd $HOMEDIR ### rm "$HOMEDIR"/pylist.tmp rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.py" -print` if [ $CPUTYPE = "sh4" ];then rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.pyo" -print` elif [ $CPUTYPE = "mipsel" ];then rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.pyc" -print` fi rm -rf "$HOMEDIR"/preview mkdir "$HOMEDIR"/preview ################### SHRINK PNG FILES ######################### PNGFILES=`find "$HOMEDIR"/BUILD -type f -name "*.png" -print` for DIR in $PNGFILES; do echo "[make-ipk] PNG: $DIR" /usr/bin/advpng -4 -z $DIR #> /dev/null 2>&1 done ################### STRIPPED ALL FILES ######################### if [ $CPUTYPE = "sh4" ];then FILEALL=`find "$HOMEDIR"/BUILD -name "*" -print` if ( test -f "$HOMEDIR"/scripts/sh4-linux-strip ); then echo "" echo "[make-ipk] Files strippen" echo "" for FILE in $FILEALL do echo $FILE | grep ".ko" >/dev/null 2>&1 if [ $? -eq 0 ]; then param="--strip-unneeded --remove-section=.comment"; else param="-s --remove-section=.comment"; fi "$HOMEDIR"/scripts/sh4-linux-strip $param $FILE > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "[make-ipk] Strippe: $FILE" fi done else echo "" echo "[make-ipk] Files strippen konnte nicht durchgefuehrt werden, da sh4-linux-strip fehlt." fi fi for DIR in $LIST; do echo "[make-ipk] $DIR" NAME=`cat "$HOMEDIR"/BUILD/"$DIR"/CONTROL/control | grep Package: | tr " " "\n" | tr "-" "\n" | tail -n 1 | cut -d . -f1 | head -n1` # ARCH=`cat "$HOMEDIR"/BUILD/"$DIR"/CONTROL/control | grep Architecture: | tr " " "\n" | tail -n 1` # cp "$HOMEDIR"/BUILD/"$DIR"/preview/prev.png "$HOMEDIR"/preview/enigma2-pluginpreview-"$NAME"_"$ARCH".ipk.png cp "$HOMEDIR"/BUILD/"$DIR"/preview/prev.png "$HOMEDIR"/preview/enigma2-pluginpreview-"$NAME".png rm -r "$HOMEDIR"/BUILD/"$DIR"/preview done cd "$HOMEDIR"/BUILDRELEASE for DIR in $LIST; do ipkg-build "$HOMEDIR"/BUILD/"$DIR" done date=`date` echo "[make-ipk] make-index" rm Packages* ipkg-make-index -l Packages.filelist -p Packages -v . echo "Here is the public AAF-Flash-PlugList" > PlugList echo "" >> PlugList cat Packages | grep Filename: | sed "s/Filename: enigma2-plugin-//" | sed "s/.ipk//" | sed "s/_sh4//" | sed "s/_/ V/" >> PlugList rm test.txt echo "" >> PlugList echo "mfg AAF-TEAM @ $date" >> PlugList echo "done" rm .tmp* rm tmprc cd "$HOMEDIR" tar czvf Packages.preview.tar.gz ./preview mv "$HOMEDIR"/Packages.preview.tar.gz "$HOMEDIR"/BUILDRELEASE cd "$HOMEDIR"/BUILDRELEASE PACKAGESLIST=`ls -1 Packages*` IPKLIST=`ls -1 *.ipk` if [ $GROUP = "update" ] && [ $MAKETYPE = "online" ] && [ $CPUTYPE = "sh4" ];then for ROUND in $PACKAGESLIST; do wput -u "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$ROUND" done for ROUND in $IPKLIST; do wput -u "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$ROUND" done wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/PlugList wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/Packages.preview.tar.gz cd boot BOOTLIST=`ls -1` for ROUND in $BOOTLIST; do wput -u "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/boot/"$ROUND" done elif [ $GROUP = "dev" ] && [ $MAKETYPE = "online" ] && [ $CPUTYPE = "sh4" ];then BTIME=`date +"%Y.%m.%d_%H.%M.%S"` echo quote USER $URLBETAUSER >"$HOMEDIR"/ftp.txt echo quote PASS $URLBETAPASS >>"$HOMEDIR"/ftp.txt # echo cd "$WWWMAIN"/"$IPKGCROSS_BETA" >>"$HOMEDIR"/ftp.txt # echo cd "$WWWMAIN" >>"$HOMEDIR"//ftp.txt echo del "$IPKGCROSS_BETA"/Packages >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/Packages.filelist >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/Packages.gz >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/PlugList >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/Packages.preview.tar.gz >>"$HOMEDIR"/ftp.txt # echo rename aaf-flash-beta aaf-flash-beta_old_"$URLBETAUSER"_"$BTIME" >>"$HOMEDIR"/ftp.txt echo quit >>"$HOMEDIR"/ftp.txt ftp -n "$URLBETA" < "$HOMEDIR"/ftp.txt sleep 5 for ROUND in $PACKAGESLIST; do wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/"$ROUND" done for ROUND in $IPKLIST; do wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/"$ROUND" done wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/PlugList wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/Packages.preview.tar.gz cd boot BOOTLIST=`ls -1` for ROUND in $BOOTLIST; do wput -u "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/boot/"$ROUND" done elif [ $GROUP = "dev" ] && [ $MAKETYPE = "online" ] && [ $CPUTYPE = "mipsel" ];then BTIME=`date +"%Y.%m.%d_%H.%M.%S"` echo quote USER $URLBETAUSER >"$HOMEDIR"/ftp.txt echo quote PASS $URLBETAPASS >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/mipsel/Packages >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/mipsel/Packages.filelist >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/mipsel/Packages.gz >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/mipsel/PlugList >>"$HOMEDIR"/ftp.txt echo del "$IPKGCROSS_BETA"/mipsel/Packages.preview.tar.gz >>"$HOMEDIR"/ftp.txt echo quit >>"$HOMEDIR"/ftp.txt ftp -n "$URLBETA" < "$HOMEDIR"/ftp.txt sleep 5 for ROUND in $PACKAGESLIST; do wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/mipsel/"$ROUND" done for ROUND in $IPKLIST; do wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/mipsel/"$ROUND" done wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/mipsel/PlugList wput "$BETARELEASEUPDATEURL"/"$IPKGCROSS_BETA"/mipsel/Packages.preview.tar.gz fi echo "[make-ipk] done" exit 0