update buildroot - work in progress development
[cmdllinux.git] / buildroot / _buildroot / scripts / targz_packages0100
blob892e2f5469b6ec2d6e35a72d30189ddd944574c2
1 #! /bin/sh
3 #/bin/_add_linefeed.sh
4 #_mkcpio
5 #_strip
6 #/run/... may be needed to add (pkg@run.cpio)
7 #_scripts/pkg.ver may be needed to add
9 CREATEDIRS="\
10 etc/pam.d \
11 etc/profile.d \
12 etc/init.d \
13 etc \
14 bin \
15 sbin \
16 lib \
17 usr/share/doc \
18 usr/share/man \
19 usr/share/info \
20 usr/share \
21 usr/bin \
22 usr/sbin \
23 usr/lib \
24 usr/include \
25 usr \
26 var/cache \
27 var/lib \
28 var/log \
29 var/spool \
30 var \
33 PKG=$3
35 ###overwrite
36 [ "$PKG" = "gcc-tgt" ] && PKG=gcc
37 [ "$PKG" = "glibc-tgt" ] && PKG=glibc
38 ###overwrite
40 DONTINSTALL=" skeleton toolchain toolchain-external toolchain-external-custom initscripts jpeg busybox coreutils "
41 DONTINSTALL2=" getent jpeg toolchain-external toolchain-external-custom "
42 SKIPGROUP=" input "
44 echo "$DONTINSTALL2" | grep -q " $PKG " && exit 0
46 DIRSCRIPT=$(cd $(dirname "$0") && pwd -P)
47 echo "***********"
48 pwd -P
49 echo "***********"
51 DESTROOT=output/target
52 BUILDROOT=output/build
53 PKGDEST=/dest
54 retval=0
55 echo "###### PKG_SCRIPT $PKG $(cat $BUILDROOT/build-sysinit.log) $1 $2"
57 if [ "$1" = "start" ] && [ "$2" = "install-target" -o "$2" = "install-staging" ]; then
59 [ -e $BUILDROOT/inst_start.log ] && exit 0
60 touch $BUILDROOT/inst_start.log
62 rm -f _scripts/$PKG.scr
64 rm -rf $DESTROOT/*
66 for i in $CREATEDIRS; do
67 mkdir -p $DESTROOT/$i
68 done
69 ln -sf share/doc $DESTROOT/usr/doc
70 ln -sf share/man $DESTROOT/usr/man
71 ln -sf share/info $DESTROOT/usr/info
72 ln -sf lib $DESTROOT/usr/lib64
73 ln -sf lib $DESTROOT/lib64
75 [ -e _scripts/$PKG.inst_start.sh ] && source _scripts/$PKG.inst_start.sh
78 if [ "$1" = "end" ] && [ "$2" = "install-target" ]; then
79 source $BUILDROOT/.package_source
80 #NAME
81 #VERSION
82 #SOURCE_DIR
84 ###overwrite
85 [ "$PKG" = "glibc" ] && NAME="glibc"
86 [ "$PKG" = "gcc" ] && NAME="gcc"
87 ###overwrite
89 ###overwrite
90 [ ! -e _scripts/$PKG.rev ] && echo 1 > _scripts/$PKG.rev
91 ###overwrite
93 REV=`cat _scripts/$PKG.rev`
94 [ -e _scripts/$PKG.ver ] && VERSION=`cat _scripts/$PKG.ver`
97 if [ -e $DESTROOT/var/lock ]; then
98 mkdir -p $DESTROOT/run/lock
99 LSFILE=`find $DESTROOT/var/lock -mindepth 1 -maxdepth 1 -print -quit`
100 [ ! -z "$LSFILE" ] && mv $DESTROOT/var/lock/* $DESTROOT/run/lock
101 rmdir $DESTROOT/var/lock
103 LSFILE=
105 if [ -e $DESTROOT/run ]; then
106 mkdir -p $DESTROOT/var/run
107 LSFILE=`find $DESTROOT/run -mindepth 1 -maxdepth 1 -print -quit`
108 [ ! -z "$LSFILE" ] && mv $DESTROOT/run/* $DESTROOT/var/run
109 rmdir $DESTROOT/run
111 LSFILE=
113 if [ -e $DESTROOT/var/run ]; then
114 echo "###### PKG_SCRIPT $PKG /var/run"
115 if ! rmdir $DESTROOT/var/run 2> /dev/null; then
116 (ODIR=`pwd`; cd $DESTROOT/var/run && _mkcpio $ODIR/_scripts/$PKG@run.cpio)
117 rm -rf $DESTROOT/var/run 2> /dev/null
118 if [ ! -e _scripts/$PKG.inst_end.sh ]; then
119 echo 'rm -rf $DESTROOT/var/run 2> /dev/null' > _scripts/$PKG.inst_end.sh
120 else
121 sh /bin/_add_linefeed.sh _scripts/$PKG.inst_end.sh
122 ! grep -qFx 'rm -rf $DESTROOT/var/run 2> /dev/null' _scripts/$PKG.inst_end.sh && \
123 echo 'rm -rf $DESTROOT/var/run 2> /dev/null' >> _scripts/$PKG.inst_end.sh
129 if [ -e $DESTROOT/usr/lib/perl5 ]; then
130 if [ -e _scripts/perl.ver ]; then
131 PERL=`cat _scripts/perl.ver`
132 rm -f $DESTROOT/usr/lib/perl5/$PERL/x86_64-linux/perllocal.pod
133 find $DESTROOT/usr/lib/perl5/site_perl/$PERL/x86_64-linux/auto -name ".packlist" -type f | \
134 xargs sed -i -n '/^\/usr\//p'
138 TEXINFO=`find $DESTROOT/usr/share/info -name "*.info*" -print -quit`
139 if [ -n "$TEXINFO" ]; then
140 OPWD=`pwd`
141 cd $DESTROOT/usr/share/info
142 TI_FILES=`ls *.info*`
143 OIFS=$IFS
144 IFS=$'\n'
145 for i in $TI_FILES; do
146 [ -z "$TI_VAR" ] && TI_VAR="'$i'" || TI_VAR="$TI_VAR '$i'"
147 done
148 IFS=$OIFS
149 cd "$OPWD"
150 echo "#INC#texinfo" >> _scripts/$PKG.scr
151 echo "#VAR#filelist=($TI_VAR)" >> _scripts/$PKG.scr
155 rm -f $DESTROOT/usr/share/info/dir
156 rm -f $DESTROOT/tools/share/info/dir
158 rm $DESTROOT/usr/doc
159 rm $DESTROOT/usr/man
160 rm $DESTROOT/usr/info
161 rm $DESTROOT/usr/lib64
162 rm $DESTROOT/lib64
163 for i in $CREATEDIRS; do
164 rmdir $DESTROOT/$i 2> /dev/null
165 done
167 [ -e _scripts/$PKG.inst_end.sh ] && source _scripts/$PKG.inst_end.sh
170 mkdir -p $DESTROOT/var/lib/instpkg/local
171 mkdir -p $DESTROOT/var/lib/instpkg/local/$PKG-$VERSION-$REV
172 mkdir -p $DESTROOT/var/lib/instpkg/local/.local
173 ln -sf ../$PKG-$VERSION-$REV $DESTROOT/var/lib/instpkg/local/.local/$PKG
174 SIZE=`du -sk $DESTROOT | grep -o "^[0-9]\+"`
175 echo -ne "NAME=$NAME\nVERSION=$VERSION\nREV=$REV\nDESC=\"\"\nSIZE=$SIZE\n" > $DESTROOT/var/lib/instpkg/local/$PKG-$VERSION-$REV/info
177 ###overwrite
178 [ ! -e _scripts/$PKG.deps ] && touch _scripts/$PKG.deps
179 ###overwrite
181 sort -u _scripts/$PKG.deps > $DESTROOT/var/lib/instpkg/local/$PKG-$VERSION-$REV/depends
182 cat $DESTROOT/var/lib/instpkg/local/$PKG-$VERSION-$REV/depends | tr '\n' ' ' | \
183 sed 's% $%%' > $DESTROOT/var/lib/instpkg/local/$PKG-$VERSION-$REV/depend@
184 GRP=`grep "package.*/$PKG/Config.in" package/_pkgs.group@@@@ | cut -d " " -f 1-2`
186 ###overwrite
187 [ "$PKG" = "busybox" ] && GRP="base system"
188 [ "$PKG" = "glibc" ] && GRP="base development"
189 [ "$PKG" = "gcc" ] && GRP="base development"
190 ###overwrite
191 [ -z "$GRP" ] && GRP="unknown other"
193 echo "$GRP" > $DESTROOT/var/lib/instpkg/local/$PKG-$VERSION-$REV/groups
196 F_PASSWD="$BUILDROOT/tmp_passwd"
197 F_GROUP="$BUILDROOT/tmp_group"
199 if [ -e _scripts/$PKG.users ]; then
200 cat _scripts/$PKG.users | \
201 while read username uid group gid passwd home shell groups comment; do
202 if [ "$group" != "-" ]; then
203 GRPID=`grep "^${group}:" "$F_GROUP" | cut -d : -f 3`
204 if [ -z "$GRPID" ]; then
205 echo "**Group not found: ${group}**"
206 else
207 if ! echo "$processed" | grep -q "^${group}$"; then
208 if ! echo "$SKIPGROUP" | grep -q " $group "; then
209 echo "#PRI#addgroup -g $GRPID $group 2> /dev/null" >> _scripts/$PKG.scr
210 echo "#POR#delgroup $group 2> /dev/null" >> _scripts/$PKG.scr
212 [ -z "$processed" ] && processed="$group" || processed=`echo -ne "$processed\n$group"`
216 if [ "$groups" != "-" ]; then
217 OIFS=$IFS
218 IFS=$','
219 for i in $groups; do
220 GRPID=`grep "^${i}:" "$F_GROUP" | cut -d : -f 3`
221 if [ -z "$GRPID" ]; then
222 echo "**Group not found: ${i}**"
223 else
224 if ! echo "$processed" | grep -q "^${i}$"; then
225 if ! echo "$SKIPGROUP" | grep -q " $i "; then
226 echo "#PRI#addgroup -g $GRPID $i 2> /dev/null" >> _scripts/$PKG.scr
227 echo "#POR#delgroup $i 2> /dev/null" >> _scripts/$PKG.scr
229 [ -z "$processed" ] && processed="$i" || processed=`echo -ne "$processed\n$i"`
232 done
233 IFS=$OIFS
235 done
236 cat _scripts/$PKG.users | \
237 while read username uid group gid passwd home shell groups comment; do
238 [ "$shell" != "-" ] && SHELL="-s $shell" || SHELL=
239 [ "$home" != "-" ] && HHOME="-h $home" || HHOME=
240 [ "$group" != "-" ] && GROUP="-G $group" || GROUP=
241 [ "$comment" != "-" -a ! -z "$comment" ] && COMMENT="-g '$comment'" || COMMENT=
242 if [ "$username" != "-" ]; then
243 USRID=`grep "^${username}:" "$F_PASSWD" | cut -d : -f 3`
244 if [ -z "$USRID" ]; then
245 echo "**User not found: ${username}**"
246 else
247 echo "#PRI#adduser $HHOME $COMMENT $GROUP $SHELL -D -H -u $USRID $username 2> /dev/null" >> _scripts/$PKG.scr
248 echo "#POR#deluser $username 2> /dev/null" >> _scripts/$PKG.scr
249 if [ "$groups" != "-" ]; then
250 OIFS=$IFS
251 IFS=$','
252 for i in $groups; do
253 echo "#PRI#adduser $username $i 2> /dev/null" >> _scripts/$PKG.scr
254 echo "#POR#delgroup $username $i 2> /dev/null" >> _scripts/$PKG.scr
255 done
256 IFS=$OIFS
260 done
263 if [ -e _scripts/$PKG.scr ]; then
264 echo -n > _scripts/$PKG.install
265 if INC=$(grep "^#INC#" _scripts/$PKG.scr); then
266 OIFS=$IFS
267 IFS=$'\n'
268 for i in $INC; do
269 INCVAL=`echo "$i" | sed 's/^#INC#//'`
270 if [ -e _scripts/scripts/$INCVAL.scr ]; then
271 [ -z "$INCSCR" ] && INCSCR="$INCVAL" || INCSCR=`echo -ne "$INCSCR\n$INCVAL"`
273 done
274 #IFS=$OIFS
276 for i in $INCSCR; do
277 grep "^#VAR#" _scripts/scripts/$i.scr | sed 's/^#VAR#//' >> _scripts/$PKG.install
278 done
280 grep "^#VAR#" _scripts/$PKG.scr | sed 's/^#VAR#//' >> _scripts/$PKG.install
282 echo "post_install() {" >> _scripts/$PKG.install
283 for i in $INCSCR; do
284 grep "^#POI#" _scripts/scripts/$i.scr | sed 's/^#POI#//' >> _scripts/$PKG.install
285 done
286 grep "^#POI#" _scripts/$PKG.scr | sed 's/^#POI#//' >> _scripts/$PKG.install
287 echo "}" >> _scripts/$PKG.install
289 echo "post_upgrade() {" >> _scripts/$PKG.install
290 for i in $INCSCR; do
291 grep "^#POU#" _scripts/scripts/$i.scr | sed 's/^#POU#//' >> _scripts/$PKG.install
292 done
293 grep "^#POU#" _scripts/$PKG.scr | sed 's/^#POU#//' >> _scripts/$PKG.install
294 echo "}" >> _scripts/$PKG.install
296 echo "post_remove() {" >> _scripts/$PKG.install
297 for i in $INCSCR; do
298 grep "^#POR#" _scripts/scripts/$i.scr | sed 's/^#POR#//' >> _scripts/$PKG.install
299 done
300 grep "^#POR#" _scripts/$PKG.scr | sed 's/^#POR#//' >> _scripts/$PKG.install
301 echo "}" >> _scripts/$PKG.install
303 echo "pre_install() {" >> _scripts/$PKG.install
304 for i in $INCSCR; do
305 grep "^#PRI#" _scripts/scripts/$i.scr | sed 's/^#PRI#//' >> _scripts/$PKG.install
306 done
307 grep "^#PRI#" _scripts/$PKG.scr | sed 's/^#PRI#//' >> _scripts/$PKG.install
308 echo "}" >> _scripts/$PKG.install
310 echo "pre_upgrade() {" >> _scripts/$PKG.install
311 for i in $INCSCR; do
312 grep "^#PRU#" _scripts/scripts/$i.scr | sed 's/^#PRU#//' >> _scripts/$PKG.install
313 done
314 grep "^#PRU#" _scripts/$PKG.scr | sed 's/^#PRU#//' >> _scripts/$PKG.install
315 echo "}" >> _scripts/$PKG.install
317 echo "pre_remove() {" >> _scripts/$PKG.install
318 for i in $INCSCR; do
319 grep "^#PRR#" _scripts/scripts/$i.scr | sed 's/^#PRR#//' >> _scripts/$PKG.install
320 done
321 grep "^#PRR#" _scripts/$PKG.scr | sed 's/^#PRR#//' >> _scripts/$PKG.install
322 echo "}" >> _scripts/$PKG.install
324 IFS=$OIFS
325 else
326 grep "^#VAR#" _scripts/$PKG.scr | sed 's/^#VAR#//' >> _scripts/$PKG.install
328 echo "post_install() {" >> _scripts/$PKG.install
329 grep "^#POI#" _scripts/$PKG.scr | sed 's/^#POI#//' >> _scripts/$PKG.install
330 echo "}" >> _scripts/$PKG.install
332 echo "post_upgrade() {" >> _scripts/$PKG.install
333 grep "^#POU#" _scripts/$PKG.scr | sed 's/^#POU#//' >> _scripts/$PKG.install
334 echo "}" >> _scripts/$PKG.install
336 echo "post_remove() {" >> _scripts/$PKG.install
337 grep "^#POR#" _scripts/$PKG.scr | sed 's/^#POR#//' | tac >> _scripts/$PKG.install
338 echo "}" >> _scripts/$PKG.install
340 echo "pre_install() {" >> _scripts/$PKG.install
341 grep "^#PRI#" _scripts/$PKG.scr | sed 's/^#PRI#//' >> _scripts/$PKG.install
342 echo "}" >> _scripts/$PKG.install
344 echo "pre_upgrade() {" >> _scripts/$PKG.install
345 grep "^#PRU#" _scripts/$PKG.scr | sed 's/^#PRU#//' >> _scripts/$PKG.install
346 echo "}" >> _scripts/$PKG.install
348 echo "pre_remove() {" >> _scripts/$PKG.install
349 grep "^#PRR#" _scripts/$PKG.scr | sed 's/^#PRR#//' | tac >> _scripts/$PKG.install
350 echo "}" >> _scripts/$PKG.install
352 anum=0
353 grep -A 1 -n "() {$" _scripts/$PKG.install | grep "^[0-9]\+-}$" | sed "s/-}$//" | \
354 while read num; do
355 sed -i "$(expr $num - $anum)d" _scripts/$PKG.install
356 sed -i "$(expr $num - 1 - $anum)d" _scripts/$PKG.install
357 anum=$(expr $anum + 2)
358 done
361 if [ -e _scripts/${PKG}@run.cpio ]; then
362 mkdir -p $DESTROOT/etc/rundir
363 cp -Rdp _scripts/${PKG}@run.cpio $DESTROOT/etc/rundir
365 [ -d _scripts/files/$PKG/etc ] && cp -Rdp _scripts/files/$PKG/etc $DESTROOT
367 _strip $DESTROOT
369 (cd $DESTROOT; tar czf $PKGDEST/$PKG-$VERSION-$REV.tar.gz *)
370 retval=$?
372 # echo "$DONTINSTALL" | grep -q " $PKG " || tar xzf $PKGDEST/$PKG-$VERSION-$REV.tar.gz -C /
374 rm -rf $DESTROOT/*
376 rm -f $BUILDROOT/inst_start.log
378 exit $retval