increase dvbapp PR.
[vuplus_openembedded] / contrib / angstrom / sort.sh
1 #!/bin/bash
2
3 # Angstrom feed sorting script
4 # This must be run in unsorted/ directory 
5
6 if [ $(basename $PWD) != "unsorted" ] ; then
7         echo "Not in feed dir! Exiting"
8         exit 1
9 fi      
10
11 if [ $(find . -name "*.ipk" | wc -l) -gt 0 ] ; then
12         echo "Unsorted packages found"
13 else
14         echo "No unsorted packages found. Exiting"
15         exit 1
16 fi
17
18 rm Packages* >& /dev/null
19
20 # Find ipkg files in unsorted/ and remove stale ones
21 echo "Deleting morgue directories "
22 find . -name morgue | xargs rm -rf 
23 echo "Moving packages to the top level directory"
24 find */ -name  "*.ipk" -exec mv  '{}'  ./ \;
25
26 # Make a list of ipkg files already present in feeds and in unsorted
27 echo "Making a list of unsorted packages"
28 for i in $(find . -name "*.ipk") ; do basename $i ; done > files-unsorted
29 # Make a list of duplicates and delete those
30 echo "Finding duplicate packages in unsorted"
31 cat files-sorted files-unsorted | sort | uniq -d > files-duplicate
32 echo "Removing duplicate packages in unsorted"
33 cat files-duplicate | xargs rm -f
34
35 # Log remaining packages to a file 
36 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
37 for newfile in $(cat new-files.txt | sed s:./::g) ; do
38     echo "$(date -u +%s) $newfile $(basename ${PWD})" >> ../upload-full.txt
39 done    
40 tail -n 100 ../upload-full.txt > ../upload.txt
41
42 do_sort() {
43 archdir=$arch
44
45 case "$arch" in
46         "armv4")
47                         machines="h3600 h3800 collie simpad htcwallaby" ;;
48         "armv4t")
49                         machines="micro2440 ep93xx h6300 om-gta01 om-gta02 fic-gta01 fic-gta02" ;;
50         "armv5te")
51                         machines="hawkboard da850-omapl138-evm da830-omapl137-evm htcalpine dm6446-evm dm6467-evm dm6467t-evm dm355-evm dm365-evm dm357-evm topas910 sheevaplug openrd-client openrd-base dm355-leopard n2100 dns323 mv2120 kuropro lspro tsx09 ts409 davinci-dvevm davinci-sffsdr neuros-osd neuros-osd2 gumstix-connex gumstix-verdex gumstix e680 a780 a1200 at91sam9263ek rokre6 rokre2 rokr-e2 akita c7x0 h2200 h3900 h4000 h5000 htcapache htctornado htcblueangel htcuniversal hx4700 nslu2le hx2000 ixp4xxle magician netbook-pro nokia770 palmt650 palmt680 palmld palmtx palmtt3 palmz72 qemuarm omap5912osk poodle spitz tosa mx27ads at91sam9g20ek mainstone" ;;
52         "armv5teb")
53                         machines="ixp4xxbe nslu2be" ;;
54         "armv6-novfp")
55                         machines="htcdiamond htckaiser htcpolaris htcraphael htcvogue" ;;       
56         "armv6")        
57                         machines="smartq5 bug mx31ads nokia800 " ;;
58         "armv7")
59                         machines="" ;;
60         "armv7a")
61                         machines="archos5 palmpre cm-t35 igep0020 omap3-touchbook beagleboard omap3evm am3517-evm omap3517-evm omap3-pandora omapzoom omapzoom2 overo" ;;
62         "avr32")
63                         machines="atngw100 at32stk1000" ;;
64         "bfin")
65                         archdir="blackfin"
66                         machines="adsp-bf537-stamp" ;;
67         "geode")
68                         machines="alix" ;;
69         "i486")
70                         machines="x86" ;;
71         "i586")
72                         machines="epia qemux86" ;;
73         "i686")
74                         machines="eee701 guinness progear" ;;
75         "iwmmxt")
76                         machines="" ;;
77         "ppc405")       
78                         machines="dht-walnut" ;;
79         "ppc603e")
80                         machines="lsppchd lsppchg efika n1200" ;;
81         "ppce300c3")
82                         machines="mpc8313e-rdb mpc8315e-rdb" ;;
83         "ppce500")
84                         machines="tqm8540" ;;
85         "sparc")
86                         machines="" ;;
87 esac
88
89 if [ $(find . -name  "*.ipk"| grep $arch | wc -l) -gt 0 ] ; then
90         export SORTFEED=1
91 else
92         export SORTFEED=0
93 fi
94
95 echo "Sorting $arch"
96
97 mkdir -p ../$archdir/base/ || true
98 for i in `find . -name  "*_$arch.ipk"` ; do mv $i ../$archdir/base/ ; done
99         for machine in $machines ; do
100                 for i in `find . -name  "*_$machine.ipk"| grep $machine` ; do mkdir -p ../$archdir/machine/$machine || true ;mv $i ../$archdir/machine/$machine ; done
101         done
102 ( cd ../$archdir && do_index )
103 }
104
105 do_index() {
106 ipkg_tools_path="/home/angstrom/bin"
107 echo "Processing $(basename $PWD) packages...."
108
109 BPWD=`pwd`
110
111 if [ "${SORTFEED}" -eq 1 ] ; then
112 mkdir -p base
113 cd base
114
115 mkdir -p ../debug ../perl ../python ../gstreamer ../locales/en || true
116
117 #split the feeds based on names
118 mv python* ../python/ >& /dev/null
119 mv perl* ../perl/ >& /dev/null
120 mv *-dbg* ../debug/ >& /dev/null
121 mv gst* ../gstreamer >& /dev/null
122
123 for i in ../* ; do
124   if [ -d $i ]; then
125       cd $i
126       echo -n "building index for $i:" |sed s:\.\./::
127       ${ipkg_tools_path}/ipkg-make-index -m -p Packages -l Packages.filelist  -L ../locales  . >& /tmp/index-log
128       echo " DONE"
129   fi
130 done
131
132 mkdir -p ${BPWD}/locales/en/
133 cd ${BPWD}/locales/en/
134 echo -n "building index for locales:"
135 for i in ../* ; do
136   if [ -d $i ]; then
137    echo -n " $i" |sed s:\.\./::
138    ${ipkg_tools_path}/ipkg-make-index -m -p Packages -l Packages.filelist . >& /dev/null;
139    cd $i
140   fi
141  done
142 echo " DONE"
143
144 fi
145 mkdir -p  ${BPWD}/machine
146 cd ${BPWD}/machine
147
148 for i in ./* ; do
149   if [ -d $i ]; then
150      cd $i
151      echo -n "building index for machine $i:"
152      ${ipkg_tools_path}/ipkg-make-index -m -p Packages -l Packages.filelist . >& /dev/null
153      echo " DONE"
154      cd ../
155   fi
156 done
157 cd ${BPWD} 
158
159 }
160
161 echo "Processing 'all' feed"
162 for i in `find . -name  "*.ipk"| grep _all` ; do mkdir -p ../all/ || true ;mv $i ../all/ ; done
163  (mkdir -p ../all ; cd ../all && ipkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )  
164
165 mkdir -p ../sdk ; mv *sdk.ipk ../sdk/ || true
166  (mkdir -p ../sdk ; cd ../sdk && ipkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )
167
168 for arch in armv4t armv4 armv5teb armv5te armv6-novfp armv6 armv7a armv7 avr32 bfin geode i486 i586 i686 iwmmxt ppc405 ppc603e ppce300c3 ppce500 sparc x86_64 ; do
169         do_sort
170 done
171
172 if [ "$1" != "--skip-sorted-list" ]; then
173     echo "Updating list of sorted packages (takes long)"
174     for i in $(find ../ -name "*.ipk"| grep -v unsorted) ; do basename $i ; done > files-sorted
175 fi
176
177 ( cd ~/website/repo-updater ; rm -f feed.db* ; php update.php ; rm ../repo/feeds.db* ; cp feeds.db* ../repo )
178
179 echo -n "Stripping source lines from Package files"
180 for i in `find .. -name Packages` ; do grep -v ^Source: $i|gzip -c9>$i.gz ;gunzip -c $i.gz>$i ; touch $i.sig ; done
181 echo " DONE"
182
183