summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-04-22 18:50:52 (UTC)
committer kergoth <kergoth>2003-04-22 18:50:52 (UTC)
commit868ff4fcf16fea8a1f89c5b94e3acee18d224073 (patch) (unidiff)
tree6d96d46726a3ec74da219e5eb286a426c21ce5b6
parent1af9ae95fe7e3f58b1efc6f9bd1e8cf8f6f7481d (diff)
downloadopie-868ff4fcf16fea8a1f89c5b94e3acee18d224073.zip
opie-868ff4fcf16fea8a1f89c5b94e3acee18d224073.tar.gz
opie-868ff4fcf16fea8a1f89c5b94e3acee18d224073.tar.bz2
Alter mkipks to obey Packages field in a control file if its set, otherwise use filename
Diffstat (more/less context) (ignore whitespace changes)
-rwxr-xr-xmkipks6
1 files changed, 5 insertions, 1 deletions
diff --git a/mkipks b/mkipks
index 6a1d46e..ec5a659 100755
--- a/mkipks
+++ b/mkipks
@@ -1,257 +1,261 @@
1#!/bin/sh 1#!/bin/sh
2 2
3if [ -z "$QTE_BASEVERSION" ] 3if [ -z "$QTE_BASEVERSION" ]
4then 4then
5 if [ -e $QTDIR/include/qglobal.h ] 5 if [ -e $QTDIR/include/qglobal.h ]
6 then 6 then
7 QTE_BASEVERSION=`cat $QTDIR/include/qglobal.h|grep '^#define QT_VERSION'|grep -v STR|sed -e 's,#define QT_VERSION\t*,,;' -e 's,.*\([0-9]\)\([0-9]\)\([0-9]\).*,\1.\2.\3,;'` 7 QTE_BASEVERSION=`cat $QTDIR/include/qglobal.h|grep '^#define QT_VERSION'|grep -v STR|sed -e 's,#define QT_VERSION\t*,,;' -e 's,.*\([0-9]\)\([0-9]\)\([0-9]\).*,\1.\2.\3,;'`
8 else 8 else
9 QTE_BASEVERSION=2.3.4 9 QTE_BASEVERSION=2.3.4
10 fi 10 fi
11fi 11fi
12if [ -z "$QTE_VERSION" ] 12if [ -z "$QTE_VERSION" ]
13then 13then
14 if [ -e $QTDIR/include/qglobal.h ] 14 if [ -e $QTDIR/include/qglobal.h ]
15 then 15 then
16 QTE_VERSION=`cat $QTDIR/include/qglobal.h|grep '^#define QT_VERSION_STR'|sed -e 's,#define QT_VERSION_STR\t*,,;' -e 's,.*"\([^"]*\)".*,\1,;'` 16 QTE_VERSION=`cat $QTDIR/include/qglobal.h|grep '^#define QT_VERSION_STR'|sed -e 's,#define QT_VERSION_STR\t*,,;' -e 's,.*"\([^"]*\)".*,\1,;'`
17 else 17 else
18 QTE_VERSION=2.3.4 18 QTE_VERSION=2.3.4
19 fi 19 fi
20fi 20fi
21[ -z "$QTE_REVISION" ] && QTE_REVISION=4 21[ -z "$QTE_REVISION" ] && QTE_REVISION=4
22DEB_VERSION=2.0 22DEB_VERSION=2.0
23 23
24# Have to do this here, since CVS can't store symlinks 24# Have to do this here, since CVS can't store symlinks
25 25
26mkdir -p $OPIEDIR/etc/rcS.d 26mkdir -p $OPIEDIR/etc/rcS.d
27ln -sf ../init.d/bootsplash $OPIEDIR/etc/rcS.d/S01bootsplash 27ln -sf ../init.d/bootsplash $OPIEDIR/etc/rcS.d/S01bootsplash
28 28
29VERSION_MAJ=$(sed -n -e 's/.*QPE_VERSION "\([0-9]*\)\..*\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h) 29VERSION_MAJ=$(sed -n -e 's/.*QPE_VERSION "\([0-9]*\)\..*\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h)
30VERSION_MIN=$(sed -n -e 's/.*QPE_VERSION ".*\.\([0-9]*\)\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h) 30VERSION_MIN=$(sed -n -e 's/.*QPE_VERSION ".*\.\([0-9]*\)\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h)
31VERSION_PAT=$(sed -n -e 's/.*QPE_VERSION ".*\..*\.\([0-9]*\).*/\1/p' <$OPIEDIR/include/qpe/version.h) 31VERSION_PAT=$(sed -n -e 's/.*QPE_VERSION ".*\..*\.\([0-9]*\).*/\1/p' <$OPIEDIR/include/qpe/version.h)
32SUB_VERSION=$(sed -n -e 's,.*SUB_VERSION \"\(.*\)\".*,\1,p' <$OPIEDIR/include/qpe/version.h) 32SUB_VERSION=$(sed -n -e 's,.*SUB_VERSION \"\(.*\)\".*,\1,p' <$OPIEDIR/include/qpe/version.h)
33if grep -q 'QPE_VERSION .*snapshot' $OPIEDIR/include/qpe/version.h 33if grep -q 'QPE_VERSION .*snapshot' $OPIEDIR/include/qpe/version.h
34then 34then
35 [ -z "$VERSION_CVS" ] && VERSION_CVS="$(date +%Y%m%d)" 35 [ -z "$VERSION_CVS" ] && VERSION_CVS="$(date +%Y%m%d)"
36 SUB_VERSION=$VERSION_CVS 36 SUB_VERSION=$VERSION_CVS
37else 37else
38 VERSION_CVS="" 38 VERSION_CVS=""
39fi 39fi
40 40
41QPE_VERSION=$VERSION_MAJ.$VERSION_MIN.$VERSION_PAT 41QPE_VERSION=$VERSION_MAJ.$VERSION_MIN.$VERSION_PAT
42 42
43ARCH=arm 43ARCH=arm
44STRIP=arm-linux-strip 44STRIP=arm-linux-strip
45STRIP_FILES="*ARM*not stripped" 45STRIP_FILES="*ARM*not stripped"
46 46
47TDIR=/tmp/ipk$$ 47TDIR=/tmp/ipk$$
48DATADIR=$TDIR 48DATADIR=$TDIR
49CTRLDIR=$TDIR/CONTROL 49CTRLDIR=$TDIR/CONTROL
50 50
51IMAGEDIR= 51IMAGEDIR=
52VERB= 52VERB=
53LIST= 53LIST=
54RPM= 54RPM=
55 55
56while [ $# -ne 0 ] 56while [ $# -ne 0 ]
57do 57do
58 case "$1" in 58 case "$1" in
59 -v) 59 -v)
60 VERB=1 60 VERB=1
61 echo >&2 "Packaging for version $VERSION_MAJ.$VERSION_MIN.$VERSION_PAT$VERSION_CVS" 61 echo >&2 "Packaging for version $VERSION_MAJ.$VERSION_MIN.$VERSION_PAT$VERSION_CVS"
62 ;; -l) 62 ;; -l)
63 LIST=1 63 LIST=1
64 ;; -i) 64 ;; -i)
65 shift 65 shift
66 IMAGEDIR=$1 66 IMAGEDIR=$1
67 DATADIR=$IMAGEDIR 67 DATADIR=$IMAGEDIR
68 mkdir -p $IMAGEDIR 68 mkdir -p $IMAGEDIR
69 ;; -classic) 69 ;; -classic)
70 classicopts=-c 70 classicopts=-c
71 ;; -rpm) 71 ;; -rpm)
72 if [ "$OPIEDIR" != "/opt/Qtopia" ] 72 if [ "$OPIEDIR" != "/opt/Qtopia" ]
73 then 73 then
74 echo >&2 '$OPIEDIR is not the standard /usr/Qtopia directory.' 74 echo >&2 '$OPIEDIR is not the standard /usr/Qtopia directory.'
75 sleep 1 75 sleep 1
76 #exit 1 76 #exit 1
77 fi 77 fi
78 RPM=1 78 RPM=1
79 ;; -arch) 79 ;; -arch)
80 shift 80 shift
81 ARCH=$1 81 ARCH=$1
82 STRIP= 82 STRIP=
83 STRIP_FILES= 83 STRIP_FILES=
84 ;; /*) 84 ;; /*)
85 FILES="$FILES $1" 85 FILES="$FILES $1"
86 ;; *) 86 ;; *)
87 FILES="$FILES $PWD/$1" 87 FILES="$FILES $PWD/$1"
88 esac 88 esac
89 shift 89 shift
90done 90done
91 91
92if [ -z "$FILES" ] 92if [ -z "$FILES" ]
93then 93then
94 FILES=`find $OPIEDIR -name "*.control" -print` 94 FILES=`find $OPIEDIR -name "*.control" -print`
95fi 95fi
96 96
97RDIR=$PWD 97RDIR=$PWD
98ORIGDIR=`pwd` 98ORIGDIR=`pwd`
99cd $OPIEDIR 99cd $OPIEDIR
100 100
101for i in $FILES 101for i in $FILES
102do 102do
103 rm -rf $TDIR 103 rm -rf $TDIR
104 104
105 mkdir -p $DATADIR 105 mkdir -p $DATADIR
106 mkdir -p $CTRLDIR 106 mkdir -p $CTRLDIR
107 107
108 packagename=${i##*/}; packagename=${packagename%.control} 108 packagename=${i##*/}; packagename=${packagename%.control}
109 version=$(eval echo '"'$(sed -n -e "s/^Version: *//p" $i)'"') 109 version=$(eval echo '"'$(sed -n -e "s/^Version: *//p" $i)'"')
110 depends=$(eval echo '"'$(sed -n -e "s/^Depends: *//p" $i)'"') 110 depends=$(eval echo '"'$(sed -n -e "s/^Depends: *//p" $i)'"')
111 files=$(eval echo $(sed -n -e "s/^Files://p" $i)) 111 files=$(eval echo $(sed -n -e "s/^Files://p" $i))
112 arch=$(eval echo $(sed -n -e "s/^Arch://p" $i)) 112 arch=$(eval echo $(sed -n -e "s/^Arch://p" $i))
113 section=$(sed -n -e "s/^Section: *//p" $i) 113 section=$(sed -n -e "s/^Section: *//p" $i)
114 provides=$(sed -n -e "s/^Provides: *//p" $i) 114 provides=$(sed -n -e "s/^Provides: *//p" $i)
115 conflicts=$(sed -n -e "s/^Conflicts: *//p" $i) 115 conflicts=$(sed -n -e "s/^Conflicts: *//p" $i)
116 license=$(sed -n -e "s/^License: *//p" $i) 116 license=$(sed -n -e "s/^License: *//p" $i)
117 summary=$(sed -n -e "s/^Description: *//p" $i) 117 summary=$(sed -n -e "s/^Description: *//p" $i)
118 package=${packagename}_${version}_$ARCH 118 package=${packagename}_${version}_$ARCH
119 ERROR= 119 ERROR=
120 if [ -z "$files" ] 120 if [ -z "$files" ]
121 then 121 then
122 mkdir -p $DATADIR/usr/share/doc/$packagename 122 mkdir -p $DATADIR/usr/share/doc/$packagename
123 else 123 else
124 for f in $files 124 for f in $files
125 do 125 do
126 if [ -d $f ] 126 if [ -d $f ]
127 then 127 then
128 ffiles=$(find $f -type f -o -type b -o -type c -o -type l) 128 ffiles=$(find $f -type f -o -type b -o -type c -o -type l)
129 else 129 else
130 ffiles=$f 130 ffiles=$f
131 fi 131 fi
132 for ff in $ffiles 132 for ff in $ffiles
133 do 133 do
134 case $ff in 134 case $ff in
135 */CVS/*) 135 */CVS/*)
136 continue 136 continue
137 ;;*~) 137 ;;*~)
138 continue 138 continue
139 ;;*.control) 139 ;;*.control)
140 continue 140 continue
141 ;; $QTDIR/*) 141 ;; $QTDIR/*)
142 BASE=$(dirname /opt/QtPalmtop/${ff#$QTDIR/}) 142 BASE=$(dirname /opt/QtPalmtop/${ff#$QTDIR/})
143 ;; etc/*.d/*) 143 ;; etc/*.d/*)
144 BASE=$(dirname /$ff) 144 BASE=$(dirname /$ff)
145 ;; root/*) 145 ;; root/*)
146 BASE=$(dirname ${ff#root}) 146 BASE=$(dirname ${ff#root})
147 ;; lib/*) 147 ;; lib/*)
148 BASE=$(dirname /opt/QtPalmtop/$ff) 148 BASE=$(dirname /opt/QtPalmtop/$ff)
149 ;; $OPIEDIR/lib/*) 149 ;; $OPIEDIR/lib/*)
150 BASE=$(dirname /opt/QtPalmtop/${ff#$OPIEDIR/}) 150 BASE=$(dirname /opt/QtPalmtop/${ff#$OPIEDIR/})
151 ;; *) 151 ;; *)
152 # For SHARP ROM compatibility. Should change to Qtopia. 152 # For SHARP ROM compatibility. Should change to Qtopia.
153 BASE=/opt/QtPalmtop/$(dirname $ff) 153 BASE=/opt/QtPalmtop/$(dirname $ff)
154 esac 154 esac
155 155
156 if [ -f $ff -o -b $ff -o -c $ff ] 156 if [ -f $ff -o -b $ff -o -c $ff ]
157 then 157 then
158 D=$DATADIR$BASE 158 D=$DATADIR$BASE
159 if [ -x $ff -a -n "$STRIP" ] 159 if [ -x $ff -a -n "$STRIP" ]
160 then 160 then
161 case $(file $ff) in 161 case $(file $ff) in
162 $STRIP_FILES) 162 $STRIP_FILES)
163 $STRIP $ff 163 $STRIP $ff
164 ;; *) 164 ;; *)
165 esac 165 esac
166 fi 166 fi
167 if [ -n "$RPM" ] 167 if [ -n "$RPM" ]
168 then 168 then
169 case "$ff" in 169 case "$ff" in
170 /*) RPMFILES="$RPMFILES $ff" 170 /*) RPMFILES="$RPMFILES $ff"
171 ;; *) RPMFILES="$RPMFILES $OPIEDIR/$ff" 171 ;; *) RPMFILES="$RPMFILES $OPIEDIR/$ff"
172 esac 172 esac
173 else 173 else
174 mkdir -p $D 174 mkdir -p $D
175 if cp -a $ff $D 175 if cp -a $ff $D
176 then 176 then
177 true 177 true
178 else 178 else
179 ERROR=1 179 ERROR=1
180 fi 180 fi
181 fi 181 fi
182 else 182 else
183 echo >&2 "$0: $i: No such file: $ff" 183 echo >&2 "$0: $i: No such file: $ff"
184 ERROR=1 184 ERROR=1
185 fi 185 fi
186 done 186 done
187 done 187 done
188 fi 188 fi
189 if [ -z "$ERROR" ] 189 if [ -z "$ERROR" ]
190 then 190 then
191 if [ -n "$RPM" ] 191 if [ -n "$RPM" ]
192 then 192 then
193 SPEC=/tmp/mkipks-rpm-$$.spec 193 SPEC=/tmp/mkipks-rpm-$$.spec
194 echo >$SPEC "Summary: $summary" 194 echo >$SPEC "Summary: $summary"
195 echo >>$SPEC "Name: $packagename" 195 echo >>$SPEC "Name: $packagename"
196 echo >>$SPEC "Group: $section" ########## 196 echo >>$SPEC "Group: $section" ##########
197 echo >>$SPEC "License: $license" 197 echo >>$SPEC "License: $license"
198 echo >>$SPEC "Version: ${version%-*}" 198 echo >>$SPEC "Version: ${version%-*}"
199 echo >>$SPEC "Release: ${version#*-}" 199 echo >>$SPEC "Release: ${version#*-}"
200 200
201 echo >>$SPEC "%description" 201 echo >>$SPEC "%description"
202 sed -n -e '/^Description:/,$ p' $i | tail +2 >>$SPEC 202 sed -n -e '/^Description:/,$ p' $i | tail +2 >>$SPEC
203 echo >>$SPEC "%files" 203 echo >>$SPEC "%files"
204 echo >>$SPEC "%defattr(-,root,root)" 204 echo >>$SPEC "%defattr(-,root,root)"
205 /bin/ls $RPMFILES >>$SPEC 205 /bin/ls $RPMFILES >>$SPEC
206 rpm -bb --target $ARCH-unknown-linux $SPEC 206 rpm -bb --target $ARCH-unknown-linux $SPEC
207 # rm $SPEC 207 # rm $SPEC
208 elif [ -z "$IMAGEDIR" ] 208 elif [ -z "$IMAGEDIR" ]
209 then 209 then
210 #size=$(du -h -s $DATADIR | sed -e 's/[ ].*//') 210 #size=$(du -h -s $DATADIR | sed -e 's/[ ].*//')
211 if (which mkfs.jffs2 >/dev/null 2>&1); then 211 if (which mkfs.jffs2 >/dev/null 2>&1); then
212 size=$(mkfs.jffs2 -r $DATADIR | wc -c) 212 size=$(mkfs.jffs2 -r $DATADIR | wc -c)
213 fi 213 fi
214 echo "Package: $packagename" >$CTRLDIR/control 214 if ! (cat $f|grep -q ^Package); then
215 echo "Package: $packagename" >$CTRLDIR/control
216 else
217 cat $f|grep ^Package >$CTRLDIR/control
218 fi
215 if [ ! -z "$size" ]; then 219 if [ ! -z "$size" ]; then
216 echo "Installed-Size: $size" >>$CTRLDIR/control 220 echo "Installed-Size: $size" >>$CTRLDIR/control
217 else 221 else
218 if [ -z "$SIZEWARNED" ] 222 if [ -z "$SIZEWARNED" ]
219 then 223 then
220 echo "Warning, no mkfs.jffs2 found, unable to set Installed-Size." 224 echo "Warning, no mkfs.jffs2 found, unable to set Installed-Size."
221 SIZEWARNED=1 225 SIZEWARNED=1
222 fi 226 fi
223 fi 227 fi
224 echo "Architecture: $ARCH" >>$CTRLDIR/control 228 echo "Architecture: $ARCH" >>$CTRLDIR/control
225 echo "Version: $version" >>$CTRLDIR/control 229 echo "Version: $version" >>$CTRLDIR/control
226 [ ! -z "$depends" ] && echo "Depends: $depends" >>$CTRLDIR/control 230 [ ! -z "$depends" ] && echo "Depends: $depends" >>$CTRLDIR/control
227 [ ! -z "$provides" ] && echo "Provides: $provides" >>$CTRLDIR/control 231 [ ! -z "$provides" ] && echo "Provides: $provides" >>$CTRLDIR/control
228 [ ! -z "$conflicts" ] && echo "Conflicts: $conflicts" >>$CTRLDIR/control 232 [ ! -z "$conflicts" ] && echo "Conflicts: $conflicts" >>$CTRLDIR/control
229 egrep -v "^(Files|Version|Depends|Provides|Conflicts|Architecture):" >>$CTRLDIR/control $i 233 egrep -v "^(Files|Version|Depends|Provides|Conflicts|Architecture):" >>$CTRLDIR/control $i
230 [ -n "$classicopts" ] && echo "$DEB_VERSION" >$TDIR/debian-binary 234 [ -n "$classicopts" ] && echo "$DEB_VERSION" >$TDIR/debian-binary
231 base=${i%.control} 235 base=${i%.control}
232 scripts="preinst postinst prerm postrm" 236 scripts="preinst postinst prerm postrm"
233 for pf in $scripts 237 for pf in $scripts
234 do 238 do
235 if [ -e ${base}.$pf ] 239 if [ -e ${base}.$pf ]
236 then 240 then
237 cp ${base}.$pf $CTRLDIR/$pf 241 cp ${base}.$pf $CTRLDIR/$pf
238 chmod 755 $CTRLDIR/$pf 242 chmod 755 $CTRLDIR/$pf
239 fi 243 fi
240 done 244 done
241 cd $ORIGDIR; $OPIEDIR/scripts/ipkg-build $classicopts -o root -g root $TDIR; cd $OPIEDIR; 245 cd $ORIGDIR; $OPIEDIR/scripts/ipkg-build $classicopts -o root -g root $TDIR; cd $OPIEDIR;
242 RESULT=$package.ipk 246 RESULT=$package.ipk
243 if [ -n "$VERB" ] 247 if [ -n "$VERB" ]
244 then 248 then
245 echo >&2 "Built $RESULT ($size)" 249 echo >&2 "Built $RESULT ($size)"
246 fi 250 fi
247 if [ -n "$LIST" ] 251 if [ -n "$LIST" ]
248 then 252 then
249 echo $RESULT 253 echo $RESULT
250 fi 254 fi
251 fi 255 fi
252 else 256 else
253 echo >&2 "Not building $package package" 257 echo >&2 "Not building $package package"
254 fi 258 fi
255done 259done
256# clean up 260# clean up
257rm -rf $TDIR 261rm -rf $TDIR