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 "\"$m\"
"; + my $pic = playerpic($m); + printf "\"$m\"
"; # 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, ") { - if ($_ =~ /^timestamp = \"([^\"]+)\"/) { - $prev="$1"; - } - } - close(BUILDTIME); - - # get a log between previous situation and the current - my $f = sprintf("%d", $fromrev+1); - system("./lastperiodcvs.pl $src $f $torev > floink"); - - nicehead("output/chlog-$date.html", - "$builddate - from r$fromrev to r$torev"); - `/home/bjst/rockbox_html/tools/svnlog2html.pl -absdate < floink >> "output/chlog-$date.html"`; - nicefoot("output/chlog-$date.html", $builddate); - - # DEBUG: - logmsg "Creating temp. buildpage.\n"; - - system("./showbuilds.pl \"cvsmod/chlog-$date.html\" > output/index-2.html"); - system("mv output/index-2.html output/index.html"); - - # DEBUG: - logmsg "Building now...\n"; - - build(); - logmsg "buildtime = ", time - $now, "\n"; - open(IN, "; - close(IN); - - logmsg("mv dbglog \"output/dbg-$date.log\"\n"); - system("mv dbglog \"output/dbg-$date.log\""); - - # cut off a 1/4 of the old value, add a 1/4 of the new value - $prevtime -= $prevtime/4; - $tooktime = time()-$now; # number of seconds it took - - $prevtime += $tooktime/4; - - open(OUT, ">output/build-time"); - printf OUT "%d\n", $prevtime; - close(OUT); - # store the exact time of latest build - open(OUT, ">output/last-build-time"); - printf OUT "%d\n", $tooktime; - close(OUT); - unlink("floink"); - - logmsg("create build table\n"); - system("./showbuilds.pl > output/index-2.html"); - system("mv output/index-2.html output/index.html"); - - # build source package - logmsg("build source package\n"); - system("./mksource"); - - open(BUILDTIME, ">output/build-info"); - print BUILDTIME "[bleeding]\n"; - print BUILDTIME "timestamp = \"$date\"\n"; - print BUILDTIME "rev = \"$torev\"\n"; - close(BUILDTIME); - - logmsg("extract binary sizes\n"); - system("./buildmaster.pl sizes > output/sizes-$date"); - - logmsg("build delta table\n"); - #system("./showsize.pl > output/sizes.html"); - system("./showsize.pl > output/sizes2.html"); - - system("./blamemail.pl"); - - logmsg "all done.\n"; - - unlink($pidfile); -} Index: tools/showsize.pl =================================================================== --- tools/showsize.pl (revision 23735) +++ tools/showsize.pl (working copy) @@ -1,193 +0,0 @@ -#!/usr/bin/perl - -my $dir="output"; - -opendir(DIR, $dir) || die "can't opendir $dir: $!"; -my @logs = sort grep { /^sizes-/ && -f "$dir/$_" } readdir(DIR); -closedir DIR; - -my %title; -my $rounds; -my %lines; - -my %this; -my %delta; - -my %targsort = ('player' => 0, - 'recorder' => 10, - 'recorder8mb' => 20, - 'fmrecorder' => 30, - 'fmrecorder8mb' => 40, - 'recorderv2' => 50, - 'ondiofm' => 60, - 'ondiosp' => 70, - 'iaudiom3' => 80, - 'iaudiom5' => 85, - 'iaudiox5' => 90, - "h100" => 100, - "h120" => 110, - "h300" => 120, - "h10_5gb" => 130, - "h10" => 140, - "hdd1630" => 145, - "ipod1g2g" => 150, - "ipod3g" => 160, - "ipod4gray" => 170, - "ipodcolor" => 180, - "ipodvideo" => 190, - "ipodvideo64mb" => 200, - "ipodmini1g" => 210, - "ipodmini2g" => 220, - "ipodnano" => 230, - "sansae200" => 240, - "sansac200" => 245, - "clip" => 250, - "fuze" => 260, - "m200v4" => 270, - "gigabeatf" => 280, - "gigabeats" => 290, - "mrobe500" => 300, - "mrobe100" => 310, - "cowond2" => 350, - "creativezvm30" => 400, - "creativezvm60" => 410, - "creativezenvision" => 420, - 'ondavx747' => 500, - 'ondavx767' => 510, - ); - -sub titlesort { - return $targsort{$a} <=> $targsort{$b}; -} - -sub singlefile { - my($file)=@_; - my @o; - my %single; - my $totaldelta=0; - my $models=0; - - open(F, "<$file"); - while() { - if(/^([^ :]*) *: *(\d+) *(\d*)/) { - my ($name, $size, $ram)=($1, $2, $3); - $title{$name} += $size; - my $delta = 0; - my $ramdelta = 0; - my $t; - $ram += 0; - my $title; - - if($thisram{$name} && $ram) { - $ramdelta = $ram - $thisram{$name}; - my $cl=""; - if($ramdelta > 16) { - $cl = "buildfail"; - } - elsif($ramdelta < -16) { - $cl="buildok"; - } - $t = "$ramdelta"; - } - else { - $t = "-"; - } - $title="\nRAM: $ramdelta/$ram bytes"; - $singleram{$1}=$t; - - my $t2; - - if($this{$name} && $size) { - $delta = $size - $this{$name}; - } - - my $delta2 = ($delta + $ramdelta)/2; - - my $cl=""; - if($delta2 > 16) { - $cl = "buildfail"; - } - elsif($delta2 < -16) { - $cl="buildok"; - } - - $t2 ="${delta2}"; - - $single{$1} = $t2; - $totaldelta += $delta2; - if($size) { - $this{$name}=$size; - } - if($ram) { - $thisram{$name}=$ram; - } - $models++; - } - } - close(F); - - for my $t (sort titlesort keys %title) { - my $tx = $single{$t}; - if(!$tx) { - $tx=" "; - } - $lines{$file} .= $tx; - } - - my $cl=""; - if($models > 0) { - $totaldelta = sprintf("%d", $totaldelta/$models); - } - if($totaldelta > 16) { - $cl = "buildfail"; - } - elsif($totaldelta < -16) { - $cl="buildok"; - } - $lines{$file} .= "$totaldelta"; - -} - - -foreach my $l (@logs) { - if( -s "$dir/$l") { - singlefile("$dir/$l"); - $rounds++; - } -} - -print < File size deltas of the binary main Rockbox images during the most recent - commits. Hover over the delta to get the exact file size in bytes. - -MOO -; -print "\n"; -for my $t (sort titlesort keys %title) { - print "\n"; -} -print "\n"; -print "\n"; - -my $c; -foreach my $l (reverse sort @logs) { - if($lines{"$dir/$l"}) { - my $b = $l; - my $date = $l; - $date =~ s/^sizes-//; - $b =~ s/sizes-(\d\d\d\d)(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)Z/$1-$2-$3 $4:$5/g; - $b = "$b"; - - print ""; - print $lines{"$dir/$l"}."\n"; - print ""; - print "\n"; - - if($c++ > 18) { - last; - } - } -} -print "
Timestamp\"$t\"Delta
$blog
"; - Index: tools/buildall-voices.pl =================================================================== --- tools/buildall-voices.pl (revision 23735) +++ tools/buildall-voices.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); @@ -12,7 +14,7 @@ # path added for lame # we need the compilers' paths to preprocess the feature thing when building # voices -$ENV{'PATH'}.=":/usr/local/bin:/usr/local/sh-gcc/bin:/usr/local/m68k-gcc/bin:/usr/local/arm-elf/bin"; +$ENV{'PATH'}.=":/usr/local/bin:/usr/local/sh-elf/bin:/usr/local/m68k-elf/bin:/usr/local/arm-elf/bin"; my $verbose; if($ARGV[0] eq "-v") { @@ -28,7 +30,7 @@ # made once for all targets sub runone { - my ($dir, $select, $newl)=@_; + my ($dir)=@_; my $a; if($doonly && ($doonly ne $dir)) { @@ -40,14 +42,19 @@ print "Build in build-$dir\n" if($verbose); # build the manual(s) - $a = buildit($dir, $select, $newl); + $a = buildit($dir); chdir ".."; my $o="build-$dir/english.voice"; if (-f $o) { - my $newo="output/$dir-$date-english.voice"; - system("mv $o $newo"); + my $newo="output/$dir-$date-english.zip"; + system("cp $o output/$dir-$date-english.voice"); + system("mkdir -p .rockbox/langs"); + system("cp $o .rockbox/langs"); + system("zip -q -r $newo .rockbox"); + system("rm -rf .rockbox"); + `chmod a+r $newo`; print "moved $o to $newo\n" if($verbose); } @@ -58,19 +65,17 @@ }; sub buildit { - my ($dir, $select, $newl)=@_; + my ($dir)=@_; `rm -rf * >/dev/null 2>&1`; - # V (voice), F (festival), L (lame), [blank] (English) - my $c = sprintf('echo -e "%s\n%sa\nv\n\n\nf\n\n" | ../tools/configure', - $select, $newl?'\n':""); + my $c = "../tools/configure --type=av --target=$dir --language=0 --tts=f"; print "C: $c\n" if($verbose); `$c`; print "Run 'make voice'\n" if($verbose); - print `make voice 2>/dev/null`; + `make voice`; } sub buildinfo { @@ -92,30 +97,13 @@ # run make in tools first to make sure they're up-to-date `(cd tools && make ) >/dev/null 2>&1`; -`rm -f /home/dast/rockbox-voices/voice-pool/*`; -$ENV{'POOL'}="/home/dast/rockbox-voices/voice-pool"; +`rm -f /sites/rockbox.org/dailybuild-voices/voice-pool/*`; +$ENV{'POOL'}="/sites/rockbox.org/dailybuild-voices/voice-pool"; -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", "h120"); -runone("h300", "h300"); -runone("ipodcolor", "ipodcolor"); -runone("ipodnano", "ipodnano"); -runone("ipod4gray", "ipod4g"); -runone("ipodvideo", "ipodvideo", 1); -runone("ipod3g", "ipod3g"); -runone("ipod1g2g", "ipod1g2g"); -runone("iaudiox5", "x5"); -runone("iaudiom5", "m5"); -runone("ipodmini2g", "ipodmini2g"); -runone("ipodmini1g", "ipodmini"); -runone("h10", "h10"); -runone("h10_5gb", "h10_5gb"); -runone("gigabeatf", "gigabeatf"); -runone("sansae200", "e200"); -#buildinfo(); +for my $b (&usablebuilds) { + next if ($builds{$b}{configname} < 3); # no variants + + runone(voicename($b)); +} + +`rm -f /sites/rockbox.org/dailybuild-voices/voice-pool/*`; Index: daily.t =================================================================== --- daily.t (revision 23735) +++ daily.t (working copy) @@ -27,46 +27,4 @@ - -#if 0 -

