%define name terminal-server %define version 1.5 %define release 18mdk 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 usermode Requires: etherboot 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. 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 -b .mdkTS %build %install # (sb) relink now creates several bad symlinks - $$CLIENT$$ seems to confuse export DONT_RELINK=1 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{2,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$$' # (sb) just touch this file, we don't need the bad root, fensys entries touch $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 install -d $RPM_BUILD_ROOT/etc/init.d cat > $RPM_BUILD_ROOT%{_sysconfdir}/init.d/varrun << EOF #!/bin/sh mkdir /var/run/console EOF chmod 0755 $RPM_BUILD_ROOT%{_sysconfdir}/init.d/varrun 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 ln -sf ../init.d/varrun $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc5.d'$$CLIENT$$'/S10varrun ln -sf ../init.d/varrun $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc3.d'$$CLIENT$$'/S10varrun # 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$$' # mdkkdm wants to manipulate these files ln -sf /dev/null $RPM_BUILD_ROOT%{_sysconfdir}/qt_plugins_3.2rc'$$CLIENT$$' ln -sf /tmp/qt_plugins_3.2rc.tmp $RPM_BUILD_ROOT%{_sysconfdir}/qt_plugins_3.2rc.tmp'$$CLIENT$$' # installed but not packaged files rm -f $RPM_BUILD_ROOT%{_sysconfdir}/X11/prefdm'$$CLIENT$$' # menu item for drakTermServ, since it's not in mcc mkdir -p $RPM_BUILD_ROOT%{_menudir} cat > $RPM_BUILD_ROOT%{_menudir}/%{name} << EOF ?package(%{name}):\ needs="x11" \ section="System/Configuration/Other" \ title="Terminal Server Administration" \ longtitle="Setup/Administer Terminal Server and clients." \ command="/usr/sbin/drakTermServ" \ icon="other_configuration.png" EOF # ensure root's ~/tmp directory gets made so drak tools work mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d cat > $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/tmpdir.sh'$$CLIENT$$' << EOF if [ -d \${HOME}/tmp -a -w \${HOME}/tmp ];then export TMPDIR=\${HOME}/tmp export TMP=\${HOME}/tmp elif mkdir -p \${HOME}/tmp >/dev/null 2>&1;then chmod 700 \${HOME}/tmp export TMPDIR=\${HOME}/tmp export TMP=\${HOME}/tmp else export TMPDIR=/tmp/ export TMP=/tmp/ fi EOF chmod 0755 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/tmpdir.sh'$$CLIENT$$' %clean rm -rf $RPM_BUILD_ROOT %post %{update_menus} %postun %{clean_menus} %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}/profile.d/tmpdir.sh$$CLIENT$$ %{_sysconfdir}/X11/XF86Config.test$$CLIENT$$ %{_sysconfdir}/X11/XF86Config.test-4$$CLIENT$$ %{_sysconfdir}/qt_plugins_3.2rc* %config(noreplace) %{_sysconfdir}/X11/XF86Config-4$$CLIENT$$ %{_localstatedir}/xkb$$CLIENT$$ %{_sysconfdir}/init.d/varrun %dir %{_sysconfdir}/rc.d/rc3.d$$CLIENT$$ %dir %{_sysconfdir}/rc.d/rc5.d$$CLIENT$$ %{_sysconfdir}/rc.d/rc3.d$$CLIENT$$/S* %{_sysconfdir}/rc.d/rc5.d$$CLIENT$$/S* %dir %{_sysconfdir}/terminal-server %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$$ %{_menudir}/%{name} %changelog * Thu Mar 18 2004 David Baudens <baudens@mandrakesoft.com> 1.5-18mdk - Fix menu (icon) * Tue Feb 3 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-17mdk - /lib/dev-state, /var/lib/gnome/desktop as tmpfs (Francisco Javier Felix) * Mon Feb 2 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-16mdk - /var/tmp as tmpfs (let KDE run) * Thu Jan 29 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-15mdk - more /var/lib/*dm mount points - sync with current *dm config files - create /var/run/console with client initscript - /etc/qt_plugins_3.2* symlinks for clients to make mdkkdm happy * Tue Jan 27 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-14mdk - add /var/lib/gdm as tmpfs to fstab or gdm won't run * Mon Dec 29 2003 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-13mdk - just start with an empty /etc/shadow$$CLIENT$$ - suppress relativisation of symlinks - can't deal with $$CLIENT$$ * Mon Oct 20 2003 Frederic Lepied <flepied@mandrakesoft.com> 1.5-12mdk - rebuild for rewriting /etc/pam.d file * Tue Aug 26 2003 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-11mdk - drop perl-GTK requires - thx Thierry * Wed Jun 25 2003 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-10mdk - ensure /root/tmp created for client hardware config via drak tools * Tue Jun 24 2003 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-9mdk requires, drakTermServ menu entry * Mon Apr 28 2003 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-8mdk - distriblint * 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)