PROTOR Knowledge Base

PROTOR Redhat: Installing FVWM95

Author: Don Davies
Date: 12-Apr-2002


By default the RedHat 7.2 installation does not fully install the FVWM95 window manager. The similar FVWM-2 is installed but uses different configuration files. FVWM95 is favoured for a PROTOR installation because it is small and easily configured to allow appropriate access for the varying levels of PROTOR user. Ideally FVWM95 is used as the window manager for PROTOR users but a more powerful window manager such KDE or GNOME may be used for system manager or root access.

The FVWM95 distribution may be downloaded in rpm form from the web site :

       http://ftp.plig.org/pub/fvwm95/rpm

This site provides _RPMS_ for a binary distribution, associated icons and a source distribution. These files are :

       fvwm95-2.0.43b-1.i386.rpm
       fvwm95-2.0.43b-1.src.rpm
       fvwm95-icons-2.0.43b-1.i386.rpm

Unfortunately the binary distribution does not run on RedHat 7.2 as it is not built over compatible run-time libraries. Also the source distribution fails on building the module FvwmTaskBar. The following notes describe how to patch the sources and to build new source and binary rpms which are suitable for PROTOR on RedHat 7.2

Install the source package using a suitable package manager. This installs the sources into the standard directories /usr/src/redhat. The following subdirectories will already exist.

        SPECS   contains specification files for RPM
        SOURCES contains source tarballs
        BUILD   directory into which code will be built
        RPMS/i386       directory for final binary RPMS
        SRPMS   directory for final source RPMS.

In the SOURCES directory will exist the sources tarball ( fvwm95-2.0.43b.tar.gz ) and any patch files. To keep track of any changes it is advisable to unpack the sources tar file and rename the result directory to name.orig and then unpack the tar file again. Now work in this directory and when complete generate a differences between the modified directory and the original which may then be used to patch the source distribution. That is ,

       tar xvzf fvwm95-2.0.43b.tar.gz
       mv fvwm95-2.0.43b fvwm95-2.0.43b.orig
       tar xvzf fvwm95-2.0.43b.tar.gz
       cd fvwm95-2.0.43b
       . . . edit files as necessary . .
       diff -uNr fvwm95-2.0.43b.orig fvwm95-2.0.43b >
                                fvwm95-2.0.43b-redhat7.2.patch

To build the FVWM95 package from source then from within the sources directory issue the commands :

       ./configure
       make

The original sources failed on building FvwmTaskBar. The sources Goodies.c and ShowDateModule.c needed to include the header <time.h> in addition to <sys/time.h>.

With these modifications made then the build completes successfully. It is possible to generate a new binary and source RPM specifying the patch file generated above. The main specification of the RPM file is controlled by the file SPECS/fvwm.specs. This file was modified to specify the new patch file and to update the change log. Note that the procedure should allow multiple patches to be included but for some reason only the 1st appeared to be executed. Therefore our new patch was specified as Patch0. A copy of the spec file is attached at the end of this document. With this spec file modified a new binary and source RPM is build by the command.

         rpmbuild -ba SPECS/fvwm95.spec

The resultant binary RPM can be found in RPMS/i386 and the source RPM in SRPM. This RPM can then be installed onto a RedHat 7.2 system for use with PROTOR. In order for an individual user to use FVWM95 rather than any of the other Window Managers then the best solution is to include the file .Xclients in the users HOME directory. This file can be tailored to explicity run fvwm95, if it exists. The following is a suitable .Xclients file.

#!/bin/bash
# Copyright 1999 - 2001 Red Hat, Inc.
# License: GNU General Public License v2
#
# Modification :
# D.Davies Prosig Ltd. Modified to run fvwm95 by default
# check to see if the user has a preferred desktop
PREFERRED=fvwm95
# Failsafe.
# these files are left sitting around by TheNextLevel.
rm -f $HOME/Xrootenv.0
rm -f /tmp/fvwmrc* 2>/dev/null
if which ${PREFERRED} >/dev/null 2>&1; then
exec ${PREFERRED} > "$HOME"/.${PREFERRED}-errors 2>&1
fi
# Argh! Nothing good is installed. Fall back to fvwm2 (win95-style) or twm
/usr/X11R6/bin/RunWM --Fvwm95 || {
# gosh, neither fvwm95 nor fvwm2 is available;
# fall back to failsafe settings
xclock -geometry 100x100-5+5 &
xterm -geometry 80x50-50+150 &
if [ -f /usr/bin/netscape -a -f /usr/share/doc/HTML/index.html ]; then
        netscape /usr/share/doc/HTML/index.html &
fi
if [ -f /usr/X11R6/bin/fvwm ]; then
        exec fvwm
else
        exec twm
fi
}

