Hi!
----
I've finished moving the ksh93-integration codebase ("prototype003")
from the old Solaris 11/B48-based tree to a new Solaris 11/B51-based
tree, now called "prototype004" (this is hopefully the last transition
before the putback - the next step is to integrate the upcoming ast-ksh
version from upstream to fix the "getconf" builtin command to be
compatible to the native Solaris version).
* Build instructions:
The new prototype004 sources can be build like this:
1. Pull sources and extract closed bin stuff (files can be
obtained from opensolaris.org):
$ mkdir test_x86 ; cd test_x86
$ svn checkout
svn://svn.genunix.org/on/branches/ksh93/gisburn/prototype004/usr
$ bzcat ../download/on-closed-bins-b51.i386.tar.bz2 | tar -xf -
$ cd ..
2. Create "opensolaris.sh":
This is the usual opensolaris.sh with the paths adjusted to
match your location of the sources.
Example for the changes applies to opensolaris.sh (for my
workspace):
-- snip --
--- ./test1_x86/usr/src/tools/env/opensolaris.sh Thu Sep 14 13:17:59
2006
+++ ./opensolaris.sh Sun Jul 30 00:06:66 2006
@@ -43,10 +43,10 @@
# This is a variable for the rest of the script - GATE doesn't matter
to
# nightly itself
-GATE=testws; export GATE
+GATE=test1_x86; export GATE
# CODEMGR_WS - where is your workspace at (or what should nightly name
it)
-CODEMGR_WS="/export/$GATE"; export CODEMGR_WS
+CODEMGR_WS="/home/test001/ksh93/on_build1/$GATE";
export
CODEMGR_WS
# Location of encumbered binaries.
ON_CLOSED_BINS="$CODEMGR_WS/closed"; export ON_CLOSED_BINS
-- snip --
3. Run "bldenv":
$ env - SHELL=$SHELL TERM=$TERM HOME=$HOME LOGNAME=$LOGNAME
DISPLAY=$DISPLAY LANG=C LC_ALL=C PAGER=less MANPATH=$MANPATH
/opt/onbld/bin/bldenv -d opensolaris.sh #
4. Build it (the quick way):
$ cd test_x86/usr/src
$ time nice make setup 2>&1 | tee -a buildlog_setup.log
$ time nice dmake install >buildlog.log 2>&1
* Misc notes:
- The "prototype003" source tree is now CLOSED and no further commits
will be made to this codebase. All new commits will be applied to
"prototype004".
- The Changelog can be found at
http://polaris.blastwave.org/log/on/branches/ksh93/gisburn/prototype004?verbose=on
- The update procedure was less difficult this time (better than for
"prototype002" and almost identical to the procedure for "prototype003")
and more or less worked like this (Craig/April: a similar procedure
should be usefull to move the changes into your workspace):
-- snip --
svn mkdir -m 'Adding subdir for prototype004 work'
svn://svn.genunix.org/on/branches/ksh93/gisburn/prototype004
Committed revision 499.
svn cp -m 'Creating branch of OS/Net build 51 for ksh93-integration
prototype004' svn://svn.genunix.org/on/tags/b51/usr
svn://svn.genunix.org/on/branches/ksh93/gisburn/prototype004/
Committed revision 500.
svn diff -r 456:500
svn://svn.genunix.org/on/branches/ksh93/gisburn/prototype003 >xxx.diff
# generate list of files which get patched
cat ./tmp/xxx.diff | egrep "^\+\+\+ " | awk "{ print \$2 }"
>patched_files.txt
# create list of dirs which get patched
cat patched_files.txt | while read i ; do dirname "$i" ; done | sort -u
>patched_dirs.txt
# create dirs and add them to subversion
cat patched_dirs.txt | while read i ; do echo "## $i" ; mkdir -p "$i" ;
done
# create dirs and add them to subversion
cat patched_dirs.txt | while read i ; do echo "## $i" ; mkdir -p "$i" ;
done
(cat patched_dirs.txt | while read i ; do echo "## $i" ; svn add "$i" ;
done) 2>&1 | tee -a svnadddirslog.txt
svn add usr/src/lib/libcmd/*
svn add usr/src/lib/libcmd/*/*
# apply the patch
gpatch -p0 <../tmp/xxx.diff >patch.log
# check for rejected patch hunks:
$ cat patch.log | fgrep .rej
1 out of 3 hunks FAILED -- saving rejects to file
usr/src/pkgdefs/SUNWarc/prototype_com.rej
1 out of 3 hunks FAILED -- saving rejects to file
usr/src/pkgdefs/SUNWarc/prototype_sparc.rej
1 out of 3 hunks FAILED -- saving rejects to file
usr/src/pkgdefs/SUNWarc/prototype_i386.rej
1 out of 3 hunks FAILED -- saving rejects to file
usr/src/pkgdefs/SUNWcsl/prototype_com.rej
1 out of 3 hunks FAILED -- saving rejects to file
usr/src/pkgdefs/SUNWcsl/prototype_sparc.rej
1 out of 3 hunks FAILED -- saving rejects to file
usr/src/pkgdefs/SUNWcsl/prototype_i386.rej
2 out of 2 hunks ignored -- saving rejects to file
usr/src/lib/libcmd/common/llib-lcmd.rej
1 out of 2 hunks FAILED -- saving rejects to file
usr/src/lib/libcmd/Makefile.com.rej
8 out of 8 hunks ignored -- saving rejects to file
usr/src/lib/Makefile.rej
# fix rejects by hand
# add patched files to subversion
(cat patched_files.txt | while read i ; do echo "## $i" ; svn add "$i" ;
done) 2>&1 | tee -a svnfileadd.log
# verify that the "svn add" worked properly
cat svnfileadd.log | egrep -v "## usr/|is already under version control"
| less
# done.
-- snip --
Comments/suggestions/rants etc. welcome...
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 7950090
(;O/ \/ \O;)