CVS Compile Status

- -

CVS code build status: number of compiler warnings the build generates. 0 -(zero) means no warnings. The timestamp is GMT. Target -Status - -

- - - -

Bleeding edge builds

- -

These builds are as "bleeding edge" as you can get. They are updated on -every source change. (See status on the first line in the above table). - -

These are complete installation archives. - -

- -Player -Recorder -Ondio SP -Ondio FM -FM Recorder -V2 Recorder -8MB Recorder -iriver h100 -iriver h120 -iriver h300 -iPod Color -iPod Nano -iPod 4G Gray -iPod Video -source - -

-How to use CVS. -#endif - #include "foot.t" Index: download/table.pm =================================================================== --- download/table.pm (revision 23735) +++ download/table.pm (working copy) @@ -1,34 +1,16 @@ -my @list=( - "player", - "recorder", "recorder8mb", - "fmrecorder", "fmrecorder8mb", - "recorderv2", - "ondiofm", "ondiosp", - "iaudiom5", "iaudiox5", #"iaudiom3", - "h100", "h120", "h300", - "h10_5gb", "h10", +require "rockbox.pm"; - "ipod1g2g", "ipod3g", - "ipod4gray", "ipodcolor", - "ipodvideo", "ipodvideo64mb", - "ipodmini1g", "ipodmini2g", - "ipodnano", - - "gigabeatf", - "sansae200", "sansac200", - "mrobe100", - "source", "fonts" - ); - sub buildtable { print "

