summaryrefslogtreecommitdiff
path: root/mkipks
Unidiff
Diffstat (limited to 'mkipks') (more/less context) (ignore whitespace changes)
-rwxr-xr-xmkipks30
1 files changed, 28 insertions, 2 deletions
diff --git a/mkipks b/mkipks
index 78498f8..29db5c0 100755
--- a/mkipks
+++ b/mkipks
@@ -54,12 +54,14 @@ do
54 LIST=1 54 LIST=1
55 ;; -i) 55 ;; -i)
56 shift 56 shift
57 IMAGEDIR=$1 57 IMAGEDIR=$1
58 DATADIR=$IMAGEDIR 58 DATADIR=$IMAGEDIR
59 mkdir -p $IMAGEDIR 59 mkdir -p $IMAGEDIR
60 ;; -classic)
61 CLASSIC=1
60 ;; -rpm) 62 ;; -rpm)
61 if [ "$OPIEDIR" != "/opt/Qtopia" ] 63 if [ "$OPIEDIR" != "/opt/Qtopia" ]
62 then 64 then
63 echo >&2 '$OPIEDIR is not the standard /usr/Qtopia directory.' 65 echo >&2 '$OPIEDIR is not the standard /usr/Qtopia directory.'
64 sleep 1 66 sleep 1
65 #exit 1 67 #exit 1
@@ -75,12 +77,17 @@ do
75 ;; *) 77 ;; *)
76 FILES="$FILES $PWD/$1" 78 FILES="$FILES $PWD/$1"
77 esac 79 esac
78 shift 80 shift
79done 81done
80 82
83if [ -n "$CLASSIC" ]
84then
85 DATADIR=$TDIR/data
86 CTRLDIR=$TDIR/control
87fi
81 88
82if [ -z "$FILES" ] 89if [ -z "$FILES" ]
83then 90then
84 FILES=`find $OPIEDIR -name "*.control" -print` 91 FILES=`find $OPIEDIR -name "*.control" -print`
85fi 92fi
86 93
@@ -197,32 +204,51 @@ do
197 size=$(mkfs.jffs2 -r $DATADIR | wc -c) 204 size=$(mkfs.jffs2 -r $DATADIR | wc -c)
198 fi 205 fi
199 echo "Package: $packagename" >$CTRLDIR/control 206 echo "Package: $packagename" >$CTRLDIR/control
200 if [ ! -z "$size" ]; then 207 if [ ! -z "$size" ]; then
201 echo "Installed-Size: $size" >>$CTRLDIR/control 208 echo "Installed-Size: $size" >>$CTRLDIR/control
202 else 209 else
210 if [ -z "$SIZEWARNED" ]
211 then
203 echo "Warning, no mkfs.jffs2 found, unable to set Installed-Size." 212 echo "Warning, no mkfs.jffs2 found, unable to set Installed-Size."
213 SIZEWARNED=1
214 fi
204 fi 215 fi
205 echo "Architecture: $ARCH" >>$CTRLDIR/control 216 echo "Architecture: $ARCH" >>$CTRLDIR/control
206 echo "Filename: ./$package.ipk" >>$CTRLDIR/control 217 echo "Filename: ./$package.ipk" >>$CTRLDIR/control
207 echo "Version: $version" >>$CTRLDIR/control 218 echo "Version: $version" >>$CTRLDIR/control
208 [ ! -z "$depends" ] && echo "Depends: $depends" >>$CTRLDIR/control 219 [ ! -z "$depends" ] && echo "Depends: $depends" >>$CTRLDIR/control
209 [ ! -z "$provides" ] && echo "Provides: $provides" >>$CTRLDIR/control 220 [ ! -z "$provides" ] && echo "Provides: $provides" >>$CTRLDIR/control
210 [ ! -z "$conflicts" ] && echo "Conflicts: $conflicts" >>$CTRLDIR/control 221 [ ! -z "$conflicts" ] && echo "Conflicts: $conflicts" >>$CTRLDIR/control
211 egrep -v "^(Files|Version|Depends|Provides|Conflicts|Architecture):" >>$CTRLDIR/control $i 222 egrep -v "^(Files|Version|Depends|Provides|Conflicts|Architecture):" >>$CTRLDIR/control $i
212 # echo "$DEB_VERSION" >$TDIR/debian-binary 223 [ -n "$CLASSIC" ] && echo "$DEB_VERSION" >$TDIR/debian-binary
213 base=${i%.control} 224 base=${i%.control}
214 scripts="preinst postinst prerm postrm" 225 scripts="preinst postinst prerm postrm"
215 for pf in $scripts 226 for pf in $scripts
216 do 227 do
217 if [ -x ${base}.$pf ] 228 if [ -x ${base}.$pf ]
218 then 229 then
219 cp ${base}.$pf $CTRLDIR/$pf 230 cp ${base}.$pf $CTRLDIR/$pf
220 fi 231 fi
221 done 232 done
222 $OPIEDIR/scripts/ipkg-build -o root -g root $TDIR 233 if [ -z "$CLASSIC" ]
234 then
235 $OPIEDIR/scripts/ipkg-build -o root -g root $TDIR
236 else
237 if [ "`id -u`" != "0" ]
238 then
239 if [ -z "$ROOTWARNED" ]
240 then
241 echo Warning. You are not root. Please become root or use fakeroot.
242 ROOTWARNED=1
243 fi
244 fi
245 ( cd $DATADIR && tar -czf $TDIR/data.tar.gz * )
246 ( cd $CTRLDIR && tar -czf $TDIR/control.tar.gz * )
247 ( cd $TDIR && tar -czf $OPIEDIR/$package.ipk ./control.tar.gz ./data.tar.gz ./debian-binary )
248 fi
223 RESULT=$package.ipk 249 RESULT=$package.ipk
224 if [ -n "$VERB" ] 250 if [ -n "$VERB" ]
225 then 251 then
226 echo >&2 "Built $RESULT ($size)" 252 echo >&2 "Built $RESULT ($size)"
227 fi 253 fi
228 if [ -n "$LIST" ] 254 if [ -n "$LIST" ]