Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > by-pkgid > 8c3a5c76ed26d5779a59353377ee95ef > files > 4

terminal-server-1.5-24mdk.src.rpm

%define name terminal-server
%define version 1.5
%define release 24mdk

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 
Requires: mkinitrd-net drakxtools usermode
Requires: etherboot usermode-consoleonly
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 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 xorg.conf$$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 Mandrakelinux.

See http://qa.mandrakesoft.com/twiki/bin/view/Main/TerminalServer for
additional information.

%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/xorg.conf.test $RPM_BUILD_ROOT%{_sysconfdir}/X11/xorg.conf.test'$$CLIENT$$'
ln -s /tmp $RPM_BUILD_ROOT%{_localstatedir}/xkb'$$CLIENT$$'
ln -s /tmp $RPM_BUILD_ROOT%{_localstatedir}/gdm'$$CLIENT$$'

# $$CLIENT$$ init scripts
install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/terminal-server << EOF
#!/bin/sh
# some misc terminal-server boot cleanups

# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "\$1" in
  start)

    gprintf "Create/mount additional directories: "  
    [[ -d /var/run/console ]] || mkdir /var/run/console

    # only exists if nautilus is installed
    [[ -d /var/lib/gnome/desktop ]] && mount /var/lib/gnome/desktop
    echo
    ;;
  stop)
    gprintf "Nothing to do for stop: "
    echo
    ;;
  *)
    gprintf "*** Usage: terminal-server {start|stop}\n"
    exit 1
esac

exit 0
EOF

ln -s ../init.d/udev $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc3.d'$$CLIENT$$'/S01udev
ln -s ../init.d/udev $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc5.d'$$CLIENT$$'/S01udev
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/terminal-server $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc5.d'$$CLIENT$$'/S10terminal-server
ln -sf ../init.d/terminal-server $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/rc3.d'$$CLIENT$$'/S10terminal-server

# 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

chmod 0755 $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/terminal-server
chmod 0755 $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/udev'$$CLIENT$$'

install -d $RPM_BUILD_ROOT%{_bindir}
ln -sf consolehelper $RPM_BUILD_ROOT%{_bindir}/drakTermServ

# 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$$'

# random-seed file
ln -s /tmp/random-seed $RPM_BUILD_ROOT%{_localstatedir}/random-seed'$$CLIENT$$' 

# installed but not packaged files
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/X11/prefdm'$$CLIENT$$'
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/shadow'$$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
#!/bin/sh
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}/rc.d/init.d/udev$$CLIENT$$
%config(noreplace) %{_sysconfdir}/rc.d/init.d/terminal-server
%config(noreplace) %{_sysconfdir}/inittab$$CLIENT$$
%config(noreplace) %{_sysconfdir}/fstab$$CLIENT$$
%config(noreplace) %{_sysconfdir}/raidtab$$CLIENT$$
%config(noreplace) %{_sysconfdir}/dhcpd.conf.pxe.include
%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/xorg.conf.test$$CLIENT$$
%{_sysconfdir}/qt_plugins_3.2rc*
%config(noreplace) %{_sysconfdir}/X11/xorg.conf$$CLIENT$$
%{_localstatedir}/xkb$$CLIENT$$
%{_localstatedir}/gdm$$CLIENT$$
%{_localstatedir}/random-seed$$CLIENT$$
%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  3 2005 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-24mdk
- misc mods to deal with changes in init scripts, packages
  * new fstab, some new $$CLIENT$$ symlinks
  * sync udev script
  * include dhcpd.conf.pxe.include
  * rename varrun init script to terminal-server and update

* Mon Dec 13 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-23mdk
- XF86Config-4 -> xorg.conf, Keyboard -> keyboard

* Mon Dec 13 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-22mdk
- more fstab entries

* Thu Dec 09 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-21mdk
- udev init script in runlevel 3,5
- remove /lib/dev-state from fstab$$CLIENT$$ (pixel)
- don't include shadow$$CLIENT$$, just causes confusion (pixel)

* Tue Aug 31 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-20mdk
- mirror udev initscript so we can write somewhere besides /dev.old
- replace forbidden name

* Fri Aug 20 2004 Stew Benedict <sbenedict@mandrakesoft.com> 1.5-19mdk
- removed devfsd requires, client link for /var/lib/random-seed

* 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)