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