This is work in progress - please
do not merge into master yet.

Note to users: please check
if you are affected by awk bug
in udbParseLib.awk if you can.

Just remove this line:

        DUMMY = $0

and run "make clean all" in "databases"
and see if generated files are small
and contain only the error message.

---
 cde/.gitignore                                     |   15 +
 cde/admin/IntegTools/dbTools/installCDE.src        |    9 +-
 cde/admin/IntegTools/dbTools/udbParseLib.awk       |    7 +
 cde/admin/IntegTools/post_install/Imakefile        |    1 +
 .../IntegTools/post_install/freebsd/Imakefile      |   65 ++++
 .../IntegTools/post_install/freebsd/configMin.src  |  271 ++++++++++++++++
 .../IntegTools/post_install/freebsd/configRun.src  |  336 ++++++++++++++++++++
 .../post_install/freebsd/configShlibs.src          |  109 +++++++
 .../IntegTools/post_install/freebsd/configTT.src   |  166 ++++++++++
 cde/config/cf/bsdLib.rules                         |    6 +-
 cde/databases/CDE-SHLIBS.src                       |  127 ++++++++
 cde/programs/Imakefile                             |   34 +-
 12 files changed, 1133 insertions(+), 13 deletions(-)
 create mode 100644 cde/admin/IntegTools/post_install/freebsd/Imakefile
 create mode 100755 cde/admin/IntegTools/post_install/freebsd/configMin.src
 create mode 100755 cde/admin/IntegTools/post_install/freebsd/configRun.src
 create mode 100755 cde/admin/IntegTools/post_install/freebsd/configShlibs.src
 create mode 100755 cde/admin/IntegTools/post_install/freebsd/configTT.src