The window setup and options available on the resultant desktop are controlled through the file .fvwm95rc. The protor user installation creates a suitable file dependent on the priviledges granted to a particular user.


FVWM95 RPM Specification file ( fvwm95.spec )
----------------------------------------------
Name: fvwm95
Version: 2.0.43b
Release: 1
Summary: Window Manager with Windows '95 look
Source: fvwm95-2.0.43b.tar.gz
Patch0: fvwm95-2.0.43b-redhat7.2.patch
Patch1: fvwm95-2.0.43b-redhat.patch
Copyright: GPL
Group: X11/Window Managers
Requires: fvwm95-icons
BuildRoot: /tmp/fvwm95-root
Packager: Manu Rouat <rouat@dsys.ceng.cea.fr>
%description
fvwm95 is a version of the popular "Feeble Virtual Window Manager" that
emulates the look and feel of Windows '95. Now you can have the look and
feel of the the Windows world with the power and convenience of Linux.
NOTE: this is a version based on the original fvwm95-2.0.43a (patched)
with enhanced taskbar, new modules and new pixmaps/mini-icons
%package icons
Summary: Pixmaps and mini-icons for fvwm95
Group: X11/Window Managers
%description icons
This package contains pixmaps and mini-icons for fvwm95
%prep
%setup
%patch -p 1
%clean
rm -rf $RPM_BUILD_ROOT
%build
./configure --prefix=/usr/X11R6
make
%install
install -d $RPM_BUILD_ROOT/usr/X11R6/bin
install -d $RPM_BUILD_ROOT/usr/X11R6/man/man1/
install -d $RPM_BUILD_ROOT/usr/X11R6/lib/X11/mini-icons
install -d $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95
install -d $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95/scripts
install -d $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95/plugins
install -d $RPM_BUILD_ROOT/usr/X11R6/lib/X11/pixmaps
install -s fvwm/fvwm95 \
$RPM_BUILD_ROOT/usr/X11R6/bin
install -m 644 fvwm/fvwm95.man \
$RPM_BUILD_ROOT/usr/X11R6/man/man1/fvwm95.1x
install -s xpmroot/xpmroot \
$RPM_BUILD_ROOT/usr/X11R6/bin
install -m 644 xpmroot/xpmroot.man \
$RPM_BUILD_ROOT/usr/X11R6/man/man1/xpmroot.1x
cd modules
for module in FvwmAudio FvwmAuto FvwmBacker FvwmBanner FvwmButtons FvwmCpp \
        FvwmDebug FvwmForm FvwmIconBox FvwmIconMan FvwmIdent FvwmM4 \
        FvwmPager FvwmSave FvwmSaveDesk FvwmScript FvwmScroll FvwmTalk \
FvwmTaskBar FvwmWinList FvwmWharf ; do \
        install -s -m 755 $module/$module \
                $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95; \
        install -c -m 644 $module/$module.man \
                $RPM_BUILD_ROOT/usr/X11R6/man/man1/$module.1x; \
        done
install -s -m 755 FvwmConsole/FvwmConsole \
                $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95;
install -s -m 755 FvwmConsole/FvwmConsoleC \
                $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95;

for script in BellSetup Buttons Date DeskSetup FileBrowser KeyboardSetup \
        PointerSetup Quit ScreenDump ScreenSetup ; do \
        install -c -m 644 FvwmScript/Scripts/$script \
                $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95/scripts; \
        done

