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 (his patches are based mostly on Kenneth Osterberg's patches), Wolfram Gloger , E. Zimmermann 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 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 hjl@nynexst.com (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 (lmfken@lmf.ericsson.se or lmfken@bluese1.ericsson.fi), 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 aka Oleg Kibirev 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 < 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 :)