diff --git a/cde/.gitignore b/cde/.gitignore
index 6b4a79a..63a6bc7 100644
--- a/cde/.gitignore
+++ b/cde/.gitignore
@@ -25,6 +25,19 @@ admin/IntegTools/post_install/*.list
 admin/IntegTools/post_install/*.lst
 admin/IntegTools/post_install/linux
 
+admin/IntegTools/post_install/freebsd/CDE-MIN.list
+admin/IntegTools/post_install/freebsd/CDE-MIN.lst
+admin/IntegTools/post_install/freebsd/CDE-RUN.list
+admin/IntegTools/post_install/freebsd/CDE-RUN.lst
+admin/IntegTools/post_install/freebsd/CDE-SHLIBS.list
+admin/IntegTools/post_install/freebsd/CDE-SHLIBS.lst
+admin/IntegTools/post_install/freebsd/CDE-TT.list
+admin/IntegTools/post_install/freebsd/CDE-TT.lst
+admin/IntegTools/post_install/freebsd/configMin
+admin/IntegTools/post_install/freebsd/configRun
+admin/IntegTools/post_install/freebsd/configShlibs
+admin/IntegTools/post_install/freebsd/configTT
+
 admin/IntegTools/post_install/configDemos
 admin/IntegTools/post_install/configFonts
 admin/IntegTools/post_install/configHelp
@@ -279,6 +292,8 @@ programs/dtappbuilder/src/libABil/bil_parse.h
 config/imake/Makefile.proto
 
 # doc 
+doc/C/help/book.log
+doc/C/help/book.out.idx
 doc/C/help-sdl/
 doc/C/m-guides/
 doc/C/man/man1/
diff --git a/cde/admin/IntegTools/dbTools/installCDE.src 
b/cde/admin/IntegTools/dbTools/installCDE.src
index 9c90278..b969240 100755
--- a/cde/admin/IntegTools/dbTools/installCDE.src
+++ b/cde/admin/IntegTools/dbTools/installCDE.src
@@ -51,7 +51,7 @@ REVISION="$(echo "$Revision: /main/20 $" | awk '{print $2}')"
 
 Log()
 {
-  echo "$1" | tee -a $LOGFILE
+  /bin/echo "$1" | tee -a $LOGFILE
 }
 
 MakeTarball()
@@ -240,6 +240,9 @@ RestartInetd()
   elif [ "$PLATFORM" = "openbsd" ]
   then
     true
+  elif [ "$PLATFORM" = "freebsd" ]
+  then
+    /etc/rc.d/inetd start
   else
 #ifdef hpV4
     /usr/sbin/inetd 
@@ -543,6 +546,10 @@ XCOMM
   then
     PLATFORM="linux"
     PLATFORM_SCRIPT_DIR=""
+  elif [ $BUILDSYSTEM = "FreeBSD" ];
+  then
+    PLATFORM="freebsd"
+    PLATFORM_SCRIPT_DIR="freebsd"
   elif [ $BUILDSYSTEM = "OpenBSD" ];
   then
     PLATFORM="openbsd"
diff --git a/cde/admin/IntegTools/dbTools/udbParseLib.awk 
b/cde/admin/IntegTools/dbTools/udbParseLib.awk
index a10af39..cf7faab 100644
--- a/cde/admin/IntegTools/dbTools/udbParseLib.awk
+++ b/cde/admin/IntegTools/dbTools/udbParseLib.awk
@@ -268,6 +268,13 @@ function tokenize() {
                        printf(" ") > DeBugFile
                print "Entering function tokenize:" > DeBugFile
        }
+       # Workaround for a strange awk bug, seen on FreeBSD
+       # and results in .db files generated with
+       #   Syntax ERROR line: 10 of file: CDE-INC.udb
+       #           Missing initial {
+       #
+       DUMMY = $0
+
        # Skip blank/comment lines
        while ( NF == 0 || $0 ~ /^[     ]*#/  ) {
                if ( (getline) <= 0 ) {
diff --git a/cde/admin/IntegTools/post_install/Imakefile 
b/cde/admin/IntegTools/post_install/Imakefile
index 3b6bc43..b0dcbf8 100644
--- a/cde/admin/IntegTools/post_install/Imakefile
+++ b/cde/admin/IntegTools/post_install/Imakefile
@@ -25,6 +25,7 @@ PLATFORM = openbsd
 #endif
 #ifdef FreeBSDArchitecture
 PLATFORM = freebsd
+SUBDIRS = freebsd
 #endif
 #ifdef RsArchitecture
 PLATFORM = aix
diff --git a/cde/admin/IntegTools/post_install/freebsd/Imakefile 
b/cde/admin/IntegTools/post_install/freebsd/Imakefile
new file mode 100644
index 0000000..7bf6c55
--- /dev/null
+++ b/cde/admin/IntegTools/post_install/freebsd/Imakefile
@@ -0,0 +1,65 @@
+XCOMM $TOG: Imakefile /main/1 1998/03/11 16:08:16 mgreess $
+TOOL_DIR = ../../dbTools
+DATABASE_DIR = ../../../../databases
+
+#ifdef HPArchitecture
+PLATFORM = hp-ux
+#endif
+#ifdef LinuxArchitecture
+PLATFORM = linux
+#endif
+#ifdef FreeBSDArchitecture
+PLATFORM = freebsd
+#endif
+#ifdef RsArchitecture
+PLATFORM = aix
+#endif
+#ifdef SunArchitecture
+PLATFORM = sun
+.NO_PARALLEL:
+#endif
+#ifdef USLArchitecture
+PLATFORM = usl
+#endif
+#ifdef UXPArchitecture
+PLATFORM = uxp
+#endif
+
+UDBTOANY = $(KORNSHELL) $(TOOL_DIR)/udbToAny.ksh
+BUILD_UDB_LIST = $(SHELL) ../build_udb_list
+
+all::
+
+configMin:: $(DATABASE_DIR)/CDE-MIN.udb
+       $(UDBTOANY) -toLst -ReleaseStream $(PLATFORM) \
+            $(DATABASE_DIR)/CDE-MIN.udb > CDE-MIN.lst
+       $(BUILD_UDB_LIST) CDE-MIN ../../../..
+
+configTT:: $(DATABASE_DIR)/CDE-TT.udb
+       $(UDBTOANY) -toLst -ReleaseStream $(PLATFORM) \
+            $(DATABASE_DIR)/CDE-TT.udb > CDE-TT.lst
+       $(BUILD_UDB_LIST) CDE-TT ../../../..
+
+configRun:: $(DATABASE_DIR)/CDE-RUN.udb
+       $(UDBTOANY) -toLst -ReleaseStream $(PLATFORM) \
+            $(DATABASE_DIR)/CDE-RUN.udb > CDE-RUN.lst
+       $(BUILD_UDB_LIST) CDE-RUN ../../../..
+
+configShlibs:: $(DATABASE_DIR)/CDE-SHLIBS.udb
+       $(UDBTOANY) -toLst -ReleaseStream $(PLATFORM) \
+            $(DATABASE_DIR)/CDE-SHLIBS.udb > CDE-SHLIBS.lst
+       $(BUILD_UDB_LIST) CDE-SHLIBS ../../../..
+
+LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
+                    -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
+                    -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP)
+
+AllTarget(configShlibs configTT configRun configMin)
+
+CppScriptTarget(configShlibs,configShlibs.src,$(LOCAL_CPP_DEFINES),)
+CppScriptTarget(configTT,configTT.src,$(LOCAL_CPP_DEFINES),)
+CppScriptTarget(configRun,configRun.src,$(LOCAL_CPP_DEFINES),)
+CppScriptTarget(configMin,configMin.src,$(LOCAL_CPP_DEFINES),)
+
+clean::
+       $(RM) *.lst *.list
diff --git a/cde/admin/IntegTools/post_install/freebsd/configMin.src 
b/cde/admin/IntegTools/post_install/freebsd/configMin.src
new file mode 100755
index 0000000..1eb1aa3
--- /dev/null
+++ b/cde/admin/IntegTools/post_install/freebsd/configMin.src
@@ -0,0 +1,271 @@
+XCOMM! /bin/ksh
+XCOMM #######
+XCOMM  Product: CDE
+XCOMM  Fileset: CDE-MIN
+XCOMM  configure
+XCOMM  @(#) $TOG: configMin.src /main/1 1998/03/11 16:18:12 mgreess $
+XCOMM #######
+#define HASH #
+
+PRODUCT=CDE
+FILESET=CDE-MIN
+DO_CONFIGURATION=""
+retval=0
+
+FixEtcServices()
+{
+FILE=/etc/services
+TMPFILE=/tmp/services
+
+XCOMM
+XCOMM check for existence of /etc/services
+XCOMM
+
+    if [ ! -f $FILE ]  # highly unlikely
+    then
+       echo "" >$FILE
+    fi
+
+XCOMM
+XCOMM see if it already exists
+XCOMM
+
+    awk '{if ($1 == "dtspc")
+               print $0 > "/tmp/dtspc-already-there"
+        }' $FILE >/dev/null
+
+    if [ ! -f /tmp/dtspc-already-there ]
+    then
+        printf "dtspc\t\t6112/tcp\t#subprocess control" >>$FILE
+    else
+       rm /tmp/dtspc-already-there
+    fi
+
+XCOMM
+XCOMM remove legacy entries like dtspcd
+XCOMM
+
+    awk '{if ($1 == "dtspcd" || $1 == "#dtspcd")
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+}
+
+UnfixEtcServices()
+{
+FILE=/etc/services
+TMPFILE=/tmp/services
+
+    awk '{if ($1 == "dtspc" && $2 == "6112/tcp")
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+}
+
+FixEtcInetdDotConf()
+{
+FILE=/etc/inetd.conf
+TMPFILE=/tmp/inetd.conf
+
+XCOMM
+XCOMM check for existence of /etc/inetd.conf
+XCOMM
+
+    if [ ! -f $FILE ]  # highly unlikely
+    then
+       echo "" >$FILE
+    fi
+
+XCOMM
+XCOMM see if it already exists
+XCOMM
+
+    awk '{if ($1 == "dtspc")
+               print $0 > "/tmp/dtspc-already-there"
+        }' $FILE >/dev/null
+
+    DTSPCD=CDE_INSTALLATION_TOP/bin/dtspcd
+
+    if [ ! -f /tmp/dtspc-already-there ]
+    then
+        echo "dtspc stream tcp nowait root $DTSPCD $DTSPCD" >>$FILE
+    else
+       rm /tmp/dtspc-already-there
+    fi
+
+XCOMM
+XCOMM remove legacy entries like dtspcd
+XCOMM
+
+    awk '{if ($1 == "dtspcd" || $1 == "#dtspcd")
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+}
+
+UnfixEtcInetdDotConf()
+{
+FILE=/etc/inetd.conf
+TMPFILE=/tmp/inetd.conf
+
+    awk '{if ($1 == "dtspc")
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+}
+
+FixEtcPamDotConf()
+{
+FILE=/etc/pam.conf
+ORIGFILE=/etc/pam.conf.preCDE
+
+XCOMM
+XCOMM check for existence of /etc/pam.conf
+XCOMM
+
+    if [ -f $FILE ]
+    then
+       echo "" > $ORIGFILE
+       cp CDE_INSTALLATION_TOP/config/sys.pam.conf $FILE
+       chmod 644 $FILE
+    else
+       echo "Warning: $FILE already exists.  Leaving it alone." 1>&2
+       cp CDE_INSTALLATION_TOP/config/sys.pam.conf $ORIGFILE
+    fi
+
+}
+
+UnfixEtcPamDotConf()
+{
+FILE=/etc/pam.conf
+TMPFILE=/etc/pam.conf.CDE
+ORIGFILE=/etc/pam.conf.preCDE
+
+    if [ ! -f $FILE ]
+    then
+       echo "Warning: $FILE does not exist." 1>&2
+    elif [ ! -f $ORIGFILE ]
+    then
+       echo "Warning: $ORIGFILE does not exist.  Leaving $FILE alone." 1>&2
+    else
+       mv $FILE $TMPFILE
+       cp $ORIGFILE $FILE
+       chmod 664 $FILE
+    fi
+}
+
+RemoveMinFiles()
+{
+    while read SRC
+    do
+      if [ "$SRC" != "" ]
+      then
+       rm -f $SRC
+       dirname=${SRC%/STAR}
+       if [ -d $dirname ]
+       then
+         cd $dirname
+         while [ "$dirname" != "$CDE_TOP" ]
+         do
+           cd ..
+           rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
+           dirname=${dirname%/STAR}
+         done
+       fi
+      fi
+    done <<-EOF
+#include "CDE-MIN.list"
+       EOF
+}
+
+VerifyInstalledFiles()
+{
+    echo "Status   mode    owner   group   filename"
+    echo "-----------------------------------------"
+XCOMM    exists  correct correct correct  /usr/dt/foo1
+XCOMM    MISSING  WRONG   WRONG   WRONG   /usr/dt/foo2
+XCOMM        exists    the link is correct    /usr/dt/link
+
+    while read SRC
+    do
+#include "../verify.func"
+    done <<-EOF
+#include "CDE-MIN.lst"
+       EOF
+}
+
+#include "../option.func"
+
+XCOMM ###############################################################
+XCOMM
+XCOMM Main Body
+XCOMM
+XCOMM ###############################################################
+
+  HandleOption $*
+
+  if [ "$OPERATION" = "configure" ]
+  then
+
+    FixEtcServices
+
+    FixEtcInetdDotConf
+
+    HASH
+    HASH  create the /var/dt/tmp directory for the dtspcd
+    HASH
+
+    if [ ! -d CDE_LOGFILES_TOP/tmp ]
+    then
+       mkdir -p CDE_LOGFILES_TOP/tmp
+    fi
+
+  elif [ "$OPERATION" = "deconfigure" ]
+  then
+
+    UnfixEtcServices
+
+    UnfixEtcInetdDotConf
+
+    RemoveMinFiles
+
+    VerifyInstalledFiles
+
+  elif [ "$OPERATION" = "verify" ]
+  then
+
+    VerifyInstalledFiles
+
+  fi
+
+  if [ "$OPERATION" != "verify" ]
+  then
+
+    HASH issue a SIGHUP to the inetd process
+
+    ps ax | grep inetd | grep -v grep >/tmp/tmppsout
+    if [ -s /tmp/tmppsout ]
+    then
+       awk '{print "kill -1 " $1}' /tmp/tmppsout | /bin/csh
+    else
+       /etc/rc.d/inetd onestart
+    fi
+  fi
+
+  return $retval
diff --git a/cde/admin/IntegTools/post_install/freebsd/configRun.src 
b/cde/admin/IntegTools/post_install/freebsd/configRun.src
new file mode 100755
index 0000000..7c4901f
--- /dev/null
+++ b/cde/admin/IntegTools/post_install/freebsd/configRun.src
@@ -0,0 +1,336 @@
+XCOMM! /bin/ksh
+XCOMM #######
+XCOMM  Product: CDE
+XCOMM  Fileset: CDE-RUN
+XCOMM  configure
+XCOMM  @(#) $TOG: configRun.src /main/1 1998/03/11 16:18:24 mgreess $
+XCOMM #######
+
+#define HASH #
+#define STAR *
+
+PRODUCT=CDE
+FILESET=CDE-RUN
+DO_CONFIGURATION=""
+retval=0
+
+FixInetdDotConf()
+{
+FILE=/etc/inetd.conf
+TMPFILE=/tmp/inetd.conf
+CMSD=CDE_INSTALLATION_TOP/bin/rpc.cmsd
+
+XCOMM
+XCOMM desired inetd.conf entry:
+XCOMM cmsd/2-4 dgram rpc/udp wait root CDE_INSTALLATION_TOP/bin/rpc.cmsd 
rpc.cmsd
+XCOMM
+
+XCOMM first make an awk script and put it in a file.
+XCOMM
+
+XCOMM comment out any non-cde rpc.cmsd lines
+XCOMM
+
+    nawk -v cmsd=$CMSD \
+       '{if ($1 == "cmsd/2-4" && $6 != cmsd)
+               print "#cde " $0;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+
+XCOMM remove any cde 2-4 cmsd
+XCOMM
+
+    nawk -v cmsd=$CMSD \
+       '{if ($1 == "cmsd/2-4" && $6 == cmsd)
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+
+XCOMM
+XCOMM now run an awk script to see if there is an occurrence of 2-5 cmsd
+XCOMM
+
+    nawk -v cmsd=$CMSD \
+       '{if ($6 == cmsd && $1 == "cmsd/2-5")
+               print $0 > "/tmp/cmsd-already-there"
+        }' $FILE >/dev/null
+
+XCOMM
+XCOMM if it is not there, add it
+XCOMM
+
+    if [ ! -f /tmp/cmsd-already-there ]
+    then
+        echo "cmsd/2-5 dgram rpc/udp wait root $CMSD rpc.cmsd" >>$FILE
+    else
+       rm /tmp/cmsd-already-there
+    fi
+
+}
+
+UnfixInetdDotConf()
+{
+FILE=/etc/inetd.conf
+TMPFILE=/tmp/inetd.conf
+CMSD=CDE_INSTALLATION_TOP/bin/rpc.cmsd
+
+    HASH first remove the CDE rpc.cmsd entry
+
+    nawk -v cmsd=$CMSD \
+       '{if (($1 == "cmsd/2-4" || $1 == "cmsd/2-5") && $6 == cmsd)
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+
+    HASH now uncomment any previously existing cmsd entry
+
+    awk '{if ($1 == "#cde") {
+               if ($2 == "cmsd/2-4") {
+                       $1 = $2;
+                       $2 = ""
+               }
+         }
+         print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+}
+
+CreateAppConfigDirectory()
+{
+  HASH
+  HASH Create the APPCONFIG directory inside DT_CONFIG_TOP and create
+  HASH all of its subdirectories
+  HASH
+
+    cd $DT_CONFIG_TOP
+    if [ ! -d $APPCONFIG ]
+    then
+       mkdir $APPCONFIG
+    fi
+
+    cd $APPCONFIG
+
+    for i in $APPCONFIG_DIRS
+    do
+       if [ ! -d $i ]
+       then
+           mkdir $i
+       fi
+       cd $i
+        HASH
+       HASH for each locale
+       HASH
+       for j in $DT_TOP/$APPCONFIG/$i/STAR
+       do
+           if [ ! -d `basename $j` ]
+           then
+               mkdir `basename $j`
+           fi
+       done
+       cd ..
+    done
+
+}
+
+doDttermTerminfo()
+{
+    if [ -f $DT_TOP/config/dtterm.ti ]
+    then
+       tic $DT_TOP/config/dtterm.ti
+    else
+       echo "Unable to find $DT_TOP/config/dtterm.ti"
+    fi
+}
+
+RemoveRunFiles()
+{
+    while read SRC
+    do
+      if [ "$SRC" != "" ]
+      then
+       rm -f $SRC
+       dirname=${SRC%/STAR}
+       if [ -d $dirname ]
+       then
+         cd $dirname
+         while [ "$dirname" != "$CDE_TOP" ]
+         do
+           cd ..
+           rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
+           dirname=${dirname%/STAR}
+         done
+       fi
+      fi
+    done <<-EOF
+#include "CDE-RUN.list"
+       EOF
+}
+
+
+VerifyInstalledFiles()
+{
+    echo "Status   mode    owner   group   filename"
+    echo "-----------------------------------------"
+XCOMM    exists  correct correct correct  /usr/dt/foo1
+XCOMM    MISSING  WRONG   WRONG   WRONG   /usr/dt/foo2
+XCOMM        exists    the link is correct    /usr/dt/link
+
+    while read SRC
+    do
+#include "../verify.func"
+    done <<-EOF
+#include "CDE-RUN.lst"
+       EOF
+}
+
+
+PrintUsage()
+{
+  echo "Usage:" $0 "[OPERATION]"
+  echo ""
+  echo "Operations:"
+  echo "    -e        configure"
+  echo "    -d        deconfigure"
+  echo "    -v        verify"
+  echo "    -s        size"
+  echo "    -h        help"
+}
+
+#include "../option.func"
+
+XCOMM 
##########################################################################
+XCOMM
+XCOMM                          Main Body
+XCOMM
+XCOMM 
##########################################################################
+
+PRODUCT=CDE
+FILESET=CDE-RUN
+
+DT_TOP=CDE_INSTALLATION_TOP
+DT_CONFIG_TOP=CDE_CONFIGURATION_TOP
+DT_TEMP_TOP=CDE_LOGFILES_TOP
+ROOT=/
+
+retval=0
+
+APPCONFIG=appconfig
+APPCONFIG_DIRS="appmanager help icons types"
+PRINTERS=""
+DEFAULT_PRINTER="DtPrint"
+
+  HandleOption $*
+
+  if [ "$OPERATION" = "usage" ]
+  then
+    PrintUsage
+    exit 0
+  fi
+
+  if [ "$OPERATION" = "configure" ]
+  then
+
+    HASH
+    HASH create the CDE_LOGFILES_TOP directory
+    HASH
+
+    if [ ! -d $DT_TEMP_TOP/$APPCONFIG/appmanager ]
+    then
+       mkdir -p $DT_TEMP_TOP/$APPCONFIG/appmanager
+    fi
+
+    cd $DT_TEMP_TOP
+    mv $APPCONFIG/appmanager .hidden-appmanager
+    chmod -R 755 *
+    chmod 755 .hidden-appmanager
+    chown -R bin *
+    chgrp -R bin *
+    mv .hidden-appmanager $APPCONFIG/appmanager
+    chmod 755 .
+    chown bin .
+    chgrp bin .
+
+    HASH
+    HASH create the CDE_CONFIGURATION_TOP and its config directory
+    HASH
+    if [ ! -d $DT_CONFIG_TOP ]
+    then
+       mkdir -p $DT_CONFIG_TOP
+    fi
+    if [ ! -d $DT_CONFIG_TOP/config ]
+    then
+       mkdir -p $DT_CONFIG_TOP/config
+    fi
+
+    CreateAppConfigDirectory
+
+    HASH
+    HASH ConfigurePrintersDir
+    HASH
+    env LANG=C /usr/dt/bin/dtprintinfo -populate
+
+    HASH
+    HASH Configure Xsession.d
+    HASH
+
+    cd $DT_CONFIG_TOP/config
+    if [ ! -d Xsession.d ]
+    then
+       mkdir Xsession.d
+    fi
+
+    cd $DT_CONFIG_TOP
+    chmod -R 755 *
+
+    FixInetdDotConf
+
+    doDttermTerminfo
+
+  elif [ "$OPERATION" = "deconfigure" ]
+  then
+
+    UnfixInetdDotConf
+
+    RemoveRunFiles
+
+    VerifyInstalledFiles
+
+  elif [ "$OPERATION" = "verify" ]
+  then
+
+    VerifyInstalledFiles
+
+  fi
+
+  if [ "$OPERATION" != "verify" ]
+  then
+
+    HASH issue a SIGHUP to the inetd process
+
+    ps ax | grep inetd | grep -v grep >/tmp/tmppsout
+    if [ -s /tmp/tmppsout ]
+    then
+       awk '{print "kill -1 " $1}' /tmp/tmppsout | /bin/csh
+    else
+       [ -x /etc/rc.d/inetd ] && /etc/rc.d/inetd onestart
+    fi
+  fi
+
+  HASH dtmail requires setgid
+  chmod 2555 $DT_TOP/bin/dtmail
+
+  return $retval
diff --git a/cde/admin/IntegTools/post_install/freebsd/configShlibs.src 
b/cde/admin/IntegTools/post_install/freebsd/configShlibs.src
new file mode 100755
index 0000000..aa67ac8
--- /dev/null
+++ b/cde/admin/IntegTools/post_install/freebsd/configShlibs.src
@@ -0,0 +1,109 @@
+XCOMM!/bin/ksh
+XCOMM $TOG: configShlibs.src /main/1 1998/03/11 16:18:33 mgreess $
+
+#define STAR *
+
+XCOMM ############################################
+RemoveShlibFiles()
+{
+    while read SRC
+    do
+      if [ "$SRC" != "" ]
+      then
+       rm -f $SRC
+       dirname=${SRC%/STAR}
+       if [ -d $dirname ]
+       then
+         cd $dirname
+         while [ "$dirname" != "$CDE_TOP" ]
+         do
+           cd ..
+           rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
+           dirname=${dirname%/STAR}
+         done
+       fi
+      fi
+    done <<-EOF
+#include "CDE-SHLIBS.list"
+       EOF
+}
+
+VerifyInstalledFiles()
+{
+    echo "Status   mode    owner   group   filename"
+    echo "-----------------------------------------"
+XCOMM    exists  correct correct correct  /usr/dt/foo1
+XCOMM    MISSING  WRONG   WRONG   WRONG   /usr/dt/foo2
+XCOMM        exists    the link is correct    /usr/dt/link
+
+    while read SRC
+    do
+#include "../verify.func"
+    done <<-EOF
+#include "CDE-SHLIBS.lst"
+       EOF
+}
+
+#include "../option.func"
+
+MakeTheLink()
+{
+XCOMM
+XCOMM Usage: configTT
+XCOMM
+XCOMM creates links in the install tree libtt.so -> libtt.so.1
+XCOMM
+
+  cd CDE_INSTALLATION_TOP/lib
+
+  for lib in `/bin/ls *.so.*`
+  do
+    link=`echo $lib | cut -d. -f1,2`
+
+    rm -f $link
+    ln -s $lib $link
+
+  done
+
+}
+
+XCOMM #########################################################################
+XCOMM
+XCOMM                          Main Body
+XCOMM
+XCOMM #########################################################################
+
+PRODUCT=CDE
+FILESET=CDE-SHLIBS
+retval=0
+CDE_TOP=CDE_INSTALLATION_TOP
+CDE_CONF_TOP=CDE_CONFIGURATION_TOP
+
+  HandleOption $*
+
+  if [ "$OPERATION" = "deconfigure" ]
+  then
+
+    echo "de-Configuring for CDE-SHLIBS..."
+
+    RemoveShlibFiles
+
+    /sbin/ldconfig -R
+ 
+    VerifyInstalledFiles
+
+  elif [ "$OPERATION" = "configure" ]
+  then
+
+    MakeTheLink
+
+    /sbin/ldconfig -m "${DT_TOP}/lib"
+
+  elif [ "$OPERATION" = "verify" ]
+  then
+
+    VerifyInstalledFiles
+
+  fi
+
+  return $retval
diff --git a/cde/admin/IntegTools/post_install/freebsd/configTT.src 
b/cde/admin/IntegTools/post_install/freebsd/configTT.src
new file mode 100755
index 0000000..6791082
--- /dev/null
+++ b/cde/admin/IntegTools/post_install/freebsd/configTT.src
@@ -0,0 +1,166 @@
+XCOMM! /bin/ksh
+XCOMM #######
+XCOMM  Product: CDE
+XCOMM  Fileset: CDE-TT
+XCOMM  configure
+XCOMM  @(#) $TOG: configTT.src /main/1 1998/03/11 16:18:40 mgreess $
+XCOMM #######
+XCOMM
+XCOMM (c) Copyright Hewlett-Packard Company, 1993
+XCOMM
+XCOMM #######
+#define HASH #
+
+PRODUCT=CDE
+FILESET=CDE-TT
+DO_CONFIGURATION=""
+retval=0
+
+FixInetdDotConf()
+{
+FILE=/etc/inetd.conf
+TMPFILE=/tmp/inetd.conf
+TTDBSERVERD=CDE_INSTALLATION_TOP/bin/rpc.ttdbserver
+
+XCOMM
+XCOMM see if it already exists
+XCOMM
+
+    nawk -v ttdb=$TTDBSERVERD \
+       '{if ($1 == "ttdbserver/1" && $6 != ttdb)
+               print "#cde " $0;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+
+    awk '{if ($1 == "ttdbserver/1")
+               print $0 > "/tmp/tt-already-there"
+        }' $FILE >/dev/null
+
+    if [ ! -f /tmp/tt-already-there ]
+    then
+        echo "ttdbserver/1 stream rpc/tcp wait root $TTDBSERVERD $TTDBSERVERD" 
\
+                >>$FILE
+    else
+       rm /tmp/tt-already-there
+    fi
+}
+
+UnfixInetdDotConf()
+{
+FILE=/etc/inetd.conf
+TMPFILE=/tmp/inetd.conf
+TTDBSERVERD=CDE_INSTALLATION_TOP/bin/rpc.ttdbserver
+
+    nawk -v ttdb=$TTDBSERVERD \
+       '{if ($1 == "ttdbserver/1" && $6 == ttdb)
+               ;
+         else
+               print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+
+    awk '{if ($1 == "#cde" && ($2 == "ttdbserver/1" || $2 == "ttdbserver")) {
+               $1 = $2;
+               $2 = ""
+            }
+            print $0
+        }' $FILE >$TMPFILE
+
+    cp $TMPFILE $FILE
+    rm $TMPFILE
+}
+
+RemoveTTFiles()
+{
+    while read SRC
+    do
+      if [ "$SRC" != "" ]
+      then
+       rm -f $SRC
+       dirname=${SRC%/STAR}
+       if [ -d $dirname ]
+       then
+         cd $dirname
+         while [ "$dirname" != "$CDE_TOP" ]
+         do
+           cd ..
+           rmdir ${dirname##STAR/} >/dev/null 2>/dev/null
+           dirname=${dirname%/STAR}
+         done
+       fi
+      fi
+    done <<-EOF
+#include "CDE-TT.list"
+       EOF
+}
+
+VerifyInstalledFiles()
+{
+    echo "Status   mode    owner   group   filename"
+    echo "-----------------------------------------"
+XCOMM    exists  correct correct correct  /usr/dt/foo1
+XCOMM    MISSING  WRONG   WRONG   WRONG   /usr/dt/foo2
+XCOMM        exists    the link is correct    /usr/dt/link
+
+    while read SRC
+    do
+#include "../verify.func"
+    done <<-EOF
+#include "CDE-TT.lst"
+       EOF
+}
+
+#include "../option.func"
+
+XCOMM ######################################################################
+XCOMM
+XCOMM                          Main Body
+XCOMM
+XCOMM ######################################################################
+
+  HandleOption $*
+
+  if [ "$OPERATION" = "configure" ]
+  then
+
+    FixInetdDotConf
+
+  elif [ "$OPERATION" = "deconfigure" ]
+  then
+
+    UnfixInetdDotConf
+
+    RemoveTTFiles
+
+    VerifyInstalledFiles
+
+  elif [ "$OPERATION" = "verify" ]
+  then
+
+    VerifyInstalledFiles
+
+  fi
+
+  if [ "$OPERATION" != "verify" ]
+  then
+
+    HASH issue a SIGHUP to the inetd process
+
+    ps ax | grep inetd | grep -v grep >/tmp/tmppsout
+    if [ -s /tmp/tmppsout ]
+    then
+       awk '{print "kill -1 " $1}' /tmp/tmppsout | /bin/csh
+    else
+       /etc/rc.d/inetd onestart
+    fi
+
+    rm /tmp/tmppsout
+  fi
+
+  return $retval
diff --git a/cde/config/cf/bsdLib.rules b/cde/config/cf/bsdLib.rules
index 0d18eca..03abd08 100644
--- a/cde/config/cf/bsdLib.rules
+++ b/cde/config/cf/bsdLib.rules
@@ -49,13 +49,17 @@ AllTarget(Concat(lib,libname.so.rev))                       
                @@\
                                                                        @@\
 Concat(lib,libname.so.rev):  solist $(EXTRALIBRARYDEPS)                        
@@\
        $(RM) $@~                                                       @@\
-       (cd down; $(LD) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
+       (cd down; T=`echo $@ | sed 's/\.[^\.]*$$//'`; \
+               $(LD) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS);\
+               $(RM) $$T && $(LN) $@ $$T) @@\
        $(RM) $@                                                        @@\
        $(MV) $@~ $@                                                    @@\
        $(RM) Concat(lib,libname.so)                                    @@\
        $(LN) $@ Concat(lib,libname.so)                                 @@\
        LinkBuildLibrary($@)                                            @@\
        LinkBuildLibrary(Concat(lib,libname.so))                        @@\
+       (T=`echo $@ | sed 's/\.[^\.]*$$//'`; \
+               $(RM) $(BUILDLIBDIR)/$$T; cd $(BUILDLIBDIR); $(LN) 
$(BUILDLIBTOP)/$(CURRENT_DIR)/$$T .) @@\
                                                                        @@\
 clean::                                                                        
@@\
        $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so)
diff --git a/cde/databases/CDE-SHLIBS.src b/cde/databases/CDE-SHLIBS.src
index a9db7f8..b23b92c 100644
--- a/cde/databases/CDE-SHLIBS.src
+++ b/cde/databases/CDE-SHLIBS.src
@@ -1295,3 +1295,130 @@ lib/DtMmdb/libDtMmdb.so.0.0
 }
 XCOMM 
 #endif
+
+XCOMM 
+XCOMM 
+XCOMM >>-----------------------------
+XCOMM  FreeBSD libraries
+XCOMM <<-----------------------------
+XCOMM 
+XCOMM 
+lib/DtHelp/libDtHelp.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtHelp.so.2
+        mode = 0555
+}
+XCOMM 
+./libDtHelp.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtHelp.so
+        type = sym_link
+}
+XCOMM 
+lib/DtPrint/libDtPrint.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtPrint.so.2
+        mode = 0555
+}
+XCOMM 
+./libDtPrint.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtPrint.so
+        type = sym_link
+}
+XCOMM 
+lib/DtMrm/libDtMrm.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtMrm.so.2
+        mode = 0555
+}
+XCOMM 
+./libDtMrm.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtMrm.so
+        type = sym_link
+}
+XCOMM 
+lib/DtSvc/libDtSvc.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtSvc.so.2
+        mode = 0555
+}
+XCOMM 
+./libDtSvc.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtSvc.so
+        type = sym_link
+}
+XCOMM 
+lib/DtWidget/libDtWidget.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtWidget.so.2
+        mode = 0555
+}
+XCOMM 
+./libDtWidget.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtWidget.so
+        type = sym_link
+}
+XCOMM 
+lib/DtTerm/libDtTerm.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtTerm.so.2
+        mode = 0555
+}
+XCOMM 
+./libDtTerm.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtTerm.so
+        type = sym_link
+}
+XCOMM 
+lib/tt/lib/libtt.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libtt.so.2
+        mode = 0555
+}
+XCOMM 
+./libtt.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libtt.so
+        type = sym_link
+}
+XCOMM 
+lib/csa/libcsa.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libcsa.so.2
+        mode = 0555
+}
+XCOMM 
+./libcsa.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libcsa.so
+        type = sym_link
+}
+XCOMM 
+lib/DtSearch/libDtSearch.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtSearch.so.2
+       mode = 0555
+}
+XCOMM 
+./libDtSearch.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtSearch.so
+        type = sym_link
+}
+XCOMM 
+lib/DtMmdb/libDtMmdb.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtMmdb.so.2
+       mode = 0755
+}
+XCOMM 
+./libDtMmdb.so.2.1
+{ freebsd
+        install_target = /usr/dt/lib/libDtMmdb.so
+        type = sym_link
+}
diff --git a/cde/programs/Imakefile b/cde/programs/Imakefile
index f6b1835..7ba46a7 100644
--- a/cde/programs/Imakefile
+++ b/cde/programs/Imakefile
@@ -6,40 +6,52 @@ XCOMM $XConsortium: Imakefile /main/17 1996/10/06 17:13:20 
rws $
 NSGMLSDIR = nsgmls
 #endif
 EXTRADIRS = types localized tttypes $(NSGMLSDIR)
-#if !defined(OpenBSDArchitecture)
-EXTRADIRS += util
-#endif
 
 XCOMM some of these cannot be built on linux yet.
 XCOMM dtksh dtinfo
-#if defined(LinuxArchitecture) || defined(OpenBSDArchitecture)
+#if defined(LinuxArchitecture)
+DTKSHDIR = 
+DTINFODIR = 
+DTCMDIR = dtcm
+DTLOGINDIR = dtlogin
+UTILDIR = util
+#elif defined(OpenBSDArchitecture)
 DTKSHDIR = 
 DTINFODIR = 
+DTCM = dtcm
+DTLOGIN = dtlogin
+UTILDIR =
 #elif defined(FreeBSDArchitecture)
-DTKSHDIR = dtksh
+DTKSHDIR = 
 DTINFODIR = 
+DTCMDIR =
+DTLOGINDIR =
+UTILDIR =
 #else
 DTKSHDIR = dtksh
 DTINFODIR = dtinfo
+DTCMDIR = dtcm
+DTLOGINDIR = dtlogin
+UTILDIR = util
 #endif
 
 
-SUBDIRS = dthelp dsdm dtmail dtpad dtfile dtwm dtlogin \
+SUBDIRS = dthelp dsdm dtmail dtpad dtfile dtwm $(DTLOGINDIR) \
        dtsession dthello dtstyle dtexec dtdbcache dticon dtterm \
        dtcalc dtaction dtspcd \
-       dtscreen $(DTKSHDIR) dtcm dtsearchpath \
+       dtscreen $(DTKSHDIR) $(DTCMDIR) dtsearchpath \
         dtappbuilder dtappintegrate dtprintegrate dtconfig \
         dtcreate dtprintinfo fontaliases dtdspmsg ttsnoop \
        dtudcfonted dtudcexch dtimsstart dtdocbook dtpdm dtsr \
-       dtpdmd $(DTINFODIR) $(EXTRADIRS)
+       dtpdmd $(DTINFODIR) $(UTILDIR) $(EXTRADIRS)
 
-LINTSUBDIRS = dthelp dsdm dtmail dtpad dtfile dtlogin dtwm \
+LINTSUBDIRS = dthelp dsdm dtmail dtpad dtfile $(DTLOGINDIR) dtwm \
        dtsession dthello dtstyle dtexec dtdbcache dticon dtterm \
        dtcalc dtaction dtcreate \
-       dtscreen $(DTKSHDIR) dtcm dtsearchpath \
+       dtscreen $(DTKSHDIR) $(DTCMDIR) dtsearchpath \
         dtappbuilder dtappintegrate dtprintegrate dtprintinfo dtdspmsg \
        dtudcfonted dtudcexch dtimsstart dtdocbook dtpdm dtsr \
-       dtpdmd $(DTINFODIR) $(EXTRADIRS)
+       dtpdmd $(DTINFODIR) $(UTILDIR) $(EXTRADIRS)
 
 MakeSubdirs($(SUBDIRS))
 DependSubdirs($(SUBDIRS))
-- 
1.7.9.2


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to