This README describes Linux-patchlevel 2 of XView3.2p1-X11R6, Sun's
OpenLook[tm] compliant graphical user-interface toolkit for Linux/ELF and
the X Window System.
If you have never heard about XView before, here's a short excerpt of Sun's
README:
XView (X Window-System-based Visual/Integrated Environment for Workstations)
is a user-interface toolkit to support interactive, graphics-based
applications running under the X Window System. XView provides a set of
pre-built, user-interface objects such as canvases, scrollbars, menus, and
control panels. The appearance and functionality of these objects follow
the OPEN LOOK Graphical User Interface (GUI) specification. XView features
an object-oriented style Application Programmer's Interface (API) that is
straightforward and easy to learn.
This release is based on Oleg Kibirev's release of XView for Linux/ELF. It
contains patches from Oleg Kibirev <
[email protected]> (his patches
are based mostly on Kenneth Osterberg's <
[email protected]> patches),
Wolfram Gloger <
[email protected]>, E. Zimmermann <
[email protected]> and
myself. If you have other patches for XView-bugs, please send them to me.
Patchlevel 2 finally fixes the nasty endianess-bug with icons and also
contains some other minor enhancements. Also, I removed the seperate
clients-package and added the sources to my diffs instead. I also merged
Kenneth's diffs to the example-programs that were missing in Oleg's release.
Patchlevel 1 fixes some bugs that existed in all XView-versions since X11R6
(some might even be older). They could cause coredumps or other
miscellaneous failures like ignoring the resoure-database and displaying
PANEL_LISTS with wrong colors. It also includes some malloc-related bugfixes
that should allow you to debug XView-apps with Electric Fence.
You can find the following files on sunsite.unc.edu in
/pub/Linux/libs/X/xview:
xview3.2p1-X11R6-LinuxELF.2.bin.tar.gz:
This is the new binary release that contains everything that's required to
use the XView-libraries. It also contains binaries of the basic XView
clients (olwm, clock, cmdtool and shelltool), two additional clients (props
and textedit) and an (untested and unsupported) olvwm-binary.
xview3.2p1-X11R6-LinuxELF.2.src.tar.gz
This is the sourcecode for the XView-library with my patches (see below)
applied.
xview3.2p1-X11R6-LinuxELF.2.diff.gz
These are my patches relative to the XView3.2p1-X11R6-release as found on
ftp.x.org
xview3.2p1-X11R6-LinuxELF.2.README
The file you're reading at the moment
xview3.2p1-X11R6-LinuxELF.2.lsm
...and the LSM-entry
To install the binary version, do the following:
If you have an old XView-release installed, you might want to move your old
/usr/openwin-tree to a save place first. Then cd to / and do a
"tar xvpzf /some/path/xview3.2p1-X11R6-LinuxELF.2.bin.tar.gz" (as root). After
doing "ldconfig /usr/openwin/lib" (and possibly adding /usr/openwin/lib to
/etc/ld.so.config), you should be able to use the new libraries.
BTW, I chose version 3.2.2 for the shared libraries. This means that they're
compatible with the old versions---you don't have to recompile your apps to
use the new version (if they were liked against the shared libs, that is).
HINT TO DISTRIBUTION-MAINTAINERS:
*PLEASE* replace your current XView-packages with this new one. You can save
your users and all programmers of XView-apps a lot of trouble.
Martin Buck <
[email protected]>
Oleg's old README follows (some of this information is outdated, but it
gives some good hints about compiling XView yourself. You also might want to
look at "Build-LinuxXView.bash" in my source-distributiuon):
------------------------------------------------------------------------------
Good morning, Net!
This is a version of XView 3.2 for use with ELF compiler and libraries. It was
built using gcc 2.6.4 snapshot 950414, libc 5.0.2 and ELF version if XFree86
3.1.1 by
[email protected] (H.J. Lu), which is currently available from
ftp://ftp.beckman.uiuc.edu/pub/linux/X11/new. It may work with other setup,
but at least you need ELF C and X libraries.
The version of shared libraries compiled programs will look for is 3.2, with
current revision being 3.2.0. It just seamed logical. If you want, you can
change it by looking for 3.2.0 in source distribution config files and
changing the number to something else.
My patches should be applied xview3.2p1-X11R6.tar.gz, which can be found on
ftp.x.org. The diff in this distribution includes xview3L5 patches by Kenneth
Osterberg (
[email protected] or
[email protected]), so you don't
have to apply them first. The reason for including one patch but not another
is that 3L5 diff doesn't apply (or compile) cleanly with xview3.2p1-X11R6
(actually Kenneth did much more work on porting than me).
Also, I didn't include Slingshot or UITV3, because I am not using them, so I
won't be a good tester.
If there are any problems with this distribution, please let me know. I am a
little busy with school projects, so please send a solution as well if you
can. But just a bug report is sure better than nothing :)
Please send e-mail to:
Snow Cat <
[email protected]>
aka Oleg Kibirev <
[email protected]>
Those addresses are aliases of each other to let me read/send mail from a
Linux PC over term without conflicts. Please send only ONE copy!
With that, here is how to proceed:
^oo^ Choose the distribution: All files are currently on
gd.cs.CSUFresno.EDU (129.8.1.19): /pub/sun4bin/src/xview
^oo^ xview3.2p1-X11R6-LinuxElf.bin.tgz - a binary snapshot of /usr/openwin. To
install (be sure to exit X windows first):
$ su
# cd /usr/openwin/lib
# mv *.a *.so* *.sa* /usr/i486-linuxaout/lib # or wherever your leftover a.out
# libraries live
# cd /
# zcat /some/dir/xview3.2p1-X11R6-LinuxElf.bin.tgz | tar --preserve -xvf -
Or, as a slower but safer method, mv /usr/openwin /usr/oldopenwin, extract the
distribution and then copy any files that are not in .tgz and that you still
need (eq workman or meminfo) back.
^oo^ xview3.2p1-X11R6-LinuxElf.patch.tgz - This is the patch mentioned
above. To apply, you need to obtain xview3.2p1-X11R6.tar.gz from ftp.x.org and
then do:
$ zcat xview3.2p1-X11R6-LinuxElf.patch.tgz | tar -xvf -
$ zcat xview3.2p1-X11R6.tar.gz | tar -xvf -
$ cd xview3.2p1-X11R6
$ patch -p1 < ../LinuxElf.patch
$ cd clients
$ tar -xvf - ../../more_clients.tar
Then, look at the next section for build instructions. Note that you have to
install a fixed mkdirhier to /usr/X11R6/bin as well.
^oo^ xview3.2p1-X11R6-LinuxElf.tgz - This is my source tree, in case there is
any trouble when applying patch. To build (!! READ THIS !! You can get very
mysterous failures if you don't install files in config before building):
Get mkdirhier from the same directory. Then install it:
mv /usr/X11R6/bin/mkdirhier /usr/X11R6/bin/mkdirhier.old
cp mkdirhier /usr/X11R6/bin
chmod 755 mkdirhier
mkdirhier.old can be confused by pathnames with excessive slashes, like
/usr/openwin//bin. If you can't find my mkdirhier on ftp, just do:
$ cat > mkdirhier <<END
#!/bin/ash -
exec mkdir -p "$@"
END
$
Next step:
$ zcat xview3.2p1-X11R6-LinuxElf.tgz | tar -xvf -
$ cd xview3.2p1-X11R6-LinuxElf
$ . sh.config
(if you are using tcsh, either run {ba,a,z}sh temporary or convert sh.config
approporiately and source it)
$ cd config
$ imake -DUseInstalled $IMAKEINCLUDE
$ su
# make install
# ^D
$ cd ..
$ imake -DUseInstalled $IMAKEINCLUDE
$ make World
Then, you can follow the rest of Sun instructions in
xview3.2p1-X11R6-LinuxElf/README for building clients and contrib. After you
are done, run: /usr/openwin/share/src/xview/examples/bin/*, as install doesn't
get the mode right and I was too lazy to fix all contrib Imakefile's.
Note that one of the things sh.config does is make a link called 'make' to
/usr/bin/pmake and add it to the PATH. If you have a non-slackware
distribution, you may not have BSD make installed in the same location. In
this case you need to make a link correctly yourself. Anyway, using GNU make
will *not* work, because it defines $(MFLAGS) in a way different from Sun or
BSD make that configuration files expect.
In general, XView is a complicated package and it seams that building it can
fail for lots of reasons :-{. I recommend that you keep a script of what build
is doing and check it for any problems after it's over. For example:
$ script ../make.World
$ make World
$ exit
$ egrep Error ../make.World
If you are building on a machine with 8M of RAM (or less), exit X windows and
in general, don't try to run anything large when XView is building. In my
experience, it changes build time from 20 to 4 hours on 486DX/33/8M.
If you are interested in SunView -> XView conversion, you'll need to rename
sed files in /usr/openwin/bin to have a leading dot, for example, full1.sed ->
full1.sed and make some trivial pathname changes to cv2xview. My binary
distribution already includes this. I'll include it in patches sometime later
when I feel like recompiling XView to see if it works.
This source tree only includes clients provided by Sun. If you want source for
more Slackware clients, keep reading.
^oo^ olvwm4pl1-Linux.patch.gz. This is a patch to compile olvwm4 under
Linux. Note that it's a quick-and-dirty port - I used BSD compatability
library and some quick replacements just to make it work. If you can do a
better job please let me know. To apply, get olvwm4 and olvwm4-Patch01 from
ftp.x.org:/R5contrib (currently). Then do, for example:
$ cd olvwm4
$ zcat ../olvwm4.tgz | tar -xvf -
$ patch -p1 < ../olvwm4-Patch01
$ zcat ../olvwm4pl1-Linux.patch.gz | tar -xvf -
$ xmkmf
$ make
$ su
# make install
A precompiled binary is included in xview3.2 binary distribution.
You have to compile Flex with Elf compiler for this to work, as olvwm4 needs
libfl.a.
^oo^ olvwm4pl1-Linux.tgz - This is the full source code if you can't use
patch. Proceed as above.
^oo^ More?
You can try re-compiling other programs in /usr/openwin/bin to use ELF instead
of a.out. If you can do it with all of them, you can delete old libraries in
/usr/i486-linuxaout/lib. I was more interested in developing new programs
that use ELF-specific dynamic linking, so I just left them around to run
workman :)