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