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