summaryrefslogtreecommitdiff
path: root/contrib/solaris
diff options
context:
space:
mode:
authormouring <mouring>2001-10-12 20:30:52 +0000
committermouring <mouring>2001-10-12 20:30:52 +0000
commit852cb0d3709ddf060e699921f6f13f1c055b0a8d (patch)
tree70d01b6f6b8000a3310692331957840684a8ac29 /contrib/solaris
parent1df47167e1ee58f7a2a922b6cd00efa819508b43 (diff)
downloadopenssh-852cb0d3709ddf060e699921f6f13f1c055b0a8d.tar.gz
- (bal) First wave of contrib/solaris/ package upgrades. Still more
work needs to be done, but it is a 190% better then the stuff we had before!
Diffstat (limited to 'contrib/solaris')
-rwxr-xr-xcontrib/solaris/README82
-rwxr-xr-xcontrib/solaris/build-pkg218
-rwxr-xr-xcontrib/solaris/buildpkg.sh82
-rw-r--r--contrib/solaris/checkinstall.in37
-rwxr-xr-xcontrib/solaris/opensshd.in88
-rw-r--r--contrib/solaris/pkginfo.in17
-rw-r--r--contrib/solaris/postinstall.in243
-rw-r--r--contrib/solaris/preremove2
-rw-r--r--contrib/solaris/prototype36
-rwxr-xr-xcontrib/solaris/sshd-initscript.in50
10 files changed, 170 insertions, 685 deletions
diff --git a/contrib/solaris/README b/contrib/solaris/README
deleted file mode 100755
index e5445c3a..00000000
--- a/contrib/solaris/README
+++ /dev/null
@@ -1,82 +0,0 @@
-README for OpenSSH Solaris packaging scripts
-Rip Loomis <loomisg@saic.com> - 2000-08-02
-
-To use, simply expand this tarball under your main
-OpenSSH source directory--it will create a
-contrib/solaris subdirectory. Run configure and
-make in OpenSSH as before. Then, from either
-that directory or the main OpenSSH source directory,
-run the command "build-pkg" (specifying the
-appropriate path of course.) A subdirectory
-will be created as contrib/solaris/build-SSH-package,
-and after the build is done the package will be
-present in that build-SSH-package directory
-with a name of the form
-OPENssh-$SSHversion-$arch-$OSversion[-$installLocation]
-
-The build and install scripts should take into account
-most possible situations (existing SSH installation,
-differences in Solaris version between build and
-target systems, changes you have made to the default
-configuration, etc.) I would appreciate any feedback
-or comments.
-
-Copyright information is included below, followed by the known issue list.
-Both are taken verbatim from the "build-pkg" script.
-
-# OpenSSH solaris build script and supporting data files
-# Copyright (c) 2000 Rip Loomis and
-# Science Applications International Corporation (SAIC)
-# (http://www.cist-east.saic.com). All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Obviously, without all the hard work of the OpenBSD OpenSSH developers
-# and the OpenSSH Portability Team, these scripts would be pointless...
-# so thanks again folks!
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-#### Known issues
-# These methods are generally based on a "default" compilation of
-# OpenSSH on Solaris--so the more things that you change from the default,
-# the greater the chance that something in the script won't be able to
-# handle the changes. In general, though, most things should be determined
-# from your compile environment--the architecture, SSH version, and
-# other related data should all get picked up by this script. The script
-# and data files were last updated to match OpenSSH 2.1.1p4.
-#
-# All building and packaging is done under a temporary directory that is
-# itself created under the contrib/solaris directory--so there shouldn't
-# be any special security issues (or need for root access during the
-# packaging process). The temporary directory is defined below as
-# ${BUILDDIR}.
-#
-# The permissions on the installed files are based on how we prefer to
-# do things here--so nothing is installed SetUID to root.
-#
-# The post-install script makes a good-faith attempt to install a
-# functional configuration on your system. I would be interested in hearing
-# of any failure modes that are found, as I tried to compensate for all
-# the ones that showed up here when we started replacing all the
-# different installed versions of SSH.
-
diff --git a/contrib/solaris/build-pkg b/contrib/solaris/build-pkg
deleted file mode 100755
index fe92d9dd..00000000
--- a/contrib/solaris/build-pkg
+++ /dev/null
@@ -1,218 +0,0 @@
-#!/bin/sh
-
-# OpenSSH solaris build script and supporting data files
-# Copyright (c) 2000 Rip Loomis and
-# Science Applications International Corporation (SAIC)
-# (http://www.cist-east.saic.com). All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Obviously, without all the hard work of the OpenBSD OpenSSH developers
-# and the OpenSSH Portability Team, these scripts would be pointless...
-# so thanks again folks!
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-#### Known issues
-# These methods are generally based on a "default" compilation of
-# OpenSSH on Solaris--so the more things that you change from the default,
-# the greater the chance that something in the script won't be able to
-# handle the changes. In general, though, most things should be determined
-# from your compile environment--the architecture, SSH version, and
-# other related data should all get picked up by this script. The script
-# and data files were last updated to match OpenSSH 2.1.1p4.
-#
-# All building and packaging is done under a temporary directory that is
-# itself created under the contrib/solaris directory--so there shouldn't
-# be any special security issues (or need for root access during the
-# packaging process). The temporary directory is defined below as
-# ${BUILDDIR}.
-#
-# The permissions on the installed files are based on how we prefer to
-# do things here--so nothing is installed SetUID to root.
-#
-# The post-install script makes a good-faith attempt to install a
-# functional configuration on your system. I would be interested in hearing
-# of any failure modes that are found, as I tried to compensate for all
-# the ones that showed up here when we started replacing all the
-# different installed versions of SSH.
-
-#### Body of the script (finally!)
-# We expect to be building the solaris package under the contrib/solaris
-# directory--but the build-package script might be run with a relative
-# path by a user in the main SSH directory...so we try to handle this
-# case. Note that this is still a quick and dirty solution, not robust.
-
-if [ -f sshd.c ]; then
- cd contrib/solaris >/dev/null
-fi
-
-# Locations of standard binaries
-UNAME=/usr/bin/uname
-SED=/usr/bin/sed
-PWD=/usr/bin/pwd
-CUT=/usr/bin/cut
-STRIP=/usr/ccs/bin/strip
-PKGMK=/usr/bin/pkgmk
-PKGTRANS=/usr/bin/pkgtrans
-GREP=/usr/bin/grep
-DATE=/usr/bin/date
-
-CURRDIR=`${PWD}`
-BUILDDIR=${CURRDIR}/build-SSH-package
-# If you really want to name the package "ssh" then go ahead, but the
-# Sun convention is that the first 2-4 characters are supposed to be
-# uppercase representing the company or organization that produced the
-# software, and the next 3-5 characters are supposed to be lowercase
-# identifying the specific software. The best package names I could
-# come up with were "OBSDssh" or "OPENssh", given those constraints.
-PKGNAME="OPENssh"
-# PSTAMP is a standard setting in the 'pkginfo' file that helps to identify
-# the time and location that the packaging was done.
-PSTAMP="`${UNAME} -n`-`${DATE} +%Y-%m-%d-%H%M`"
-# The several lines below are designed to pull the relevant information
-# out of the Makefile. It may be simpler to hard-code this if you have
-# made changes and these lines don't find them.
-prefix=`${GREP} "^prefix=" ../../Makefile | ${CUT} -d = -f 2`
-execprefix=`${GREP} "^execprefix=" ../../Makefile | ${CUT} -d = -f 2`
-INSTROOT=${prefix:=/usr/local}
-ETCDIR=`${GREP} "^ETCDIR=" ../../Makefile | ${CUT} -d = -f 2`
-PIDDIR=`${GREP} "^piddir=" ../../Makefile | ${CUT} -d = -f 2`
-
-if [ ! -f ../../sshd ]; then
- echo "Unable to locate sshd binary where I expected, and can't continue."
- echo "Verify that the SSH configure/make has been completed, and that"
- echo " this script is being run from within the SSH source tree."
- exit 1
-fi
-
-
-VERSION=`${GREP} "SSH_VERSION" ../../version.h | ${CUT} -f 2 | sed -e 's/"//g' -e 's/OpenSSH_//g'`
-# Extra shenanigans to compensate for Sun marketeer tricks with Solaris
-# version numbering...
-OSMINOR=`${UNAME} -r | ${CUT} -f 2 -d .`
-if [ $OSMINOR -gt 6 ]; then
- OSVERSION=$OSMINOR
-else
- OSVERSION=`${UNAME} -r | ${SED} 's/5/2/'`
-fi
-ARCH=`$UNAME -p`
-SHORTINSTROOT=""
-if [ "$INSTROOT" = "/usr/local" ]; then
- SHORTINSTROOT="-local"
-else
- if [ "$INSTROOT" = "/opt" ]; then
- SHORTINSTROOT="-opt"
- fi
-fi
-
-DESTFILE="${PKGNAME}-${VERSION}-sol${OSVERSION}-${ARCH}${SHORTINSTROOT}"
-
-echo "Building Solaris package of OpenSSH ${VERSION} in\n\t${BUILDDIR}."
-echo "Binaries were compiled for Solaris ${OSVERSION} (${ARCH})"
-echo "The installable package will be named ${DESTFILE}."
-echo "When installed, the package will be located under ${INSTROOT}."
-echo ""
-
-echo "Cleaning up old build files..."
-rm -rf $BUILDDIR
-mkdir $BUILDDIR
-cd $BUILDDIR
-
-echo "Setting up build directories..."
-mkdir -p ${BUILDDIR}/man/man1
-# Need manpages for sshd_config(5) and ssh_config(5), but we don't yet have.
-#mkdir -p ${BUILDDIR}/man/man5
-mkdir -p ${BUILDDIR}/man/man8
-mkdir -p ${BUILDDIR}/etc
-mkdir -p ${BUILDDIR}/bin
-mkdir -p ${BUILDDIR}/libexec
-mkdir -p ${BUILDDIR}/sbin
-
-echo "Populating build directories..."
-cp -p ../../../sshd sbin
-cp -p ../../../ssh-keygen bin
-cp -p ../../../ssh-keyscan bin
-cp -p ../../../ssh bin
-cp -p ../../../ssh-add bin
-cp -p ../../../ssh-agent bin
-cp -p ../../../scp bin
-cp -p ../../../scp.1.out man/man1/scp.1
-cp -p ../../../sftp bin
-cp -p ../../../sftp.1.out man/man1/sftp.1
-cp -p ../../../sftp-server libexec/sftp-server
-cp -p ../../../sftp-server.8.out man/man8/sftp-server.8
-cp -p ../../../ssh-add.1.out man/man1/ssh-add.1
-cp -p ../../../ssh-agent.1.out man/man1/ssh-agent.1
-cp -p ../../../ssh-keygen.1.out man/man1/ssh-keygen.1
-cp -p ../../../ssh-keyscan.1.out man/man1/ssh-keyscan.1
-cp -p ../../../ssh.1.out man/man1/ssh.1
-cp -p ../../../sshd.8.out man/man8/sshd.8
-cp -p ../../../sshd_config.out etc/sshd_config.default
-cp -p ../../../ssh_config.out etc/ssh_config.default
-cp -p ../../../ssh_prng_cmds etc/ssh_prng_cmds.default
-cp -p ../../../primes etc/primes.default
-
-# One of the annoying things about the Solaris packaging process is that
-# there's no simple way to prototype on the fly--so make sure you edit
-# the prototype file if you add/subtract files from the mix.
-cp -p ../prototype .
-cp -p ../preremove .
-
-echo "Creating compile-dependent files from their prototypes"
-$SED -e "s/%%PKGNAME%%/${PKGNAME}/g" -e "s|%%BASEDIR%%|${INSTROOT}|g" -e "s/%%VERSION%%/${VERSION}/g" -e "s/%%ARCH%%/${ARCH}/g" -e "s/%%OSVERSION%%/${OSVERSION}/g" <../pkginfo.in >./pkginfo
-$SED -e "s/%%PKGNAME%%/${PKGNAME}/g" -e "s/%%OSMINOR%%/${OSMINOR}/g" -e "s/%%OSVERSION%%/${OSVERSION}/g" <../checkinstall.in >./checkinstall
-$SED -e "s|%%PIDDIR%%|${PIDDIR}|g" <../postinstall.in >./postinstall
-$SED -e "s|%%PIDDIR%%|${PIDDIR}|g" <../sshd-initscript.in > etc/sshd-initscript
-
-echo "Stripping binaries"
-${STRIP} bin/ssh
-${STRIP} bin/ssh-add
-${STRIP} bin/ssh-agent
-${STRIP} bin/ssh-keygen
-${STRIP} bin/ssh-keyscan
-${STRIP} sbin/sshd
-${STRIP} bin/scp
-${STRIP} bin/sftp
-${STRIP} libexec/sftp-server
-
-echo ""
-echo "Building Package"
-
-cd ${BUILDDIR}
-$PKGMK -o -r . -p ${PSTAMP} -d ${BUILDDIR}
-
-if [ $? -gt 0 ]; then
- echo "Error performing pkgmk--cannot continue."
- exit 1
-fi
-
-echo ""
-echo "Translating Package Tree into Installable Image"
-$PKGTRANS -s ${BUILDDIR} ${BUILDDIR}/${DESTFILE} OPENssh
-
-if [ $? -gt 0 ]; then
- echo "Error performing pkgtrans--cannot continue."
- exit 1
-fi
-
-echo "Done. Package is in ${BUILDDIR}/${DESTFILE} !"
diff --git a/contrib/solaris/buildpkg.sh b/contrib/solaris/buildpkg.sh
new file mode 100755
index 00000000..a7141707
--- /dev/null
+++ b/contrib/solaris/buildpkg.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+#
+# Fake Root Solaris Build System - Prototype
+#
+# The following code has been provide under Public Domain License. I really
+# don't care what you use it for. Just as long as you don't complain to me
+# nor my employer if you break it. - Ben Lindstrom (mouring@eviladmin.org)
+#
+umask 022
+PKGNAME=OpenSSH
+
+## Extract common info requires for the 'info' part of the package.
+VERSION=`tail -1 ../../version.h | sed -e 's/.*_\([0-9]\)/\1/g' | sed 's/\"$//'`
+ARCH=`uname -p`
+
+## Start by faking root install
+echo "Faking root install..."
+START=`pwd`
+FAKE_ROOT=$START/package
+mkdir $FAKE_ROOT
+cd ../..
+make install-nokeys DESTDIR=$FAKE_ROOT
+
+## Fill in some details, like prefix and sysconfdir
+ETCDIR=`grep "^sysconfdir=" Makefile | sed 's/sysconfdir=//'`
+PREFIX=`grep "^prefix=" Makefile | cut -d = -f 2`
+cd $FAKE_ROOT
+
+## Setup our run level stuff while we are at it.
+mkdir -p $FAKE_ROOT/etc/init.d
+mkdir -p $FAKE_ROOT/etc/rcS.d
+mkdir -p $FAKE_ROOT/etc/rc0.d
+mkdir -p $FAKE_ROOT/etc/rc1.d
+mkdir -p $FAKE_ROOT/etc/rc2.d
+
+
+## setup our initscript correctly
+sed -e "s#%%configDir%%#$ETCDIR#g" \
+ -e "s#%%openSSHDir%%#$PREFIX#g" \
+ ../opensshd.in > $FAKE_ROOT/etc/init.d/opensshd
+chmod 711 $FAKE_ROOT/etc/init.d/opensshd
+
+ln -s $FAKE_ROOT/etc/init.d/opensshd $FAKE_ROOT/etc/rcS.d/K30opensshd
+ln -s $FAKE_ROOT/etc/init.d/opensshd $FAKE_ROOT/etc/rc1.d/K30opensshd
+ln -s $FAKE_ROOT/etc/init.d/opensshd $FAKE_ROOT/etc/rc2.d/S98opensshd
+
+
+## Ok, this is outright wrong, but it will work. I'm tired of pkgmk
+## whining.
+for i in *; do
+ PROTO_ARGS="$PROTO_ARGS $i=/$i";
+done
+
+## Build info file
+echo "Building pkginfo file..."
+cat > pkginfo << _EOF
+PKG=$PKGNAME
+NAME=OpenSSH Portable for Solaris
+DESC="Secure Shell remote access utility; replaces telnet and rlogin/rsh."
+VENDOR="OpenSSH Portable Team - http://www.openssh.com/portable.html"
+BASEDIR=$FAKE_ROOT
+ARCH=$ARCH
+VERSION=$VERSION
+CATEGORY=Security
+BASEDIR=/
+_EOF
+
+## Next Build our prototype
+echo "Building prototype file..."
+find . | egrep -v "prototype|pkginfo" | sort | pkgproto $PROTO_ARGS | \
+ awk '
+ BEGIN { print "i pkginfo" }
+ { $5="root"; $6="sys"; }
+ { print; }' > prototype
+
+## Step back a directory and now build the package.
+echo "Building package.."
+cd ..
+pkgmk -d . -f $FAKE_ROOT/prototype -o
+rm -rf $FAKE_ROOT
+echo | pkgtrans -os . $PKGNAME-$ARCH-$VERSION.pkg
+rm -rf $PKGNAME
diff --git a/contrib/solaris/checkinstall.in b/contrib/solaris/checkinstall.in
deleted file mode 100644
index 37571936..00000000
--- a/contrib/solaris/checkinstall.in
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-echo "Checking SunOS revision..."
-MINOR=`/bin/uname -r | /bin/cut -d "." -f 2`
-if [ ${MINOR} -lt %%OSMINOR%% ]; then
- echo "This package was created on Solaris %%OSVERSION%%, and will probably"
- echo " not function correctly on older versions of Solaris."
- echo "** Unable to continue. **"
- exit 3
-fi
-echo "\t...revision okay."
-
-echo "Checking for existing SSH installation..."
-if [ -f /etc/sshd_config -o -f /usr/local/etc/sshd_config ]; then
- UPDATE=1
-fi
-if [ -f /etc/ssh_host_key -o -f /usr/local/etc/ssh_host_key ]; then
- UPDATE=1
-fi
-
-if [ ${UPDATE} -eq 1 ]; then
- echo "Performing an \"update\" installation of %%PKGNAME%%"
-else
- echo "Performing a \"fresh\" installation of %%PKGNAME%%"
-fi
-echo ""
-
-# We derive these at install time in case the package is relocated.
-CONFDIR="${BASEDIR}/etc"
-DESTBIN="${BASEDIR}/bin"
-
-# make parameters available to installation service, and
-# so to any other packaging scripts
-cat >$1 <<!
-CONFDIR='$CONFDIR'
-DESTBIN='$DESTBIN'
-UPDATE='$UPDATE'
-!
diff --git a/contrib/solaris/opensshd.in b/contrib/solaris/opensshd.in
new file mode 100755
index 00000000..057459b1
--- /dev/null
+++ b/contrib/solaris/opensshd.in
@@ -0,0 +1,88 @@
+#!/sbin/sh
+# Donated code that was put under PD license.
+#
+# Stripped PRNGd out of it for the time being.
+
+AWK=/usr/bin/awk
+CAT=/usr/bin/cat
+EGREP=/usr/bin/egrep
+KILL=/usr/bin/kill
+PS=/usr/bin/ps
+
+PREFIX=%%openSSHDir%%
+ETCDIR=%%configDir%%
+
+SSHD=$PREFIX/sbin/sshd
+SSH_KEYGEN=$PREFIX/bin/ssh-keygen
+HOST_KEY_RSA1=$ETCDIR/ssh_host_key
+HOST_KEY_DSA=$ETCDIR/ssh_host_dsa_key
+HOST_KEY_RSA=$ETCDIR/ssh_host_rsa_key
+
+killproc() {
+ _procname=$1
+ _signal=$2
+ ${PGREP} ${_procname} | ${HEAD} -1 | ${XARGS} -t -I {} ${KILL} -${_signal} {}
+}
+
+
+checkkeys() {
+ if [ ! -f $HOST_KEY_RSA1 ]; then
+ $SSH_KEYGEN -t rsa1 -f $HOST_KEY_RSA1 -N ""
+ fi
+ if [ ! -f $HOST_KEY_DSA ]; then
+ $SSH_KEYGEN -t dsa -f $HOST_KEY_DSA -N ""
+ fi
+ if [ ! -f $HOST_KEY_RSA ]; then
+ $SSH_KEYGEN -t rsa -f $HOST_KEY_RSA -N ""
+ fi
+}
+
+stop_service() {
+ if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then
+ PID=`cat ${PIDFILE}`
+ fi
+ if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then
+ $KILL $PID
+ else
+ echo "Unable to read PID file, killing using alternate method"
+ killproc sshd TERM
+ fi
+}
+
+start_service() {
+ # XXX We really should check if the service is already going, but
+ # XXX we will opt out at this time. - Bal
+
+ # Check to see if we have keys that need to be made
+ checkkeys
+
+ # Start SSHD
+ echo "starting $SSHD... \c" ; $SSHD
+
+ sshd_rc=$?
+ if [ $sshd_rc -ne 0 ]; then
+ echo "$0: Error ${sshd_rc} starting ${SSHD}... bailing."
+ exit $sshd_rc
+ fi
+ echo done.
+}
+
+case $1 in
+
+'start')
+ start_service
+ ;;
+
+'stop')
+ stop_service
+ ;;
+
+'restart')
+ stop_service
+ start_service
+ ;;
+
+*)
+ echo "$0: usage: $0 {start|stop|restart}"
+ ;;
+esac
diff --git a/contrib/solaris/pkginfo.in b/contrib/solaris/pkginfo.in
deleted file mode 100644
index 4953d7d8..00000000
--- a/contrib/solaris/pkginfo.in
+++ /dev/null
@@ -1,17 +0,0 @@
-CLASSES=none
-BASEDIR="%%BASEDIR%%"
-PATH=/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
-OAMBASE=/usr/sadm/sysadm
-PKG=%%PKGNAME%%
-NAME="OpenSSH %%VERSION%% %%ARCH%%"
-DESC="Secure Shell remote access utility; replaces telnet and rlogin/rsh. OpenBSD version ported to Solaris. Compiled on Solaris %%OSVERSION%%"
-ARCH="%%ARCH%%"
-VERSION="%%VERSION%%"
-CATEGORY=utility,application
-VENDOR="Software produced by OpenSSH Portability Team, http://www.openssh.com/portable.html"
-EMAIL="OpenSSH Development List <openssh-unix-dev@mindrot.org>"
-PKGINST=%%PKGNAME%%
-PKGSAV=/var/sadm/pkg/%%PKGNAME%%/save
-ISTATES="S s 1 2 3"
-RSTATES="S s 1 2 3"
-UPDATE=0
diff --git a/contrib/solaris/postinstall.in b/contrib/solaris/postinstall.in
deleted file mode 100644
index 3ce3bf13..00000000
--- a/contrib/solaris/postinstall.in
+++ /dev/null
@@ -1,243 +0,0 @@
-# PostInstall script for OPENssh
-INSTALLF="/usr/sbin/installf"
-
-instbackup() {
- _DIRECTORY=$1
- _FILEBASE=$2
- $INSTALLF $PKGINST ${_DIRECTORY}/${_FILEBASE}
- _SUFFIX=`/usr/bin/date +%Y-%m-%d-%H%M`
- if [ -f ${_DIRECTORY}/${_FILEBASE} ]; then
- echo " Backing up file ${_FILEBASE}..."
- if [ -f ${_DIRECTORY}/${_FILEBASE}.orig ]; then
- $INSTALLF $PKGINST ${_DIRECTORY}/${_FILEBASE}.orig.${_SUFFIX}
- cp -p ${_DIRECTORY}/${_FILEBASE} ${_DIRECTORY}/${_FILEBASE}.orig.${_SUFFIX}
- echo " Saved as ${_DIRECTORY}/${_FILEBASE}.orig.${_SUFFIX}."
- else
- $INSTALLF $PKGINST ${_DIRECTORY}/${_FILEBASE}.orig
- cp -p ${_DIRECTORY}/${_FILEBASE} ${_DIRECTORY}/${_FILEBASE}.orig
- echo " Saved as ${_DIRECTORY}/${_FILEBASE}.orig."
- fi
- fi
- cp -p ${_DIRECTORY}/${_FILEBASE}.default ${_DIRECTORY}/${_FILEBASE}
- echo "Installed new ${_DIRECTORY}/${_FILEBASE} configuration file."
-}
-
-### Main body of script
-
-echo ""
-echo "Beginning postinstall script--this script should leave you with a"
-echo "functional and operational configuration of OpenSSH."
-echo ""
-
-if [ ! "${UPDATE}" = "1" ]; then
- echo "Performing a \"fresh\" installation of OpenSSH."
- ### Install init script and create symlinks
- $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/init.d/sshd f 0500 root sys || exit 2
- cp -p ${CONFDIR}/sshd-initscript ${PKG_INSTALL_ROOT}/etc/init.d/sshd
- $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc2.d/S72local_sshd=/etc/init.d/sshd s || exit 2
- $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc1.d/K30local_sshd=/etc/init.d/sshd s || exit 2
- $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc0.d/K30local_sshd=/etc/init.d/sshd s || exit 2
-
- ### The initial package installation leaves default versions of
- ### ssh_prng_cmds, ssh_config, and sshd_config in ${CONFDIR}. Now
- ### we need to decide whether to install them. Since this is *not*
- ### an update install, we don't ask, but simply back up the old ones
- ### and put the new ones in their place.
- instbackup ${CONFDIR} ssh_prng_cmds
- instbackup ${CONFDIR} ssh_config
- instbackup ${CONFDIR} sshd_config
- instbackup ${CONFDIR} primes
-
- ### If no existing sshd_config and host key, then create
- if [ ! -f "${CONFDIR}/ssh_host_key" ]; then
- echo "Creating new RSA public/private host key pair for SSH-1."
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key.pub
- ### If there is *anything* there then leave it, otherwise look
- ### in some reasonable alternate locations before giving up.
- ### It's worth spending some extra time looking for the old one
- ### to avoid a bunch of "host identification has changed" warnings.
- ### Note that some old keys from the commercial SSH might not
- ### be compatible, but we don't test for that.
- if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_key" ]; then
- mv ${PKG_INSTALL_ROOT}/etc/ssh_host_key ${CONFDIR}
- elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key" ]; then
- mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key ${CONFDIR}
- else
- ${DESTBIN}/ssh-keygen -b 1024 -f ${CONFDIR}/ssh_host_key -N ''
- fi
- else
- echo "Using existing RSA public/private host key pair for SSH-1."
- fi
- if [ ! -f "${CONFDIR}/ssh_host_dsa_key" ]; then
- echo "Creating new DSA public/private host key pair for SSH-2."
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key.pub
- ### If there is *anything* there then leave it, otherwise look
- ### in some reasonable alternate locations before giving up.
- ### It's worth spending some extra time looking for the old one
- ### to avoid a bunch of "host identification has changed" warnings.
- ### Note that some old keys from the commercial SSH2 might not
- ### be compatible, but we don't test for that.
- if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key ${CONFDIR}
- elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key ${CONFDIR}
- else
- ${DESTBIN}/ssh-keygen -d -f ${CONFDIR}/ssh_host_dsa_key -N ''
- fi
- else
- echo "Using existing DSA public/private host key pair for SSH-2."
- fi
- if [ ! -f "${CONFDIR}/ssh_host_rsa_key" ]; then
- echo "Creating new RSA public/private host key pair for SSH-2."
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_rsa_key
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_rsa_key.pub
- ### If there is *anything* there then leave it, otherwise look
- ### in some reasonable alternate locations before giving up.
- ### It's worth spending some extra time looking for the old one
- ### to avoid a bunch of "host identification has changed" warnings.
- ### Note that some old keys from the commercial SSH2 might not
- ### be compatible, but we don't test for that.
- if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_rsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/etc/ssh_host_rsa_key ${CONFDIR}
- elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_rsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_rsa_key ${CONFDIR}
- else
- ${DESTBIN}/ssh-keygen -t rsa -f ${CONFDIR}/ssh_host_rsa_key -N ''
- fi
- else
- echo "Using existing RSA public/private host key pair for SSH-2."
- fi
-else
- echo "Performing an \"update\" installation of OpenSSH."
- ### Okay, this part *is* an update install...so we need to ensure
- ### we don't overwrite any of the existing files.
-
- ### Install init script and create symlinks
- if [ ! -f ${PKG_INSTALL_ROOT}/etc/init.d/sshd ]; then
- echo "Installing init script in ${PKG_INSTALL_ROOT}/etc/init.d/sshd"
- $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/init.d/sshd || exit 2
- cp -p ${CONFDIR}/sshd-initscript ${PKG_INSTALL_ROOT}/etc/init.d/sshd
- chown root:root ${PKG_INSTALL_ROOT}/etc/init.d/sshd
- chmod 500 ${PKG_INSTALL_ROOT}/etc/init.d/sshd
- fi
- if [ ! -r ${PKG_INSTALL_ROOT}/etc/rc2.d/S72local_sshd ]; then
- $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc2.d/S72local_sshd=/etc/init.d/sshd s || exit 2
- fi
- if [ ! -r ${PKG_INSTALL_ROOT}/etc/rc2.d/K30local_sshd ]; then
- $INSTALLF $PKGINST /etc/rc0.d/K30local_sshd=/etc/init.d/sshd s || exit 2
- fi
-
- ### The initial package installation leaves default versions of
- ### ssh_prng_cmds, ssh_config, and sshd_config in ${CONFDIR}. Now
- ### we need to decide whether to install them. Since this is
- ### an update install, we only install the new files if the old
- ### files somehow don't exist.
- NEWCONF=0
- if [ ! -r "${CONFDIR}/ssh_prng_cmds" ]; then
- instbackup ${CONFDIR} ssh_prng_cmds
- NEWCONF=1
- fi
- if [ ! -r "${CONFDIR}/ssh_config" ]; then
- instbackup ${CONFDIR} ssh_config
- NEWCONF=1
- fi
- if [ ! -r "${CONFDIR}/sshd_config" ]; then
- instbackup ${CONFDIR} sshd_config
- NEWCONF=1
- fi
- if [ ! -r "${CONFDIR}/primes" ]; then
- instbackup ${CONFDIR} primes
- NEWCONF=1
- fi
- if [ $NEWCONF -eq 0 ]; then
- echo "Your existing SSH configuration files have not been altered."
- else
- echo "Your other existing SSH configuration files have not been altered."
- fi
-
- ### If no existing sshd_config and host key, then create
- if [ ! -f "${CONFDIR}/ssh_host_key" ]; then
- echo "Creating new RSA public/private host key pair for SSH-1."
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key.pub
- ### If there is *anything* there then leave it, otherwise look
- ### in some reasonable alternate locations before giving up.
- ### It's worth spending some extra time looking for the old one
- ### to avoid a bunch of "host identification has changed" warnings.
- ### Note that some old keys from the commercial SSH might not
- ### be compatible, but we don't test for that.
- if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_key" ]; then
- mv ${PKG_INSTALL_ROOT}/etc/ssh_host_key ${CONFDIR}
- elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key" ]; then
- mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key ${CONFDIR}
- else
- ${DESTBIN}/ssh-keygen -b 1024 -f ${CONFDIR}/ssh_host_key -N ''
- fi
- else
- echo "Using existing RSA public/private host key pair for SSH-1."
- fi
- if [ ! -f "${CONFDIR}/ssh_host_dsa_key" ]; then
- echo "Creating new DSA public/private host key pair for SSH-2."
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key.pub
- ### If there is *anything* there then leave it, otherwise look
- ### in some reasonable alternate locations before giving up.
- ### It's worth spending some extra time looking for the old one
- ### to avoid a bunch of "host identification has changed" warnings.
- ### Note that some old keys from the commercial SSH2 might not
- ### be compatible, but we don't test for that.
- if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key ${CONFDIR}
- elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key ${CONFDIR}
- else
- ${DESTBIN}/ssh-keygen -d -f ${CONFDIR}/ssh_host_dsa_key -N ''
- fi
- else
- echo "Using existing DSA public/private host key pair for SSH-2."
- fi
- if [ ! -f "${CONFDIR}/ssh_host_rsa_key" ]; then
- echo "Creating new RSA public/private host key pair for SSH-2."
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_rsa_key
- $INSTALLF $PKGINST ${CONFDIR}/ssh_host_rsa_key.pub
- ### If there is *anything* there then leave it, otherwise look
- ### in some reasonable alternate locations before giving up.
- ### It's worth spending some extra time looking for the old one
- ### to avoid a bunch of "host identification has changed" warnings.
- ### Note that some old keys from the commercial SSH2 might not
- ### be compatible, but we don't test for that.
- if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_rsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/etc/ssh_host_rsa_key ${CONFDIR}
- elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_rsa_key" ]; then
- mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_rsa_key ${CONFDIR}
- else
- ${DESTBIN}/ssh-keygen -d -f ${CONFDIR}/ssh_host_rsa_key -N ''
- fi
- else
- echo "Using existing RSA public/private host key pair for SSH-2."
- fi
-fi
-
-if [ ! -d %%PIDDIR%% ]; then
- $INSTALLF $PKGINST %%PIDDIR%%
- mkdir -p %%PIDDIR%%
- chown root:sys %%PIDDIR%%
- chmod 755 %%PIDDIR%%
-fi
-
-$INSTALLF -f $PKGINST || exit 2
-
-if [ "X${PKG_INSTALL_ROOT}" = "X" ]; then
- ### We're doing a local install, rather than an install for
- ### old-style diskless clients.
- echo "Stopping any current sshd process, and then starting the new sshd."
- /etc/init.d/sshd stop
- /etc/init.d/sshd start
-else
- echo "Not restarting sshd, since this appears to be a remote install"
- echo "for support of diskless clients."
-fi
-
-exit 0
diff --git a/contrib/solaris/preremove b/contrib/solaris/preremove
deleted file mode 100644
index 701c8c55..00000000
--- a/contrib/solaris/preremove
+++ /dev/null
@@ -1,2 +0,0 @@
-# pre-removal script for OPENssh
-/etc/init.d/sshd stop
diff --git a/contrib/solaris/prototype b/contrib/solaris/prototype
deleted file mode 100644
index 3c93f2c1..00000000
--- a/contrib/solaris/prototype
+++ /dev/null
@@ -1,36 +0,0 @@
-i pkginfo
-i checkinstall
-i postinstall
-i preremove
-d none man 0755 root sys
-d none man/man1 0755 root sys
-f none man/man1/scp.1 0644 root sys
-f none man/man1/sftp.1 0644 root sys
-f none man/man1/ssh-add.1 0644 root sys
-f none man/man1/ssh-agent.1 0644 root sys
-f none man/man1/ssh-keygen.1 0644 root sys
-f none man/man1/ssh-keyscan.1 0644 root sys
-f none man/man1/ssh.1 0644 root sys
-s none man/man1/slogin.1=ssh.1
-d none man/man8 0755 root sys
-f none man/man8/sftp-server.8 0644 root sys
-f none man/man8/sshd.8 0644 root sys
-d none etc 0755 root sys
-f none etc/sshd_config.default 0644 root sys
-f none etc/ssh_config.default 0644 root sys
-f none etc/ssh_prng_cmds.default 0644 root sys
-f none etc/primes.default 0644 root sys
-f none etc/sshd-initscript 0755 root sys
-d none bin 0755 root sys
-f none bin/ssh-keygen 0755 root sys
-f none bin/ssh 0755 root sys
-s none bin/slogin=ssh 0755 root sys
-f none bin/ssh-add 0755 root sys
-f none bin/ssh-agent 0755 root sys
-f none bin/ssh-keyscan 0755 root sys
-f none bin/scp 0755 root sys
-f none bin/sftp 0755 root sys
-d none libexec 0755 root sys
-f none libexec/sftp-server 0755 root sys
-d none sbin 0755 root sys
-f none sbin/sshd 0755 root sys
diff --git a/contrib/solaris/sshd-initscript.in b/contrib/solaris/sshd-initscript.in
deleted file mode 100755
index 886a51fb..00000000
--- a/contrib/solaris/sshd-initscript.in
+++ /dev/null
@@ -1,50 +0,0 @@
-#! /sbin/sh
-
-# SSHd startup/shutdown script, based on uucp script.
-
-PIDFILE="%%PIDDIR%%/sshd.pid"
-PGREP="/usr/bin/pgrep"
-HEAD="/usr/bin/head"
-XARGS="/usr/bin/xargs"
-KILL="/usr/bin/kill"
-
-killproc() {
- _procname=$1
- _signal=$2
- ${PGREP} ${_procname} | ${HEAD} -1 | ${XARGS} -t -I {} ${KILL} -${_signal} {}
-}
-
-case $1 in
-'start')
- /usr/local/sbin/sshd
- ;;
-
-'stop')
- if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then
- PID=`cat ${PIDFILE}`
- fi
- if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then
- /usr/bin/kill $PID
- else
- echo "Unable to read PID file, killing using alternate method"
- killproc sshd TERM
- fi
- ;;
-
-'restart')
- if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then
- PID=`cat ${PIDFILE}`
- fi
- if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then
- /usr/bin/kill -HUP $PID
- else
- echo "Unable to read PID file, trying alternate method"
- killproc sshd HUP
- /usr/local/sbin/sshd
- fi
- ;;
-
-*)
- echo "usage: /etc/init.d/sshd {start|stop|restart}"
- ;;
-esac