From e8078d41df77e9b05f0e0a8315fdcd178d9c7041 Mon Sep 17 00:00:00 2001 From: Juan RP <xtraeme@gmail.com> Date: Mon, 4 May 2009 23:43:55 +0200 Subject: [PATCH] openssh-server: switch to OpenRC, bump revision. --HG-- extra : convert_revision : 0e3f828334b3ed39dfc4dc5e8e6044c617463ebe --- templates/openssh/files/sshd | 58 ------------------------------- templates/openssh/files/sshd.rc | 33 ++++++++++++++++++ templates/openssh/server.template | 7 +++- templates/openssh/template | 3 +- 4 files changed, 41 insertions(+), 60 deletions(-) delete mode 100644 templates/openssh/files/sshd create mode 100644 templates/openssh/files/sshd.rc diff --git a/templates/openssh/files/sshd b/templates/openssh/files/sshd deleted file mode 100644 index 2e5aeeb585..0000000000 --- a/templates/openssh/files/sshd +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -# -# $NetBSD: sshd.sh,v 1.11 2003/05/22 09:05:38 wiz Exp $ -# -# PROVIDE: sshd -# REQUIRE: DAEMON LOGIN - -$_rc_subr_loaded . /etc/rc.subr - -name="sshd" -rcvar=$name -command="/usr/sbin/${name}" -keygen_command="/usr/bin/ssh-keygen" -pidfile="/var/run/${name}.pid" -required_files="/etc/ssh/sshd_config" -extra_commands="keygen reload" - -sshd_keygen() -{ - ( - umask 022 - if [ -f /etc/ssh/ssh_host_key ]; then - echo "You already have an RSA host key in /etc/ssh/ssh_host_key" - echo "Skipping protocol version 1 RSA Key Generation" - else - ${keygen_command} -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N '' - fi - - if [ -f /etc/ssh/ssh_host_dsa_key ]; then - echo "You already have a DSA host key in /etc/ssh/ssh_host_dsa_key" - echo "Skipping protocol version 2 DSA Key Generation" - else - ${keygen_command} -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' - fi - - if [ -f /etc/ssh/ssh_host_rsa_key ]; then - echo "You already have a RSA host key in /etc/ssh/ssh_host_rsa_key" - echo "Skipping protocol version 2 RSA Key Generation" - else - ${keygen_command} -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' - fi - ) -} - -sshd_precmd() -{ - if [ ! -f /etc/ssh/ssh_host_key -o \ - ! -f /etc/ssh/ssh_host_dsa_key -o \ - ! -f /etc/ssh/ssh_host_rsa_key ]; then - run_rc_command keygen - fi -} - -keygen_cmd=sshd_keygen -start_precmd=sshd_precmd - -load_rc_config $name -run_rc_command "$1" diff --git a/templates/openssh/files/sshd.rc b/templates/openssh/files/sshd.rc new file mode 100644 index 0000000000..b36d097880 --- /dev/null +++ b/templates/openssh/files/sshd.rc @@ -0,0 +1,33 @@ +#!/sbin/runscript + +command=/usr/sbin/sshd +pidfile=/var/run/sshd.pid +required_files=/etc/ssh/sshd_config +name="Secure Shell Daemon" + +depend() +{ + use logger dns + need net +} + +start_pre() +{ + if [ ! -e /etc/ssh/ssh_host_key ]; then + ebegin "Generating Hostkey" + ssh-keygen -t rsa1 -b 4096 -f /etc/ssh/ssh_host_key -N '' + eend $? || return 1 + fi + if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then + ebegin "Generating DSA Hostkey" + ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key -N '' + eend $? || return 1 + fi + if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then + ebegin "Generating RSA Hostkey" + ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' + eend $? || return 1 + fi + + $command -t +} diff --git a/templates/openssh/server.template b/templates/openssh/server.template index f7fb605e77..e4b4cbb7a7 100644 --- a/templates/openssh/server.template +++ b/templates/openssh/server.template @@ -5,13 +5,18 @@ long_desc="${long_desc} This package contains the ${pkgname} server files." +revision=1 conf_files="/etc/ssh/sshd_config /etc/pam.d/sshd" +openrc_services="sshd default" +triggers="openrc-service" + Add_dependency run glibc Add_dependency run zlib Add_dependency run openssl Add_dependency run pam Add_dependency run tcp_wrappers-libs Add_dependency run openssh +Add_dependency run OpenRC do_install() { @@ -30,6 +35,6 @@ do_install() ${DESTDIR}/usr/share/man/man8 done mv ${SRCPKGDESTDIR}/etc/pam.d ${DESTDIR}/etc - mv ${SRCPKGDESTDIR}/etc/rc.d ${DESTDIR}/etc + mv ${SRCPKGDESTDIR}/etc/init.d ${DESTDIR}/etc mv ${SRCPKGDESTDIR}/var ${DESTDIR} } diff --git a/templates/openssh/template b/templates/openssh/template index 461e137218..77b5d7d9d2 100644 --- a/templates/openssh/template +++ b/templates/openssh/template @@ -50,7 +50,8 @@ post_install() ${DESTDIR}/usr/bin/ssh-copy-id install -D -m644 ${wrksrc}/contrib/ssh-copy-id.1 \ ${DESTDIR}/usr/share/man/man1/ssh-copy-id.1 - install -D -m755 ${FILESDIR}/sshd ${DESTDIR}/etc/rc.d/sshd + # Install the OpenRC service + install -D -m755 ${FILESDIR}/sshd.rc ${DESTDIR}/etc/init.d/sshd sed -i \ -e 's|^#ListenAddress 0.0.0.0|ListenAddress 0.0.0.0|g' \