K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-12-02T14:40:26.330591Z K 7 svn:log V 3225 Improve robustness and consistency, and remove redundant lines with no major functional change: - Use stderr for critical error messages. - Set LC_ALL=en_US.UTF-8 for svn and LC_ALL=C for the others just in case. This is because svn co can fail when LANG=C. - s/freebsd/FreeBSD/. - Use /sbin:/bin:/usr/sbin:/usr/bin instead of /bin:/sbin... for $PATH. - Do not use /usr/local/bin in $PATH except for docproj build. - Use $(( )) instead of $(expr). - Do not override CHROOTDIR, SVNROOT, SRCBRANCH, DOCBRANCH, PORTBRANCH, etc. This script should be invoked with env(1) -i to strictly control variable definitions. - Remove a CHROOTDIR check because CHROOTDIR is always set to the default value (/scratch). Check existence of the directory instead. - Define DESTDIR as /R/ explicitly. - Use an error handler in sh(1) for ENOENT of the configuration file. - Handle YES/NO variables for make release consistently. - Use consistent svn co options for all trees. - Add NODVD and NOPKG support. - Prevent the case of !NODOC && NOPORTS for the moment. This was supported in the old Makefile.inc.docports but it was removed. - Do not define the default kernel to be built as GENERIC because some architectures do not use it (GENERIC64 for powerpc64, for instance). Let Makefile to determine the default kernel if KERNEL is empty. Also, add KERNELS_BASE support because it was used in the old configuration to specify the kernel. KERNEL and KERNELS_BASE should be deprecated since KERNCONF can be used directly. - Support the case when either TARGET or TARGET_ARCH is defined. - Use DB_FROM_SRC for buildworld/installworld stage before entering the chroot environment. This prevents "Required user XXX is missing" error when building a newer system on an old system. - Split fetch stage of the docproj port and put it just after checking out the source trees. This eliminates network access from the chroot environment and makes it easy to support complex network configurations. - Add HTTP_PROXY support. It is used for subversion and make fetch-recursive stage. - Define a fake LOCALBASE and set CLEAN_FETCH_ENV to prevent from using undeterministic configuration in the host environment. DISABLE_VULNERABILITIES is also set just in case. - Use MASTER_SITE_FREEBSD to use ftp.FreeBSD.org first. - Unset options of X11 and SVN in docproj port build. They are not necessary. - Always create a rtld hints file. Use forcestart instead of forcerestart. - Use env(1) -i flag to prevent leak of variables wherever possible. - Create empty make.conf and src.conf when it is not specified to simplify the logic. - Remove RELSTRING because it is no longer used. - Use -C /path for make consistently instead of using both cd and -C. - Remove eval for make of final release building. It was used because KERNCONF can have multiple values, but += can handle that case better. - TODO: * svn co of the ports tree should be minimized to only ones needed for doc build when !NODOC && NOPORTS. Extracting whole of the ports tree is time-consuming on slow architectures. * Package fetching for DVD should be done before entering chroot environment. Tested by: allbsd.org daily snapshot END