Don't fanny around with automounter tricks to access ssh keys in vservers
[pl_sshd.git] / pl_sshd.spec
1 %define name pl_sshd
2 %define version 1.0
3 %define release 10.planetlab%{?date:.%{date}}
4
5 Vendor: PlanetLab
6 Packager: PlanetLab Central <support@planet-lab.org>
7 Distribution: PlanetLab 3.0
8 URL: http://cvs.planet-lab.org/cvs/pl_sshd
9
10 Summary: SSH server config for PlanetLab
11 Name: %{name}
12 Version: %{version}
13 Release: %{release}
14 Requires: autofs, openssh-server
15 License: GPL
16 Group: System Environment/Base
17 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
18
19 Source0: %{name}-%{version}.tar.bz2
20
21 %description 
22 SSH server configuration for PlanetLab nodes. Configures an automounted
23 directory as source for authorized_keys files and points sshd to that
24 directory.
25
26 %prep
27 %setup
28
29 %build
30
31
32 %install
33 mkdir -p $RPM_BUILD_ROOT/var/pl_sshd/keys
34 install -D -m 0755 pl_sshd.sh $RPM_BUILD_ROOT/usr/local/sbin/pl_sshd
35 install -D -m 0755 pl_sshd $RPM_BUILD_ROOT/etc/init.d/pl_sshd
36 install -D -m 0755 auto.pl_sshd.py $RPM_BUILD_ROOT/etc/auto.pl_sshd
37
38 %clean
39 rm -rf $RPM_BUILD_ROOT
40
41 %files
42 %defattr(-,root,root)
43 %dir /var/pl_sshd/keys
44 %attr(0755,root,root) /usr/local/sbin/pl_sshd
45 %attr(0755,root,root) /etc/init.d/pl_sshd
46 %attr(0755,root,root) /etc/auto.pl_sshd
47
48 %pre
49
50
51 %post
52 # 1 = install, 2 = upgrade/reinstall
53 if [ $1 -ge 1 ]; then
54     # link sshd pam config to pl_sshd so that we can actually login
55     pam_pl_sshd=/etc/pam.d/pl_sshd
56     [ -r $pam_pl_sshd ] || ln -s sshd $pam_pl_sshd
57
58     chkconfig --add pl_sshd
59
60     if [ "$1" -gt "1" ]; then  # upgrading
61         #
62         # remove funky config options for sshd (so that when we restart
63         # things will operate normally i.e., without automount magic)
64         #
65         rm -f /etc/sysconfig/sshd
66
67         #
68         # stop automounter, remove entry from auto.master, restart if
69         # necessary
70         #
71         [ "$PL_BOOTCD" != "1" ] && /etc/init.d/autofs stop
72         auto_master=/etc/auto.master
73         mv $auto_master $auto_master.pl_sshd.post
74         sed -e '\,^/var/pl_sshd/keys,d' $auto_master.pl_sshd.post \
75             >$auto_master
76
77         [ "$PL_BOOTCD" != "1" ] && /etc/init.d/autofs start
78     fi
79
80     if [[ "$PL_BOOTCD" != "1" ]]; then
81         #
82         # don't try to start/restart various things automatically,
83         # it's too ugly (particularly if we're upgrading while
84         # connected over ssh)
85         #
86         echo
87         echo "You need to manually restart autofs and sshd, and"
88         echo "start the pl_sshd (ssh on port 806) service."
89         echo "Make sure you know what you're doing, particularly"
90         echo "if you're making this change over an ssh connection."
91         echo
92     fi
93 fi
94
95 %preun
96 # 0 = erase, 1 = upgrade
97 if [ $1 -eq 0 ]; then
98         #
99         # stop pl_sshd, remove it from rcX.d init dirs, remove link
100         # to sshd's pam config
101         #
102         [ "$PL_BOOTCD" = "1" ] || /etc/init.d/pl_sshd stop || :
103         chkconfig --del pl_sshd
104         rm -f /etc/pam.d/pl_sshd
105 fi
106
107
108 %postun
109
110
111 %changelog
112 * Wed Oct 12 2005 Steve Muir <smuir@cs.princeton.edu>
113 - fix pl_sshd script name and argv[0] to satisfy re-exec requirements
114
115 * Thu Apr  7 2005 Steve Muir <smuir@cs.princeton.edu>
116 - convert auto.pl_sshd to a python script (simpler and less error-prone)
117
118 * Mon Dec  1 2003 Steve Muir <smuir@cs.princeton.edu>
119 - initial creation from files in sidewinder repository
120