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"
13 if [ $
(find .
-name "*.ipk" |
wc -l) -gt 0 ] ; then
14 echo "Unsorted packages found"
16 echo "No unsorted packages found. Exiting"
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
44 tail -n 100 ..
/upload-full.txt
> ..
/upload.txt
51 machines
="vortex86sx" ;;
53 machines
="collie h3600 h3800 htcwallaby jornada56x jornada7xx shark simpad" ;;
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" ;;
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" ;;
76 machines
="fsg3be ixp4xxbe nslu2be" ;;
78 machines
="bug iphone mx31ads mx31moboard mini6410 nokia800 omap2420h4 omap2430sdp pcm043 smartq5 smartqv7 smdk6410" ;;
80 machines
="htcblackstone htcdiamond htcdream htckaiser htcnike htcpolaris htcraphael htctitan htcvogue" ;;
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" ;;
86 machines
="at32stk1000 atngw100" ;;
89 machines
="adsp-bf537-stamp" ;;
91 machines
="alix geodegx geodelx iei-nanogx-466 xo" ;;
95 machines
="d201gly2 epia i586-generic netvisa progear x86 x86-uml" ;;
97 machines
="eee701 i686-generic qemux86 guinness progear ion qemux86 vmware x86-32-nocona x86-prescott" ;;
101 machines
="qemumips" ;;
103 machines
="ben-nanonote db1200 lsmipsel mtx-1 mtx-2 qemumipsel rb500 stb225 wgt634u wl500g wrt54" ;;
105 machines
="gamecube p2020ds" ;;
107 machines
="dht-walnut kilauea magicbox xilinx-ml403 xilinx-ml410" ;;
109 machines
="canyonlands sequoia xilinx-ml507" ;;
111 machines
="efika lite5200 lsppchd lsppchg n1200 qemuppc storcenter" ;;
113 machines
="mpc8323e-rdb" ;;
115 machines
="boc01 mpc8313e-rdb mpc8315e-rdb" ;;
117 machines
="tqm8540" ;;
119 machines
="calamari" ;;
121 machines
="mpc8641-hpcn" ;;
123 machines
="qemush4 titan" ;;
125 machines
="sun4cdm" ;;
127 machines
="colinux" ;;
130 if [ $
(find .
-name "*_$arch.ipk"|
wc -l) -gt 0 ] ; then
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
143 ( cd ..
/$archdir && do_index
)
147 echo "Processing $(basename $PWD) packages...."
151 if [ "${SORTFEED}" -eq 1 ] ; then
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
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
172 mkdir
-p ${BPWD}/locales
/en
/
173 cd ${BPWD}/locales
/en
/
174 echo -n "building index for locales:"
177 echo -n " $i" |
sed s
:\.\.
/::
178 ${ipkg_tools_path}/opkg-make-index
-m -p Packages
-l Packages.filelist .
>& /dev
/null
;
185 mkdir
-p ${BPWD}/machine
191 echo -n "building index for machine $i:"
192 ${ipkg_tools_path}/opkg-make-index
-m -p Packages
-l Packages.filelist .
>& /dev
/null
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
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
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