%define name terminal-server %define version 1.5 %define release 7mdk Summary: Terminal Server Name: %{name} Version: %{version} Release: %{release} Source0: %{name}-%{version}.tar.bz2 Source1: %{name}-mdk-mods.tar.bz2 Patch0: %{name}-mdk-fstab.patch.bz2 License: GPL URL: http://www.fensystems.co.uk/SRPMS.fensys Group: Networking/Other BuildRoot: %{_tmppath}/%{name}-buildroot Requires: clusternfs tftp-server dhcp-server devfsd Requires: mkinitrd-net drakxtools-newt usermode %ifarch %{ix86} Requires: etherboot %endif Requires: perl-GTK drakxtools BuildArchitectures: noarch %description This package includes the files necessary in order to provide terminal server functionality for diskless workstations on your network. There are security implications to installing this package. Specifically, it will make your entire filesystem accessible to any station on the network. Network stations will have the privilege level of an anonymous user (via the all_squash nfs option), so this is not a major security risk. Network booting may not function correctly (or at all) if certain key parts of your filesystem are not world-readable. A first pass at a Mandrake configuration tool, drakTermServ can be found in drakxtools. Initially it is capable of setting up/start/stopping the server, creating etherboot floppy disks and isos, creating kernel net boot images for client machines, maintaining client user and machine lists, and configuring the dhcpd and clusternfs servers. A fairly generic vesa XFree86Config-4$$CLIENT$$ is included for the client machines. Basic cdrom/floppy mount points are also included, but you'll probably want to assign these per client machine. Future drakTermServ plans include managing custom client files. This package is based on work by Michael Brown <mbrown@fensystems.co.uk>, with minor modifications for inclusion in Mandrake Linux. %prep %setup -q -n server-side %patch -p1 %build %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{_sysconfdir} mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/X11 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc{3,5}.d'$$CLIENT$$' mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/terminal-server/profiles mkdir -p $RPM_BUILD_ROOT/sbin mkdir -p $RPM_BUILD_ROOT%{_sbindir} mkdir -p $RPM_BUILD_ROOT%{_localstatedir} mkdir -p $RPM_BUILD_ROOT/mnt/'cdrom$$CLIENT$$' mkdir -p $RPM_BUILD_ROOT/mnt/'floppy$$CLIENT$$' # ClusterNFS $$CLIENT$$ files install -m 644 inittab $RPM_BUILD_ROOT%{_sysconfdir}/'inittab$$CLIENT$$' install -m 644 fstab $RPM_BUILD_ROOT%{_sysconfdir}/'fstab$$CLIENT$$' install -m 644 shadow $RPM_BUILD_ROOT%{_sysconfdir}/'shadow$$CLIENT$$' install -m 644 network $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/'network$$CLIENT$$' #install -m 755 prefdm $RPM_BUILD_ROOT%{_sysconfdir}/X11/'prefdm$$CLIENT$$' ln -s /dev/null $RPM_BUILD_ROOT/.autofsck'$$CLIENT$$' ln -s /dev/null $RPM_BUILD_ROOT/sbin/depmod'$$CLIENT$$' ln -s /dev/null $RPM_BUILD_ROOT%{_sbindir}/fndSession'$$CLIENT$$' ln -s /proc/mounts $RPM_BUILD_ROOT%{_sysconfdir}/mtab'$$CLIENT$$' ln -s /tmp/XF86Config.test $RPM_BUILD_ROOT%{_sysconfdir}/X11/XF86Config.test'$$CLIENT$$' ln -s /tmp/XF86Config.test-4 $RPM_BUILD_ROOT%{_sysconfdir}/X11/XF86Config.test-4'$$CLIENT$$' ln -s /tmp $RPM_BUILD_ROOT%{_localstatedir}/xkb'$$CLIENT$$' # $$CLIENT$$ init scripts ln -s ../init.d/xfs $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc5.d'$$CLIENT$$'/S90xfs ln -s ../init.d/xfs $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc3.d'$$CLIENT$$'/S90xfs # Default terminal-server profile install -m 755 xterminal $RPM_BUILD_ROOT%{_sysconfdir}/terminal-server/profiles/xterminal # General configuration files install -m 644 dhcpd.conf.terminal-server.example $RPM_BUILD_ROOT%{_sysconfdir}/ install -m 644 exports $RPM_BUILD_ROOT%{_sysconfdir}/exports.terminal-server # Utilities install -m 755 mkdhcpdconf $RPM_BUILD_ROOT%{_sbindir}/ # Mandrakization + drakTermServ pushd $RPM_BUILD_ROOT tar -xjf %{SOURCE1} popd # empty raidtab for client machines touch $RPM_BUILD_ROOT%{_sysconfdir}/raidtab'$$CLIENT$$' # installed but not packaged files rm -f $RPM_BUILD_ROOT%{_sysconfdir}/X11/prefdm'$$CLIENT$$' %clean rm -rf $RPM_BUILD_ROOT %post # bypass this for now - drakTermServ set's them up #if [ ! -f %{_sysconfdir}/dhcpd.conf ]; then # cp %{_sysconfdir}/dhcpd.conf.terminal-server.example %{_sysconfdir}/dhcpd.conf # %{_sbindir}/mkdhcpdconf >> %{_sysconfdir}/dhcpd.conf #fi #if ! egrep '^/[[:space:]]' %{_sysconfdir}/exports > /dev/null; then # cat %{_sysconfdir}/exports.terminal-server >> %{_sysconfdir}/exports #fi %files %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/inittab$$CLIENT$$ %config(noreplace) %{_sysconfdir}/fstab$$CLIENT$$ %config(noreplace) %{_sysconfdir}/shadow$$CLIENT$$ %config(noreplace) %{_sysconfdir}/raidtab$$CLIENT$$ %config(noreplace) %{_sysconfdir}/sysconfig/network$$CLIENT$$ %config(noreplace) %{_sysconfdir}/X11/gdm/gdm.conf$$CLIENTS$$ %config(noreplace) %{_sysconfdir}/X11/xdm/Xresources$$CLIENTS$$ %{_datadir}/config/kdm/kdmrc$$CLIENTS$$ /.autofsck$$CLIENT$$ /sbin/depmod$$CLIENT$$ %{_sbindir}/fndSession$$CLIENT$$ %{_sysconfdir}/mtab$$CLIENT$$ %{_sysconfdir}/X11/XF86Config.test$$CLIENT$$ %{_sysconfdir}/X11/XF86Config.test-4$$CLIENT$$ %config(noreplace) %{_sysconfdir}/X11/XF86Config-4$$CLIENT$$ %{_localstatedir}/xkb$$CLIENT$$ %{_sysconfdir}/rc.d/rc3.d$$CLIENT$$ %{_sysconfdir}/rc.d/rc5.d$$CLIENT$$ %dir %{_sysconfdir}/terminal-server/profiles %config(noreplace) %{_sysconfdir}/terminal-server/profiles/xterminal %config(noreplace) %{_sysconfdir}/dhcpd.conf.terminal-server.example %config(noreplace) %{_sysconfdir}/exports.terminal-server %config(noreplace) %{_sysconfdir}/pam.d/drakTermServ %{_sbindir}/mkdhcpdconf %_bindir/drakTermServ /mnt/cdrom$$CLIENT$$ /mnt/floppy$$CLIENT$$ %changelog * Mon Dec 30 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-7mdk - add empty /etc/raidtab$$CLIENT$$ (Per Ãyvind Karlse) - installed but unpackaged files * Mon Oct 21 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-6mdk - move etherboot requires to just x86 * Tue Oct 8 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-5mdk - add client XF86Config-4 mods from Michael Brown for ps2 or serial mice * Sat Aug 17 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-4mdk - add client cdrom/floppy mount mounts, drop predfm$$CLIENT$$ * Thu Jul 18 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-3mdk - pull drakTermServ icon - in drakxtools now * Fri Jun 28 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-2mdk - more Requires - thx erwan :) * Tue Jun 25 2002 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-1mdk - first Mandrake release * Sun Jun 02 2002 Michael Brown <mbrown@fensystems.co.uk> 1.5-1fs - Added profile mechanism: can now specify tsprofile=xxx on kernel cmdline - and appropriate profile(s) from /etc/terminal-server/profiles/ will be run. * Sat May 04 2002 Michael Brown <mbrown@fensystems.co.uk> 1.4-1fs - Added semi-automatic maintenance of dhcpd.conf and exports files * Wed May 01 2002 Michael Brown <mbrown@fensystems.co.uk> 1.3-1fs - /etc/exports and /etc/dhcpd.conf are now installed as examples only * Wed May 01 2002 Michael Brown <mbrown@fensystems.co.uk> 1.2-1fs - Flagged as NoArch * Wed May 01 2002 Michael Brown <mbrown@fensystems.co.uk> 1.1-1fs - First version (based on work at East Hull CLC)