sort: Add support for am45x-evm machine type
[openembedded.git] / contrib / angstrom / sort.sh
blobca13ce282e9f001f00e5a28e0083e682941fe0c8
1 #!/bin/bash
3 # Angstrom feed sorting script
4 # This must be run in unsorted/ directory
6 ipkg_tools_path="/home/angstrom/bin"
8 if [ $(basename $PWD) != "unsorted" ] ; then
9 echo "Not in feed dir! Exiting"
10 exit 1
11 fi
13 if [ $(find . -name "*.ipk" | wc -l) -gt 0 ] ; then
14 echo "Unsorted packages found"
15 else
16 echo "No unsorted packages found. Exiting"
17 exit 1
20 rm Packages* >& /dev/null
22 # Find ipkg files in unsorted/ and remove stale ones
23 echo "Deleting morgue directories "
24 find . -name morgue | xargs rm -rf
25 echo "Moving packages to the top level directory"
26 find */ -name "*.ipk" -exec mv '{}' ./ \;
28 # Make a list of ipkg files already present in feeds and in unsorted
29 echo "Making a list of unsorted packages"
30 for i in $(find . -name "*.ipk") ; do basename $i ; done > files-unsorted
31 # Make a list of duplicates and delete those
32 echo "Finding duplicate packages in unsorted"
33 cat files-sorted files-unsorted | sort | uniq -d > files-duplicate
34 echo "Removing duplicate packages in unsorted"
35 cat files-duplicate | xargs rm -f
37 for i in $(find . -name "*.ipk") ; do basename $i ; done > files-sorted-new
39 # Log remaining packages to a file
40 find . -name "*.ipk" |grep -v dbg | grep -v -- -dev | grep -v -- -doc | grep -v -- -static | grep -v angstrom-version | grep -v locale > new-files.txt
41 for newfile in $(cat new-files.txt | sed s:./::g) ; do
42 echo "$(date -u +%s) $newfile $(basename ${PWD})" >> ../upload-full.txt
43 done
44 tail -n 100 ../upload-full.txt > ../upload.txt
46 do_sort() {
47 archdir=$arch
49 case "$arch" in
50 "486sx")
51 machines="vortex86sx" ;;
52 "armv4")
53 machines="collie h3600 h3800 htcwallaby jornada56x jornada7xx shark simpad" ;;
54 "armv4t")
55 machines="acern30 amsdelta at2440evb cs-e9302 ep93xx eteng500 eten-m800 fic-gta01 fic-gta02 gesbc-9302 h1940 h6300 kb9202 ks8695 m8050 micro2440 mini2440 om-gta01 om-gta02 rx1950 rx3000 sarge-at91 simone smdk2440 smdk2443 topas910 ts72xx" ;;
56 "armv5te")
57 machines="a1200 a780 a910 afeb9260 afeb9260-180 akita am180x-evm
58 asus620 asus730 at91cap9adk at91-l9260 at91sam9260ek at91sam9261ek
59 at91sam9263ek at91sam9g10ek at91sam9g20ek at91sam9g45ek at91sam9g45ekes
60 at91sam9rlek aximx50 aximx50v bd-neon c7x0 chumby chumby-falconwing cm-x270
61 cm-x300 da830-omapl137-evm da850-omapl138-evm davinci-dvevm davinci-sffsdr
62 devkitidp-pxa255 dm355-evm dm355-leopard dm357-evm dm365-evm dm368-evm
63 dm6446-evm dm6467-evm dm6467t-evm dns323 dockstar e680 ea3250 em-x270 er0100
64 eseries ghi270 gumstix gumstix-connex gumstix-custom-connex
65 gumstix-custom-verdex gumstix-verdex h1910 h2200 h3900 h4000 h5000 hawkboard
66 hipox htcalpine htcapache htcblueangel htchimalaya htcsable htctornado
67 htcuniversal hx2000 hx4700 imote2 ixp4xxle kixrp435 kuropro logicpd-pxa270
68 looxc550 lspro magician mainstone mh355 mp900c mtx-3 mtx-3a mv2120 mx21ads
69 mx27ads n2100 navman-icn330 netbook-pro neuros-osd neuros-osd2 nhk15 nokia770
70 nslu2le omap1510inn omap1610h2 omap1710h3 omap5912osk openrd-base openrd-client
71 palmld palmt650 palmt680 palmtc palmtt palmtt3 palmtt5 palmtx palmz31
72 palmz71 palmz72 poodle qemuarm rokre2 rokr-e2 rokre6 ronetix-pm9261
73 ronetix-pm9263 sgh-i900 sheevaplug spitz stamp9g20evb topas910 tosa
74 triton ts409 tsx09 tx25 tx27" ;;
75 "armv5teb")
76 machines="fsg3be ixp4xxbe nslu2be" ;;
77 "armv6")
78 machines="bug iphone mx31ads mx31moboard mini6410 nokia800 omap2420h4 omap2430sdp pcm043 smartq5 smartqv7 smdk6410" ;;
79 "armv6-novfp")
80 machines="htcblackstone htcdiamond htcdream htckaiser htcnike htcpolaris htcraphael htctitan htcvogue" ;;
81 "armv7a")
82 machines="am3517-evm am3517-crane am45x-evm archos5 archos5it beagleboard bug20 cm-t35 dm37x-evm am37x-evm am387x-evm am389x-evm babbage c6a814x-evm c6a816x-evm dm814x-evm efikamx htcleo igep0020 nokia900 omap3517-evm omap3evm omap3-pandora omap3-touchbook omap4430-sdp omapzoom omapzoom2 omapzoom36x overo palmpre omap4430-panda usrp-embedded usrp-e1xx" ;;
83 "armv7a-vfp")
84 machines="ac100" ;;
85 "avr32")
86 machines="at32stk1000 atngw100" ;;
87 "bfin")
88 archdir="blackfin"
89 machines="adsp-bf537-stamp" ;;
90 "geode")
91 machines="alix geodegx geodelx iei-nanogx-466 xo" ;;
92 "i486")
93 machines="wrap" ;;
94 "i586")
95 machines="d201gly2 epia i586-generic netvisa progear x86 x86-uml" ;;
96 "i686")
97 machines="eee701 i686-generic qemux86 guinness progear ion qemux86 vmware x86-32-nocona x86-prescott" ;;
98 "iwmmxt")
99 machines="" ;;
100 "mips")
101 machines="qemumips" ;;
102 "mipsel")
103 machines="ben-nanonote db1200 lsmipsel mtx-1 mtx-2 qemumipsel rb500 stb225 wgt634u wl500g wrt54" ;;
104 "powerpc")
105 machines="gamecube p2020ds" ;;
106 "ppc405")
107 machines="dht-walnut kilauea magicbox xilinx-ml403 xilinx-ml410" ;;
108 "ppc440e")
109 machines="canyonlands sequoia xilinx-ml507" ;;
110 "ppc603e")
111 machines="efika lite5200 lsppchd lsppchg n1200 qemuppc storcenter" ;;
112 "ppce300c2")
113 machines="mpc8323e-rdb" ;;
114 "ppce300c3")
115 machines="boc01 mpc8313e-rdb mpc8315e-rdb" ;;
116 "ppce500")
117 machines="tqm8540" ;;
118 "ppce500v2")
119 machines="calamari" ;;
120 "ppce600")
121 machines="mpc8641-hpcn" ;;
122 "sh4")
123 machines="qemush4 titan" ;;
124 "sparc")
125 machines="sun4cdm" ;;
126 "x86")
127 machines="colinux" ;;
128 esac
130 if [ $(find . -name "*_$arch.ipk"| wc -l) -gt 0 ] ; then
131 export SORTFEED=1
132 else
133 export SORTFEED=0
136 echo "Sorting $arch"
138 mkdir -p ../$archdir/base/ || true
139 for i in `find . -name "*_$arch.ipk"` ; do mv $i ../$archdir/base/ ; done
140 for machine in $machines ; do
141 for i in `find . -name "*_$machine.ipk"| grep $machine` ; do mkdir -p ../$archdir/machine/$machine || true ;mv $i ../$archdir/machine/$machine ; done
142 done
143 ( cd ../$archdir && do_index )
146 do_index() {
147 echo "Processing $(basename $PWD) packages...."
149 BPWD=`pwd`
151 if [ "${SORTFEED}" -eq 1 ] ; then
152 mkdir -p base
153 cd base
155 mkdir -p ../debug ../perl ../python ../gstreamer ../locales/en || true
157 #split the feeds based on names
158 mv python* ../python/ >& /dev/null
159 mv perl* ../perl/ >& /dev/null
160 mv *-dbg* ../debug/ >& /dev/null
161 mv gst* ../gstreamer >& /dev/null
163 for i in ../* ; do
164 if [ -d $i ]; then
165 cd $i
166 echo -n "building index for $i:" |sed s:\.\./::
167 ${ipkg_tools_path}/opkg-make-index -m -p Packages -l Packages.filelist -L ../locales . >& /tmp/index-log
168 echo " DONE"
170 done
172 mkdir -p ${BPWD}/locales/en/
173 cd ${BPWD}/locales/en/
174 echo -n "building index for locales:"
175 for i in ../* ; do
176 if [ -d $i ]; then
177 echo -n " $i" |sed s:\.\./::
178 ${ipkg_tools_path}/opkg-make-index -m -p Packages -l Packages.filelist . >& /dev/null;
179 cd $i
181 done
182 echo " DONE"
185 mkdir -p ${BPWD}/machine
186 cd ${BPWD}/machine
188 for i in ./* ; do
189 if [ -d $i ]; then
190 cd $i
191 echo -n "building index for machine $i:"
192 ${ipkg_tools_path}/opkg-make-index -m -p Packages -l Packages.filelist . >& /dev/null
193 echo " DONE"
194 cd ../
196 done
197 cd ${BPWD}
201 echo "Processing 'all' feed"
202 for i in `find . -name "*.ipk"| grep _all` ; do mkdir -p ../all/ || true ;mv $i ../all/ ; done
203 (mkdir -p ../all ; cd ../all && ${ipkg_tools_path}/opkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )
205 mkdir -p ../sdk ; mv *sdk.ipk ../sdk/ || true
206 (mkdir -p ../sdk ; cd ../sdk && ${ipkg_tools_path}/opkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )
208 for arch in 486sx armv4t armv4 armv5teb armv5te armv6-novfp armv6 armv7a-vfp armv7a avr32 bfin geode i486 i586 i686 iwmmxt mips mipsel powerpc ppc405 ppc440e ppc603e ppce300c2 ppce300c3 ppce500v2 ppce500 ppce600 sh4 sparc x86_64 x86; do
209 do_sort
210 done
212 if [ "$1" != "--skip-sorted-list" ]; then
213 echo "Updating list of sorted packages"
214 cat files-sorted files-sorted-new | sort | uniq > files-sorted-tmp
215 mv files-sorted-tmp files-sorted
216 rm files-sorted-*
219 if [ "$1" != "--skip-repo-update" ]; then
220 ( cd ~/website/repo-updater ; rm -f feeds.db* ; php update.php ; rm ../repo/feeds.db* ; cp feeds.db* ../repo )
223 echo -n "Stripping source lines from Package files"
224 for i in `find .. -name Packages` ; do grep -v ^Source: $i|gzip -c9>$i.gz ;gunzip -c $i.gz>$i ; touch $i.sig ; done
225 echo " DONE"