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