summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2006-09-12 21:54:10 +1000
committerDamien Miller <djm@mindrot.org>2006-09-12 21:54:10 +1000
commit223897a01af2f496577cbf8f7fa5c5209109ef8e (patch)
tree2849fdc9a56af05b25ebbff2e1b66db362a207e2
parent5d8a9acef0228e53e2069c6218beb8716b89aacd (diff)
- (djm) [Makefile.in buildpkg.sh.in configure.ac openssh.xml.in]
Support SMF in Solaris Packages if enabled by configure. Patch from Chad Mynhier, tested by dtucker@
-rw-r--r--ChangeLog7
-rw-r--r--Makefile.in4
-rw-r--r--buildpkg.sh.in174
-rw-r--r--configure.ac9
-rw-r--r--openssh.xml.in87
5 files changed, 247 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index 128c91491..c61fd9343 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
120060912
2 - (djm) [Makefile.in buildpkg.sh.in configure.ac openssh.xml.in]
3 Support SMF in Solaris Packages if enabled by configure. Patch from
4 Chad Mynhier, tested by dtucker@
5
120060911 620060911
2 - (dtucker) [cipher-aes.c] Include string.h for memcpy and friends. Noted 7 - (dtucker) [cipher-aes.c] Include string.h for memcpy and friends. Noted
3 by Pekka Savola. 8 by Pekka Savola.
@@ -5428,4 +5433,4 @@
5428 - (djm) Trim deprecated options from INSTALL. Mention UsePAM 5433 - (djm) Trim deprecated options from INSTALL. Mention UsePAM
5429 - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu 5434 - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
5430 5435
5431$Id: ChangeLog,v 1.4543 2006/09/11 10:46:13 dtucker Exp $ 5436$Id: ChangeLog,v 1.4544 2006/09/12 11:54:10 djm Exp $
diff --git a/Makefile.in b/Makefile.in
index 525b08eba..71f3623f1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
1# $Id: Makefile.in,v 1.281 2006/08/30 17:24:41 djm Exp $ 1# $Id: Makefile.in,v 1.282 2006/09/12 11:54:10 djm Exp $
2 2
3# uncomment if you run a non bourne compatable shell. Ie. csh 3# uncomment if you run a non bourne compatable shell. Ie. csh
4#SHELL = @SH@ 4#SHELL = @SH@
@@ -203,7 +203,7 @@ clean: regressclean
203 203
204distclean: regressclean 204distclean: regressclean
205 rm -f *.o *.a $(TARGETS) logintest config.cache config.log 205 rm -f *.o *.a $(TARGETS) logintest config.cache config.log
206 rm -f *.out core opensshd.init 206 rm -f *.out core opensshd.init openssh.xml
207 rm -f Makefile buildpkg.sh config.h config.status ssh_prng_cmds 207 rm -f Makefile buildpkg.sh config.h config.status ssh_prng_cmds
208 rm -f survey.sh openbsd-compat/regress/Makefile *~ 208 rm -f survey.sh openbsd-compat/regress/Makefile *~
209 rm -rf autom4te.cache 209 rm -rf autom4te.cache
diff --git a/buildpkg.sh.in b/buildpkg.sh.in
index a3960cb89..a3b9014bc 100644
--- a/buildpkg.sh.in
+++ b/buildpkg.sh.in
@@ -46,6 +46,8 @@ PKG_REQUEST_LOCAL=../pkg-request.local
46# end of sourced files 46# end of sourced files
47# 47#
48OPENSSHD=opensshd.init 48OPENSSHD=opensshd.init
49OPENSSH_MANIFEST=openssh.xml
50OPENSSH_FMRI=svc:/site/openssh:default
49 51
50PATH_GROUPADD_PROG=@PATH_GROUPADD_PROG@ 52PATH_GROUPADD_PROG=@PATH_GROUPADD_PROG@
51PATH_USERADD_PROG=@PATH_USERADD_PROG@ 53PATH_USERADD_PROG=@PATH_USERADD_PROG@
@@ -60,6 +62,10 @@ SYSTEM_DIR="/etc \
60/etc/rc1.d \ 62/etc/rc1.d \
61/etc/rc2.d \ 63/etc/rc2.d \
62/etc/opt \ 64/etc/opt \
65/lib \
66/lib/svc \
67/lib/svc/method \
68/lib/svc/method/site \
63/opt \ 69/opt \
64/opt/bin \ 70/opt/bin \
65/usr \ 71/usr \
@@ -82,6 +88,9 @@ SYSTEM_DIR="/etc \
82/var \ 88/var \
83/var/opt \ 89/var/opt \
84/var/run \ 90/var/run \
91/var/svc \
92/var/svc/manifest \
93/var/svc/manifest/site \
85/var/tmp \ 94/var/tmp \
86/tmp" 95/tmp"
87 96
@@ -119,6 +128,12 @@ do
119 eval $confvar=`grep "^$confvar=" Makefile | cut -d = -f 2` 128 eval $confvar=`grep "^$confvar=" Makefile | cut -d = -f 2`
120done 129done
121 130
131## Are we using Solaris' SMF?
132DO_SMF=0
133if egrep "^#define USE_SOLARIS_PROCESS_CONTRACTS" config.h > /dev/null 2>&1
134then
135 DO_SMF=1
136fi
122 137
123## Collect value of privsep user 138## Collect value of privsep user
124for confvar in SSH_PRIVSEP_USER 139for confvar in SSH_PRIVSEP_USER
@@ -168,10 +183,25 @@ then
168fi 183fi
169 184
170## Setup our run level stuff while we are at it. 185## Setup our run level stuff while we are at it.
171mkdir -p $FAKE_ROOT${TEST_DIR}/etc/init.d 186if [ $DO_SMF -eq 1 ]
187then
188 # For Solaris' SMF, /lib/svc/method/site is the preferred place
189 # for start/stop scripts that aren't supplied with the OS, and
190 # similarly /var/svc/manifest/site for manifests.
191 mkdir -p $FAKE_ROOT${TEST_DIR}/lib/svc/method/site
192 mkdir -p $FAKE_ROOT${TEST_DIR}/var/svc/manifest/site
193
194 cp ${OPENSSHD} $FAKE_ROOT${TEST_DIR}/lib/svc/method/site/${SYSVINIT_NAME}
195 chmod 744 $FAKE_ROOT${TEST_DIR}/lib/svc/method/site/${SYSVINIT_NAME}
196
197 cp ${OPENSSH_MANIFEST} $FAKE_ROOT${TEST_DIR}/var/svc/manifest/site
198 chmod 644 $FAKE_ROOT${TEST_DIR}/var/svc/manifest/site/${OPENSSH_MANIFEST}
199else
200 mkdir -p $FAKE_ROOT${TEST_DIR}/etc/init.d
172 201
173cp ${OPENSSHD} $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} 202 cp ${OPENSSHD} $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
174chmod 744 $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} 203 chmod 744 $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
204fi
175 205
176[ "${PERMIT_ROOT_LOGIN}" = no ] && \ 206[ "${PERMIT_ROOT_LOGIN}" = no ] && \
177 perl -p -i -e "s/#PermitRootLogin yes/PermitRootLogin no/" \ 207 perl -p -i -e "s/#PermitRootLogin yes/PermitRootLogin no/" \
@@ -221,15 +251,22 @@ touch depend
221 251
222## Build space file 252## Build space file
223echo "Building space file..." 253echo "Building space file..."
224cat > space << _EOF 254if [ $DO_SMF -eq 1 ]
225# extra space required by start/stop links added by installf in postinstall 255then
256 # XXX Is this necessary? If not, remove space line from mk-proto.awk.
257 touch space
258else
259 cat > space << _EOF
260# extra space required by start/stop links added by installf
261# in postinstall
226$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME} 0 1 262$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME} 0 1
227$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME} 0 1 263$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME} 0 1
228_EOF 264_EOF
229[ "$RC1_D" = no ] || \ 265 [ "$RC1_D" = no ] || \
230echo "$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME} 0 1" >> space 266 echo "$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME} 0 1" >> space
231[ "$RCS_D" = yes ] && \ 267 [ "$RCS_D" = yes ] && \
232echo "$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME} 0 1" >> space 268 echo "$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME} 0 1" >> space
269fi
233 270
234## Build preinstall file 271## Build preinstall file
235echo "Building preinstall file..." 272echo "Building preinstall file..."
@@ -243,7 +280,16 @@ _EOF
243 280
244cat >> preinstall << _EOF 281cat >> preinstall << _EOF
245# 282#
246[ "\${PRE_INS_STOP}" = "yes" ] && ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} stop 283if [ "\${PRE_INS_STOP}" = "yes" ]
284then
285 if [ $DO_SMF -eq 1 ]
286 then
287 svcadm disable $OPENSSH_FMRI
288 else
289 ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} stop
290 fi
291fi
292
247exit 0 293exit 0
248_EOF 294_EOF
249 295
@@ -265,28 +311,41 @@ cat > postinstall << _EOF
265} 311}
266 312
267# make rc?.d dirs only if we are doing a test install 313# make rc?.d dirs only if we are doing a test install
268[ -n "${TEST_DIR}" ] && { 314[ -n "${TEST_DIR}" ] && [ $DO_SMF -ne 1 ] && {
269 [ "$RCS_D" = yes ] && mkdir -p ${TEST_DIR}/etc/rcS.d 315 [ "$RCS_D" = yes ] && mkdir -p ${TEST_DIR}/etc/rcS.d
270 mkdir -p ${TEST_DIR}/etc/rc0.d 316 mkdir -p ${TEST_DIR}/etc/rc0.d
271 [ "$RC1_D" = no ] || mkdir -p ${TEST_DIR}/etc/rc1.d 317 [ "$RC1_D" = no ] || mkdir -p ${TEST_DIR}/etc/rc1.d
272 mkdir -p ${TEST_DIR}/etc/rc2.d 318 mkdir -p ${TEST_DIR}/etc/rc2.d
273} 319}
274 320
275if [ "\${USE_SYM_LINKS}" = yes ] 321if [ $DO_SMF -eq 1 ]
276then 322then
277 [ "$RCS_D" = yes ] && \ 323 # Delete the existing service, if it exists, then import the
278installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s 324 # new one.
279 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s 325 if svcs $OPENSSH_FMRI > /dev/null 2>&1
280 [ "$RC1_D" = no ] || \ 326 then
281 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s 327 svccfg delete -f $OPENSSH_FMRI
282 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s 328 fi
329 # NOTE, if manifest enables sshd by default, this will actually
330 # start the daemon, which may not be what the user wants.
331 svccfg import ${TEST_DIR}/var/svc/manifest/site/$OPENSSH_MANIFEST
283else 332else
284 [ "$RCS_D" = yes ] && \ 333 if [ "\${USE_SYM_LINKS}" = yes ]
285installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l 334 then
286 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l 335 [ "$RCS_D" = yes ] && \
287 [ "$RC1_D" = no ] || \ 336 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
288 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l 337 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
289 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l 338 [ "$RC1_D" = no ] || \
339 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
340 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
341 else
342 [ "$RCS_D" = yes ] && \
343 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
344 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
345 [ "$RC1_D" = no ] || \
346 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
347 installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
348 fi
290fi 349fi
291 350
292# If piddir doesn't exist we add it. (Ie. --with-pid-dir=/var/opt/ssh) 351# If piddir doesn't exist we add it. (Ie. --with-pid-dir=/var/opt/ssh)
@@ -357,7 +416,17 @@ fi
357 \$chroot ${PATH_PASSWD_PROG} -l $SSH_PRIVSEP_USER 416 \$chroot ${PATH_PASSWD_PROG} -l $SSH_PRIVSEP_USER
358 } 417 }
359 418
360[ "\${POST_INS_START}" = "yes" ] && ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} start 419if [ "\${POST_INS_START}" = "yes" ]
420then
421 if [ $DO_SMF -eq 1 ]
422 then
423 # See svccfg import note above. The service may already
424 # be started.
425 svcadm enable $OPENSSH_FMRI
426 else
427 ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} start
428 fi
429fi
361exit 0 430exit 0
362_EOF 431_EOF
363 432
@@ -366,7 +435,12 @@ echo "Building preremove file..."
366cat > preremove << _EOF 435cat > preremove << _EOF
367#! ${SCRIPT_SHELL} 436#! ${SCRIPT_SHELL}
368# 437#
369${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} stop 438if [ $DO_SMF -eq 1 ]
439then
440 svcadm disable $OPENSSH_FMRI
441else
442 ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} stop
443fi
370_EOF 444_EOF
371 445
372# local preremove changes here 446# local preremove changes here
@@ -381,6 +455,13 @@ echo "Building postremove file..."
381cat > postremove << _EOF 455cat > postremove << _EOF
382#! ${SCRIPT_SHELL} 456#! ${SCRIPT_SHELL}
383# 457#
458if [ $DO_SMF -eq 1 ]
459then
460 if svcs $OPENSSH_FMRI > /dev/null 2>&1
461 then
462 svccfg delete -f $OPENSSH_FMRI
463 fi
464fi
384_EOF 465_EOF
385 466
386# local postremove changes here 467# local postremove changes here
@@ -446,7 +527,45 @@ done
446 527
447_EOF 528_EOF
448 529
449cat >> request << _EOF 530if [ $DO_SMF -eq 1 ]
531then
532 # This could get hairy, as the running sshd may not be under SMF.
533 # We'll assume an earlier version of OpenSSH started via SMF.
534 cat >> request << _EOF
535PRE_INS_STOP=no
536POST_INS_START=no
537# determine if should restart the daemon
538if [ -s ${piddir}/sshd.pid ] && \
539 /usr/bin/svcs $OPENSSH_FMRI 2>&1 | egrep "^online" > /dev/null 2>&1
540then
541 ans=\`ckyorn -d n \
542-p "Should the running sshd daemon be restarted? ${DEF_MSG}"\` || exit \$?
543 case \$ans in
544 [y,Y]*) PRE_INS_STOP=yes
545 POST_INS_START=yes
546 ;;
547 esac
548
549else
550
551# determine if we should start sshd
552 ans=\`ckyorn -d n \
553-p "Start the sshd daemon after installing this package? ${DEF_MSG}"\` || exit \$?
554 case \$ans in
555 [y,Y]*) POST_INS_START=yes ;;
556 esac
557fi
558
559# make parameters available to installation service,
560# and so to any other packaging scripts
561cat >\$1 <<!
562PRE_INS_STOP='\$PRE_INS_STOP'
563POST_INS_START='\$POST_INS_START'
564!
565
566_EOF
567else
568 cat >> request << _EOF
450USE_SYM_LINKS=no 569USE_SYM_LINKS=no
451PRE_INS_STOP=no 570PRE_INS_STOP=no
452POST_INS_START=no 571POST_INS_START=no
@@ -487,6 +606,7 @@ POST_INS_START='\$POST_INS_START'
487! 606!
488 607
489_EOF 608_EOF
609fi
490 610
491# local request changes here 611# local request changes here
492[ -s "${PKG_REQUEST_LOCAL}" ] && . ${PKG_REQUEST_LOCAL} 612[ -s "${PKG_REQUEST_LOCAL}" ] && . ${PKG_REQUEST_LOCAL}
diff --git a/configure.ac b/configure.ac
index 80b0360c0..cfc5d594a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
1# $Id: configure.ac,v 1.363 2006/09/10 10:25:51 dtucker Exp $ 1# $Id: configure.ac,v 1.364 2006/09/12 11:54:11 djm Exp $
2# 2#
3# Copyright (c) 1999-2004 Damien Miller 3# Copyright (c) 1999-2004 Damien Miller
4# 4#
@@ -15,7 +15,7 @@
15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 16
17AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) 17AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org)
18AC_REVISION($Revision: 1.363 $) 18AC_REVISION($Revision: 1.364 $)
19AC_CONFIG_SRCDIR([ssh.c]) 19AC_CONFIG_SRCDIR([ssh.c])
20 20
21AC_CONFIG_HEADER(config.h) 21AC_CONFIG_HEADER(config.h)
@@ -3897,8 +3897,9 @@ dnl Add now.
3897CFLAGS="$CFLAGS $werror_flags" 3897CFLAGS="$CFLAGS $werror_flags"
3898 3898
3899AC_EXEEXT 3899AC_EXEEXT
3900AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openbsd-compat/Makefile \ 3900AC_CONFIG_FILES([Makefile buildpkg.sh opensshd.init openssh.xml \
3901 openbsd-compat/regress/Makefile scard/Makefile ssh_prng_cmds survey.sh]) 3901 openbsd-compat/Makefile openbsd-compat/regress/Makefile \
3902 scard/Makefile ssh_prng_cmds survey.sh])
3902AC_OUTPUT 3903AC_OUTPUT
3903 3904
3904# Print summary of options 3905# Print summary of options
diff --git a/openssh.xml.in b/openssh.xml.in
new file mode 100644
index 000000000..655ee5c9e
--- /dev/null
+++ b/openssh.xml.in
@@ -0,0 +1,87 @@
1<?xml version='1.0'?>
2<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
3<!--
4 Copyright (c) 2006 Chad Mynhier.
5
6 Permission to use, copy, modify, and distribute this software for any
7 purpose with or without fee is hereby granted, provided that the above
8 copyright notice and this permission notice appear in all copies.
9
10 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17-->
18
19<service_bundle type='manifest' name='OpenSSH server'>
20
21 <service
22 name='site/openssh'
23 type='service'
24 version='1'>
25
26 <create_default_instance enabled='false'/>
27
28 <single_instance/>
29
30 <dependency
31 name='filesystem-local'
32 grouping='require_all'
33 restart_on='none'
34 type='service'>
35 <service_fmri value='svc:/system/filesystem/local'/>
36 </dependency>
37
38 <dependency
39 name='network'
40 grouping='require_all'
41 restart_on='none'
42 type='service'>
43 <service_fmri value='svc:/milestone/network'/>
44 </dependency>
45
46 <dependent
47 name='multi-user-server'
48 restart_on='none'
49 grouping='optional_all'>
50 <service_fmri value='svc:/milestone/multi-user-server'/>
51 </dependent>
52
53 <exec_method
54 name='start'
55 type='method'
56 exec='/lib/svc/method/site/opensshd start'
57 timeout_seconds='60'>
58 <method_context/>
59 </exec_method>
60
61 <exec_method
62 name='stop'
63 type='method'
64 exec=':kill'
65 timeout_seconds='60'>
66 <method_context/>
67 </exec_method>
68
69 <property_group
70 name='startd'
71 type='framework'>
72 <propval name='ignore_error' type='astring' value='core,signal'/>
73 </property_group>
74
75 <template>
76 <common_name>
77 <loctext xml:lang='C'>OpenSSH server</loctext>
78 </common_name>
79 <documentation>
80 <manpage
81 title='sshd'
82 section='1M'
83 manpath='@prefix@/man'/>
84 </documentation>
85 </template>
86 </service>
87</service_bundle>