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