Browse Source

Stefan Fiedler:


			
			
				rocklinux
			
			
		
Stefan Fiedler 18 years ago
parent
commit
1f59edcfcc
1 changed files with 82 additions and 104 deletions
  1. +82
    -104
      scripts/Build-Pkg

+ 82
- 104
scripts/Build-Pkg

@ -175,6 +175,7 @@ fi
# parameter 1 has $pkg=$xpkg # parameter 1 has $pkg=$xpkg
pkg="${1%=*}"; xpkg="${1#*=}" pkg="${1%=*}"; xpkg="${1#*=}"
builddir="$base/src.$xpkg.$id" builddir="$base/src.$xpkg.$id"
# get real pkg name for mapped packages # get real pkg name for mapped packages
@ -295,21 +296,16 @@ if [ "$chroot" = 1 ] ; then
# If build is a symlink to somewhere else (NFS share for clusterbuild # If build is a symlink to somewhere else (NFS share for clusterbuild
# usually) we do _not_ want to extract our stuff there. # usually) we do _not_ want to extract our stuff there.
# Network latency! # Network latency!
if [ -L ${base}/build ] ; then
mkdir -p "${builddir}"
mkdir "$PWD/ROCK/src.$xpkg.$id"
mount --bind "${builddir}" "$PWD/ROCK/src.$xpkg.$id"
else
mkdir -p "ROCK/src.$xpkg.$id"
ln -s "$PWD/ROCK/src.$xpkg.$id" "$builddir"
fi
mkdir -p "$builddir"; chmod 700 "$builddir"
ln -s loop/src.$xpkg.$id ROCK/src.$xpkg.$id
cat > $builddir/chroot.sh <<- EOT
cat > "$builddir/chroot.sh" <<- EOT
#!/bin/bash
export ROCK_THIS_IS_CHROOT=1; cd /ROCK export ROCK_THIS_IS_CHROOT=1; cd /ROCK
./scripts/Build-Pkg $options -chr-sub -root "/" "$1" ./scripts/Build-Pkg $options -chr-sub -root "/" "$1"
EOT EOT
cat > $builddir/debug.sh <<- EOT
cat > "$builddir/debug.sh" <<- EOT
#!/bin/bash #!/bin/bash
export ROCK_THIS_IS_CHROOT=1 export ROCK_THIS_IS_CHROOT=1
if [ ! -e $PWD/ROCK/loop/scripts ]; then if [ ! -e $PWD/ROCK/loop/scripts ]; then
@ -319,7 +315,7 @@ if [ "$chroot" = 1 ] ; then
fi fi
chroot "$xroot" /bin/bash ROCK/src.$xpkg.$id/debug_x.sh chroot "$xroot" /bin/bash ROCK/src.$xpkg.$id/debug_x.sh
EOT EOT
chmod +x $builddir/debug.sh
chmod +x "$builddir/debug.sh"
if [ "$TZ" ] ; then if [ "$TZ" ] ; then
if [ "${TZ#/}" != "$TZ" ] ; then if [ "${TZ#/}" != "$TZ" ] ; then
@ -338,11 +334,8 @@ if [ "$chroot" = 1 ] ; then
TZ="/ROCK/localtime" chroot . bin/bash ROCK/src.$xpkg.$id/chroot.sh TZ="/ROCK/localtime" chroot . bin/bash ROCK/src.$xpkg.$id/chroot.sh
returncode=$? returncode=$?
if [ -L "$builddir" ]; then
rm "$builddir"
else
umount "${builddir}"
fi
# Only remove $builddir if it is empty.
rmdir --ignore-fail-on-non-empty "$builddir"
exit $returncode exit $returncode
fi fi
@ -396,22 +389,11 @@ if [ -z "$confdir" ] ; then
echo_pkg_deny $stagelevel $pkg "does not exist" ; exit 1 echo_pkg_deny $stagelevel $pkg "does not exist" ; exit 1
fi fi
mkdir -p $root/var/adm/logs
mkdir -p $root/var/adm/flists
mkdir -p $root/var/adm/cksums
mkdir -p $root/var/adm/md5sums
mkdir -p $root/var/adm/packages
mkdir -p $root/var/adm/dependencies
mkdir -p $root/var/adm/dep-debug
mkdir -p $root/var/adm/parse-config
mkdir -p $root/var/adm/cache
mkdir -p $root/var/adm/descs
mkdir -p $root/var/adm/rock-debug
mkdir -p $root/var/adm/{logs,flists,cksums,md5sums,packages,dependencies}
mkdir -p $root/var/adm/{dep-debug,parse-config,cache,descs,rock-debug}
[ "$root" ] && chmod 700 $root [ "$root" ] && chmod 700 $root
rm -f $root/var/adm/logs/$stagelevel-$xpkg.out
rm -f $root/var/adm/logs/$stagelevel-$xpkg.log
rm -f $root/var/adm/logs/$stagelevel-$xpkg.err
rm -f $root/var/adm/logs/$stagelevel-$xpkg.{out,log,err}
if [ $this_is_the_2nd_run = 0 ] ; then if [ $this_is_the_2nd_run = 0 ] ; then
[ $stagelevel -gt 1 ] && . /etc/profile [ $stagelevel -gt 1 ] && . /etc/profile
@ -700,10 +682,9 @@ fi
echo_status "Preparing build in src.$xpkg.$id" echo_status "Preparing build in src.$xpkg.$id"
mkdir -p $builddir; chmod 700 $builddir
if [ $clear_src = 1 ] ; then if [ $clear_src = 1 ] ; then
if [ "$ROCKCFG_SRC_TMPFS" = 1 ]; then if [ "$ROCKCFG_SRC_TMPFS" = 1 ]; then
mount -t tmpfs -o $ROCKCFG_SRC_TMPFS_OPT tmpfs $builddir
mount -t tmpfs -o $ROCKCFG_SRC_TMPFS_OPT tmpfs "$builddir"
fi fi
fi fi
@ -720,24 +701,24 @@ if [ $update = 1 ] ; then
cd $xroot/ cd $xroot/
grep -v "^X" var/adm/md5sums/$xpkg var/adm/md5sums/$xpkg:* 2> /dev/null | grep -v "^X" var/adm/md5sums/$xpkg var/adm/md5sums/$xpkg:* 2> /dev/null |
md5sum --check - 2>&1 | grep ': FAILED$' | cut -f1 -d: md5sum --check - 2>&1 | grep ': FAILED$' | cut -f1 -d:
) > $builddir/backup_files.txt
if [ -s $builddir/backup_files.txt ] ; then
) > "$builddir/backup_files.txt"
if [ -s "$builddir/backup_files.txt" ] ; then
mkdir -p "$xroot/var/adm/backup" mkdir -p "$xroot/var/adm/backup"
chmod 700 "$xroot/var/adm/backup" chmod 700 "$xroot/var/adm/backup"
backup_tar="$xroot/var/adm/backup/$( backup_tar="$xroot/var/adm/backup/$(
date '+%Y%m%d%H%M%S')_$xpkg.tar.bz2" date '+%Y%m%d%H%M%S')_$xpkg.tar.bz2"
( cd $xroot/; tar --no-recursion --force-local -cf - -T $builddir/`
`backup_files.txt || true; ) | bzip2 > $backup_tar
( cd $xroot/; tar --no-recursion --force-local -cf - -T "$builddir/`
`backup_files.txt" || true; ) | bzip2 > $backup_tar
else else
update=0 update=0
fi fi
fi fi
if [ "$ROCKCFG_FLIST" = "flwrapper" ] ; then if [ "$ROCKCFG_FLIST" = "flwrapper" ] ; then
rm -f $builddir/fl_wrapper.wlog $builddir/fl_wrapper.rlog
touch $builddir/fl_wrapper.wlog $builddir/fl_wrapper.rlog
rm -f "$builddir/"fl_wrapper.{r,w}log
touch "$builddir/"fl_wrapper.{r,w}log
elif [ "$ROCKCFG_FLIST" = "find" ] ; then elif [ "$ROCKCFG_FLIST" = "find" ] ; then
touch $builddir/temp.time_stamp
touch "$builddir/temp.time_stamp"
sleep 2 sleep 2
fi fi
@ -810,7 +791,7 @@ abort() {
# Makes debugging build problems easier # Makes debugging build problems easier
# #
hook_dump > $builddir/debug.hooks
hook_dump > "$builddir/debug.hooks"
# #
{ {
dump_env dump_env
@ -833,17 +814,17 @@ abort() {
done done
} }
EOT EOT
} > $builddir/debug.buildenv
} > "$builddir/debug.buildenv"
# #
cat > $builddir/debug_x.sh <<- EOT
cat > "$builddir/debug_x.sh" <<- EOT
#!/bin/bash #!/bin/bash
export PROMPT_COMMAND='. debug.buildenv; cd .; unset PROMPT_COMMAND' export PROMPT_COMMAND='. debug.buildenv; cd .; unset PROMPT_COMMAND'
cd $builddir; exec bash 200>> build.pid
cd "$builddir"; exec bash 200>> build.pid
EOT EOT
# #
if [ "$ROCK_THIS_IS_CHROOT" != 1 ]; then if [ "$ROCK_THIS_IS_CHROOT" != 1 ]; then
mv $builddir/debug_x.sh $builddir/debug.sh
chmod +x $builddir/debug.sh
mv "$builddir/debug_x.sh" "$builddir/debug.sh"
chmod +x "$builddir/debug.sh"
fi fi
# Create PID file # Create PID file
@ -856,8 +837,8 @@ abort() {
# 'fuser' can be used to create a list of all processes which are part # 'fuser' can be used to create a list of all processes which are part
# of this build process. # of this build process.
# #
sh -c 'echo $PPID' > $builddir/build.pid
exec 200>> $builddir/build.pid
sh -c 'echo $PPID' > "$builddir/build.pid"
exec 200>> "$builddir/build.pid"
echo "Command Wrapper Debug: running '${CC} --version' .." echo "Command Wrapper Debug: running '${CC} --version' .."
type ${CC%% *}; CMD_WRAPPER_DEBUG=1 ${CC} --version type ${CC%% *}; CMD_WRAPPER_DEBUG=1 ${CC} --version
@ -875,10 +856,10 @@ abort() {
else else
SYSEXIT="_exit" SYSEXIT="_exit"
fi fi
strace -o $builddir/strace.out -F -f -q -e open,creat,mkdir,`
strace -o "$builddir/strace.out" -F -f -q -e open,creat,mkdir,`
`mknod,link,symlink,rename,utime,chdir,execve,` `mknod,link,symlink,rename,utime,chdir,execve,`
`fork,clone,vfork,` `fork,clone,vfork,`
`$SYSEXIT,exit_group -p `cat $builddir/build.pid` &
`$SYSEXIT,exit_group -p `cat "$builddir/build.pid"` &
strace_pid=$! ; sleep 1 ; cd $base strace_pid=$! ; sleep 1 ; cd $base
fi fi
@ -894,16 +875,16 @@ abort() {
echo "Did you run ./scripts/Download for this package?" echo "Did you run ./scripts/Download for this package?"
false false
fi fi
ln -vs $x $builddir/archdir/
ln -vs $x "$builddir/archdir/"
done < <( echo "$desc_D" | column_clean ) done < <( echo "$desc_D" | column_clean )
echo "Running main build function '$mainfunction' ..." echo "Running main build function '$mainfunction' ..."
if [ $xtrace -eq 1 -o $ROCKCFG_XTRACE -eq 1 ] ; then if [ $xtrace -eq 1 -o $ROCKCFG_XTRACE -eq 1 ] ; then
PS4=$'=[$FUNCNAME:$LINENO (last \\\$?=$?)> ' ; set -o xtrace PS4=$'=[$FUNCNAME:$LINENO (last \\\$?=$?)> ' ; set -o xtrace
cd $builddir ; eval "$mainfunction"
cd "$builddir" ; eval "$mainfunction"
set +o xtrace set +o xtrace
else else
cd $builddir ; eval "$mainfunction"
cd "$builddir" ; eval "$mainfunction"
fi fi
touch $root/var/adm/logs/$stagelevel-$xpkg.log touch $root/var/adm/logs/$stagelevel-$xpkg.log
) )
@ -917,8 +898,8 @@ abort() {
# #
if [ "$ROCKCFG_FLIST" = "strace" ] ; then if [ "$ROCKCFG_FLIST" = "strace" ] ; then
sleep 1 ; kill -INT $strace_pid ; sleep 1 sleep 1 ; kill -INT $strace_pid ; sleep 1
fl_stparse -w $builddir/fl_wrapper.wlog \
-r $builddir/fl_wrapper.rlog < $builddir/strace.out
fl_stparse -w "$builddir/fl_wrapper.wlog" \
-r "$builddir/fl_wrapper.rlog" < "$builddir/strace.out"
fi fi
if [ "$ROCKCFG_FLIST" = "flwrapper" -o \ if [ "$ROCKCFG_FLIST" = "flwrapper" -o \
@ -927,39 +908,39 @@ abort() {
then then
xbase="$( cd $xroot/ 2> /dev/null ; pwd -P )" xbase="$( cd $xroot/ 2> /dev/null ; pwd -P )"
if egrep -qv "[ ]($base|$xbase|/tmp|/usr/tmp|/var/tmp|/var/backups|/proc|/dev)(/|$)" \ if egrep -qv "[ ]($base|$xbase|/tmp|/usr/tmp|/var/tmp|/var/backups|/proc|/dev)(/|$)" \
$builddir/fl_wrapper.wlog
"$builddir/fl_wrapper.wlog"
then then
x="Created file outside basedir: " x="Created file outside basedir: "
egrep -v "[ ]($base|$xbase|/tmp|/usr/tmp|/var/tmp|/proc|/dev)(/|$)" \ egrep -v "[ ]($base|$xbase|/tmp|/usr/tmp|/var/tmp|/proc|/dev)(/|$)" \
$builddir/fl_wrapper.wlog | \
"$builddir/fl_wrapper.wlog" | \
cut -f2- | sort -u | sed "s,^,$x," cut -f2- | sort -u | sed "s,^,$x,"
echo "base #1: $base" echo "base #1: $base"
echo "base #2: $xbase" echo "base #2: $xbase"
abort abort
fi fi
fi fi
if fl_wrparse -D -s -r "$xroot/" < $builddir/fl_wrapper.wlog | \
if fl_wrparse -D -s -r "$xroot/" < "$builddir/fl_wrapper.wlog" | \
egrep "^(${flistroot// /|})(/|$)" >> \ egrep "^(${flistroot// /|})(/|$)" >> \
$builddir/flist.txt
"$builddir/flist.txt"
then : ; fi then : ; fi
elif [ "$ROCKCFG_FLIST" = "find" ] ; then elif [ "$ROCKCFG_FLIST" = "find" ] ; then
if find $flistroot \ if find $flistroot \
\( -not -type d -or -type d -empty \) \ \( -not -type d -or -type d -empty \) \
-and \( -newer $builddir/temp.time_stamp -or \
-cnewer $builddir/temp.time_stamp \) -printf "%p\n" >> \
$builddir/flist.txt
-and \( -newer "$builddir/temp.time_stamp" -or \
-cnewer "$builddir/temp.time_stamp" \) -printf "%p\n" >> \
"$builddir/flist.txt"
then : ; fi then : ; fi
fi fi
# evaluate flistdel (1/2) # evaluate flistdel (1/2)
egrep -v "^($flistdel)\$" $builddir/flist.txt | sort -u > $builddir/flist.txt.new
mv $builddir/flist.txt.new $builddir/flist.txt
egrep -v "^($flistdel)\$" "$builddir/flist.txt" | sort -u > "$builddir/flist.txt.new"
mv "$builddir/flist.txt.new" "$builddir/flist.txt"
# copy over missing *.a files # copy over missing *.a files
if [ "$autoso2a" = 1 ]; then if [ "$autoso2a" = 1 ]; then
echo "Checking for missing .a files ..." echo "Checking for missing .a files ..."
while read d s; do while read d s; do
grep -q "/${s%.so}.a$" $builddir/flist.txt && continue
grep -q "/${s%.so}.a$" "$builddir/flist.txt" && continue
[ "$d" = "lib" ] && d="usr/lib" [ "$d" = "lib" ] && d="usr/lib"
if [ -f "$AUTOSO2A_DIR/${s%.so}.a" ]; then if [ -f "$AUTOSO2A_DIR/${s%.so}.a" ]; then
echo "Installing automatically created $d/${s%.so}.a." echo "Installing automatically created $d/${s%.so}.a."
@ -968,29 +949,29 @@ abort() {
else else
echo "Not found: $AUTOSO2A_DIR/${s%.so}.a" echo "Not found: $AUTOSO2A_DIR/${s%.so}.a"
fi fi
done < <( egrep '(^|/)lib/[^/]*\.so$' $builddir/flist.txt | sed 's,\(.*\)/,\1 ,' )
done < <( egrep '(^|/)lib/[^/]*\.so$' "$builddir/flist.txt" | sed 's,\(.*\)/,\1 ,' )
fi fi
# merge flist of previous build # merge flist of previous build
for x in var/adm/flists/$xpkg var/adm/flists/$xpkg:*; do for x in var/adm/flists/$xpkg var/adm/flists/$xpkg:*; do
[ -f $x ] && cut -f2- -d' ' $x >> $builddir/flist.txt
[ -f $x ] && cut -f2- -d' ' $x >> "$builddir/flist.txt"
done done
# evaluate flistdel (2/2) # evaluate flistdel (2/2)
egrep -v "^($flistdel)\$" $builddir/flist.txt | sort -u > $builddir/flist.txt.new
mv $builddir/flist.txt.new $builddir/flist.txt
egrep -v "^($flistdel)\$" "$builddir/flist.txt" | sort -u > "$builddir/flist.txt.new"
mv "$builddir/flist.txt.new" "$builddir/flist.txt"
hook_eval postflist hook_eval postflist
fl_wrparse -D -p "$xpkg" -r "$xroot/" < $builddir/flist.txt | sort -u > $builddir/flist.split
echo Found `wc -l < $builddir/flist.split` "files for this package."
splitapply $xpkg $builddir/flist.split
fl_wrparse -D -p "$xpkg" -r "$xroot/" < "$builddir/flist.txt" | sort -u > "$builddir/flist.split"
echo Found `wc -l < "$builddir/flist.split"` "files for this package."
splitapply $xpkg "$builddir/flist.split"
if [ "$ROCKCFG_FLIST" = "flwrapper" -o \ if [ "$ROCKCFG_FLIST" = "flwrapper" -o \
"$ROCKCFG_FLIST" = "strace" ] && [ $stagelevel -gt 1 ] ; then "$ROCKCFG_FLIST" = "strace" ] && [ $stagelevel -gt 1 ] ; then
echo "Calculating package dependencies ..." echo "Calculating package dependencies ..."
! egrep -v "^($flistrfilter)\$" $builddir/fl_wrapper.[rw]log |
! egrep -v "^($flistrfilter)\$" "$builddir"/fl_wrapper.[rw]log |
sort -u | fl_wrparse -D -s -r "$xroot/" -p '' | \ sort -u | fl_wrparse -D -s -r "$xroot/" -p '' | \
grep -v ' var/adm/' | awk ' grep -v ' var/adm/' | awk '
ARGIND < ARGC-1 { ARGIND < ARGC-1 {
@ -1011,22 +992,22 @@ abort() {
sub("/?[^/]*$", "", file) sub("/?[^/]*$", "", file)
} }
} }
' var/adm/flists/* - > $builddir/dependencies.debug
' var/adm/flists/* - > "$builddir/dependencies.debug"
awk 'BEGIN { FS=": "; } { print "'$xpkg': " $1; }' \ awk 'BEGIN { FS=": "; } { print "'$xpkg': " $1; }' \
< $builddir/dependencies.debug > $builddir/dependencies.txt
< "$builddir/dependencies.debug" > "$builddir/dependencies.txt"
if [ -f var/adm/dep-debug/$xpkg ] ; then if [ -f var/adm/dep-debug/$xpkg ] ; then
cat var/adm/dep-debug/$xpkg >> $builddir/dependencies.debug
cat var/adm/dep-debug/$xpkg >> "$builddir/dependencies.debug"
fi fi
sort -u $builddir/dependencies.debug > var/adm/dep-debug/$xpkg
sort -u "$builddir/dependencies.debug" > var/adm/dep-debug/$xpkg
# add debug info for known false dependencies # add debug info for known false dependencies
if egrep -q "^[^#].* $xpkg( |$)" $base/scripts/dep_fixes.txt; then if egrep -q "^[^#].* $xpkg( |$)" $base/scripts/dep_fixes.txt; then
echo "--- $xpkg [$stagelevel] ---" >> $root/var/adm/rock-debug/falsedeps.txt echo "--- $xpkg [$stagelevel] ---" >> $root/var/adm/rock-debug/falsedeps.txt
fi fi
while read x; do while read x; do
grep "^$x: " $builddir/dependencies.debug | sort -u | \
grep "^$x: " "$builddir/dependencies.debug" | sort -u | \
sed "s,:, -> $xpkg [$stagelevel]:," >> $root/var/adm/rock-debug/falsedeps.txt sed "s,:, -> $xpkg [$stagelevel]:," >> $root/var/adm/rock-debug/falsedeps.txt
done < <( egrep "^$xpkg +del +" $base/scripts/dep_fixes.txt | \ done < <( egrep "^$xpkg +del +" $base/scripts/dep_fixes.txt | \
tr ' ' '\t' | tr -s '\t' | cut -f3- | tr '\t' '\n' ) tr ' ' '\t' | tr -s '\t' | cut -f3- | tr '\t' '\n' )
@ -1034,7 +1015,7 @@ abort() {
# merge the dependencies defined by the package # merge the dependencies defined by the package
for x in `echo "$desc_E" | egrep '^add ' | sed 's/^add //' ` ; do for x in `echo "$desc_E" | egrep '^add ' | sed 's/^add //' ` ; do
echo "Adding dependency: $x ..." echo "Adding dependency: $x ..."
echo "$xpkg: $x" >> $builddir/dependencies.txt
echo "$xpkg: $x" >> "$builddir/dependencies.txt"
done done
# remove dependencies as requested by the package # remove dependencies as requested by the package
@ -1045,18 +1026,18 @@ abort() {
done done
if [ -n "$del_pattern" ] ; then if [ -n "$del_pattern" ] ; then
echo "Deleting dependencies, pattern: $del_pattern ..." echo "Deleting dependencies, pattern: $del_pattern ..."
eval "egrep -v $del_pattern $builddir/dependencies.txt" > $builddir/dependencies.txt.new
mv $builddir/dependencies.txt.new $builddir/dependencies.txt
eval "egrep -v $del_pattern \"$builddir/dependencies.txt\"" > "$builddir/dependencies.txt.new"
mv "$builddir/dependencies.txt.new" "$builddir/dependencies.txt"
fi fi
if [ -f var/adm/dependencies/$xpkg ] ; then if [ -f var/adm/dependencies/$xpkg ] ; then
cat var/adm/dependencies/$xpkg >> $builddir/dependencies.txt
cat var/adm/dependencies/$xpkg >> "$builddir/dependencies.txt"
fi fi
sort -u $builddir/dependencies.txt > $builddir/dependencies.txt.new
mv $builddir/dependencies.txt.new $builddir/dependencies.txt
sort -u "$builddir/dependencies.txt" > "$builddir/dependencies.txt.new"
mv "$builddir/dependencies.txt.new" "$builddir/dependencies.txt"
fi fi
for spkg in $( sed 's,: .*,,' < $builddir/flist.split | sort -u )
for spkg in $( sed 's,: .*,,' < "$builddir/flist.split" | sort -u )
do do
( (
if [ -z "${spkg##*:*}" ]; then if [ -z "${spkg##*:*}" ]; then
@ -1065,7 +1046,7 @@ abort() {
echo "<$spkg> Creating flist file ..." echo "<$spkg> Creating flist file ..."
{ {
grep "^$spkg: " $builddir/flist.split
grep "^$spkg: " "$builddir/flist.split"
[ -s "var/adm/parse-config/$spkg" ] && \ [ -s "var/adm/parse-config/$spkg" ] && \
echo "$spkg: var/adm/parse-config/$spkg" echo "$spkg: var/adm/parse-config/$spkg"
for x in var/adm/flists/$spkg var/adm/md5sums/$spkg \ for x in var/adm/flists/$spkg var/adm/md5sums/$spkg \
@ -1076,7 +1057,7 @@ abort() {
} | sort -u > var/adm/flists/$spkg } | sort -u > var/adm/flists/$spkg
echo "<$spkg> Creating package dependencies file ..." echo "<$spkg> Creating package dependencies file ..."
sed "s,^[^ ]*,$spkg:," < $builddir/dependencies.txt > var/adm/dependencies/$spkg
sed "s,^[^ ]*,$spkg:," < "$builddir/dependencies.txt" > var/adm/dependencies/$spkg
echo "<$spkg> Creating package description ..." echo "<$spkg> Creating package description ..."
# #
@ -1130,8 +1111,8 @@ EOT
echo -n > var/adm/cksums/$spkg echo -n > var/adm/cksums/$spkg
echo -n > var/adm/md5sums/$spkg echo -n > var/adm/md5sums/$spkg
# getfiles only returns non-directories, suitable for checksum creation. # getfiles only returns non-directories, suitable for checksum creation.
getfiles < var/adm/flists/$spkg > $builddir/files.lst
if [ -s $builddir/files.lst ] ; then
getfiles < var/adm/flists/$spkg > "$builddir/files.lst"
if [ -s "$builddir/files.lst" ] ; then
while read file ; do while read file ; do
[ -z "${file//[ ]/}" ] && continue [ -z "${file//[ ]/}" ] && continue
# Checksums on these files are volatile. # Checksums on these files are volatile.
@ -1150,7 +1131,7 @@ EOT
echo "0 $( stat -c %s ${file} ) ${file}" \ echo "0 $( stat -c %s ${file} ) ${file}" \
>> var/adm/cksums/$spkg >> var/adm/cksums/$spkg
fi fi
done < $builddir/files.lst
done < "$builddir/files.lst"
fi fi
if [ $stagelevel -ge 2 -a $nopostinst = 0 -a -d /var/adm/postinstall ]; then if [ $stagelevel -ge 2 -a $nopostinst = 0 -a -d /var/adm/postinstall ]; then
@ -1197,7 +1178,7 @@ EOT
# check for registered 'bad files' # check for registered 'bad files'
if [ "$check_badfiles" != "0" -a -n "$badfiles" ]; then if [ "$check_badfiles" != "0" -a -n "$badfiles" ]; then
echo "$badfiles" > $builddir/badfiles.txt
echo "$badfiles" > "$builddir/badfiles.txt"
while read x file; do while read x file; do
if [ $found_bad = 0 ]; then if [ $found_bad = 0 ]; then
echo "Found registered 'bad files' in package:" echo "Found registered 'bad files' in package:"
@ -1209,7 +1190,7 @@ EOT
then desc="${badfiles_desc[x]#*$'\n'}"; fi then desc="${badfiles_desc[x]#*$'\n'}"; fi
done done
echo "$file: $desc" echo "$file: $desc"
done < <( grep -f $builddir/badfiles.txt $root/var/adm/flists/$xpkg \
done < <( grep -f "$builddir/badfiles.txt" $root/var/adm/flists/$xpkg \
$root/var/adm/flists/$xpkg:* 2> /dev/null ) $root/var/adm/flists/$xpkg:* 2> /dev/null )
fi fi
@ -1239,19 +1220,19 @@ if [ $update = 1 ] ; then
while read fn ; do while read fn ; do
[ -f $xroot/$fn ] && mv $xroot/$fn $xroot/$fn.new [ -f $xroot/$fn ] && mv $xroot/$fn $xroot/$fn.new
done < $builddir/backup_files.txt
done < "$builddir/backup_files.txt"
tar --force-local --use-compress-program=bzip2 -C $xroot/ -xpf $backup_tar tar --force-local --use-compress-program=bzip2 -C $xroot/ -xpf $backup_tar
while read fn ; do while read fn ; do
cmp -s $fn $fn.new && rm -f $fn.new cmp -s $fn $fn.new && rm -f $fn.new
done < $builddir/backup_files.txt
done < "$builddir/backup_files.txt"
fi fi
cd $base cd $base
umount -r -d -f $builddir/* 2> /dev/null
umount -r -d -f -l $builddir/* 2> /dev/null
umount -r -d -f "$builddir"/* 2> /dev/null
umount -r -d -f -l "$builddir"/* 2> /dev/null
if [ "$ROCKCFG_SRC_TMPFS_LOG" = 1 -a -n "$( type -p df )" ]; then if [ "$ROCKCFG_SRC_TMPFS_LOG" = 1 -a -n "$( type -p df )" ]; then
if [ ! -f $root/var/adm/rock-debug/tmpfslog.txt ] ; then if [ ! -f $root/var/adm/rock-debug/tmpfslog.txt ] ; then
@ -1259,24 +1240,21 @@ if [ "$ROCKCFG_SRC_TMPFS_LOG" = 1 -a -n "$( type -p df )" ]; then
expand -t20 > $root/var/adm/rock-debug/tmpfslog.txt expand -t20 > $root/var/adm/rock-debug/tmpfslog.txt
fi fi
echo -e "$config\t$stagelevel-$xpkg\t$( echo -e "$config\t$stagelevel-$xpkg\t$(
df 2> /dev/null -Pi $builddir | tail -n 1 | tr -s ' ' | cut -f3 -d' '
df 2> /dev/null -Pi "$builddir" | tail -n 1 | tr -s ' ' | cut -f3 -d' '
)\t$( )\t$(
df 2> /dev/null -Pk $builddir | tail -n 1 | tr -s ' ' | cut -f3 -d' ')" | \
df 2> /dev/null -Pk "$builddir" | tail -n 1 | tr -s ' ' | cut -f3 -d' ')" | \
expand -t20 >> $root/var/adm/rock-debug/tmpfslog.txt expand -t20 >> $root/var/adm/rock-debug/tmpfslog.txt
fi fi
umount -r -d -f $builddir 2> /dev/null
umount -r -d -f -l $builddir 2> /dev/null
if [ "$ROCKCFG_PSEUDONATIVE" = 1 -a $stagelevel -eq 0 ]; then if [ "$ROCKCFG_PSEUDONATIVE" = 1 -a $stagelevel -eq 0 ]; then
rm -f $base/build/$ROCKCFG_ID/pseudonative_handler rm -f $base/build/$ROCKCFG_ID/pseudonative_handler
fi fi
if [ -f $root/var/adm/logs/$stagelevel-$xpkg.log ] ; then if [ -f $root/var/adm/logs/$stagelevel-$xpkg.log ] ; then
if [ $clear_src = 1 ] ; then if [ $clear_src = 1 ] ; then
rm -rf $builddir/* $builddir
rm -rf "$builddir"/* "$builddir"
else else
cp $root/var/adm/logs/$stagelevel-$xpkg.out $builddir/BUILD-LOG
cp $root/var/adm/logs/$stagelevel-$xpkg.out "$builddir/BUILD-LOG"
fi fi
echo_status "\$root/var/adm/logs/$stagelevel-$xpkg.out" \ echo_status "\$root/var/adm/logs/$stagelevel-$xpkg.out" \
"-> $stagelevel-$xpkg.log" "-> $stagelevel-$xpkg.log"
@ -1286,9 +1264,9 @@ if [ -f $root/var/adm/logs/$stagelevel-$xpkg.log ] ; then
exit 0 exit 0
else else
if [ $clear_src = 1 -a "$ROCKCFG_ALWAYS_CLEAN" = 1 ] ; then if [ $clear_src = 1 -a "$ROCKCFG_ALWAYS_CLEAN" = 1 ] ; then
rm -rf $builddir/* $builddir
rm -rf "$builddir"/* "$builddir"
else else
cp $root/var/adm/logs/$stagelevel-$xpkg.out $builddir/ERROR-LOG
cp $root/var/adm/logs/$stagelevel-$xpkg.out "$builddir/ERROR-LOG"
fi fi
if [ "$ROCKCFG_VERBOSE" != 1 -a "$verbose" != 1 ] ; then if [ "$ROCKCFG_VERBOSE" != 1 -a "$verbose" != 1 ] ; then
echo_errorquote "$( grep -B7 -- '--- BUILD ERROR ---' \ echo_errorquote "$( grep -B7 -- '--- BUILD ERROR ---' \

Loading…
Cancel
Save