Index: buildserver/builds
===================================================================
--- buildserver/builds (revision 23735)
+++ buildserver/builds (working copy)
@@ -1,158 +1,158 @@
-sdl:nozip:recordersim:Recorder - Simulator:rockboxui:--target=recorder,--ram=2,--type=s:5732
-sdl:nozip:playersim:Player - Simulator:rockboxui:--target=player,--ram=2,--type=s:2537
-sdl:nozip:fmrecordersim:FM Recorder - Simulator:rockboxui:--target=fmrecorder,--ram=2,--type=s:5876
-sdl:nozip:ondiofmsim:Ondio FM - Simulator:rockboxui:--target=ondiofm,--ram=2,--type=s:5298
-sdl:nozip:h120sim:iriver H120 - Simulator:rockboxui:--target=h120,--type=s:14329
-sdl:nozip:h300sim:iriver H300 - Simulator:rockboxui:--target=h300,--type=s:14661
-sdl:nozip:ipodnanosim:iPod Nano - Simulator:rockboxui:--target=ipodnano,--type=s:13842
+sdl:nozip:archosrecordersim:Recorder - Simulator:rockboxui:--target=archosrecorder,--ram=2,--type=s:5732
+sdl:nozip:archosplayersim:Player - Simulator:rockboxui:--target=archosplayer,--ram=2,--type=s:2537
+sdl:nozip:archosfmrecordersim:FM Recorder - Simulator:rockboxui:--target=archosfmrecorder,--ram=2,--type=s:5876
+sdl:nozip:archosondiofmsim:Ondio FM - Simulator:rockboxui:--target=archosondiofm,--ram=2,--type=s:5298
+sdl:nozip:iriverh120sim:iriver H120 - Simulator:rockboxui:--target=iriverh120,--type=s:14329
+sdl:nozip:iriverh300sim:iriver H300 - Simulator:rockboxui:--target=iriverh300,--type=s:14661
+sdl:nozip:ipodnano1gsim:iPod Nano 1G - Simulator:rockboxui:--target=ipodnano1g,--type=s:13842
sdl:nozip:ipodnano2gsim:iPod Nano 2G - Simulator:rockboxui:--target=ipodnano2g,--type=s:14495
sdl:nozip:ipodcolorsim:iPod Color - Simulator:rockboxui:--target=ipodcolor,--type=s:13978
-sdl:nozip:iaudiox5sim:iAudio X5 - Simulator:rockboxui:--target=x5,--type=s:14538
-sdl:nozip:iaudiom5sim:iAudio M5 - Simulator:rockboxui:--target=m5,--type=s:14250
-sdl:nozip:iaudiom3sim:iAudio M3 - Simulator:rockboxui:--target=m3,--type=s:12992
-sdl:nozip:ipod4graysim:iPod 4G Grayscale - Simulator:rockboxui:--target=ipod4g,--type=s:12897
+sdl:nozip:iaudiox5sim:iAudio X5 - Simulator:rockboxui:--target=iaudiox5,--type=s:14538
+sdl:nozip:iaudiom5sim:iAudio M5 - Simulator:rockboxui:--target=iaudiom5,--type=s:14250
+sdl:nozip:iaudiom3sim:iAudio M3 - Simulator:rockboxui:--target=iaudiom3,--type=s:12992
+sdl:nozip:ipod4gsim:iPod 4G Grayscale - Simulator:rockboxui:--target=ipod4g,--type=s:12897
sdl:nozip:ipodvideosim:iPod Video - Simulator:rockboxui:--target=ipodvideo,--type=s,--ram=32:14184
sdl:nozip:ipodmini2gsim:iPod Mini 2G - Simulator:rockboxui:--target=ipodmini2g,--type=s:12642
-sdl:nozip:h10sim:iriver H10 - Simulator:rockboxui:--target=h10,--type=s:13955
-sdl:nozip:gigabeatfsim:Toshiba Gigabeat F - Simulator:rockboxui:--target=gigabeatf,--type=s:13859
+sdl:nozip:h10sim:iriver H10 - Simulator:rockboxui:--target=iriverh10,--type=s:13955
+sdl:nozip:gigabeatfxsim:Toshiba Gigabeat F - Simulator:rockboxui:--target=gigabeatfx,--type=s:13859
sdl:nozip:gigabeatssim:Toshiba Gigabeat S - Simulator:rockboxui:--target=gigabeats,--type=s:14142
-sdl:nozip:sansae200sim:SanDisk Sansa e200 - Simulator:rockboxui:--target=e200,--type=s:14003
-sdl:nozip:sansae200v2sim:SanDisk Sansa e200v2 - Simulator:rockboxui:--target=e200v2,--type=s:13756
-sdl:nozip:sansac200sim:SanDisk Sansa c200 - Simulator:rockboxui:--target=c200,--type=s:13202
-sdl:nozip:sansac200v2sim:SanDisk Sansa c200v2 - Simulator:rockboxui:--target=c200v2,--type=s:12216
+sdl:nozip:sansae200sim:SanDisk Sansa sansae200 - Simulator:rockboxui:--target=sansae200,--type=s:14003
+sdl:nozip:sansae200v2sim:SanDisk Sansa sansae200v2 - Simulator:rockboxui:--target=sansae200v2,--type=s:13756
+sdl:nozip:sansac200sim:SanDisk Sansa sansac200 - Simulator:rockboxui:--target=sansac200,--type=s:13202
+sdl:nozip:sansac200v2sim:SanDisk Sansa sansac200v2 - Simulator:rockboxui:--target=sansac200v2,--type=s:12216
sdl:nozip:mrobe500sim:Olympus M-Robe 500 - Simulator:rockboxui:--target=mrobe500,--type=s:13227
sdl:nozip:mrobe100sim:Olympus M-Robe 100 - Simulator:rockboxui:--target=mrobe100,--type=s:12405
sdl:nozip:cowond2sim:Cowon D2 - Simulator:rockboxui:--target=cowond2,--type=s:13940
-sdl:nozip:creativezvm30sim:Creative Zen Vision M 30GB - Simulator:rockboxui:--target=creativezvm30gb,--type=s:13517
-sdl:nozip:clipsim:SanDisk Sansa Clip - Simulator:rockboxui:--target=clip,--type=s:9148
-sdl:nozip:fuzesim:SanDisk Sansa Fuze - Simulator:rockboxui:--target=fuze,--type=s:13748
-sdl:nozip:m200v4sim:SanDisk Sansa m200v4 - Simulator:rockboxui:--target=m200v4,--type=s:8861
-sdl:nozip:hdd1630sim:Philips HDD1630 - Simulator:rockboxui:--target=hdd1630,--type=s:13891
-sdl:nozip:sa9200sim:Philips SA9200 - Simulator:rockboxui:--target=sa9200,--type=s:5826
-sdl:nozip:yh820sim:Samsung YH-820 - Simulator:rockboxui:--target=yh820,--type=s:13136
-sdl:nozip:yh920sim:Samsung YH-920 - Simulator:rockboxui:--target=yh920,--type=s:12667
-sdl:nozip:yh925sim:Samsung YH-925 - Simulator:rockboxui:--target=yh925,--type=s:13941
+sdl:nozip:zenvisionm30sim:Creative Zen Vision M 30GB - Simulator:rockboxui:--target=zenvisionm30gb,--type=s:13517
+sdl:nozip:sansaclipsim:SanDisk Sansa Clip - Simulator:rockboxui:--target=sansaclip,--type=s:9148
+sdl:nozip:sansafuzesim:SanDisk Sansa Fuze - Simulator:rockboxui:--target=sansafuze,--type=s:13748
+sdl:nozip:sansam200v4sim:SanDisk Sansa sansam200v4 - Simulator:rockboxui:--target=sansam200v4,--type=s:8861
+sdl:nozip:gogearhdd1630sim:Philips HDD1630 - Simulator:rockboxui:--target=gogearhdd1630,--type=s:13891
+sdl:nozip:gogearsa9200sim:Philips SA9200 - Simulator:rockboxui:--target=gogearsa9200,--type=s:5826
+sdl:nozip:samsungyh820sim:Samsung YH-820 - Simulator:rockboxui:--target=samsungyh820,--type=s:13136
+sdl:nozip:samsungyh920sim:Samsung YH-920 - Simulator:rockboxui:--target=samsungyh920,--type=s:12667
+sdl:nozip:samsungyh925sim:Samsung YH-925 - Simulator:rockboxui:--target=samsungyh925,--type=s:13941
sdl:nozip:ondavx747sim:Onda VX747 - Simulator:rockboxui:--target=ondavx747,--type=s:14177
-m68k:zip:h100:iriver H100 - Normal:rockbox.iriver:--target=h100,--type=n:17517
-m68k:zip:h120:iriver H120 - Normal:rockbox.iriver:--target=h120,--type=n:17525
-m68k:zip:h300:iriver H300 - Normal:rockbox.iriver:--target=h300,--type=n:18237
-m68k:zip:iaudiox5:iAudio X5 - Normal:rockbox.iaudio:--target=x5,--type=n:18064
-m68k:zip:iaudiom5:iAudio M5 - Normal:rockbox.iaudio:--target=m5,--type=n:17516
-m68k:zip:iaudiom3:iAudio M3 - Normal:rockbox.iaudio:--target=m3,--type=n:15862
-arm:zip:ipodnano:iPod Nano - Normal:rockbox.ipod:--target=ipodnano,--type=n:21483
+m68k:zip:iriverh100:iriver H100 - Normal:rockbox.iriver:--target=iriverh100,--type=n:17517
+m68k:zip:iriverh120:iriver H120 - Normal:rockbox.iriver:--target=iriverh120,--type=n:17525
+m68k:zip:iriverh300:iriver H300 - Normal:rockbox.iriver:--target=iriverh300,--type=n:18237
+m68k:zip:iaudiox5:iAudio X5 - Normal:rockbox.iaudio:--target=iaudiox5,--type=n:18064
+m68k:zip:iaudiom5:iAudio M5 - Normal:rockbox.iaudio:--target=iaudiom5,--type=n:17516
+m68k:zip:iaudiom3:iAudio M3 - Normal:rockbox.iaudio:--target=iaudiom3,--type=n:15862
+arm:zip:ipodnano1g:iPod Nano 1G - Normal:rockbox.ipod:--target=ipodnano1g,--type=n:21483
arm:zip:ipodnano2g:iPod Nano 2G - Normal:rockbox.ipod:--target=ipodnano2g,--type=n:22318
arm:zip:ipodcolor:iPod Color - Normal:rockbox.ipod:--target=ipodcolor,--type=n:21586
-arm:zip:ipod4gray:iPod 4G Grayscale - Normal:rockbox.ipod:--target=ipod4g,--type=n:19682
+arm:zip:ipod4g:iPod 4G Grayscale - Normal:rockbox.ipod:--target=ipod4g,--type=n:19682
arm:zip:ipodvideo:iPod Video - Normal:rockbox.ipod:--target=ipodvideo,--ram=32,--type=n:21983
arm:zip:ipodvideo64mb:iPod Video 64MB - Normal:rockbox.ipod:--target=ipodvideo,--ram=64,--type=n:21936
arm:zip:ipod3g:iPod 3G - Normal:rockbox.ipod:--target=ipod3g,--type=n:18716
arm:zip:ipodmini2g:iPod Mini 2G - Normal:rockbox.ipod:--target=ipodmini2g,--type=n:18975
-arm:zip:ipodmini1g:iPod Mini 1G - Normal:rockbox.ipod:--target=ipodmini,--type=n:18976
-arm:zip:h10:iriver H10 - Normal:rockbox.mi4:--target=h10,--type=n:21496
-arm:zip:h10_5gb:iriver H10 5GB - Normal:rockbox.mi4:--target=h10_5gb,--type=n:21496
-arm:zip:gigabeatf:Toshiba Gigabeat F - Normal:rockbox.gigabeat:--target=gigabeatf,--type=n:20657
+arm:zip:ipodmini1g:iPod Mini 1G - Normal:rockbox.ipod:--target=ipodmini1g,--type=n:18976
+arm:zip:iriverh10:iriver H10 - Normal:rockbox.mi4:--target=iriverh10,--type=n:21496
+arm:zip:iriverh10_5gb:iriver H10 5GB - Normal:rockbox.mi4:--target=iriverh10_5gb,--type=n:21496
+arm:zip:gigabeatfx:Toshiba Gigabeat F - Normal:rockbox.gigabeat:--target=gigabeatfx,--type=n:20657
arm:zip:gigabeats:Toshiba Gigabeat S - Normal:rockbox.gigabeat:--target=gigabeats,--type=n:22022
-arm:zip:sansae200:SanDisk Sansa e200 - Normal:rockbox.mi4:--target=e200,--type=n:21687
-arm:zip:sansac200:SanDisk Sansa c200 - Normal:rockbox.mi4:--target=c200,--type=n:20289
+arm:zip:sansae200:SanDisk Sansa sansae200 - Normal:rockbox.mi4:--target=sansae200,--type=n:21687
+arm:zip:sansac200:SanDisk Sansa sansac200 - Normal:rockbox.mi4:--target=sansac200,--type=n:20289
arm:zip:ipod1g2g:iPod 1G/2G - Normal:rockbox.ipod:--target=ipod1g2g,--type=n:18376
arm:zip:mrobe500:Olympus M-Robe 500 - Normal:rockbox.mrobe500:--target=mrobe500,--type=n:20454
arm:zip:mrobe100:Olympus M-Robe 100 - Normal:rockbox.mi4:--target=mrobe100,--type=n:18716
arm:zip:cowond2:Cowon D2 - Normal:rockbox.d2:--target=cowond2,--type=n:20857
-arm:zip:creativezvm30:Creative Zen Vision M 30GB - Normal:rockbox.zvm:--target=creativezvm30gb,--type=n:20508
-arm:zip:creativezvm60:Creative Zen Vision M 60GB - Normal:rockbox.zvm60:--target=creativezvm60gb,--type=n:20499
-arm:zip:creativezenvision:Creative Zen Vision - Normal:rockbox.zv:--target=creativezenvision,--type=n:8638
-arm:zip:sansafuze:SanDisk Sansa Fuze - Normal:rockbox.sansa:--target=fuze,--type=n:20626
-arm:zip:sansaclip:SanDisk Sansa Clip - Normal:rockbox.sansa:--target=clip,--type=n:13379
-arm:zip:sansae200v2:SanDisk Sansa e200v2 - Normal:rockbox.sansa:--target=e200v2,--type=n:20586
-arm:zip:sansac200v2:SanDisk Sansa c200v2 - Normal:rockbox.sansa:--target=c200v2,--type=n:17966
-arm:zip:m200v4:SanDisk Sansa m200v4 - Normal:rockbox.sansa:--target=m200v4,--type=n:12954
-arm:zip:hdd1630:Philips HDD1630 - Normal:rockbox.mi4:--target=hdd1630,--type=n:21258
-arm:zip:yh820:Samsung YH-820 - Normal:rockbox.mi4:--target=yh820,--type=n:20130
-arm:zip:yh920:Samsung YH-920 - Normal:rockbox.mi4:--target=yh920,--type=n:19192
-arm:zip:yh925:Samsung YH-925 - Normal:rockbox.mi4:--target=yh925,--type=n:21388
-arm:zip:sa9200:Philips SA9200 - Normal:rockbox.mi4:--target=sa9200,--type=n:8966
+arm:zip:zenvisionm30:Creative Zen Vision M 30GB - Normal:rockbox.zvm:--target=zenvisionm30gb,--type=n:20508
+arm:zip:zenvisionm60:Creative Zen Vision M 60GB - Normal:rockbox.zvm60:--target=zenvisionm60gb,--type=n:20499
+arm:zip:zenvision:Creative Zen Vision - Normal:rockbox.zv:--target=zenvision,--type=n:8638
+arm:zip:sansafuze:SanDisk Sansa Fuze - Normal:rockbox.sansa:--target=sansafuze,--type=n:20626
+arm:zip:sansaclip:SanDisk Sansa Clip - Normal:rockbox.sansa:--target=sansaclip,--type=n:13379
+arm:zip:sansae200v2:SanDisk Sansa sansae200v2 - Normal:rockbox.sansa:--target=sansae200v2,--type=n:20586
+arm:zip:sansac200v2:SanDisk Sansa sansac200v2 - Normal:rockbox.sansa:--target=sansac200v2,--type=n:17966
+arm:zip:sansam200v4:SanDisk Sansa sansam200v4 - Normal:rockbox.sansa:--target=sansam200v4,--type=n:12954
+arm:zip:gogearhdd1630:Philips HDD1630 - Normal:rockbox.mi4:--target=gogearhdd1630,--type=n:21258
+arm:zip:samsungyh820:Samsung YH-820 - Normal:rockbox.mi4:--target=samsungyh820,--type=n:20130
+arm:zip:samsungyh920:Samsung YH-920 - Normal:rockbox.mi4:--target=samsungyh920,--type=n:19192
+arm:zip:samsungyh925:Samsung YH-925 - Normal:rockbox.mi4:--target=samsungyh925,--type=n:21388
+arm:zip:gogearsa9200:Philips SA9200 - Normal:rockbox.mi4:--target=gogearsa9200,--type=n:8966
mipsel:zip:ondavx747:Onda VX747 - Normal:rockbox.vx747:--target=ondavx747,--type=n:27223
mipsel:zip:ondavx767:Onda VX767 - Normal:rockbox.vx767:--target=ondavx767,--type=n:11512
mipsel:zip:ondavx777:Onda VX777 - Normal:rockbox.vx777:--target=ondavx777,--type=n:11844
-sh:zip:recorder:Recorder - Normal:ajbrec.ajz:--target=recorder,--ram=2,--type=n:10807
-sh:zip:recorderv2:V2 Recorder - Normal:ajbrec.ajz:--target=recorderv2,--ram=2,--type=n:10836
-sh:zip:player:Player - Normal:archos.mod:--target=player,--ram=2,--type=n:4202
-sh:zip:fmrecorder:FM Recorder - Normal:ajbrec.ajz:--target=fmrecorder,--ram=2,--type=n:10820
-sh:zip:recorder8mb:Recorder - Normal - 8MB:ajbrec.ajz:--target=recorder,--ram=8,--type=n:10835
-sh:zip:ondiosp:Ondio SP - Normal:ajbrec.ajz:--target=ondiosp,--ram=2,--type=n:9370
-sh:zip:ondiofm:Ondio FM - Normal:ajbrec.ajz:--target=ondiofm,--ram=2,--type=n:9729
-m68k:nozip:h100boot:iriver H100 - Boot:bootloader.iriver:--target=h100,--type=b:690
-m68k:nozip:h120boot:iriver H120 - Boot:bootloader.iriver:--target=h120,--type=b:700
-m68k:nozip:h300boot:iriver H300 - Boot:rockbox.iriver:--target=h300,--type=b:725
-m68k:nozip:iaudiox5boot:iAudio X5 - Boot:rockbox.iaudio:--target=x5,--type=b:710
-m68k:nozip:iaudiom5boot:iAudio M5 - Boot:rockbox.iaudio:--target=m5,--type=b:675
-m68k:nozip:iaudiom3boot:iAudio M3 - Boot:rockbox.iaudio:--target=m3,--type=b:603
+sh:zip:archosrecorder:Recorder - Normal:ajbrec.ajz:--target=archosrecorder,--ram=2,--type=n:10807
+sh:zip:archosrecorderv2:V2 Recorder - Normal:ajbrec.ajz:--target=archosrecorderv2,--ram=2,--type=n:10836
+sh:zip:archosplayer:Player - Normal:archos.mod:--target=archosplayer,--ram=2,--type=n:4202
+sh:zip:archosfmrecorder:FM Recorder - Normal:ajbrec.ajz:--target=archosfmrecorder,--ram=2,--type=n:10820
+sh:zip:archosrecorder8mb:Recorder - Normal - 8MB:ajbrec.ajz:--target=archosrecorder,--ram=8,--type=n:10835
+sh:zip:archosondiosp:Ondio SP - Normal:ajbrec.ajz:--target=archosondiosp,--ram=2,--type=n:9370
+sh:zip:archosondiofm:Ondio FM - Normal:ajbrec.ajz:--target=archosondiofm,--ram=2,--type=n:9729
+m68k:nozip:iriverh100boot:iriver H100 - Boot:bootloader.iriver:--target=iriverh100,--type=b:690
+m68k:nozip:iriverh120boot:iriver H120 - Boot:bootloader.iriver:--target=iriverh120,--type=b:700
+m68k:nozip:iriverh300boot:iriver H300 - Boot:rockbox.iriver:--target=iriverh300,--type=b:725
+m68k:nozip:iaudiox5boot:iAudio X5 - Boot:rockbox.iaudio:--target=iaudiox5,--type=b:710
+m68k:nozip:iaudiom5boot:iAudio M5 - Boot:rockbox.iaudio:--target=iaudiom5,--type=b:675
+m68k:nozip:iaudiom3boot:iAudio M3 - Boot:rockbox.iaudio:--target=iaudiom3,--type=b:603
mipsel:nozip:ondavx747boot:Onda VX747 - Boot:ccpmp.bin:--target=ondavx747,--type=b:1287
-arm:nozip:ipodnanoboot:iPod Nano - Boot:bootloader-ipodnano.ipod:--target=ipodnano,--type=b:840
+arm:nozip:ipodnano1gboot:iPod Nano 1G - Boot:bootloader-ipodnano1g.ipod:--target=ipodnano1g,--type=b:840
arm:nozip:ipodnano2gboot:iPod Nano 2G - Boot:bootloader-ipodnano2g.ipod:--target=ipodnano2g,--type=b:840
arm:nozip:ipodcolorboot:iPod Color - Boot:bootloader-ipodcolor.ipod:--target=ipodcolor,--type=b:845
-arm:nozip:ipod4grayboot:iPod 4G Grayscale - Boot:bootloader-ipod4g.ipod:--target=ipod4g,--type=b:837
+arm:nozip:ipod4gboot:iPod 4G Grayscale - Boot:bootloader-ipod4g.ipod:--target=ipod4g,--type=b:837
arm:nozip:ipodvideoboot:iPod Video - Boot:bootloader-ipodvideo.ipod:--target=ipodvideo,--ram=2,--type=b:849
arm:nozip:ipod3gboot:iPod 3G - Boot:bootloader-ipod3g.ipod:--target=ipod3g,--type=b:753
arm:nozip:ipodmini2gboot:iPod Mini 2G - Boot:bootloader-ipodmini2g.ipod:--target=ipodmini2g,--type=b:822
-arm:nozip:ipodmini1gboot:iPod Mini 1G - Boot:bootloader-ipodmini.ipod:--target=ipodmini,--type=b:813
-arm:nozip:h10boot:iriver H10 - Boot:H10_20GC.mi4:--target=h10,--type=b:844
-arm:nozip:gigabeatfboot:Toshiba Gigabeat F - Boot:FWIMG01.DAT:--target=gigabeatf,--type=b:756
+arm:nozip:ipodmini1gboot:iPod Mini 1G - Boot:bootloader-ipodmini1g.ipod:--target=ipodmini1g,--type=b:813
+arm:nozip:h10boot:iriver H10 - Boot:H10_20GC.mi4:--target=iriverh10,--type=b:844
+arm:nozip:gigabeatfxboot:Toshiba Gigabeat F - Boot:FWIMG01.DAT:--target=gigabeatfx,--type=b:756
arm:nozip:gigabeatsboot:Toshiba Gigabeat S - Boot:nk.bin:--target=gigabeats,--type=b:1042
-arm:nozip:sansae200boot:SanDisk Sansa e200 - Boot:PP5022.mi4:--target=e200,--type=b:857
-arm:nozip:sansac200boot:SanDisk Sansa c200 - Boot:firmware.mi4:--target=c200,--type=b:853
+arm:nozip:sansae200boot:SanDisk Sansa sansae200 - Boot:PP5022.mi4:--target=sansae200,--type=b:857
+arm:nozip:sansac200boot:SanDisk Sansa sansac200 - Boot:firmware.mi4:--target=sansac200,--type=b:853
arm:nozip:ipod1g2gboot:iPod 1G/2G - Boot:bootloader-ipod1g2g.ipod:--target=ipod1g2g,--type=b:739
arm:nozip:mrobe100boot:Olympus M-Robe 100 - Boot:pp5020.mi4:--target=mrobe100,--type=b:816
arm:nozip:cowond2boot:Cowon D2 - Boot:bootloader-cowond2.bin:--target=cowond2,--type=b:792
-arm:nozip:sansae200v2boot:SanDisk Sansa e200v2 - Boot:bootloader-e200v2.sansa:--target=e200v2,--type=b:782
-arm:nozip:sansac200v2boot:SanDisk Sansa c200v2 - Boot:bootloader-c200v2.sansa:--target=c200v2,--type=b:736
-arm:nozip:sansam200v4boot:SanDisk Sansa m200v4 - Boot:bootloader-m200v4.sansa:--target=m200v4,--type=b:708
-arm:nozip:sansaclipboot:SanDisk Sansa Clip - Boot:bootloader-clip.sansa:--target=clip,--type=b:731
-arm:nozip:sansafuzeboot:SanDisk Sansa Fuze - Boot:bootloader-fuze.sansa:--target=fuze,--type=b:782
-arm:nozip:hdd1630boot:Philips HDD1630 - Boot:FWImage.ebn:--target=hdd1630,--type=b:836
-arm:nozip:yh820boot:Samsung YH-820 - Boot:FW_YH820.mi4:--target=yh820,--type=b:807
-arm:nozip:yh920boot:Samsung YH-920 - Boot:PP5020.mi4:--target=yh920,--type=b:809
-arm:nozip:yh925boot:Samsung YH-925 - Boot:FW_YH925.mi4:--target=yh925,--type=b:817
-arm:nozip:sa9200boot:Philips SA9200 - Boot:FWImage.ebn:--target=sa9200,--type=b:820
-arm:nozip:creativezvm30boot:Creative Zen Vision M 30GB - Boot:rockbox.zvmboot:--target=creativezvm30gb,--type=b:898
-sh:nozip:recorderboot:Recorder - Boot:ajbrec.ajz:--target=recorder,--ram=2,--type=b:807
-sh:nozip:playerboot:Player - Boot:archos.mod:--target=player,--ram=2,--type=b:712
-sh:nozip:fmrecorderboot:FM Recorder - Boot:ajbrec.ajz:--target=fmrecorder,--ram=2,--type=b:784
-sh:nozip:ondiospboot:Ondio SP - Boot:ajbrec.ajz:--target=ondiosp,--ram=2,--type=b:778
-sdl:nozip:playerwps:Player - Checkwps:checkwps.player:--target=player,--ram=2,--type=c:86
-sdl:nozip:recorderwps:Recorder - Checkwps:checkwps.recorder:--target=recorder,--ram=2,--type=c:86
-sdl:nozip:fmrecorderwps:FM Recorder - Checkwps:checkwps.fmrecorder:--target=fmrecorder,--ram=2,--type=c:86
-sdl:nozip:ondiofmwps:Ondio FM - Checkwps:checkwps.ondiofm:--target=ondiofm,--ram=2,--type=c:84
-sdl:nozip:h120wps:iriver H120 - Checkwps:checkwps.h120:--target=h120,--type=c:86
-sdl:nozip:h300wps:iriver H300 - Checkwps:checkwps.h300:--target=h300,--type=c:84
-sdl:nozip:ipodnanowps:iPod Nano - Checkwps:checkwps.ipodnano:--target=ipodnano,--type=c:84
+arm:nozip:sansae200v2boot:SanDisk Sansa sansae200v2 - Boot:bootloader-sansae200v2.sansa:--target=sansae200v2,--type=b:782
+arm:nozip:sansac200v2boot:SanDisk Sansa sansac200v2 - Boot:bootloader-sansac200v2.sansa:--target=sansac200v2,--type=b:736
+arm:nozip:sansam200v4boot:SanDisk Sansa sansam200v4 - Boot:bootloader-sansam200v4.sansa:--target=sansam200v4,--type=b:708
+arm:nozip:sansaclipboot:SanDisk Sansa Clip - Boot:bootloader-sansaclip.sansa:--target=sansaclip,--type=b:731
+arm:nozip:sansafuzeboot:SanDisk Sansa Fuze - Boot:bootloader-sansafuze.sansa:--target=sansafuze,--type=b:782
+arm:nozip:gogearhdd1630boot:Philips HDD1630 - Boot:FWImage.ebn:--target=gogearhdd1630,--type=b:836
+arm:nozip:samsungyh820boot:Samsung YH-820 - Boot:FW_YH820.mi4:--target=samsungyh820,--type=b:807
+arm:nozip:samsungyh920boot:Samsung YH-920 - Boot:PP5020.mi4:--target=samsungyh920,--type=b:809
+arm:nozip:samsungyh925boot:Samsung YH-925 - Boot:FW_YH925.mi4:--target=samsungyh925,--type=b:817
+arm:nozip:gogearsa9200boot:Philips SA9200 - Boot:FWImage.ebn:--target=gogearsa9200,--type=b:820
+arm:nozip:zenvisionm30boot:Creative Zen Vision M 30GB - Boot:rockbox.zvmboot:--target=zenvisionm30gb,--type=b:898
+sh:nozip:archosrecorderboot:Recorder - Boot:ajbrec.ajz:--target=archosrecorder,--ram=2,--type=b:807
+sh:nozip:playerboot:Player - Boot:archos.mod:--target=archosplayer,--ram=2,--type=b:712
+sh:nozip:archosfmrecorderboot:FM Recorder - Boot:ajbrec.ajz:--target=archosfmrecorder,--ram=2,--type=b:784
+sh:nozip:archosondiospboot:Ondio SP - Boot:ajbrec.ajz:--target=archosondiosp,--ram=2,--type=b:778
+sdl:nozip:playerwps:Player - Checkwps:checkwps.archosplayer:--target=archosplayer,--ram=2,--type=c:86
+sdl:nozip:archosrecorderwps:Recorder - Checkwps:checkwps.archosrecorder:--target=archosrecorder,--ram=2,--type=c:86
+sdl:nozip:archosfmrecorderwps:FM Recorder - Checkwps:checkwps.archosfmrecorder:--target=archosfmrecorder,--ram=2,--type=c:86
+sdl:nozip:archosondiofmwps:Ondio FM - Checkwps:checkwps.archosondiofm:--target=archosondiofm,--ram=2,--type=c:84
+sdl:nozip:iriverh120wps:iriver H120 - Checkwps:checkwps.iriverh120:--target=iriverh120,--type=c:86
+sdl:nozip:iriverh300wps:iriver H300 - Checkwps:checkwps.iriverh300:--target=iriverh300,--type=c:84
+sdl:nozip:ipodnano1gwps:iPod Nano - Checkwps:checkwps.ipodnano1g:--target=ipodnano1g,--type=c:84
sdl:nozip:ipodnano2gwps:iPod Nano 2G - Checkwps:checkwps.ipodnano2g:--target=ipodnano2g,--type=c:84
sdl:nozip:ipodcolorwps:iPod Color - Checkwps:checkwps.ipodcolor:--target=ipodcolor,--type=c:84
-sdl:nozip:iaudiox5wps:iAudio X5 - Checkwps:checkwps.x5:--target=x5,--type=c:86
-sdl:nozip:iaudiom5wps:iAudio M5 - Checkwps:checkwps.m5:--target=m5,--type=c:86
-sdl:nozip:iaudiom3wps:iAudio M3 - Checkwps:checkwps.m3:--target=m3,--type=c:82
-sdl:nozip:ipod4graywps:iPod 4G Grayscale - Checkwps:checkwps.ipod4g:--target=ipod4g,--type=c:84
+sdl:nozip:iaudiox5wps:iAudio X5 - Checkwps:checkwps.iaudiox5:--target=iaudiox5,--type=c:86
+sdl:nozip:iaudiom5wps:iAudio M5 - Checkwps:checkwps.iaudiom5:--target=iaudiom5,--type=c:86
+sdl:nozip:iaudiom3wps:iAudio M3 - Checkwps:checkwps.iaudiom3:--target=iaudiom3,--type=c:82
+sdl:nozip:ipod4gwps:iPod 4G Grayscale - Checkwps:checkwps.ipod4g:--target=ipod4g,--type=c:84
sdl:nozip:ipodvideowps:iPod Video - Checkwps:checkwps.ipodvideo:--target=ipodvideo,--type=c,--ram=32:85
sdl:nozip:ipodmini2gwps:iPod Mini 2G - Checkwps:checkwps.ipodmini2g:--target=ipodmini2g,--type=c:86
-sdl:nozip:h10wps:iriver H10 - Checkwps:checkwps.h10:--target=h10,--type=c:85
-sdl:nozip:gigabeatfwps:Toshiba Gigabeat F - Checkwps:checkwps.gigabeatf:--target=gigabeatf,--type=c:83
+sdl:nozip:h10wps:iriver H10 - Checkwps:checkwps.iriverh10:--target=iriverh10,--type=c:85
+sdl:nozip:gigabeatfxwps:Toshiba Gigabeat F - Checkwps:checkwps.gigabeatfx:--target=gigabeatfx,--type=c:83
sdl:nozip:gigabeatswps:Toshiba Gigabeat S - Checkwps:checkwps.gigabeats:--target=gigabeats,--type=c:85
-sdl:nozip:sansae200wps:SanDisk Sansa e200 - Checkwps:checkwps.e200:--target=e200,--type=c:88
-sdl:nozip:sansae200v2wps:SanDisk Sansa e200v2 - Checkwps:checkwps.e200v2:--target=e200v2,--type=c:83
-sdl:nozip:sansac200wps:SanDisk Sansa c200 - Checkwps:checkwps.c200:--target=c200,--type=c:85
-sdl:nozip:sansac200v2wps:SanDisk Sansa c200v2 - Checkwps:checkwps.c200v2:--target=c200v2,--type=c:82
+sdl:nozip:sansae200wps:SanDisk Sansa sansae200 - Checkwps:checkwps.sansae200:--target=sansae200,--type=c:88
+sdl:nozip:sansae200v2wps:SanDisk Sansa sansae200v2 - Checkwps:checkwps.sansae200v2:--target=sansae200v2,--type=c:83
+sdl:nozip:sansac200wps:SanDisk Sansa sansac200 - Checkwps:checkwps.sansac200:--target=sansac200,--type=c:85
+sdl:nozip:sansac200v2wps:SanDisk Sansa sansac200v2 - Checkwps:checkwps.sansac200v2:--target=sansac200v2,--type=c:82
sdl:nozip:mrobe500wps:Olympus M-Robe 500 - Checkwps:checkwps.mrobe500:--target=mrobe500,--type=c:87
sdl:nozip:mrobe100wps:Olympus M-Robe 100 - Checkwps:checkwps.mrobe100:--target=mrobe100,--type=c:80
sdl:nozip:cowond2wps:Cowon D2 - Checkwps:checkwps.cowond2:--target=cowond2,--type=c:86
-sdl:nozip:creativezvm30wps:Creative Zen Vision M 30GB - Checkwps:checkwps.creativezvm30gb:--target=creativezvm30gb,--type=c:86
-sdl:nozip:clipwps:SanDisk Sansa Clip - Checkwps:checkwps.clip:--target=clip,--type=c:83
-sdl:nozip:fuzewps:SanDisk Sansa Fuze - Checkwps:checkwps.fuze:--target=fuze,--type=c:83
-sdl:nozip:m200v4wps:SanDisk Sansa m200v4 - Checkwps:checkwps.m200v4:--target=m200v4,--type=c:83
-sdl:nozip:hdd1630wps:Philips HDD1630 - Checkwps:checkwps.hdd1630:--target=hdd1630,--type=c:88
-sdl:nozip:sa9200wps:Philips SA9200 - Checkwps:checkwps.sa9200:--target=sa9200,--type=c:86
-sdl:nozip:yh820wps:Samsung YH-820 - Checkwps:checkwps.yh820:--target=yh820,--type=c:82
-sdl:nozip:yh920wps:Samsung YH-920 - Checkwps:checkwps.yh920:--target=yh920,--type=c:82
-sdl:nozip:yh925wps:Samsung YH-925 - Checkwps:checkwps.yh925:--target=yh925,--type=c:87
+sdl:nozip:zenvisionm30wps:Creative Zen Vision M 30GB - Checkwps:checkwps.zenvisionm30gb:--target=zenvisionm30gb,--type=c:86
+sdl:nozip:sansaclipwps:SanDisk Sansa Clip - Checkwps:checkwps.sansaclip:--target=sansaclip,--type=c:83
+sdl:nozip:sansafuzewps:SanDisk Sansa Fuze - Checkwps:checkwps.sansafuze:--target=sansafuze,--type=c:83
+sdl:nozip:sansam200v4wps:SanDisk Sansa sansam200v4 - Checkwps:checkwps.sansam200v4:--target=sansam200v4,--type=c:83
+sdl:nozip:gogearhdd1630wps:Philips HDD1630 - Checkwps:checkwps.gogearhdd1630:--target=gogearhdd1630,--type=c:88
+sdl:nozip:gogearsa9200wps:Philips SA9200 - Checkwps:checkwps.gogearsa9200:--target=gogearsa9200,--type=c:86
+sdl:nozip:samsungyh820wps:Samsung YH-820 - Checkwps:checkwps.samsungyh820:--target=samsungyh820,--type=c:82
+sdl:nozip:samsungyh920wps:Samsung YH-920 - Checkwps:checkwps.samsungyh920:--target=samsungyh920,--type=c:82
+sdl:nozip:samsungyh925wps:Samsung YH-925 - Checkwps:checkwps.samsungyh925:--target=samsungyh925,--type=c:87
sdl:nozip:ondavx747wps:Onda VX747 - Checkwps:checkwps.ondavx747:--target=ondavx747,--type=c:93
-sdl:nozip:playerdb:Player - Database:database.player:--target=player,--ram=2,--type=d:86
-sdl:nozip:h300db:iriver H300 - Database:database.h300:--target=h300,--type=d:86
+sdl:nozip:playerdb:Player - Database:database.archosplayer:--target=archosplayer,--ram=2,--type=d:86
+sdl:nozip:iriverh300db:iriver H300 - Database:database.iriverh300:--target=iriverh300,--type=d:86
Index: manual.pl
===================================================================
--- manual.pl (revision 23735)
+++ manual.pl (working copy)
@@ -4,30 +4,14 @@
my $basedir = "/sites/download.rockbox.org/daily/manual";
-my @list=(
- "fmrecorder",
- "ondiofm", "ondiosp", "player",
- "recorder", "recorderv2",
+my @list;
- "iaudiom3", "iaudiom5", "iaudiox5",
+for my $m (sort byname keys %builds) {
+ if ($m >= 2) {
+ push @list, $m;
+ }
+}
- "ipod1g2g", "ipod3g",
- "ipod4gray", "ipodcolor",
- "ipodmini2g",
- "ipodnano","ipodnano2g",
- "ipodvideo",
-
- "h10", "h10_5gb",
- "h100", "h120", "h300",
-
- "mrobe100",
-
- "sansac200", "sansaclip", "sansae200",
- "sansae200v2", "sansafuze",
-
- "gigabeatf", "gigabeats",
- );
-
for(@list) {
my $dir = $_;
opendir(DIR, "$basedir") or next;
@@ -93,7 +77,8 @@
$m = "h100";
}
- printf "
 ";