install -m 755 FvwmTaskBar/*.so \
$RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95/plugins
cd ..
install sample.fvwmrc/system.fvwm95rc \
$RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95/system.fvwm95rc
install -m 0444 pixmaps/*.xpm \
$RPM_BUILD_ROOT/usr/X11R6/lib/X11/pixmaps/
install -m 0444 mini-icons/*.xpm \
$RPM_BUILD_ROOT/usr/X11R6/lib/X11/mini-icons/
install -m 755 utils/fvwmrc_convert \
$RPM_BUILD_ROOT/usr/X11R6/bin
install -m 755 utils/quantize_pixmaps \
$RPM_BUILD_ROOT/usr/X11R6/bin
ln -sf /usr/X11R6/lib/X11/fvwm95/system.fvwm95rc \
$RPM_BUILD_ROOT/usr/X11R6/lib/X11/fvwm95/.fvwm95rc
%files
%attr(-,root,root) %dir /usr/X11R6/lib/X11/fvwm95
%attr(-,root,root) %dir /usr/X11R6/lib/X11/fvwm95/plugins
%attr(-,root,root) %dir /usr/X11R6/lib/X11/fvwm95/scripts
%attr(-,root,root) %doc README fvwm95-2.xx.lsm GPL Changelog FvwmTaskBar-plugins.patch.README
%attr(-,root,root) %doc pixmaps/README.mini
%attr(-,root,root) %doc docs/modules.tex docs/m4_hacks docs/error_codes docs/color_combos
%attr(-,root,root) %doc docs/*.html docs/html
%attr(-,root,root) %config /usr/X11R6/lib/X11/fvwm95/system.fvwm95rc
%attr(-,root,root) /usr/X11R6/bin/*
%attr(-,root,root) /usr/X11R6/lib/X11/fvwm95/Fvwm*
%attr(-,root,root) /usr/X11R6/lib/X11/fvwm95/scripts/*
%attr(-,root,root) /usr/X11R6/lib/X11/fvwm95/plugins/*
%attr(-,root,root) /usr/X11R6/lib/X11/fvwm95/.fvwm95rc
%attr(-,root,root) /usr/X11R6/man/man1/*
%files icons
%attr(-,root,root) /usr/X11R6/lib/X11/mini-icons/
%attr(-,root,root) /usr/X11R6/lib/X11/pixmaps/

%changelog
* Wed Mar 27 2002 Don Davies <don.davies@prosig.com>
- FvwmTaskBar failed to build on Redhat7.2. Added patch for redhat7.2
which modifies ../modules/FvwmTaskBar/Goodies.c and ShowDateModule.c
so that they build OK
* Mon Feb 16 1998 Manu Rouat <rouat@dsys.ceng.cea.fr>
- at last version 2.043b!! See Readme.
* Thu Aug 07 1997 Corey Minyard <minyard@acm.org>
- Added installation of man pages for fvwm95 and xpmroot.
- Added the standard patch for empty name death and moved the redhat
patch to *-rh.patch.
- Removed gzipping of man pages.
- For some reason stripping the fvwm95 executable caused it to not
use pixmaps. Removed stripping of the executable.
* Wed Mar 12 1997 Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
- added xpmroot (forgotten on rewriting spec) and script quantize_pixmaps,
- removed instaling FvwmConsole module (compiled with -DNO_CONSOLE),
- man pages instaled with 1x extension,
- new version fvwm95-2.0.43a:
From Release notes:
- Bug corrections: m4-preprocessing, taskbar's MailBox command problem,
etc...
- New taskbar option for showing only the buttons corresponding to the
windows in the active desktop.
- Support for side pixmaps in menus. Now you can make your start menu
look like this
- The TitleIcon style option now has MiniIcon as a synonym for
compatibility with (future) fvwm2 similar directive.
- Configuration changes: the menu colors are now specified by a
MenuColors directive.
- Name changes: the executable file is now fvwm95 instead of fvwm95-2.
The user's config file is .fvwm95rc instead of .fvwm2rc95, the
system-wide config file is system.fvwm95rc.
- Slow-sliding taskbar when the AutoHide option is enabled.
- Corrected a bug in fvwm code that caused the window manager to die when
using the taskbar option "*FvwmTaskBarAction Click3 PopUp Window-Ops2".
Now the window-ops popup can be used correctly when right-clicking on a
taskbar button.
- Some more new mini-icons.
* Mon Mar 10 1997 Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
- all man pages are gziped,
- spec file rewrited for using BuildRoot,
- fixed default config file (removed fvwm95.0.41f-FSSTND.patch, added
fvwm95-2.0.42-fvwm2rc95.patch),
- added lacking icons and bitmaps.


Return to Knowledge Base