diff options
author | Ben Lindstrom <mouring@eviladmin.org> | 2001-10-12 20:30:52 +0000 |
---|---|---|
committer | Ben Lindstrom <mouring@eviladmin.org> | 2001-10-12 20:30:52 +0000 |
commit | 8b5ba1c39acd9bdf64c55a1407021111969a4289 (patch) | |
tree | 70d01b6f6b8000a3310692331957840684a8ac29 /contrib/solaris | |
parent | 4a820ea750ce79be709ca8c4b11edf39e07b2676 (diff) |
- (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')
-rw-r--r-- | contrib/solaris/README | 82 | ||||
-rwxr-xr-x | contrib/solaris/build-pkg | 218 | ||||
-rwxr-xr-x | contrib/solaris/buildpkg.sh | 82 | ||||
-rw-r--r-- | contrib/solaris/checkinstall.in | 37 | ||||
-rwxr-xr-x | contrib/solaris/opensshd.in | 88 | ||||
-rw-r--r-- | contrib/solaris/pkginfo.in | 17 | ||||
-rw-r--r-- | contrib/solaris/postinstall.in | 243 | ||||
-rw-r--r-- | contrib/solaris/preremove | 2 | ||||
-rw-r--r-- | contrib/solaris/prototype | 36 | ||||
-rwxr-xr-x | contrib/solaris/sshd-initscript.in | 50 |
10 files changed, 170 insertions, 685 deletions
diff --git a/contrib/solaris/README b/contrib/solaris/README deleted file mode 100644 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. |