packages (upstart_native): openssh/openssh.spec, openssh/opensshd.init, ope...

jajcus jajcus at pld-linux.org
Fri May 7 10:47:29 CEST 2010


Author: jajcus                       Date: Fri May  7 08:47:29 2010 GMT
Module: packages                      Tag: upstart_native
---- Log message:
- proof-of-concept upstart event-based startup

---- Files affected:
packages/openssh:
   openssh.spec (1.335 -> 1.335.2.1) , opensshd.init (1.35 -> 1.35.2.1) , opensshd.upstart (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/openssh/openssh.spec
diff -u packages/openssh/openssh.spec:1.335 packages/openssh/openssh.spec:1.335.2.1
--- packages/openssh/openssh.spec:1.335	Fri Apr 16 14:56:33 2010
+++ packages/openssh/openssh.spec	Fri May  7 10:47:23 2010
@@ -32,7 +32,7 @@
 Summary(uk.UTF-8):	OpenSSH - вільна реалізація протоколу Secure Shell (SSH)
 Name:		openssh
 Version:	5.5p1
-Release:	2
+Release:	2.1
 Epoch:		2
 License:	BSD
 Group:		Applications/Networking
@@ -46,6 +46,7 @@
 Source5:	ssh-agent.sh
 Source6:	ssh-agent.conf
 Source7:	%{name}-lpk.schema
+Source8:	%{name}d.upstart
 Patch100:	%{name}-heimdal.patch
 Patch0:		%{name}-no_libnsl.patch
 Patch2:		%{name}-pam_misc.patch
@@ -96,6 +97,24 @@
 %define		_privsepdir	/usr/share/empty
 %define		schemadir	/usr/share/openldap/schema
 
+## to be moved to rpm-build-macros
+## TODO: handle RPM_SKIP_AUTO_RESTART
+
+# migrate from init script to upstart job
+%define	upstart_post() \
+	if [ -f /var/lock/subsys/"%1" ] ; then \
+		/sbin/service --no-upstart "%1" stop \
+		/sbin/service "%1" start \
+	fi
+
+# restart the job after upgrade or migrate to init script on removal
+%define	upstart_postun() \
+	if [ -x /sbin/initctl ] && /sbin/initctl status "%1" 2>/dev/null | grep -q 'running' ; then \
+		/sbin/initctl stop "%1" 2>/dev/null \
+		[ -f "/etc/rc.d/init.d/%1" -o -f "/etc/init/%1.conf" ] && /sbin/service "%1" start \
+	fi
+
+
 %description
 Ssh (Secure Shell) a program for logging into a remote machine and for
 executing commands in a remote machine. It is intended to replace
@@ -400,6 +419,20 @@
 частина протоколу Secure Shell, яка дозволяє клієнтам ssh зв'язуватись
 з вашим хостом.
 
+%package server-upstart
+Summary:	Upstart job description for OpenSSH server
+Summary(pl.UTF-8):	Opis zadania Upstart dla serwera OpenSSH
+Group:		Daemons
+Requires:	%{name}-server = %{epoch}:%{version}-%{release}
+Requires:	upstart
+Requires:	rc-scripts > 0.4.2.8
+
+%description server-upstart
+Upstart job description for OpenSSH.
+
+%description server-upstart -l pl.UTF-8
+Opis zadania Upstart dla OpenSSH.
+
 %package gnome-askpass
 Summary:	OpenSSH GNOME passphrase dialog
 Summary(de.UTF-8):	OpenSSH GNOME Passwort-Dialog
@@ -538,7 +571,7 @@
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{pam.d,rc.d/init.d,sysconfig,security,env.d}} \
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{init,pam.d,rc.d/init.d,sysconfig,security,env.d}} \
 	$RPM_BUILD_ROOT{%{_libexecdir}/ssh,%{schemadir}}
 install -d $RPM_BUILD_ROOT/etc/{profile.d,X11/xinit/xinitrc.d}
 
@@ -555,6 +588,8 @@
 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}
 install %{SOURCE7} $RPM_BUILD_ROOT%{schemadir}
 
+install %{SOURCE8} $RPM_BUILD_ROOT/etc/init/sshd.conf
+
 %if %{with gnome}
 install contrib/gnome-ssh-askpass1 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass
 %endif
@@ -623,6 +658,12 @@
 	%userremove sshd
 fi
 
+%post server-upstart
+%upstart_post sshd
+
+%postun server-upstart
+%upstart_postun sshd
+
 %post -n openldap-schema-openssh-lpk
 %openldap_schema_register %{schemadir}/openssh-lpk.schema
 %service -q ldap restart
@@ -714,12 +755,19 @@
 %{schemadir}/openssh-lpk.schema
 %endif
 
+%files server-upstart
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) /etc/init/sshd.conf
+
 %define date	%(echo `LC_ALL="C" date +"%a %b %d %Y"`)
 %changelog
 * %{date} PLD Team <feedback at pld-linux.org>
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.335.2.1  2010/05/07 08:47:23  jajcus
+- proof-of-concept upstart event-based startup
+
 Revision 1.335  2010/04/16 12:56:33  glen
 - release 2
 

================================================================
Index: packages/openssh/opensshd.init
diff -u packages/openssh/opensshd.init:1.35 packages/openssh/opensshd.init:1.35.2.1
--- packages/openssh/opensshd.init:1.35	Wed Mar 24 16:27:15 2010
+++ packages/openssh/opensshd.init	Fri May  7 10:47:23 2010
@@ -107,6 +107,9 @@
 	fi
 }
 
+# init is handled by this script
+upstart_controlled start stop restart status reload force-reload try-restart
+
 RETVAL=0
 # See how we were called.
 case "$1" in

================================================================
Index: packages/openssh/opensshd.upstart
diff -u /dev/null packages/openssh/opensshd.upstart:1.1
--- /dev/null	Fri May  7 10:47:29 2010
+++ packages/openssh/opensshd.upstart	Fri May  7 10:47:23 2010
@@ -0,0 +1,25 @@
+
+start on pld.network-started and started SERVICE=syslog
+stop on pld.shutdown-started
+
+respawn
+
+console output
+
+script
+	. /etc/rc.d/init.d/functions
+	. /etc/sysconfig/network
+
+  	if [ ! -s /etc/ssh/ssh_host_key ] ; then
+		/etc/rc.d/init.d/sshd init
+  	fi
+
+	if is_yes "$IPV4_NETWORKING" && is_no "$IPV6_NETWORKING"; then
+		OPTIONS="$OPTIONS -4"
+	fi
+	if is_yes "$IPV6_NETWORKING" && is_no "$IPV4_NETWORKING"; then
+		OPTIONS="$OPTIONS -6"
+	fi
+
+	exec /usr/sbin/sshd -D $OPTIONS
+end script
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/openssh/openssh.spec?r1=1.335&r2=1.335.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/openssh/opensshd.init?r1=1.35&r2=1.35.2.1&f=u



More information about the pld-cvs-commit mailing list