summaryrefslogtreecommitdiff
path: root/mkipks
Unidiff
Diffstat (limited to 'mkipks') (more/less context) (ignore whitespace changes)
-rwxr-xr-xmkipks35
1 files changed, 18 insertions, 17 deletions
diff --git a/mkipks b/mkipks
index 21b903c..26c72b9 100755
--- a/mkipks
+++ b/mkipks
@@ -9,50 +9,50 @@ rm -f etc/rc2.d/S98opie
9ln -s ../init.d/opie etc/rc2.d/S98opie 9ln -s ../init.d/opie etc/rc2.d/S98opie
10 10
11rm -f ipaq/etc/rc2.d/S96opieatd 11rm -f ipaq/etc/rc2.d/S96opieatd
12ln -s ../init.d/opieatd ipaq/etc/rc2.d/S96opieatd 12ln -s ../init.d/opieatd ipaq/etc/rc2.d/S96opieatd
13 13
14VERSION_MAJ=$(sed -n -e 's/.*QPE_VERSION "\([0-9]*\)\..*\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h) 14VERSION_MAJ=$(sed -n -e 's/.*QPE_VERSION "\([0-9]*\)\..*\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h)
15VERSION_MIN=$(sed -n -e 's/.*QPE_VERSION ".*\.\([0-9]*\)\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h) 15VERSION_MIN=$(sed -n -e 's/.*QPE_VERSION ".*\.\([0-9]*\)\..*".*/\1/p' <$OPIEDIR/include/qpe/version.h)
16VERSION_PAT=$(sed -n -e 's/.*QPE_VERSION ".*\..*\.\([0-9]*\).*/\1/p' <$OPIEDIR/include/qpe/version.h) 16VERSION_PAT=$(sed -n -e 's/.*QPE_VERSION ".*\..*\.\([0-9]*\).*/\1/p' <$OPIEDIR/include/qpe/version.h)
17SUB_VERSION=$(sed -n -e 's,.*SUB_VERSION \"\(.*\)\".*,\1,p' <$OPIEDIR/include/qpe/version.h) 17SUB_VERSION=$(sed -n -e 's,.*SUB_VERSION \"\(.*\)\".*,\1,p' <$OPIEDIR/include/qpe/version.h)
18if grep -q 'QPE_VERSION .*snapshot' $OPIEDIR/include/qpe/version.h 18if grep -q 'QPE_VERSION .*snapshot' $OPIEDIR/include/qpe/version.h
19then 19then
20 VERSION_CVS="$(date +%Y%m%d)" 20 VERSION_CVS="$(date +%Y%m%d)"
21 SUB_VERSION=$VERSION_CVS 21 SUB_VERSION=$VERSION_CVS
22else 22else
23 VERSION_CVS="" 23 VERSION_CVS=""
24fi 24fi
25 25
26QPE_VERSION=$VERSION_MAJ.$VERSION_MIN.$VERSION_PAT 26QPE_VERSION=$VERSION_MAJ.$VERSION_MIN.$VERSION_PAT
27 27
28ARCH=arm 28ARCH=arm
29STRIP=arm-linux-strip 29STRIP=arm-linux-strip
30STRIP_FILES="*ARM*not stripped" 30STRIP_FILES="*ARM*not stripped"
31 31
32TDIR=/tmp/ipk$$ 32TDIR=/tmp/ipk$$
33DATADIR=$TDIR/data 33DATADIR=$TDIR
34CTRLDIR=$TDIR/control 34CTRLDIR=$TDIR/CONTROL
35 35
36IMAGEDIR= 36IMAGEDIR=
37VERB= 37VERB=
38LIST= 38LIST=
39RPM= 39RPM=
40 40
41while [ $# -ne 0 ] 41while [ $# -ne 0 ]
42do 42do
43 case "$1" in 43 case "$1" in
44 -v) 44 -v)
45 VERB=1 45 VERB=1
46 echo >&2 "Packaging for version $VERSION_MAJ.$VERSION_MIN.$VERSION_PAT$VERSION_CVS" 46 echo >&2 "Packaging for version $VERSION_MAJ.$VERSION_MIN.$VERSION_PAT$VERSION_CVS"
47 ;; -l) 47 ;; -l)
48 LIST=1 48 LIST=1
49 ;; -i) 49 ;; -i)
50 shift 50 shift
51 IMAGEDIR=$1 51 IMAGEDIR=$1
52 DATADIR=$IMAGEDIR 52 DATADIR=$IMAGEDIR
53 mkdir -p $IMAGEDIR 53 mkdir -p $IMAGEDIR
54 ;; -rpm) 54 ;; -rpm)
55 if [ "$OPIEDIR" != "/opt/Qtopia" ] 55 if [ "$OPIEDIR" != "/opt/Qtopia" ]
56 then 56 then
57 echo >&2 '$OPIEDIR is not the standard /usr/Qtopia directory.' 57 echo >&2 '$OPIEDIR is not the standard /usr/Qtopia directory.'
58 sleep 1 58 sleep 1
@@ -166,66 +166,67 @@ do
166 done 166 done
167 fi 167 fi
168 if [ -z "$ERROR" ] 168 if [ -z "$ERROR" ]
169 then 169 then
170 if [ -n "$RPM" ] 170 if [ -n "$RPM" ]
171 then 171 then
172 SPEC=/tmp/mkipks-rpm-$$.spec 172 SPEC=/tmp/mkipks-rpm-$$.spec
173 echo >$SPEC "Summary: $summary" 173 echo >$SPEC "Summary: $summary"
174 echo >>$SPEC "Name: $packagename" 174 echo >>$SPEC "Name: $packagename"
175 echo >>$SPEC "Group: $section" ########## 175 echo >>$SPEC "Group: $section" ##########
176 echo >>$SPEC "License: $license" 176 echo >>$SPEC "License: $license"
177 echo >>$SPEC "Version: ${version%-*}" 177 echo >>$SPEC "Version: ${version%-*}"
178 echo >>$SPEC "Release: ${version#*-}" 178 echo >>$SPEC "Release: ${version#*-}"
179 179
180 echo >>$SPEC "%description" 180 echo >>$SPEC "%description"
181 sed -n -e '/^Description:/,$ p' $i | tail +2 >>$SPEC 181 sed -n -e '/^Description:/,$ p' $i | tail +2 >>$SPEC
182 echo >>$SPEC "%files" 182 echo >>$SPEC "%files"
183 echo >>$SPEC "%defattr(-,root,root)" 183 echo >>$SPEC "%defattr(-,root,root)"
184 /bin/ls $RPMFILES >>$SPEC 184 /bin/ls $RPMFILES >>$SPEC
185 rpm -bb --target $ARCH-unknown-linux $SPEC 185 rpm -bb --target $ARCH-unknown-linux $SPEC
186 # rm $SPEC 186 # rm $SPEC
187 elif [ -z "$IMAGEDIR" ] 187 elif [ -z "$IMAGEDIR" ]
188 then 188 then
189 #size=$(du -h -s $DATADIR | sed -e 's/[ ].*//') 189 #size=$(du -h -s $DATADIR | sed -e 's/[ ].*//')
190 size=$(mkfs.jffs2 -r $DATADIR | wc -c) 190 if (which mkfs.jffs2 >/dev/null 2>&1); then
191 size=$(mkfs.jffs2 -r $DATADIR | wc -c)
192 fi
191 echo "Package: $packagename" >$CTRLDIR/control 193 echo "Package: $packagename" >$CTRLDIR/control
194 if [ ! -z "$size" ]; then
192 echo "Installed-Size: $size" >>$CTRLDIR/control 195 echo "Installed-Size: $size" >>$CTRLDIR/control
196 else
197 echo "Warning, no mkfs.jffs2 found, unable to set Installed-Size."
198 fi
199 echo "Architecture: $ARCH" >>$CTRLDIR/control
193 echo "Filename: ./$package.ipk" >>$CTRLDIR/control 200 echo "Filename: ./$package.ipk" >>$CTRLDIR/control
194 echo "Version: $version" >>$CTRLDIR/control 201 echo "Version: $version" >>$CTRLDIR/control
195 echo "Depends: $depends" >>$CTRLDIR/control 202 [ ! -z "$depends" ] && echo "Depends: $depends" >>$CTRLDIR/control
196 echo "Provides: $provides" >>$CTRLDIR/control 203 [ ! -z "$provides" ] && echo "Provides: $provides" >>$CTRLDIR/control
197 echo "Conflicts: $conflicts" >>$CTRLDIR/control 204 [ ! -z "$conflicts" ] && echo "Conflicts: $conflicts" >>$CTRLDIR/control
198 egrep -v "^(Files|Version|Depends|Provides|Conflicts):" >>$CTRLDIR/control $i 205 egrep -v "^(Files|Version|Depends|Provides|Conflicts|Architecture):" >>$CTRLDIR/control $i
199 echo "$DEB_VERSION" >$TDIR/debian-binary 206 # echo "$DEB_VERSION" >$TDIR/debian-binary
200 base=${i%.control} 207 base=${i%.control}
201 scripts="preinst postinst prerm postrm" 208 scripts="preinst postinst prerm postrm"
202 for pf in $scripts 209 for pf in $scripts
203 do 210 do
204 if [ -x ${base}.$pf ] 211 if [ -x ${base}.$pf ]
205 then 212 then
206 cp ${base}.$pf $CTRLDIR/$pf 213 cp ${base}.$pf $CTRLDIR/$pf
207 fi 214 fi
208 done 215 done
209 if [ "$UID" = 0 ] 216 $OPIEDIR/scripts/ipkg-build -o root -g root $TDIR
210 then
211 chown -R root.root $TDIR
212 else
213 echo "Warning: You are not root. Unable to squash permissions."
214 fi
215 ( cd $CTRLDIR; tar cfz ../control.tar.gz ./*; )
216 ( cd $DATADIR; tar cfz ../data.tar.gz ./*; )
217 ( cd $TDIR; rm -rf control data; tar cf - ./debian-binary ./control.tar.gz ./data.tar.gz; ) | gzip >$RDIR/$package.ipk
218 RESULT=$package.ipk 217 RESULT=$package.ipk
219 if [ -n "$VERB" ] 218 if [ -n "$VERB" ]
220 then 219 then
221 echo >&2 "Built $RESULT ($size)" 220 echo >&2 "Built $RESULT ($size)"
222 fi 221 fi
223 if [ -n "$LIST" ] 222 if [ -n "$LIST" ]
224 then 223 then
225 echo $RESULT 224 echo $RESULT
226 fi 225 fi
227 fi 226 fi
228 else 227 else
229 echo >&2 "Not building $package package" 228 echo >&2 "Not building $package package"
230 fi 229 fi
231done 230done
231# clean up
232rm -rf $TDIR