\n"; - for my $m (@list) { + for my $m (sort byname keys %builds) { { + next if ($builds{$m}{status} < 3); + # the release hash is in ../rockbox.pm - my $version = $release{$m}; + my $version = $publicrelease; my $basedir="http://download.rockbox.org/release/$version"; my $pack="$basedir/rockbox-$m-$version.zip"; - my $name= $longname{$m}, + my $name= $builds{$m}{name}; my $mans; if($m eq "source") { $pack="$basedir/rockbox-$version.7z"; @@ -37,28 +19,18 @@ $pack="$basedir/rockbox-fonts-$version.zip"; } else { - my $docs = $model2docs{$m} || $m; - my $voice = $m; + my $docs = manualname($m); + my $voice = voicename($m); - # cut off the memory sizes - $voice =~ s/8mb//g; - $voice =~ s/64mb//g; - - $mans=sprintf("
PDF manual
English voice", - $docs, $voice); + $mans="
PDF manual
English voice"); } if($col++ > 6) { print ""; $col=1; } - printf("\n", - $pack, - $longname{$m}, - $model{$m}, - $longname{$m}, - $name, - ); + printf("\n", + playerpic($m)); } } print "
\"%s\"

%s$mans

\"$name\"

$name$mans

"; Index: playerpics/archosfmrecorder-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: playerpics/archosfmrecorder-small.png ___________________________________________________________________ Added: svn:special + * Added: svn:mime-type + application/octet-stream Index: playerpics/fonts-small.png =================================================================== --- playerpics/fonts-small.png (revision 0) +++ playerpics/fonts-small.png (revision 0) @@ -0,0 +1 @@ +link ../rockbox100.png \ No newline at end of file Property changes on: playerpics/fonts-small.png ___________________________________________________________________ Added: svn:special + * Index: playerpics/ondiofm-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/player-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: playerpics/sansafuze-small.png ___________________________________________________________________ Deleted: svn:executable - * Index: playerpics/recorderv2fm-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/c200-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/recorder-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/d2-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/e200-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/ipodnano-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/clip-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = image/png Index: playerpics/h10-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/x5-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/install.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/source-small.png =================================================================== --- playerpics/source-small.png (revision 0) +++ playerpics/source-small.png (revision 0) @@ -0,0 +1 @@ +link ../rockbox100.png \ No newline at end of file Property changes on: playerpics/source-small.png ___________________________________________________________________ Added: svn:special + * Index: playerpics/h100-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/ipodmini-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/samsungyh820-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: playerpics/samsungyh820-small.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: playerpics/gigabeatf-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/fuze-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/h300-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/yh920-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/ondiosp-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: playerpics/sansaclip-small.png ___________________________________________________________________ Modified: svn:mime-type - image/png + application/octet-stream Property changes on: playerpics/samsungyh925-small.png ___________________________________________________________________ Deleted: svn:executable - * Index: playerpics/m3-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/yh925-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/m5-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: playerpics/h10_5gb-small.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: playerpics/mrobe100-small.png ___________________________________________________________________ Modified: svn:mime-type - image/png + application/octet-stream Index: dailymod.pl =================================================================== --- dailymod.pl (revision 23735) +++ dailymod.pl (working copy) @@ -6,37 +6,6 @@ my $baseurl = "http://download.rockbox.org"; my $docbasedir = "/sites/download.rockbox.org/manual"; -my @list=( - "fmrecorder", #"fmrecorder8mb", - "ondiofm", "ondiosp", "player", - "recorder8mb", "recorder", - "recorderv2", - - "iaudiom3", "iaudiom5", "iaudiox5", - - "ipod1g2g", "ipod3g", - "ipod4gray", "ipodcolor", - "ipodmini1g", "ipodmini2g", - "ipodnano", "ipodnano2g", - "ipodvideo", "ipodvideo64mb", - - "h10", "h10_5gb", - "h100", "h120", "h300", - - "mrobe100", "mrobe500", - - "yh920", "yh925", - - "sansac200", "sansaclip", "sansae200", - "sansae200v2", "sansafuze", - - "gigabeatf", - - # install and source are special cases - #"install", - #"source", - "fonts"); - sub getpages { my ($file)=@_; @@ -50,18 +19,16 @@ return 0; } + print "Content-type: text/html\n\n" unless ($ARGV[0]); -for(@list) { - my $dir = $_; - opendir(DIR, "$basedir/daily") or next; - my @files = sort grep { /^build-info/ } readdir(DIR); - closedir DIR; +opendir(DIR, "$basedir/daily") or next; +my @files = sort grep { /^build-info/ } readdir(DIR); +closedir DIR; - for(@files) { - /(20\d+)/; - $date{$1}=$1; - } +for (@files) { + /(20\d+)/; + $date{$1}=$1; } my $split = 8; @@ -82,24 +49,19 @@ my $x = 0; my @head; - foreach $t (@list) { - my $show = $t; - $show =~ s/recorder/rec/; - # Remove the comment below to get long names - $show = $longname{$t}; - $head[$x] .= "$show\n"; + # build table headers + foreach my $t (&usablebuilds) { + $head[$x] .= "$builds{$t}{name}\n"; $count++; if ($count == $split) { $x++; $count=0; } } - #print "$head[0]\n"; $count = 0; $x=0; - for(@list) { - my $m = $_; + for my $m (&usablebuilds) { if(!$count++) { print "$head[$x]\n\n"; $x++; @@ -116,7 +78,8 @@ close(R); } - printf "\"$m\"
"; + my $icon = playerpic($m); + printf "\"$m\"
"; # new-style full zip: my $file = "rockbox-${m}.zip"; my $dir = "$m/"; @@ -132,21 +95,9 @@ print "old"; my $docm = $m; - if($docm eq "h120") { - $docm="h100"; + if (defined $builds{$m}{manual}) { + $docm = $builds{$m}{manual}; } - elsif($docm eq "recorder8mb") { - $docm="recorder"; - } - elsif($docm eq "fmrecorder8mb") { - $docm="fmrecorder"; - } - elsif($docm eq "ipodmini1g") { - $docm="ipodmini2g"; - } - elsif($docm eq "ipodvideo64mb") { - $docm="ipodvideo"; - } my $docfile = "rockbox-${docm}.pdf"; if( -f "$docbasedir/$docfile") { @@ -159,15 +110,9 @@ } my $voicemod = $m; - if($voicemod eq "recorder8mb") { - $voicemod = "recorder"; + if (defined $builds{$m}{voice}) { + $voicemod = $builds{$m}{voice}; } - elsif($voicemod eq "fmrecorder8mb") { - $voicemod = "fmrecorder"; - } - elsif($voicemod eq "ipodvideo64mb") { - $voicemod = "ipodvideo"; - } my $voicefile="$basedir/daily/voices/${voicemod}-${d}-english.zip"; my $voiceurl="$baseurl/daily/voices/${voicemod}-${d}-english.zip"; Index: rockbox.pm =================================================================== --- rockbox.pm (revision 23735) +++ rockbox.pm (working copy) @@ -1,144 +1,13 @@ -# short name to image mapping -%model=('player' => '/playerpics/player-small.png', - 'recorder' => '/playerpics/recorder-small.png', - 'fmrecorder' => '/playerpics/recorderv2fm-small.png', - 'recorderv2' => '/playerpics/recorderv2fm-small.png', - 'recorder8mb' => '/playerpics/recorder-small.png', - 'fmrecorder8mb' => '/playerpics/recorderv2fm-small.png', - 'ondiosp' => '/playerpics/ondiosp-small.png', - 'ondiofm' => '/playerpics/ondiofm-small.png', - 'h100' => '/playerpics/h100-small.png', - 'h120' => '/playerpics/h100-small.png', - 'h300' => '/playerpics/h300-small.png', - 'ipodcolor' => '/playerpics/ipodcolor-small.png', - 'ipodnano' => '/playerpics/ipodnano-small.png', - 'ipodnano2g' => '/playerpics/ipodnano2g-small.png', - 'ipod4gray' => '/playerpics/ipod4g-small.png', - 'ipodvideo' => '/playerpics/ipodvideo-small.png', - 'ipodvideo64mb' => '/playerpics/ipodvideo-small.png', - 'ipod3g' => '/playerpics/ipod3g-small.png', - 'ipodmini2g' => '/playerpics/ipodmini-small.png', - 'ipodmini1g' => '/playerpics/ipodmini-small.png', - 'iaudiox5' => '/playerpics/x5-small.png', - 'iaudiom5' => '/playerpics/m5-small.png', - 'iaudiom3' => '/playerpics/m3-small.png', - 'h10' => '/playerpics/h10-small.png', - 'h10_5gb' => '/playerpics/h10_5gb-small.png', - 'sansae200' => '/playerpics/e200-small.png', - 'sansac200' => '/playerpics/c200-small.png', - 'gigabeatf' => '/playerpics/gigabeatf-small.png', - 'gigabeats' => '/playerpics/gigabeats-small.png', - 'ipod1g2g' => '/playerpics/ipod1g2g-small.png', - 'mrobe100' => '/playerpics/mrobe100-small.png', - 'mrobe500' => '/playerpics/mrobe500-small.png', - 'sansafuze' => '/playerpics/fuze-small.png', - 'sansae200v2' => '/playerpics/e200-small.png', - 'yh920' => '/playerpics/yh920-small.png', - 'yh925' => '/playerpics/yh925-small.png', - 'cowond2' => '/playerpics/d2-small.png', - 'sansaclip' => '/playerpics/clip-small.png', +require "builds.pm"; - 'install' => '/playerpics/install.png', - 'fonts' => '/rockbox100.png', - 'source' => '/rockbox100.png'); +sub playerpic { + my $m = shift @_; -# short name to long name mapping -%longname=('player' => 'Archos Player/Studio', - 'recorder' => 'Archos Recorder v1', - 'fmrecorder' => 'Archos FM Recorder', - 'recorderv2' => 'Archos Recorder v2', - 'recorder8mb' => 'Archos Recorder 8MB', - 'fmrecorder8mb' => 'Archos FM Recorder 8MB', - 'ondiosp' => 'Archos Ondio SP', - 'ondiofm' => 'Archos Ondio FM', - 'h100' => 'iriver H100/115', - 'h120' => 'iriver H120/140', - 'h300' => 'iriver H320/340', - 'h10' => 'iriver H10 20GB', - 'h10_5gb' => 'iriver H10 5GB', - 'hdd1630' => 'Philips HDD1630', - 'ipodcolor' => 'iPod color/Photo', - 'ipodnano' => 'iPod Nano 1st gen', - 'ipodnano2g' => 'iPod Nano 2nd gen', - 'ipod4gray' => 'iPod 4th gen Grayscale', - 'ipodvideo' => 'iPod Video 30GB', - 'ipodvideo64mb' => 'iPod Video 60/80GB', - 'ipod3g' => 'iPod 3rd gen', - 'ipod1g2g' => 'iPod 1st and 2nd gen', - 'ipodmini2g' => 'iPod Mini 2nd gen', - 'ipodmini1g' => 'iPod Mini 1st gen', - 'iaudiox5' => 'iAudio X5', - 'iaudiom5' => 'iAudio M5', - 'iaudiom3' => 'iAudio M3', - 'sansae200' => 'SanDisk Sansa e200', - 'sansac200' => 'SanDisk Sansa c200', - 'clip' => 'SanDisk Sansa Clip', - 'sansafuze' => 'SanDisk Sansa Fuze', - 'sansae200v2' => 'SanDisk Sansa e200 V2', - 'sansam200v4' => 'SanDisk Sansa m200 V4', - 'gigabeatf' => 'Toshiba Gigabeat F/X', - 'gigabeats' => 'Toshiba Gigabeat S', - 'mrobe100' => 'Olympus M-Robe 100', - 'mrobe500' => 'Olympus M-Robe 500', - 'creativezvm30' => 'Creative Zen Vision:M 30GB', - 'creativezvm60' => 'Creative Zen Vision:M 60GB', - 'creativezenvision' => 'Creative Zen Vision', - 'yh820' => 'Samsung YH-820', - 'yh920' => 'Samsung YH-920', - 'yh925' => 'Samsung YH-925', - 'cowond2' => 'Cowon D2', + return $builds{$m}{icon} ? + "playerpics/$builds{$m}{icon}-small.png" : + "playerpics/$m-small.png"; +} - 'install' => 'Windows Installer', - 'fonts' => 'Fonts', - 'source' => 'Source Archive'); - -# short name to docs name if the short name isn't already fine -%model2docs=( - 'recorder8mb' => 'recorder', - 'fmrecorder8mb' => 'fmrecorder', - 'ipodvideo64mb' => 'ipodvideo', - 'ipodmini1g' => 'ipodmini2g', - 'h120' => 'h100' ); - -# this is the default release version, see the table below for -# target specifics -$publicrelease="3.4"; -$releasedate="September 24, 2009"; -$releasenotes="/wiki/ReleaseNotes34"; - -%release=( - 'player' => "$publicrelease", - 'recorder' => "$publicrelease", - 'recorder8mb' => "$publicrelease", - 'fmrecorder' => "$publicrelease", - 'fmrecorder8mb' => "$publicrelease", - 'recorderv2' => "$publicrelease", - 'ondiofm' => "$publicrelease", - 'ondiosp' => "$publicrelease", - 'iaudiom5' => "$publicrelease", - 'iaudiox5' => "$publicrelease", - 'h100' => "$publicrelease", - 'h120' => "$publicrelease", - 'h300' => "$publicrelease", - 'h10_5gb' => "$publicrelease", - 'h10' => "$publicrelease", - 'ipod1g2g' => "$publicrelease", - 'ipod3g' => "$publicrelease", - 'ipod4gray' => "$publicrelease", - 'ipodcolor' => "$publicrelease", - 'ipodvideo' => "$publicrelease", - 'ipodvideo64mb' => "$publicrelease", - 'ipodmini1g' => "$publicrelease", - 'ipodmini2g' => "$publicrelease", - 'ipodnano' => "$publicrelease", - 'gigabeatf' => "$publicrelease", - 'sansae200' => "$publicrelease", - 'sansac200' => "$publicrelease", - 'mrobe100' => "$publicrelease", - 'source' => "$publicrelease", - 'fonts' => "$publicrelease" - ); - sub header { my ($t) = @_; print "Content-Type: text/html\n\n";