change URL to repository location
[pl_sshd.git] / pl_sshd.spec
1 %define name pl_sshd
2 %define version 1.0
3 %define release 4.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.sh
35 install -D -m 0755 pl_sshd $RPM_BUILD_ROOT/etc/init.d/pl_sshd
36 install -D -m 0755 auto.pl_sshd $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.sh
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 RUNLEVEL=`/sbin/runlevel`
53
54 # 1 = install, 2 = upgrade/reinstall
55 if [ $1 -ge 1 ]; then
56     # create the magic directory for automount
57     keydir=/var/pl_sshd/keys
58
59     # add appropriate entry to auto.master
60     auto_master=/etc/auto.master
61     auto_master_entry="$keydir /etc/auto.pl_sshd"
62     grep -qF "$auto_master_entry" $auto_master || \
63         echo $auto_master_entry >>$auto_master
64
65     #
66     # use the sysconfig file to tell our system sshd to look in the
67     # magic location for authorized_keys files
68     #
69     sysconfig_sshd=/etc/sysconfig/sshd
70     [ -r $sysconfig_sshd ] && \
71         mv $sysconfig_sshd $sysconfig_sshd.pl_sshd
72     echo "OPTIONS='-o \"AuthorizedKeysFile $keydir/%u/authorized_keys\"'" \
73         >$sysconfig_sshd
74
75     # link sshd pam config to pl_sshd so that we can actually login
76     pam_pl_sshd=/etc/pam.d/pl_sshd
77     [ -r $pam_pl_sshd ] || ln -s sshd $pam_pl_sshd
78
79     chkconfig --add pl_sshd
80
81     if [[ "$RUNLEVEL" != "unknown" ]]; then
82         #
83         # don't try to start/restart various things automatically,
84         # it's too ugly (particularly if we're upgrading while
85         # connected over ssh)
86         #
87         echo
88         echo "You need to manually restart autofs and sshd, and"
89         echo "start the pl_sshd (ssh on port 806) service."
90         echo "Make sure you know what you're doing, particularly"
91         echo "if you're making this change over an ssh connection."
92         echo
93     fi
94 fi
95
96 %preun
97 RUNLEVEL=`/sbin/runlevel`
98
99 # 0 = erase, 1 = upgrade
100 if [ $1 -eq 0 ]; then
101         #
102         # stop pl_sshd, remove it from rcX.d init dirs, remove link
103         # to sshd's pam config
104         #
105         [ "$RUNLEVEL" = "unknown" ] || /etc/init.d/pl_sshd stop || :
106         chkconfig --del pl_sshd
107         rm -f /etc/pam.d/pl_sshd
108
109         #
110         # remove funky config options for sshd (so that when we restart
111         # things will operate normally i.e., without automount magic)
112         #
113         rm /etc/sysconfig/sshd
114         if [ "$RUNLEVEL" != "unknown" ]; then
115             echo
116             echo "You need to manually restart sshd."
117             echo "Make sure you know what you're doing, particularly"
118             echo "if you're making this change over an ssh connection."
119             echo
120         fi
121
122         #
123         # stop automounter, remove entry from auto.master, restart if
124         # necessary
125         #
126         [ "$RUNLEVEL" != "unknown" ] && /etc/init.d/autofs stop
127         auto_master=/etc/auto.master
128         mv $auto_master $auto_master.pl_sshd.preun
129         sed -e '\,^/var/pl_sshd/keys,d' $auto_master.pl_sshd.preun \
130             >$auto_master
131
132         [ "$RUNLEVEL" != "unknown" ] && /etc/init.d/autofs start
133 fi
134
135
136 %postun
137
138
139 %changelog
140 * Mon Dec  1 2003 Steve Muir <smuir@cs.princeton.edu>
141 - initial creation from files in sidewinder repository
142