+ my $pic = playerpic($m);
+ printf " |  ";
# new-style full zip:
#my $file = "rockbox-${m}-${d}.pdf";
my $file = "rockbox-${m}.pdf";
Index: builds.pm
===================================================================
--- builds.pm (revision 0)
+++ builds.pm (revision 0)
@@ -0,0 +1 @@
+link ../trunk/tools/builds.pm
\ No newline at end of file
Property changes on: builds.pm
___________________________________________________________________
Added: svn:special
+ *
Index: tools/buildall-manuals.pl
===================================================================
--- tools/buildall-manuals.pl (revision 23735)
+++ tools/buildall-manuals.pl (working copy)
@@ -1,5 +1,7 @@
#!/usr/bin/perl
+require "rockbox.pm";
+
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
@@ -9,7 +11,7 @@
$date=sprintf("%04d%02d%02d", $year,$mon, $mday);
$shortdate=sprintf("%02d%02d%02d", $year%100,$mon, $mday);
-$ENV{'PATH'}.=":/usr/local/sh-gcc/bin:/usr/local/m68k-gcc/bin:/usr/local/arm-gcc/bin";
+$ENV{'PATH'}.=":/usr/local/sh-elf/bin:/usr/local/m68k-elf/bin:/usr/local/arm-elf/bin";
my $verbose;
if($ARGV[0] eq "-v") {
@@ -25,7 +27,7 @@
# made once for all targets
sub runone {
- my ($dir, $conf, $nl)=@_;
+ my ($dir)=@_;
my $a;
if($doonly && ($doonly ne $dir)) {
@@ -37,7 +39,7 @@
print "Build in build-$dir\n" if($verbose);
# build the manual(s)
- $a = buildit($dir, $conf, $nl);
+ $a = buildit($dir);
chdir "..";
@@ -46,8 +48,13 @@
my $newo="output/rockbox-$dir-$date.pdf";
system("cp $o output/rockbox-$dir.pdf");
system("mv $o $newo");
+ `chmod a+r $newo`;
print "moved $o to $newo\n" if($verbose);
}
+ else {
+ print "?? no dir $o\n" if($verbose);
+ exit;
+ }
$o="build-$dir/rockbox-manual.zip";
if (-f $o) {
@@ -56,6 +63,10 @@
system("mv $o $newo");
print "moved $o to $newo\n" if($verbose);
}
+ else {
+ print "?? no dir $o\n" if($verbose);
+ exit;
+ }
$o="build-$dir/html";
if (-d $o) {
@@ -64,6 +75,10 @@
system("cp -r $o $newo");
print "copied $o to $newo\n" if($verbose);
}
+ else {
+ print "?? no dir $o\n" if($verbose);
+ exit;
+ }
print "remove all contents in build-$dir\n" if($verbose);
system("rm -rf build-$dir");
@@ -72,18 +87,17 @@
};
sub buildit {
- my ($target, $confnum, $newl)=@_;
+ my ($target)=@_;
`rm -rf * >/dev/null 2>&1`;
- my $c = sprintf('echo -e "%s\n%sm\n" | ../tools/configure',
- $confnum, $newl?'\n':'');
+ my $c = "../tools/configure --target=$target --type=m";
print "C: $c\n" if($verbose);
`$c`;
print "Run 'make'\n" if($verbose);
- `make 2>/dev/null`;
+ `make manual 2>/dev/null`;
print "Run 'make manual-zip'\n" if($verbose);
`make manual-zip 2>/dev/null`;
@@ -92,24 +106,8 @@
# run make in tools first to make sure they're up-to-date
`(cd tools && make ) >/dev/null 2>&1`;
-runone("player", "player", 1);
-runone("recorder", "recorder", 1);
-runone("fmrecorder", "fmrecorder", 1);
-runone("recorderv2", "recorderv2", 1);
-runone("ondiosp", "ondiosp", 1);
-runone("ondiofm", "ondiofm", 1);
-runone("h100", "h100");
-#runone("h120", 9);
-runone("h300", "h300");
-runone("ipodcolor", "ipodcolor");
-runone("ipodnano", "ipodnano");
-runone("ipod4gray", "ipod4g");
-runone("ipodvideo", "ipodvideo");
-runone("ipod3g", "ipod3g");
-runone("iaudiox5", "x5");
-runone("iaudiom5", "m5");
-runone("ipodmini2g", "ipodmini2g");
-runone("h10", "h10");
-runone("h10_5gb", "h10_5gb");
-runone("gigabeatf", "gigabeatf");
-runone("sansae200", "e200");
+for my $build (&usablebuilds) {
+ next if ($builds{$b}{configname} < 3); # no variants
+
+ runone($build);
+}
Index: tools/buildall-daily.pl
===================================================================
--- tools/buildall-daily.pl (revision 23735)
+++ tools/buildall-daily.pl (working copy)
@@ -1,199 +1,57 @@
#!/usr/bin/perl
+use POSIX 'strftime';
+require 'rockbox.pm';
-my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
- localtime(time);
+# copy latest build from build farm to download server
-$mon+=1;
-$year+=1900;
-
-$date=sprintf("%04d%02d%02d", $year,$mon, $mday);
-$shortdate=sprintf("%02d%02d%02d", $year%100,$mon, $mday);
-
-$ENV{'PATH'}.=":/usr/local/sh-gcc/bin:/usr/local/m68k-gcc/bin:/usr/local/arm-elf/bin";
-
-my $verbose;
-if($ARGV[0] eq "-v") {
- $verbose =1;
- shift @ARGV;
+while (-f "input/build_running") {
+ # build in progress. wait for it to finish.
+ sleep 10;
}
-my $doonly;
-if($ARGV[0]) {
- $doonly = $ARGV[0];
- print "only build $doonly\n" if($verbose);
-}
+my @zips = `ls input/*.zip`;
-# made once for all targets
-sub runone {
- my ($dir, $confnum, $extra)=@_;
- my $a;
-
- if($doonly && ($doonly ne $dir)) {
- return;
+my $date = strftime("%Y%m%d", localtime);
+for (@zips) {
+ chomp;
+ if (/rockbox-(.+?)\.zip/) {
+ my $model = $1;
+ if (not -d "output/$model") {
+ mkdir "output/$model";
+ `chmod g+s output/$model`;
+ }
+ `cp $_ output/$model/rockbox-$model-$date.zip`;
+ `chmod a+r output/$model/rockbox-$model-$date.zip`;
+ `ln -sf rockbox-$model-$date.zip output/$model/rockbox-$model.zip`;
+ #print "cp $_ output/$model/rockbox-$model-$date.zip\n";
}
-
- mkdir "build-$dir";
- chdir "build-$dir";
- print "Build in build-$dir\n" if($verbose);
-
- # build the manual(s)
- $a = buildit($dir, $confnum, $extra);
-
- chdir "..";
-
- my $o="build-$dir/rockbox.zip";
- if (-f $o) {
- my $newo="output/$dir/rockbox-$dir-$date.zip";
- system("mkdir -p output/$dir");
- # update the most recent file
- system("cp $o output/$dir/rockbox-$dir.zip");
- system("mv $o $newo");
- print "moved $o to $newo\n" if($verbose);
- }
-
- print "remove all contents in build-$dir\n" if($verbose);
- system("rm -rf build-$dir");
-
- return $a;
-};
-
-sub fonts {
- my ($dir, $confnum, $newl)=@_;
- my $a;
-
- if($doonly && ($doonly ne $dir)) {
- return;
- }
-
- mkdir "build-$dir";
- chdir "build-$dir";
- print "Build fonts in build-$dir\n" if($verbose);
-
- # build the manual(s)
- $a = buildfonts($dir, $confnum, $newl);
-
- chdir "..";
-
- my $o="build-$dir/rockbox-fonts.zip";
- if (-f $o) {
- my $newo="output/fonts/rockbox-fonts-$date.zip";
- system("mkdir -p output/fonts");
- # update the most recent file
- system("cp $o output/fonts/rockbox-fonts.zip");
- system("mv $o $newo");
- print "moved $o to $newo\n" if($verbose);
- }
-
- print "remove all contents in build-$dir\n" if($verbose);
- system("rm -rf build-$dir");
-
- return $a;
-};
-
-
-
-sub buildit {
- my ($target, $confnum, $extra)=@_;
-
- `rm -rf * >/dev/null 2>&1`;
-
- my $c = sprintf('echo -e "%s\n%sn\n" | ../tools/configure',
- $confnum, $extra);
-
- print "C: $c\n" if($verbose);
- `$c`;
-
- print "Run 'make'\n" if($verbose);
- `make 2>/dev/null`;
-
- print "Run 'make zip'\n" if($verbose);
- `make zip 2>/dev/null`;
}
-sub buildfonts {
- my ($target, $confnum, $newl)=@_;
-
- `rm -rf * >/dev/null 2>&1`;
-
- my $c = sprintf('echo -e "%s\n%sn\n" | ../tools/configure',
- $confnum, $newl?'\n':'');
-
- print "C: $c\n" if($verbose);
- `$c`;
-
- print "Run 'make fontzip'\n" if($verbose);
- `make fontzip 2>/dev/null`;
+my @bleeding = `cat build-info`;
+if ($bleeding[2] =~ /rev = "(\d+)"/) {
+ $rev = $1;
}
-sub source {
- if($doonly && ($doonly ne "source")) {
- return;
- }
- print "./tools/release $date\n" if($verbose);
+if (open OUT, ">output/build-info") {
+ print OUT
+ "[dailies]\n".
+ "date = \"$date\"\n".
+ "rev = $rev\n";
+ print OUT "[release]\n";
- `./tools/release $date`;
-
- my $o="rockbox-$date.tar.bz2";
- if (-f $o) {
- my $newo="output/source/rockbox-$date.tar.bz2";
- system("mkdir -p output/source");
- # update the most recent file
- system("cp $o output/source/rockbox.tar.bz2");
- system("mv $o $newo");
- print "moved $o to $newo\n" if($verbose);
+ for my $model (&stablebuilds) {
+ print OUT "$model=$publicrelease\n";
}
- print "source build done\n" if($verbose);
+ close OUT;
}
-sub dailylog {
- if ($doonly) {
- return;
- }
- `./dailychanges.sh "$date 06:00"`;
+if (open OUT, ">output/build-info-$date") {
+ print OUT
+ "[dailies]\n".
+ "date = \"$date\"\n".
+ "rev = $rev\n";
+ close OUT;
}
-sub buildinfo {
- if($doonly) {
- return;
- }
- open(F, ">output/build-info");
- print F "[dailies]\ndate = \"$date\"\n";
- close(F);
-}
-# we get the changes first to get them properly at this time as exact
-# as possible
-dailylog();
-
-# run make in tools first to make sure they're up-to-date
-print "cd tools && make\n" if($verbose);
-`(cd tools && make ) >/dev/null 2>&1`;
-
-runone("player", "player", '\n');
-runone("recorder", "recorder", '\n');
-runone("recorder8mb", "recorder", '8\n');
-runone("fmrecorder", "fmrecorder", '\n');
-runone("fmrecorder8mb", "fmrecorder", '8\n');
-runone("recorderv2", "recorderv2", '\n');
-runone("ondiosp", "ondiosp", '\n');
-runone("ondiofm", "ondiofm", '\n');
-runone("h100", "h100");
-runone("h120", "h120");
-runone("h300", "h300");
-runone("ipodcolor", "ipodcolor");
-runone("ipodnano", "ipodnano");
-runone("ipod4gray", "ipod4g");
-runone("ipodvideo", "ipodvideo", '32\n');
-runone("ipodvideo64mb", "ipodvideo", '64\n');
-runone("ipod3g", "ipod3g");
-runone("iaudiox5", "x5");
-runone("iaudiom5", "m5");
-runone("ipodmini1g", "ipodmini");
-runone("ipodmini2g", "ipodmini2g");
-runone("h10", "h10");
-runone("h10_5gb", "h10_5gb");
-runone("gigabeatf", "gigabeatf");
-runone("sansae200", "e200");
-fonts("fonts", "x5");
-source();
-buildinfo();
+`
Index: tools/buildmaster.pl
===================================================================
--- tools/buildmaster.pl (revision 23735)
+++ tools/buildmaster.pl (working copy)
@@ -1,869 +0,0 @@
-#!/usr/bin/perl
-use threads;
-use threads::shared;
-
-my $src="/home/dast/src/rockbox";
-
-#******** Config options **********
-
-my $sshopts="-oConnectTimeout=15 -oCheckHostIP=no -oStrictHostKeyChecking=no".
- " -oServerAliveInterval=30";
-
-# config.pm has the @servers array with all the servers and info about what
-# builds they can do
-
-# The target that's listed first is preferred. Smart ordering speeds up the
-# building :)
-# Append "/[portnumber]" to the server name to use non-default port numbers
-
-require "config.pm";
-
-# these builds are offered as bleeding edge builds:
-my %bleeding =
- ('build-player' => 1,
- 'build-recorder' => 1,
- 'build-recorder8mb' => 1,
- 'build-fmrecorder' => 1,
- 'build-recorderv2' => 1,
- 'build-ondiofm' => 1,
- 'build-ondiosp' => 1,
- 'build-h100' => 1,
- 'build-h120' => 1,
- 'build-h300' => 1,
- 'build-ipodcolor' => 1,
- 'build-ipodnano' => 1,
- 'build-ipod4gray' => 1,
- 'build-ipodvideo' => 1,
- 'build-ipodvideo64mb' => 1,
- 'build-ipod3g' => 1,
- 'build-ipod1g2g' => 1,
- 'build-iaudiox5' => 1,
- 'build-iaudiom5' => 1,
- 'build-iaudiom3' => 1,
- 'build-ipodmini2g' => 1,
- 'build-ipodmini1g' => 1,
- 'build-h10' => 1,
- 'build-h10_5gb' => 1,
- 'build-sansae200' => 1,
- 'build-sansac200' => 1,
- 'build-gigabeatf' => 1,
- 'build-gigabeats' => 1,
- 'build-mrobe500' => 1,
- 'build-mrobe100' => 1,
- 'build-cowond2' => 1,
- 'build-creativezvm30' => 1,
- 'build-creativezvm60' => 1,
- 'build-creativezenvision' => 1,
- 'build-clip' => 1,
- 'build-fuze' => 1,
- 'build-m200v4' => 1,
- 'build-hdd1630' => 1,
- 'build-ondavx747' => 1,
- 'build-ondavx767' => 1,
- );
-
-my @builds : shared = (
- "sdl:build-recordersim:Recorder - Simulator:rockboxui:recorder\\n2\\ns\\n",
- "sdl:build-playersim:Player - Simulator:rockboxui:player\\n2\\ns\\n",
- "sdl:build-fmrecordersim:FM Recorder - Simulator:rockboxui:fmrecorder\\n2\\ns\\n",
- "sdl:build-ondiofmsim:Ondio FM - Simulator:rockboxui:ondiofm\\n2\\ns\\n",
- "sdl:build-h120sim:iriver H120 - Simulator:rockboxui:h120\\ns\\n",
- "sdl:build-h300sim:iriver H300 - Simulator:rockboxui:h300\\ns\\n",
- "sdl:build-ipodnanosim:iPod Nano - Simulator:rockboxui:ipodnano\\ns\\n",
- "sdl:build-ipodcolorsim:iPod Color - Simulator:rockboxui:ipodcolor\\ns\\n",
- "sdl:build-iaudiox5sim:iAudio X5 - Simulator:rockboxui:x5\\ns\\n",
- "sdl:build-iaudiom5sim:iAudio M5 - Simulator:rockboxui:m5\\ns\\n",
- "sdl:build-iaudiom3sim:iAudio M3 - Simulator:rockboxui:m3\\ns\\n",
- "sdl:build-ipod4graysim:iPod 4G Grayscale - Simulator:rockboxui:ipod4g\\ns\\n",
- "sdl:build-ipodvideosim:iPod Video - Simulator:rockboxui:ipodvideo\\n32\\ns\\n",
- "sdl:build-ipodmini2gsim:iPod Mini 2G - Simulator:rockboxui:ipodmini2g\\ns\\n",
- "sdl:build-h10sim:iriver H10 - Simulator:rockboxui:h10\\ns\\n",
- "sdl:build-gigabeatfsim:Toshiba Gigabeat F - Simulator:rockboxui:gigabeatf\\ns\\n",
- "sdl:build-gigabeatssim:Toshiba Gigabeat S - Simulator:rockboxui:gigabeats\\ns\\n",
- "sdl:build-sansae200sim:SanDisk Sansa e200 - Simulator:rockboxui:e200\\ns\\n",
- "sdl:build-sansac200sim:SanDisk Sansa c200 - Simulator:rockboxui:c200\\ns\\n",
- 'sdl:build-mrobe500sim:Olympus M-Robe 500 - Simulator:rockboxui:mrobe500\ns\n',
-
- "sdl:build-mrobe100sim:Olympus M-Robe 100 - Simulator:rockboxui:mrobe100\\ns\\n",
- "sdl:build-cowond2sim:Cowon D2 - Simulator:rockboxui:cowond2\\ns\\n",
- "sdl:build-creativezvm30sim:Creative Zen Vision M 30GB - Simulator:rockboxui:creativezvm30gb\\ns\\n",
- "sdl:build-clipsim:SanDisk Sansa Clip - Simulator:rockboxui:clip\\ns\\n",
- "sdl:build-fuzesim:SanDisk Sansa Fuze - Simulator:rockboxui:fuze\\ns\\n",
- "sdl:build-m200v4sim:SanDisk Sansa m200v4 - Simulator:rockboxui:m200v4\\ns\\n",
- "sdl:build-hdd1630sim:Philips HDD1630 - Simulator:rockboxui:hdd1630\\ns\\n",
-
- "m68k:build-h100:iriver H100 - Normal:rockbox.iriver:h100\\n\\n",
- "m68k:build-h120:iriver H120 - Normal:rockbox.iriver:h120\\n\\n",
- "m68k:build-h300:iriver H300 - Normal:rockbox.iriver:h300\\n\\n",
-
- "m68k:build-iaudiox5:iAudio X5 - Normal:rockbox.iaudio:x5\\n\\n",
- "m68k:build-iaudiom5:iAudio M5 - Normal:rockbox.iaudio:m5\\n\\n",
- "m68k:build-iaudiom3:iAudio M3 - Normal:rockbox.iaudio:m3\\n\\n",
- "arm:build-ipodnano:iPod Nano - Normal:rockbox.ipod:ipodnano\\n\\n",
- "arm:build-ipodcolor:iPod Color - Normal:rockbox.ipod:ipodcolor\\n\\n",
- "arm:build-ipod4gray:iPod 4G Grayscale - Normal:rockbox.ipod:ipod4g\\n\\n",
- 'arm:build-ipodvideo:iPod Video - Normal:rockbox.ipod:ipodvideo\n32\n\n',
- 'arm:build-ipodvideo64mb:iPod Video 64MB - Normal:rockbox.ipod:ipodvideo\n64\n\n',
- "arm:build-ipod3g:iPod 3G - Normal:rockbox.ipod:ipod3g\\n\\n",
- "arm:build-ipodmini2g:iPod Mini 2G - Normal:rockbox.ipod:ipodmini2g\\n\\n",
- "arm:build-ipodmini1g:iPod Mini 1G - Normal:rockbox.ipod:ipodmini\\n\\n",
- "arm:build-h10:iriver H10 - Normal:rockbox.mi4:h10\\n\\n",
- "arm:build-h10_5gb:iriver H10 5GB - Normal:rockbox.mi4:h10_5gb\\n\\n",
- "arm:build-gigabeatf:Toshiba Gigabeat F - Normal:rockbox.gigabeat:gigabeatf\\n\\n",
- "arm:build-gigabeats:Toshiba Gigabeat S - Normal:rockbox.gigabeat:gigabeats\\n\\n",
- "arm:build-sansae200:SanDisk Sansa e200 - Normal:rockbox.mi4:e200\\n\\n",
- "arm:build-sansac200:SanDisk Sansa c200 - Normal:rockbox.mi4:c200\\n\\n",
- "arm:build-ipod1g2g:iPod 1G/2G - Normal:rockbox.ipod:ipod1g2g\\n\\n",
- 'arm:build-mrobe500:Olympus M-Robe 500 - Normal:rockbox.mrobe500:mrobe500\n\n',
- "arm:build-mrobe100:Olympus M-Robe 100 - Normal:rockbox.mi4:mrobe100\\n\\n",
- "arm:build-cowond2:Cowon D2 - Normal:rockbox.d2:cowond2\\n\\n",
- "arm:build-creativezvm30:Creative Zen Vision M 30GB - Normal:rockbox.zvm:creativezvm30gb\\n\\n",
- "arm:build-creativezvm60:Creative Zen Vision M 60GB - Normal:rockbox.zvm60:creativezvm60gb\\n\\n",
- "arm:build-creativezenvision:Creative Zen Vision - Normal:rockbox.zv:creativezenvision\\n\\n",
- "arm:build-fuze:SanDisk Sansa Fuze - Normal:rockbox.sansa:fuze\\n\\n",
- "arm:build-clip:SanDisk Sansa Clip - Normal:rockbox.sansa:clip\\n\\n",
- "arm:build-m200v4:SanDisk Sansa m200v4 - Normal:rockbox.sansa:m200v4\\n\\n",
- "arm:build-hdd1630:Philips HDD1630 - Normal:rockbox.mi4:hdd1630\\n\\n",
-
- "mipsel:build-ondavx747:Onda VX747 - Normal:rockbox.vx747:ondavx747\\n\\n",
- "mipsel:build-ondavx767:Onda VX767 - Normal:rockbox.vx767:ondavx767\\n\\n",
-
- "sh:build-recorder:Recorder - Normal:ajbrec.ajz:recorder\\n2\\n\\n",
- "sh:build-recorderv2:V2 Recorder - Normal:ajbrec.ajz:recorderv2\\n2\\n\\n",
- "sh:build-player:Player - Normal:archos.mod:player\\n2\\n\\n",
- "sh:build-fmrecorder:FM Recorder - Normal:ajbrec.ajz:fmrecorder\\n2\\n\\n",
- "sh:build-recorder8mb:Recorder - Normal - 8MB:ajbrec.ajz:recorder\\n8\\n\\n",
- "sh:build-ondiosp:Ondio SP - Normal:ajbrec.ajz:ondiosp\\n2\\n\\n",
- "sh:build-ondiofm:Ondio FM - Normal:ajbrec.ajz:ondiofm\\n2\\n\\n",
-
- "m68k:build-h100boot:iriver H100 - Boot:rockbox.iriver:h100\\nb\\n",
- "m68k:build-h120boot:iriver H120 - Boot:rockbox.iriver:h120\\nb\\n",
- "m68k:build-h300boot:iriver H300 - Boot:rockbox.iriver:h300\\nb\\n",
- "m68k:build-iaudiox5boot:iAudio X5 - Boot:rockbox.iaudio:x5\\nb\\n",
- "m68k:build-iaudiom5boot:iAudio M5 - Boot:rockbox.iaudio:m5\\nb\\n",
- "m68k:build-iaudiom3boot:iAudio M3 - Boot:rockbox.iaudio:m3\\nb\\n",
-
- "mipsel:build-ondavx747boot:Onda VX747 - Boot:rockboot.vx747:ondavx747\\nb\\n",
- "arm:build-ipodnanoboot:iPod Nano - Boot:bootloader-ipodnano.ipod:ipodnano\\nb\\n",
- "arm:build-ipodcolorboot:iPod Color - Boot:bootloader-ipodcolor.ipod:ipodcolor\\nb\\n",
- "arm:build-ipod4grayboot:iPod 4G Grayscale - Boot:bootloader-ipod4g.ipod:ipod4g\\nb\\n",
- "arm:build-ipodvideoboot:iPod Video - Boot:bootloader-ipodvideo.ipod:ipodvideo\\n32\\nb\\n",
- "arm:build-ipod3gboot:iPod 3G - Boot:bootloader-ipod3g.ipod:ipod3g\\nb\\n",
- "arm:build-ipodmini2gboot:iPod Mini 2G - Boot:bootloader-ipodmini2g.ipod:ipodmini2g\\nb\\n",
- "arm:build-ipodmini1gboot:iPod Mini 1G - Boot:bootloader-ipodmini.ipod:ipodmini\\nb\\n",
- "arm:build-h10boot:iriver H10 - Boot:H10_20GC.mi4:h10\\nb\\n",
- "arm:build-gigabeatfboot:Toshiba Gigabeat F - Boot:FWIMG01.DAT:gigabeatf\\nb\\n",
- "arm:build-gigabeatsboot:Toshiba Gigabeat S - Boot:nk.bin:gigabeats\\nb\\n",
- "arm:build-sansae200boot:SanDisk Sansa e200 - Boot:PP5022.mi4:e200\\nb\\n",
- "arm:build-sansac200boot:SanDisk Sansa c200 - Boot:firmware.mi4:c200\\nb\\n",
- "arm:build-ipod1g2gboot:iPod 1G/2G - Boot:bootloader-ipod1g2g.ipod:ipod1g2g\\nb\\n",
- "arm:build-mrobe100boot:Olympus M-Robe 100 - Boot:pp5020.mi4:mrobe100\\nb\\n",
- "arm:build-cowond2boot:Cowon D2 - Boot:rockbox.d2:cowond2\\nb\\n",
-
- "arm:build-sansae200v2boot:SanDisk Sansa e200v2 - Boot:bootloader-e200v2.sansa:e200v2\\nb\\n",
- "arm:build-sansam200v4boot:SanDisk Sansa m200v4 - Boot:bootloader-m200v4.sansa:m200v4\\nb\\n",
- "arm:build-sansaclipboot:SanDisk Sansa Clip - Boot:bootloader-clip.sansa:clip\\nb\\n",
- "arm:build-sansafuzeboot:SanDisk Sansa Fuze - Boot:bootloader-fuze.sansa:fuze\\nb\\n",
- "arm:build-hdd1630boot:Philips HDD1630 - Boot:FWImage.ebn:hdd1630\\nb\\n",
-
- "sh:build-recorderboot:Recorder - Boot:ajbrec.ajz:recorder\\n2\\nb\\n",
- "sh:build-playerboot:Player - Boot:archos.mod:player\\n2\\nb\\n",
- "sh:build-fmrecorderboot:FM Recorder - Boot:ajbrec.ajz:fmrecorder\\n2\\nb\\n",
- "sh:build-ondiospboot:Ondio SP - Boot:ajbrec.ajz:ondiosp\\n2\\nb\\n",
-
-
-);
-
-#********* Script code ***********
-
-# make this hash get the build string
-# = 1 on start of build
-# = 2 when the build has completed
-# = 3 when all is done
-my %work : shared;
-
-# with the same key as above, we set the server name for the build
-my %workby : shared;
-
-# same key as above, we set the time stamp when work started, ie
-# when it when into state 1
-my %workstart : shared;
-
-# same key as above, we set the "arch" for this build:
-# sdl,arm,mm68k,sh
-my %workarch : shared;
-
-# same key as above, number of concurrent servers that builds this
-my %worknum : shared;
-
-my $now; # set to time at the start of a build round
-
-sub filesize {
- my ($f)=@_;
- my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
- $atime,$mtime,$ctime,$blksize,$blocks)
- = stat($f);
- return $size;
-}
-
-sub logmsg {
- my $t = time()-$now; # number of seconds it has taken so far
- for(@_) {
- print "$t $_";
- }
- if($t > (60 * 20)) {
- # we've been working for > 20 minutes
- print "$t terminating due to too long operation!";
- exit;
- }
-}
-
-# the amount of builds left
-my $buildsleft : shared;
-# set the amount of builds left:
-$buildsleft = @builds;
-
-my @dirs=("apps",
- "firmware",
- "gdb",
- "tools",
- "uisimulator",
- "bootloader");
-
-my $dirs = join(" ", @dirs);
-
-# use this time for all time stamps so that they remain the same all over
-my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
- gmtime(time);
-
-# use this as machine datestring.
-my $date = sprintf("%04d%02d%02dT%02d%02d%02dZ",
- $year+1900, $mon+1, $mday, $hour, $min, $sec);
-
-# date for humans
-my $builddate=sprintf("%04d-%02d-%02d %02d:%02d:%02d",
- $year+1900, $mon+1, $mday, $hour, $min, $sec);
-# the SVN revisions from .. to, which an update involves
-my $fromrev;
-my $torev;
-
-sub getentries {
- my @entries;
-
- @entries = `svnversion`;
-
- return @entries;
-}
-
-sub checkdiff {
- my $pwd =`pwd`;
- chomp $pwd;
- chdir $src;
-
- my @before = getentries();
-
- $fromrev = $before[0];
- chomp $fromrev;
-
- my $diff = `svn up | ./tools/svnupcheck.pl`;
-
- `svn up >/dev/null 2>&1`;
-
- my @after = getentries();
-
- $torev = $after[0];
- chomp $torev;
-
- chdir $pwd; # change back
-
- return $diff;
-}
-
-
-# sub to build on some server
-sub buildremote {
- my ($date, $buildline, $server, $port, $arch) = @_;
- my $exitcode;
- my $fail;
- my $ssh_port;
- my $scp_port;
- my $wnum; # 0 for the first
-
- if($port) {
- $ssh_port = "-p $port";
- $scp_port = "-P $port";
- }
- {
- lock(%worknum);
- $wnum = $worknum{$buildline}++;
- if($wnum) {
- # this is not the first server to do this build!
- logmsg "non-primary build: $buildline\n";
- }
- else {
- lock(%work);
- $work{$buildline}=1; # work has begun!
- lock(%workby);
- $workby{$buildline}=$server; # this build is made by this server
- lock(%workstart);
- $workstart{$buildline}=time(); # starts now!
- lock(%workarch);
- $workarch{$buildline}=$arch; # starts now!
- }
- }
-
- # DEBUG:
- # logmsg "DBG: remote build of \"$buildline\" on \"$server\"\n";
-
- # Start the build. (use print to show client messages)
- `ssh -i privkey $ssh_port $sshopts $server "./acbuild.pl \\"$date\\" \\"$buildline\\" > /dev/null 2>&1" >>"output/stderr-$date" 2>&1`;
- $exitcode = $?;
-
- {
- lock(%work);
- my $w=$work{$buildline};
- if($wnum) {
- # this is the secondary build
- if($w < 2) {
- # this primary one is still in 1 then we can tell it to stop!
- $work{$buildline}=4;
- }
- else {
- # the primary one has completed the build and is now
- # transferring, we thus stop here
- logmsg "The primary server completed the build before me ($server)\n";
- lock(%worknum);
- $worknum{$buildline}--;
- return 2;
- }
- }
- elsif($w > 1) {
- # a secondary build outrun us, stop here
- logmsg "A secondary server has taken over my ($server) build\n";
- lock(%worknum);
- $worknum{$buildline}--;
- return 2;
- }
-
- $work{$buildline}=2; # build done, now for the post stuff
- }
-
- # 2006-03-25 TS: exit code 1 = SSH trouble.
- if ($exitcode) {
- logmsg "Warning: $server failed with ssh exit code: $exitcode.\n";
- lock(%worknum);
- $worknum{$buildline}--;
- return 2;
- logmsg "attempt to get log to see *actual* fail reason\n";
- # $fail = 1; # this previously tried to check how far we had got
- }
-
- # Get the build info
- $buildline =~ /([^:]*):([^:]*):([^:]*):(.*)/;
- my ($dir, $desc, $target, $config)=($1,$2,$3,$4);
-
- logmsg "Copying $server:masterlog-$dir\n";
- `scp -C -i privkey $scp_port $sshopts $server:masterlog-$dir ./$dir/buildlog >>"output/stderr-$date" 2>&1`;
- $exitcode = $?;
-
- if($exitcode) {
- # true SSH failure
- logmsg "Failed getting the build log for $server/$dir, retry this\n";
- return 2;
- }
- elsif($fail) {
- # we got a failure returned from the build command line so we better
- # check how far we got in the build by checking the log we just copied
- # from the remote server
- if(!open(LOG, "<$dir/build.log")) {
- logmsg "Failed to open build log for $server/$dir, retry this\n";
- return 2;
- }
- my $end=0;
- while() {
- if(/^Build End/) {
- # jepps, it reached the end so we have a fine build!
- $end=1;
- logmsg("build log still indicates $server/$dir built to the end\n");
- last;
- }
- }
- close(LOG);
- if(!$end) {
- # the log we got was not a complete build, so we return 2 to
- # signal our parent that another server should better do this
- # build!
- logmsg("build log indicates $server/$dir did NOT build to the end\n");
- logmsg("hand this build over to another server instead, retry this\n");
- return 2;
- }
- }
-
- if( $bleeding{$dir} ) {
- # only copy bleeding zips for what we offer as bleeding edge builds
- my $start = time();
- logmsg "Copying $server:$dir/rockbox.zip\n";
- `scp -i privkey $scp_port $sshopts $server:$dir/rockbox.zip ./$dir/rockbox.zip >>"output/stderr-$date" 2>&1`;
- $exitcode = $?;
-
- if ($exitcode) {
- logmsg "Warning: couldn't get zip from $server/$dir\n";
- }
- my $t = time()-$start; # number of seconds it has taken so far
- if($t < 1) {
- $t = 1;
- }
- my $sz = filesize("./$dir/rockbox.zip");
- my $speed = sprintf("%d bytes/second", $sz/$t);
- logmsg "Copied $server:$dir/rockbox.zip in $t seconds, $speed\n";
- }
-
- # time to cleanup!
- `ssh -i privkey $ssh_port $sshopts $server "rm -rf $dir masterlog-$dir" 2>&1`;
- $exitcode = $?;
-
- if($exitcode) {
- logmsg "Failed to do post-build cleanup on $server!\n";
- }
- else {
- logmsg "Remove $dir and masterlog-$dir from $server!\n";
- }
-
- {
- lock(%work);
- $work{$buildline}=3; # build complete
- }
-
- # DEBUG:
- logmsg "$dir ($desc) by $server done.\n";
-
- return 0;
-}
-
-# the function running a server build thread
-sub server {
- # Get servername and targets.
- $_ =~ /([^:]*):(.*)/;
- my ($server, $targets) = ($1,$2);
- my $dobuild = "dummy";
- my $original;
- my $ssh_port;
- my $port;
- my $serverisfine=1;
-
- if($server =~ s/\/(\d+)//) {
- $port = $1;
- $ssh_port = "-p $port";
- }
-
- # repo update.
- `ssh -i privkey $ssh_port $sshopts $server "svn up -r $torev"`;
-
- # check if that update command was sent right.
- if ($? != 0) {
- # and if it wasn't, stop this server from building anything.
- logmsg "Warning: SSH+svn with server $server failed.\n";
- return $server;
- } else {
- logmsg "Ok: Server $server.\n";
- }
-
- # get my targets in an array.
- @mytargets = split(/:/, $targets);
-
- # lable to jump to when not all builds are done.
- REBUILD:
-
- # try to build for each target.
- for my $target (@mytargets) {
- # DEBUG:
- # logmsg " $server looking for $target\n";
- my $buildline;
- my $buildtarget;
-
- for my $build (@builds) {
- $dobuild = "";
- # open a block for the locks
- {
- lock(@builds);
-
- $build =~ /([^:]*):(.*)/;
- $buildline = $2;
-
- $buildtarget = $1;
-
- if ($target eq $buildtarget) {
- # this build is for a target this server can build!
- $dobuild = $buildline;
- $build = sprintf "%s:%s",$server,$buildline;
- };
- } # unlocking builds and buildsleft here.
- if ($dobuild) {
- # DEBUG:
- logmsg "Server $server building: $dobuild\n";
- # do the building.
- my $err=buildremote($date, $dobuild, $server, $port, $target);
- if ($err == 2) {
- lock(@builds);
- lock($buildsleft);
- $build = sprintf "%s:%s",$buildtarget,$buildline;
- # Fix by Linus 2006-09-26
- # Don't increase $buildsleft, since it is already correct
- #$buildsleft++;
- $serverisfine=0; # not fine
- logmsg "Server $server disabled for this round\n";
- last;
- } else {
- lock($buildsleft);
- $buildsleft--;
- }
- }
- }
- }
-
- # if not all targets are done, wait a while and try again.
- # BUG WARNING: Might not be threadsafe...
- if($serverisfine && ($buildsleft > 0)) {
- logmsg "Server $server finished, but $buildsleft builds left:\n";
- my $bestpick; # get out of the locks before building
- {
- lock(%work);
- lock(%worknum);
- lock(%workby);
- lock(%workstart);
- lock(%workarch);
- my $bestsince=9999;
- my $c=1;
- for my $wo (keys %work) {
- if($work{$wo} != 3) {
- my $s = $workby{$wo};
- my $v = $work{$wo};
- my $since = time() - $workstart{$wo};
- my $a = $workarch{$wo};
- my $wnum = $worknum{$wo};
- logmsg "- $c ($a) $wo on $s in $v since $since worknum $wnum\n";
- for my $myt (@mytargets) {
- if(($myt eq $a) &&
- ($v == 1) &&
- ($wnum < 2) &&
- ($since < $bestsince)) {
- $bestsince = $since;
- $bestpick=$c;
- }
- }
- $c++;
- }
- }
- if(0) {
- if($bestpick) {
- logmsg "--- Would have picked $bestpick for $server\n";
- }
- else {
- my $t = join(", ", @mytargets);
- logmsg "--- None matched (my targets: $t)\n";
- }
- }
- }
- sleep(5);
- goto REBUILD;
- }
-
- # DEBUG:
- logmsg "Server $server done (left=$buildsleft).\n";
- return $server;
-}
-
-sub build {
- my $total=$buildsleft;
- my $file = sprintf "%04d%02d%02d", $year+1900, $mon+1, $mday;
- my @thrs;
- my $server;
- my $dir;
-
- # Clean up the builddirs.
- for(@builds) {
- $_ =~ /([^:]*):([^:]*):([^:]*):([^:]*):(.*)/;
- $dir=$2;
- `rm -f $dir/buildlog`;
- `mkdir $dir`;
- }
-
- # empty the source dir too
- #`rm build-source/*`;
-
- open(DEST, ">>output/allbuilds-$file");
-
- print DEST "Build Start All Systems\n";
-
- # get all servers working.
- for (@servers) {
- push @thrs, threads->new(\&server, $_); # build thread
- }
-
- # DEBUG:
- # print " Threads started, waiting...\n";
-
- # Wait for all threads to finish.
- foreach (@thrs) {
- $_->join();
- }
-
- # DEBUG:
- # print " All threads done, total: $total left: $buildsleft\n";
- if ($buildsleft != 0) {
- logmsg "Warning: We have $buildsleft builds not done because there was no server availible.\n";
- }
-
- # Now we should create a combined buildlog for all other scripts.
- for(@builds) {
- $_ =~ /([^:]*):([^:]*):([^:]*):([^:]*):(.*)/;
- ($server, $dir)=($1,$2);
- print DEST "Build Server: $server\n";
- open(LOG, "<$dir/buildlog");
- while() {
- print DEST "$_";
- }
- close(LOG);
- }
-
- print DEST "Build End All Systems\n";
-
- close(DEST);
-}
-
-if($ARGV[0] eq "sizes") {
- foreach my $b (@builds) {
- my ($arch, $dir, $text, $binary, $keys)=split(":", $b);
- if($bleeding{$dir}) {
- my $target = $dir;
- my $bytes;
- my $ram;
- my $rev;
- if(-f "$dir/rockbox.zip") {
- open(Z, "unzip -p $dir/rockbox.zip .rockbox/rockbox-info.txt|");
- while() {
- if(/^Actual size: (\d+)/i) {
- $bytes = $1;
- }
- elsif(/^RAM usage: (\d+)/i) {
- $ram = $1;
- }
- elsif(/^Version: *(r\d+)/i) {
- $rev = $1;
- }
- }
- close(Z);
-
- }
- else {
- $bytes=0;
- }
-
- $target =~ s/build-//g;
- printf("%-13s: %6d %7d - $binary $arch $rev\n", $target, $bytes,
- $ram);
- }
- }
- exit;
-}
-
-if($ARGV[0] eq "pix") {
- my $b;
- foreach $b (@builds) {
- my ($arch, $dir, $text, $binary, $keys)=split(":", $b);
- print "long: $text => ";
-
- $text =~ s/FM Recorder/FM Rec/;
- # $text =~ s/Playerold/P-old/;
- # $text =~ s/Player/Play/;
- # $text =~ s/Recorder/Rec/;
- $text =~ s/Debug/Dbg/;
- $text =~ s/Normal//;
- $text =~ s/Simulator/Sim/;
- $text =~ s/iriver *//i;
- $text =~ s/Archos *//i;
- $text =~ s/ - $//;
- $text =~ s/Win32/Win/;
- $text =~ s/- +-/-/g;
- $text =~ s/Grayscale/Gray/;
- $text =~ s/Sim - Win/Sim32/;
- $text =~ s/Toshiba *//i;
- $text =~ s/SanDisk *//i;
- $text =~ s/Olympus *//i;
- $text =~ s/Creative *//i;
- $text =~ s/Philips *//i;
- $text =~ s/Zen Vision M/ZVM/i;
-
- print "short: $text\n";
-
- # create image with text
- # -border 1x1 -bordercolor "#000000"
- `convert -font helvetica -pointsize 13 -fill black -draw "text 1,13 '$text'" input-bg2.png dump.png`;
- # rotate image
- `convert -rotate -90 dump.png $dir.png`;
- }
- exit;
-}
-
-sub nicehead {
- my ($file, $date)=@_;
-
- open(NICE, ">$file");
- open(READ, ") {
- s/_PAGE_/Build $date/;
- print NICE $_;
- }
-
- print NICE <These are the most recent changes included in the build $date:
-
-
-MOO
-;
-
- close(NICE);
- close(READ);
-
-}
-
-sub nicefoot {
- my ($file, $date)=@_;
-
- open(NICE, ">>$file");
- open(READ, "
- Back to daily builds / SVN builds
-MOO
-;
- while() {
- s/_PAGE_/$date/;
- print NICE $_;
- }
- close(NICE);
- close(READ);
-}
-
-my $difference;
-
-my $pidfile="master_pid";
-
-if(!$ARGV[0]) {
- if( -f $pidfile) {
- # if the're a dangling pid file, we count that as a forced "diff"
- # and rerun the lot!
- $difference = 1;
- checkdiff();
- }
- else {
- $difference=checkdiff();
- }
-}
-else {
- $difference = 1; # force
-}
-
-if(!$torev) {
- # we don't know, figure it out
- my $pwd =`pwd`;
- chomp $pwd;
- chdir $src;
- my @all=`svnversion`;
- $torev = $all[0];
- $fromrev = $torev-1; # count the last rev increase as the one we care about
- chomp $torev;
- chdir $pwd;
-}
-
-# DEBUG:
-
-if($difference) {
- $now = time();
- open(PIDFILE, ">$pidfile");
- print PIDFILE "$$\n";
- close(PIDFILE);
-
- logmsg "repo update done, diff detected. Started: $builddate\n";
-
- # figure out previous build time!
- open(BUILDTIME, " |