source: ipk/make-ipk@ 10437

Last change on this file since 10437 was 10435, checked in by obi, 15 years ago

fix

  • Property svn:executable set to *
File size: 14.7 KB
Line 
1#!/bin/sh
2HOMEDIR=`pwd`
3TMP=.tmp
4NEXT_LIST=.tmp2
5
6GROUP=$1
7SVNUSER=$2
8SVNPASS=$3
9SVNURL=$4
10SVNPORT=$5
11MAKETYPE=$6
12CPUTYPE=$7
13SWTYPE=$8
14
15if [ ! -e "$HOMEDIR"/.firstrun ]; then
16 echo "[make-ipk] first run remove old ipkg-build and ipkg-make-index links"
17 sudo rm /bin/ipkg-build
18 sudo rm /sbin/ipkg-build
19 sudo rm /bin/ipkg-make-index
20 sudo rm /sbin/ipkg-make-index
21 touch "$HOMEDIR"/.firstrun
22fi
23
24if [ `which ipkg-build | wc -l` -eq 0 ]; then
25 sudo ln -s $HOMEDIR/ipkg-utils-050831/ipkg-build /bin
26fi
27if [ `which ipkg-make-index | wc -l` -eq 0 ]; then
28 sudo ln -s $HOMEDIR/ipkg-utils-050831/ipkg-make-index /bin
29fi
30if [ `which gzip | wc -l` -eq 0 ]; then
31 echo "[make-ipk] install gzip"
32 echo "[make-ipk] apt-get install gzip"
33 exit
34elif [ `which python2.6 | wc -l` -eq 0 ]; then
35 echo "[make-ipk] install python2.6 | search python2.6_2.6.1-1_i386.deb"
36 exit
37elif [ `which wput | wc -l` -eq 0 ]; then
38 echo "[make-ipk] install wput v0.6.2"
39 echo "[make-ipk] apt-get install wput"
40 exit
41fi
42
43if [ "$MAKETYPE" = "online" ];then
44 WPUTCHECK=`wput --version | tr " " "\n" | tail -n1 | sed 's/\.//' | sed 's/\.//'`
45 echo WPUTCHECK $WPUTCHECK
46 if [ "$WPUTCHECK" -gt "061" ]; then
47 echo "[make-ipk] wput0.6.2 ok"
48 else
49 echo "[make-ipk] install wput0.6.2"
50 echo "[make-ipk] cd /src"
51 echo "[make-ipk] wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/wput-0.6.2.tar.gz"
52 echo "[make-ipk] tar -zxvf wput-0.6.2.tar.gz"
53 echo "[make-ipk] cd wput-0.6.2"
54 echo "[make-ipk] ./configure"
55 echo "[make-ipk] make"
56 echo "[make-ipk] make install"
57 exit
58 fi
59fi
60
61if [ $# -ne 8 ]; then
62 echo "|---------------------------------------------------------------------------------------------|"
63 echo "| |"
64 echo "| IPK Make Script |"
65 echo "| |"
66 echo '| use ./make-ipk <group> <svnuser> <svnpass> <svnurl> <svnport> <maketype> <cputype> <swtype> |'
67 echo "| |"
68 echo "| for group <dev|update> |"
69 echo "| for svnuser <your> |"
70 echo "| for svnpass <your> |"
71 echo "| for svnurl <your> |"
72 echo "| for svnport <your> |"
73 echo "| for maketype <online|offline|onlinebeta> |"
74 echo "| for cputype <sh4|mipsel> |"
75 echo "| for swtype <enigma2|neutrino|titan> |"
76 echo "| |"
77 echo "|---------------------------------------------------------------------------------------------|"
78 echo "| v2.0@dev-team |"
79 echo "|---------------------------------------------------------------------------------------------|"
80 exit 1
81fi
82
83if [ $GROUP = "dev" ] || [ $GROUP = "update" ];then
84 echo "[make-ipk] group=$GROUP"
85else
86 echo "[make-ipk] group <dev|update>"
87 exit 1
88fi
89
90if [ $MAKETYPE = "online" ] || [ $MAKETYPE = "offline" ] || [ $MAKETYPE = "onlinebeta" ];then
91 echo "[make-ipk] maketype=$MAKETYPE"
92else
93 echo "[make-ipk] maketype <online|offline|onlinebeta>"
94 exit 1
95fi
96
97if [ $CPUTYPE = "sh4" ] || [ $CPUTYPE = "mipsel" ];then
98 echo "[make-ipk] cputype=$CPUTYPE"
99else
100 echo "[make-ipk] cputype <sh4|mipsel>"
101 exit 1
102fi
103
104if [ $SWTYPE = "enigma2" ] || [ $SWTYPE = "neutrino" ] || [ $SWTYPE = "titan" ];then
105 echo "[make-ipk] swtype=$SWTYPE"
106else
107 echo "[make-ipk] swtype <enigma2|neutrino|titan>"
108 exit 1
109fi
110
111rm -rf "$HOMEDIR"/BUILD
112rm -rf "$HOMEDIR"/BUILDRELEASE
113
114rm -rf "$HOMEDIR"/preview
115rm -rf "$HOMEDIR"/config
116rm -rf "$HOMEDIR"/scripts
117
118mkdir -p "$HOMEDIR"/BUILD
119mkdir -p "$HOMEDIR"/BUILDRELEASE
120
121svn co --username $SVNUSER --password $SVNPASS svn://"$SVNURL":"$SVNPORT"/image/scripts $HOMEDIR/scripts
122svn co --username $SVNUSER --password $SVNPASS svn://"$SVNURL":"$SVNPORT"/image/config $HOMEDIR/config
123
124. ./config/make-config
125
126if [ $GROUP = "dev" ];then
127 WWWMAIN="beta"
128else
129 WWWMAIN="public"
130fi
131
132WWWPUBLIC="ipk"
133
134ls -1 "$HOMEDIR"/source > aaf-flashbeta.txt
135ls -1 "$HOMEDIR"/source."$CPUTYPE" >> aaf-flashbeta.txt
136
137LIST_LINE=`cat aaf-flashbeta.txt`
138ALLOWED=`cat "$HOMEDIR"/trustlist_allowed_"$CPUTYPE"_"$SWTYPE"`
139
140for DIR in $ALLOWED; do
141 cp -a "$HOMEDIR"/source/"$DIR"_* "$HOMEDIR"/BUILD
142done
143
144for DIR in $ALLOWED; do
145 cp -a "$HOMEDIR"/source."$CPUTYPE"/"$DIR"_* "$HOMEDIR"/BUILD
146done
147
148if [ $CPUTYPE = "mipsel" ];then
149 rm -r "$HOMEDIR"/BUILD/*/CONTROL/pre*
150 sed -i 's/sh4/mipsel/g' "$HOMEDIR"/BUILD/*/CONTROL/control
151fi
152
153cp -a "$HOMEDIR"/bootvideos "$HOMEDIR"/BUILDRELEASE/boot
154cd "$HOMEDIR"/BUILD
155
156# titan work start
157rm -rf browsers_picasa
158rm -rf browsers_elektro_1_0
159rm -rf browsers_werbezapper_1_0
160rm -rf browsers_zaphistorybrowser_1_2
161rm -rf swapnetwork_webif_1.0
162rm -rf swapnetwork_wlan_300
163# titan work done
164
165ls -1 "$HOMEDIR"/BUILD > $NEXT_LIST
166
167LIST=`cat $NEXT_LIST`
168echo LIST: $LIST
169
170rm -rf `find "$HOMEDIR"/BUILD -type d -name "*.svn"`
171sed -i "s/Package: enigma2-plugin-/Package: $SWTYPE-plugin-/g" "$HOMEDIR"/BUILD/*/CONTROL/control
172
173echo "[make-ipk] set executable Folder rights 755 to CONTROL bin sbin emu"
174chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "CONTROL"` > /dev/null 2>&1
175chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "bin"` > /dev/null 2>&1
176chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "sbin"` > /dev/null 2>&1
177chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "emu"` > /dev/null 2>&1
178
179################### SHRINK PYTHON FILES #########################
180
181"$HOMEDIR"/scripts/kf-pyshrink.sh ./ "$HOMEDIR"/BUILD "$PYTHONVER" "$SKIPPEDSHRINK"
182
183###
184#cd $HOMEDIR
185echo make py var
186ls -R -1 "$HOMEDIR"/BUILD | grep "/" | sed 's/.$//' > tmp.txt
187LINE=`cat tmp.txt`
188for DIR in $LINE; do
189 cd $HOMEDIR
190 cd $DIR
191 echo "[make-ipk] dir $DIR"
192 ls -1 *.py > "$HOMEDIR"/pylist.tmp
193 PYLINE=`cat "$HOMEDIR"/pylist.tmp`
194 for RPY in $PYLINE; do
195 python2.6 -OO "$HOMEDIR"/scripts/mkpyc.py $RPY
196 PYO=`echo "$RPY" | sed "s/.py$/.pyo/"`
197 PYC=`echo "$RPY" | sed "s/.py$/.pyc/"`
198 if [ $CPUTYPE = "sh4" ];then
199 mv $PYO $PYC
200 elif [ $CPUTYPE = "mipsel" ];then
201 mv $PYC $PYO
202 fi
203 if [ $? -ne 0 ]; then
204 echo "[make-ipk] Fehler beim kompilieren $RPY"
205 fi
206 done
207done
208cd $HOMEDIR
209###
210rm "$HOMEDIR"/pylist.tmp
211rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.py" -print`
212if [ $CPUTYPE = "sh4" ];then
213 rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.pyo" -print`
214elif [ $CPUTYPE = "mipsel" ];then
215 rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.pyc" -print`
216fi
217rm -rf "$HOMEDIR"/preview
218mkdir "$HOMEDIR"/preview
219
220################### SHRINK PNG FILES #########################
221
222PNGFILES=`find "$HOMEDIR"/BUILD -type f -name "*.png" -print`
223
224for DIR in $PNGFILES; do
225 echo "[make-ipk] PNG: $DIR"
226 /usr/bin/advpng -4 -z $DIR #> /dev/null 2>&1
227# /usr/bin/advpng -4 -z $DIR #> /dev/null 2>&1
228done
229
230################### STRIPPED ALL FILES #########################
231if [ $CPUTYPE = "sh4" ];then
232 FILEALL=`find "$HOMEDIR"/BUILD -name "*" -print`
233
234 if ( test -f "$HOMEDIR"/scripts/sh4-linux-strip ); then
235 echo ""
236 echo "[make-ipk] Files strippen"
237 echo ""
238 for FILE in $FILEALL
239 do
240 echo $FILE | grep ".ko" >/dev/null 2>&1
241 if [ $? -eq 0 ]; then param="--strip-unneeded --remove-section=.comment"; else param="-s --remove-section=.comment"; fi
242 "$HOMEDIR"/scripts/sh4-linux-strip $param $FILE > /dev/null 2>&1
243 if [ $? -eq 0 ]; then
244 echo "[make-ipk] Strippe: $FILE"
245 fi
246 done
247 else
248 echo ""
249 echo "[make-ipk] Files strippen konnte nicht durchgefuehrt werden, da sh4-linux-strip fehlt."
250 fi
251fi
252
253for DIR in $LIST; do
254 echo "[make-ipk] $DIR"
255 NAME=`cat "$HOMEDIR"/BUILD/"$DIR"/CONTROL/control | grep Package: | tr " " "\n" | tr "-" "\n" | tail -n 1 | cut -d . -f1 | head -n1`
256# ARCH=`cat "$HOMEDIR"/BUILD/"$DIR"/CONTROL/control | grep Architecture: | tr " " "\n" | tail -n 1`
257# cp "$HOMEDIR"/BUILD/"$DIR"/preview/prev.png "$HOMEDIR"/preview/enigma2-pluginpreview-"$NAME"_"$ARCH".ipk.png
258 cp "$HOMEDIR"/BUILD/"$DIR"/preview/prev.png "$HOMEDIR"/preview/"$SWTYPE"-pluginpreview-"$NAME".png
259 rm -r "$HOMEDIR"/BUILD/"$DIR"/preview
260done
261
262
263cd "$HOMEDIR"/BUILDRELEASE
264
265for DIR in $LIST; do
266 ipkg-build "$HOMEDIR"/BUILD/"$DIR"
267done
268
269date=`date`
270echo "[make-ipk] make-index"
271rm Packages*
272
273ipkg-make-index -l Packages.filelist -p Packages -v .
274
275echo "Here is the public AAF-Flash-PlugList" > PlugList
276echo "" >> PlugList
277cat Packages | grep Filename: | sed "s/Filename: $SWTYPE-plugin-//" | sed "s/.ipk//" | sed "s/_sh4//" | sed "s/_/ V/" >> PlugList
278rm test.txt
279echo "" >> PlugList
280echo "mfg AAF-TEAM @ $date" >> PlugList
281echo "done"
282
283rm .tmp*
284rm tmprc
285
286cd "$HOMEDIR"
287tar czvf Packages.preview.tar.gz ./preview
288
289mv "$HOMEDIR"/Packages.preview.tar.gz "$HOMEDIR"/BUILDRELEASE
290
291cd "$HOMEDIR"/BUILDRELEASE
292
293PACKAGESLIST=`ls -1 Packages*`
294IPKLIST=`ls -1 *.ipk`
295
296if [ $GROUP = "update" ] && [ $MAKETYPE = "online" ];then
297 for ROUND in $PACKAGESLIST; do
298 wputcmd="$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/"$ROUND"
299 echo "[make-ipk] upload: $wputbin $wputcmd"
300 $wputbin $wputcmd
301 done
302 for ROUND in $IPKLIST; do
303 wputcmd="$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/"$ROUND"
304 echo "[make-ipk] upload: $wputbin $wputcmd"
305 $wputbin $wputcmd
306 done
307
308 wputcmd="$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/PlugList
309 echo "[make-ipk] upload: $wputbin $wputcmd"
310 $wputbin $wputcmd
311
312 wputcmd="$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/Packages.preview.tar.gz
313 echo "[make-ipk] upload: $wputbin $wputcmd"
314 $wputbin $wputcmd
315
316 cd boot
317 BOOTLIST=`ls -1`
318 for ROUND in $BOOTLIST; do
319 wputcmd="$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/boot/"$ROUND"
320 echo "[make-ipk] upload: $wputbin $wputcmd"
321 $wputbin $wputcmd
322 done
323elif [ $GROUP = "dev" ] && [ $MAKETYPE = "online" ];then
324 BTIME=`date +"%Y.%m.%d_%H.%M.%S"`
325 echo quote USER $URLBETAUSER >"$HOMEDIR"/ftp.txt
326 echo quote PASS $URLBETAPASS >>"$HOMEDIR"/ftp.txt
327# echo cd "$WWWMAIN"/"$IPKGCROSS_BETA" >>"$HOMEDIR"/ftp.txt
328# echo cd "$WWWMAIN" >>"$HOMEDIR"//ftp.txt
329 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages >>"$HOMEDIR"/ftp.txt
330 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.filelist >>"$HOMEDIR"/ftp.txt
331 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.gz >>"$HOMEDIR"/ftp.txt
332 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/PlugList >>"$HOMEDIR"/ftp.txt
333 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.preview.tar.gz >>"$HOMEDIR"/ftp.txt
334
335# echo rename aaf-flash-beta aaf-flash-beta_old_"$URLBETAUSER"_"$BTIME" >>"$HOMEDIR"/ftp.txt
336 echo quit >>"$HOMEDIR"/ftp.txt
337 ftp -n "$URLBETA" < "$HOMEDIR"/ftp.txt
338
339 sleep 5
340 for ROUND in $PACKAGESLIST; do
341 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/"$ROUND"
342 echo "[make-ipk] upload: $wputbin $wputcmd"
343 $wputbin $wputcmd
344 done
345 for ROUND in $IPKLIST; do
346 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/"$ROUND"
347 echo "[make-ipk] upload: $wputbin $wputcmd"
348 $wputbin $wputcmd
349 done
350
351 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/PlugList
352 echo "[make-ipk] upload: $wputbin $wputcmd"
353 $wputbin $wputcmd
354
355 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.preview.tar.gz
356 echo "[make-ipk] upload: $wputbin $wputcmd"
357 $wputbin $wputcmd
358
359 cd boot
360 BOOTLIST=`ls -1`
361 for ROUND in $BOOTLIST; do
362 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/boot/"$ROUND"
363 echo "[make-ipk] upload: $wputbin $wputcmd"
364 $wputbin $wputcmd
365 done
366elif [ $GROUP = "update" ] && [ $MAKETYPE = "onlinebeta" ];then
367 BTIME=`date +"%Y.%m.%d_%H.%M.%S"`
368 echo quote USER $URLBETAUSER >"$HOMEDIR"/ftp.txt
369 echo quote PASS $URLBETAPASS >>"$HOMEDIR"/ftp.txt
370# echo cd "$WWWMAIN"/"$IPKGCROSS_BETA" >>"$HOMEDIR"/ftp.txt
371# echo cd "$WWWMAIN" >>"$HOMEDIR"//ftp.txt
372 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages >>"$HOMEDIR"/ftp.txt
373 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.filelist >>"$HOMEDIR"/ftp.txt
374 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.gz >>"$HOMEDIR"/ftp.txt
375 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/PlugList >>"$HOMEDIR"/ftp.txt
376 echo del "$IPKGCROSS_BETA"/"$CPUTYPE"/"$SWTYPE"/Packages.preview.tar.gz >>"$HOMEDIR"/ftp.txt
377
378# echo rename aaf-flash-beta aaf-flash-beta_old_"$URLBETAUSER"_"$BTIME" >>"$HOMEDIR"/ftp.txt
379 echo quit >>"$HOMEDIR"/ftp.txt
380 ftp -n "$URLBETA" < "$HOMEDIR"/ftp.txt
381
382 sleep 5
383 for ROUND in $PACKAGESLIST; do
384 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/"$ROUND"
385 echo "[make-ipk] upload: $wputbin $wputcmd"
386 $wputbin $wputcmd
387 done
388 for ROUND in $IPKLIST; do
389 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/"$ROUND"
390 echo "[make-ipk] upload: $wputbin $wputcmd"
391 $wputbin $wputcmd
392 done
393
394 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/PlugList
395 echo "[make-ipk] upload: $wputbin $wputcmd"
396 $wputbin $wputcmd
397
398 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/Packages.preview.tar.gz
399 echo "[make-ipk] upload: $wputbin $wputcmd"
400 $wputbin $wputcmd
401
402 cd boot
403 BOOTLIST=`ls -1`
404 for ROUND in $BOOTLIST; do
405 wputcmd="$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/boot/"$ROUND"
406 echo "[make-ipk] upload: $wputbin $wputcmd"
407 $wputbin $wputcmd
408 done
409fi
410
411if [ "$SVNUSER" = "aaf-svn" ];then
412 rm -rf /"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"
413 mkdir -p /"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"
414
415 for file in $PACKAGESLIST; do
416 if [ -e "$file" ]; then
417 wputcmd="$file $WWWLOCAL/$WWWMAIN/$WWWPUBLIC/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/$file"
418 echo "[make-ipk] move: $wputcmd"
419 mv -f $wputcmd
420 fi
421 done
422 for file in $IPKLIST; do
423 if [ -e "$file" ]; then
424 wputcmd="$file $WWWLOCAL/$WWWMAIN/$WWWPUBLIC/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/$file"
425 echo "[make-ipk] move: $wputcmd"
426 mv -f $wputcmd
427 fi
428 done
429
430 wputcmd=PlugList /"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/PlugList
431 echo "[make-ipk] move: $wputcmd"
432 mv -f $wputcmd
433
434 wputcmd=Packages.preview.tar.gz /"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$CPUTYPE"/"$SWTYPE"/Packages.preview.tar.gz
435 echo "[make-ipk] move: $wputcmd"
436 mv -f $wputcmd
437fi
438
439echo "[make-ipk] done"
440
441exit 0
Note: See TracBrowser for help on using the repository browser.