- build shared libraries with major number only (libtt.so.2) - don't build dtlogin and dtinfo
FreeBSD support for the installer: - work around awk issue - create post_install FreeBSD scripts - install only cmsd on /etc/inetd.conf skip dtspc and ttdbserver for now Note to users: please check if you are affected by awk bug in udbParseLib.awk if you can. --- cde/.gitignore | 13 + cde/admin/IntegTools/dbTools/installCDE.src | 17 +- 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 | 257 +++++++++++++++ .../IntegTools/post_install/freebsd/configRun.src | 331 ++++++++++++++++++++ .../post_install/freebsd/configShlibs.src | 109 +++++++ .../IntegTools/post_install/freebsd/configTT.src | 150 +++++++++ cde/config/cf/FreeBSD.cf | 9 +- cde/config/cf/bsdLib.rules | 4 +- cde/databases/CDE-SHLIBS.src | 127 ++++++++ cde/programs/Imakefile | 21 +- 13 files changed, 1099 insertions(+), 12 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 3d34ffa..6db7d00 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 diff --git a/cde/admin/IntegTools/dbTools/installCDE.src b/cde/admin/IntegTools/dbTools/installCDE.src index 8e64bef..9531ee8 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() @@ -210,6 +210,14 @@ CleanDaemons() elif [ "$PLATFORM" = openbsd ] then true + elif [ "$PLATFORM" = freebsd ] + then + ps axo pid,comm | grep $i > /tmppsout + if [ -s /tmp/tmppsout ] + then + awk '{print "kill " $1}' /tmp/tmppsout | /bin/csh -f + sleep 2 + fi else ps -ef | grep $i | grep -v grep >/tmp/tmppsout if [ -s /tmp/tmppsout ] @@ -240,6 +248,9 @@ RestartInetd() elif [ "$PLATFORM" = "openbsd" ] then true + elif [ "$PLATFORM" = "freebsd" ] + then + /etc/rc.d/inetd onestart else #ifdef hpV4 /usr/sbin/inetd @@ -543,6 +554,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 8669196..d1399af 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..977ac86 --- /dev/null +++ b/cde/admin/IntegTools/post_install/freebsd/configMin.src @@ -0,0 +1,257 @@ +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 tcp4 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 + + 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..9fbfbe2 --- /dev/null +++ b/cde/admin/IntegTools/post_install/freebsd/configRun.src @@ -0,0 +1,331 @@ +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/udp4 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/udp4 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 + + 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 + + /etc/rc.d/inetd onereload + fi + + HASH dtmail requires setgid + chmod 2555 $DT_TOP/bin/dtmail + + 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..8c9556a --- /dev/null +++ b/cde/admin/IntegTools/post_install/freebsd/configTT.src @@ -0,0 +1,150 @@ +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/tcp4 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 + + return $retval diff --git a/cde/config/cf/FreeBSD.cf b/cde/config/cf/FreeBSD.cf index 1a30064..cc6bf13 100644 --- a/cde/config/cf/FreeBSD.cf +++ b/cde/config/cf/FreeBSD.cf @@ -154,6 +154,9 @@ XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVe #define StandardIncludes -I/usr/local/include #define BuildLibPathVar LD_LIBRARY_PATH +#define DefaultUserPath /bin:/usr/bin:/usr/local/bin:$(BINDIR) +#define DefaultSystemPath /sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR) + #define TroffCmd groff -Tps #define SetTtyGroup YES #define HasNdbm YES @@ -167,8 +170,6 @@ XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVe #define HasPlugin YES #define VendorHasX11R6_3libXext YES /* XC or XFree86 3.3.1 */ -#include <bsdLib.rules> +#define CDESharedRev 2 -#ifdef i386Architecture -#include <xfree86.cf> -#endif +#include <bsdLib.rules> diff --git a/cde/config/cf/bsdLib.rules b/cde/config/cf/bsdLib.rules index 0d18eca..5f9d69d 100644 --- a/cde/config/cf/bsdLib.rules +++ b/cde/config/cf/bsdLib.rules @@ -49,13 +49,13 @@ AllTarget(Concat(lib,libname.so.rev)) @@\ @@\ Concat(lib,libname.so.rev): solist $(EXTRALIBRARYDEPS) @@\ $(RM) $@~ @@\ - (cd down; $(LD) -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\ + (cd down; $(LD) -o up/$@~ -soname $@ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ $(RM) Concat(lib,libname.so) @@\ $(LN) $@ Concat(lib,libname.so) @@\ LinkBuildLibrary($@) @@\ - LinkBuildLibrary(Concat(lib,libname.so)) @@\ + (cd $(BUILDLIBDIR) && $(LN) $@ Concat(lib,libname.so)) @@\ @@\ 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..ae03ebb 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 +{ freebsd + install_target = /usr/dt/lib/libDtHelp.so.2 + mode = 0555 +} +XCOMM +./libDtHelp.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtHelp.so + type = sym_link +} +XCOMM +lib/DtPrint/libDtPrint.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtPrint.so.2 + mode = 0555 +} +XCOMM +./libDtPrint.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtPrint.so + type = sym_link +} +XCOMM +lib/DtMrm/libDtMrm.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtMrm.so.2 + mode = 0555 +} +XCOMM +./libDtMrm.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtMrm.so + type = sym_link +} +XCOMM +lib/DtSvc/libDtSvc.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtSvc.so.2 + mode = 0555 +} +XCOMM +./libDtSvc.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtSvc.so + type = sym_link +} +XCOMM +lib/DtWidget/libDtWidget.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtWidget.so.2 + mode = 0555 +} +XCOMM +./libDtWidget.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtWidget.so + type = sym_link +} +XCOMM +lib/DtTerm/libDtTerm.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtTerm.so.2 + mode = 0555 +} +XCOMM +./libDtTerm.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtTerm.so + type = sym_link +} +XCOMM +lib/tt/lib/libtt.so.2 +{ freebsd + install_target = /usr/dt/lib/libtt.so.2 + mode = 0555 +} +XCOMM +./libtt.so.2 +{ freebsd + install_target = /usr/dt/lib/libtt.so + type = sym_link +} +XCOMM +lib/csa/libcsa.so.2 +{ freebsd + install_target = /usr/dt/lib/libcsa.so.2 + mode = 0555 +} +XCOMM +./libcsa.so.2 +{ freebsd + install_target = /usr/dt/lib/libcsa.so + type = sym_link +} +XCOMM +lib/DtSearch/libDtSearch.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtSearch.so.2 + mode = 0555 +} +XCOMM +./libDtSearch.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtSearch.so + type = sym_link +} +XCOMM +lib/DtMmdb/libDtMmdb.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtMmdb.so.2 + mode = 0755 +} +XCOMM +./libDtMmdb.so.2 +{ freebsd + install_target = /usr/dt/lib/libDtMmdb.so + type = sym_link +} diff --git a/cde/programs/Imakefile b/cde/programs/Imakefile index 4b1e1d0..5f9b6bc 100644 --- a/cde/programs/Imakefile +++ b/cde/programs/Imakefile @@ -12,28 +12,39 @@ XCOMM dtksh dtinfo #if defined(LinuxArchitecture) DTKSHDIR = DTINFODIR = -#elif defined(FreeBSDArchitecture) || defined(OpenBSDArchitecture) +DTCMDIR = dtcm +DTLOGINDIR = dtlogin +#elif defined(OpenBSDArchitecture) DTKSHDIR = dtksh DTINFODIR = +DTCMDIR = dtcm +DTLOGINDIR = dtlogin +#elif defined(FreeBSDArchitecture) +DTKSHDIR = dtksh +DTINFODIR = +DTCMDIR = dtcm +DTLOGINDIR = dtlogin/config #else DTKSHDIR = dtksh DTINFODIR = dtinfo +DTCMDIR = dtcm +DTLOGINDIR = dtlogin #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) -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) -- 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