Cope with files that already exist.
[amitay/build-farm.git] / m104.fns
index c8db573834193761690d91571dfd34b85c204cdd..6e4216315f49d0668c9ca326e975143e0c7fd710 100644 (file)
--- a/m104.fns
+++ b/m104.fns
-# Build control file for Stratus VOS Intel IA32
+# Build control file for Stratus VOS
 # Contact: Paul.Green at stratus.com (paulg at samba.org)
 
 export CC="gcc"
 export CFLAGS=""
-export CPPFLAGS="-D_POSIX_C_SOURCE=200112L -D_SYSV"
-export MAXLIMIT=10800
-export TIMELIMIT_FLAGS="-D_POSIX_C_SOURCE=200112L -D_SYSV"
-
-test_tree ccache . gcc
-test_tree distcc . gcc
-test_tree samba_3_0 source gcc
-test_tree samba4 source gcc
-test_tree rsync . gcc
-test_tree talloc . gcc
-test_tree tdb . gcc
+export CPPFLAGS="-D_POSIX_C_SOURCE=200112L -D_SYSV -D_VOS_EXTENDED_NAMES"
+export MAXTIME=14400
+export TIMELIMIT_FLAGS="-D_POSIX_C_SOURCE=200112L"
+export noclean="yes"
+
+# avoid vos bug bin-340
+export LDFLAGS="-specs=/s/pg/bf/posix/command_library/pg.specs"
+
+# avoid vos bug ac-79
+export ac_cv_prog_cc_ccache_c_o=yes
+
+# ensure vos pathnames do not contain % or # characters
+# workaround until vos suggestion posix-1014 is implemented
+test_root=/build_farm
+
+############################
+# configure the tree
+# VOS: modified to print message and invoke bash explicitly
+action_configure() {
+       echo " "
+       echo "NOTE: VOS has some restrictions that cause build or test"
+       echo "      failures. I am working to resolve these."
+       echo "      1. VOS does not implement Unix-domain sockets."
+       echo "      2. VOS is missing some POSIX or Unix functions. I am"
+       echo "         supplying private versions to avoid build errors."
+       echo "      3. VOS implements the POSIX-style shared memory API,"
+       echo "         not the System V-style shared memory API."
+       echo "      4. VOS seems to have some bugs in POSIX file locking."
+       echo " "
+       echo "The following differences from standard POSIX systems are"
+       echo "essentially unfixable:"
+       echo "      5. VOS has symbolic links not hard links. link() is a dummy."
+       echo "      6. VOS has a 256-character limit on pathnames."
+       echo "      7. VOS does not implement shared libraries (no gcc -shared)."
+       echo " "
+       echo "Please contact Paul dot Green at stratus.com for further information."
+       echo " "
+        if [ ! -x $srcdir/configure ]; then
+           ls -l $srcdir/configure
+           echo "$srcdir/configure is missing"
+           cstatus=255
+           echo "CONFIGURE STATUS: $cstatus"
+           return $cstatus;
+       fi
+       echo "CPPFLAGS=$CPPFLAGS"
+       echo "CFLAGS=$CFLAGS"
+       echo configure options: $config_and_prefix
+       echo CC="$CCACHE $compiler" $srcdir/configure $config_and_prefix
+       CC="$CCACHE $compiler"
+       export CC
+# VOS: explicitly invoke bash here.
+       ./timelimit $MAXTIME bash $srcdir/configure $config_and_prefix
+       cstatus=$?
+       if [ x"$cstatus" != x"0" ]; then
+               if [ -f config.log ]; then
+                       echo "contents of config.log:"
+                       cat config.log
+               fi
+       fi
+       echo "CONFIGURE STATUS: $cstatus"
+       return $cstatus;
+}
+
+############################
+# VOS: apply any pending patches.
+apply_patches() {
+       tree=$1
+       if [ -f $tree.patch.txt ]; then
+               cd $tree
+            echo "Patching $tree with local changes."
+               ../patch -u -b -p 2 -i ../$tree.patch.txt
+               cd ..
+       fi
+}
+
+############################
+# VOS: fake up df command, since VOS doesn't have it.
+function df {
+       display_disk_info;
+}
+
+############################
+# fetch the latest copy of the tree
+# VOS: apply local patches to the tree, skip files w/long names.
+fetch_tree() {
+       if [ "$norsync" = "yes" ]; then
+               echo "skipping tree transfer"
+       else
+               fetchtree=$1
+               if rsync --exclude=autom4te.cache/ --exclude=.svn/ --exclude=.git/ --delete-excluded -q --partial --timeout=200 -crlpz --delete --ignore-errors \
+                       samba.org::ftp/unpacked/$fetchtree/ $test_root/$fetchtree; then
+                       echo "transferred $fetchtree OK"
+               else
+                       echo "transfer of $fetchtree failed code $?"
+                       return 1
+               fi
+       fi
+       apply_patches "$fetchtree"
+       return 0
+}
+
+############################
+# VOS: fake up mount command, since VOS doesn't have it.
+mount() {
+     return 0;
+}
+
+############################
+# VOS: fake up ulimit command, since VOS doesn't have it.
+ulimit() {
+     return 0;
+}
+
+############################
+# VOS: fake up vmstat command, since VOS doesn't have it.
+vmstat() {
+     return 0;
+}
 
 per_run_hook
+
+. common.fns
+
+test_tree samba_3_current source gcc
+test_tree samba_3_next source gcc
+test_tree samba_3_master source gcc