Files
cdesktop/cde/programs/dtlogin/config/Xstartup.src
Marcin Cieslak 17a33f0430 Use KORNSHELL variable instead of /bin/ksh
This patch removes instances of hardcoded
invocation of /bin/ksh and allows to
replace it with, for, example,
/usr/local/bin/ksh93

Also "ksh93" is accepted whenever "ksh" is.

Tested using the following /bin/ksh:

----8<----
WHAT=`ps -o command= -p $PPID`
msg="Something tried to call /bin/ksh: $PPID: $WHAT"
print -u2 "$msg"
logger user.warn "$msg"
exit 99
----8<----
(Warning: first two lines are FreeBSD specific)

Scripts from Makefiles should now be executed either
with

$(KORNSHELL) korn-shell-script

or

$(SHELL) bourne-shell-script

therefore #!/bin/ksh has not been changed everywhere.

/usr/dt/bin/ scripts have been converted (e.g. Xsession)

Whenever possible Imake and CPP facilities have been used.

For C and C++ programs KORNSHELL needs to be defined to
"/path/to/your/ksh" (with quotes) so that it can make
a valid C constant.

Therefore, when adding KORNSHELL to Imakefile for C files,
you have to add

CXXEXTRA_DEFINES = -DKORNSHELL=\"$(KORNSHELL)\"

or similar (for example, see programs/dtprintinfo)

But for simple shell script substitution we usually change

 LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
                     -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
                     -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP)

to:

 LOCAL_CPP_DEFINES = -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \
                     -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
                     -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP) \
                     -DKORNSHELL=$(KORNSHELL) \
                     -DXPROJECTROOT=X11ProjectRoot

since we don't want quotes for shell scripts.
2012-08-23 20:00:43 -06:00

67 lines
2.1 KiB
Plaintext

XCOMM! KORNSHELL
XCOMM ##########################################################################
XCOMM
XCOMM Xstartup
XCOMM
XCOMM Common Desktop Environment (CDE)
XCOMM
XCOMM Configuration file for the Login Manager
XCOMM
XCOMM (c) Copyright 1993, 1994 Hewlett-Packard Company
XCOMM (c) Copyright 1993, 1994 International Business Machines Corp.
XCOMM (c) Copyright 1993, 1994 Sun Microsystems, Inc.
XCOMM (c) Copyright 1993, 1994 Novell, Inc.
XCOMM
XCOMM ************** DO NOT EDIT THIS FILE **************
XCOMM
XCOMM CDE_INSTALLATION_TOP/config/Xstartup is a factory-default file and will
XCOMM be unconditionally overwritten upon subsequent installation.
XCOMM Before making changes to the file, copy it to the configuration
XCOMM directory, CDE_CONFIGURATION_TOP/config. You must also update the startup
XCOMM resource in CDE_CONFIGURATION_TOP/config/Xconfig.
XCOMM
XCOMM $XConsortium: Xstartup.src /main/6 1996/08/15 16:52:10 rswiston $
XCOMM
XCOMM This file is typically a shell script. It is run as "root" and should be
XCOMM very careful about security. This is the place to put commands that
XCOMM display the message of the day or do other system-level functions on
XCOMM behalf of the user. The following are the environment variables set for
XCOMM use in the script:
XCOMM
XCOMM DISPLAY, HOME, PATH, USER, SHELL, TZ (timeZone)
XCOMM
XCOMM System Administrators are encouraged to use this file as a base to run
XCOMM system-wide initialization commands with good security.
XCOMM
XCOMM ##########################################################################
XCOMM
XCOMM This script is run as root after the user is verified...
XCOMM
XCOMM dtdbcache file's directory should match
XCOMM _DTDTSMMTEMPDIR in DtSvc/DtUtil1/DtsMM.h
#ifdef __osf__
DTDBFILE=/var/tmp/dtdbcache_$DISPLAY
#else
DTDBFILE=/tmp/dtdbcache_$DISPLAY
#endif
if [ -f $DTDBFILE ]
then
/bin/rm -f $DTDBFILE
fi
if [ "$DTXSERVERLOCATION" = "local" ]
then
if [[ ! -z "$ITE" && "$ITE" != "??" && -a "/dev/$ITE" ]]
then
/bin/chown $USER /dev/$ITE
/bin/chgrp $USER_GID /dev/$ITE
fi
fi