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