Linux Gazette Table of Contents #9

#

# Table of Contents Issue #9

##### Copyright (c) 1996 Specialized Systems Consultants, Inc.
For information regarding copying and distribution of this material see the COPYING document.

- The Front Page
- The MailBag
- More 2 Cent Tips
  - Emacs Control M Trick
  - XTerm Title Trick 2
  - VI Trick -- Commenting Code
  - Masquerading with SendMail
  - Linux Upgrade
- News Bytes
- Binstats: Finding Unusable Binaries, by Larry Ayers
- The Easy Way to Set Up a Local News Server by Christophe Blaess
- FileRunner: A New Tk/Tcl File Manager by Larry Ayers
- Getting Up and Running on StarOffice 3.1, by Dwight W. Johnson
- YODL: A New, Easy-To-Use Text Formatting Language by Larry Ayers
- The Back Page

#### Got any great ideas for improvements! Send your comments, criticisms, suggestions and ideas.

This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com

## The MailBag!

Date: Tue, 06 Aug 1996 08:45:27 -0500
From: "Andrew R. Cook" andy@anchtk.chm.anl.gov
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: Linux Gazette comment

Hi John,

Thanks for taking the time for putting together the Gazette. I hope you have some time left over for doing work for your employer !!! I trust/hope that Phil Hughes will be able to keep the Gazette going ... I've certainly enjoyed the Gazette over the last year. One comment though. In the most recent issue (#8) the format has changed so that the Gazette is no longer (easily) printable, but is split among many pages. I know this is supposed to be an e-zine, but I liked the old format better :-(. I'd hazard to guess that I'm not alone in this, but probably in the minority..... Any chance of putting an organized single postscript file on the ftp site? That way those of us loosers who like to read from paper at our leisure (and don't have laptops, sigh..) can still easily print out a copy of the Gazette. This may understandably not fly with Phil, but I thought I'd suggest it and see what happens anyway!

Thanks again for all your work!

-Andy Cook
andy@anchtk.chm.anl.gov

> (Yes, you are in the minority, and I must say it is much easier for me if the Gazette is in a multi-part format. As a result, it's very likely to stay in multi-part format. However, you should note that it can be downloaded as one file from the SSC ftp site -- ftp.ssc.com/lg/. So you could download it, convert it to postscript, print it and read at your leisure. We're not going to do all the work for you -- that would take all the fun out of it. :-) --Editor)

Date: Fri, 16 Aug 1996 20:44:20 -0500 (CDT)
From: Larry Ayers layers@vax2.rain.gen.mo.us
To: gazette@ssc.com
Subject: A Few Choice Gleanings From the FTP Sites

This month I've found some really nice utilities and programs in the incoming directories of the Linux archive sites. If any of you LG readers find (or have written) a program you're excited about, and don't have the time or inclination to write a piece for the Gazette, drop me a line telling me what you like about it and its location. I'll include a piece on it in next month's issue.

- Binstats: Finding Unusable Binaries
- FileRunner: A New Tk/Tcl File Manager
- YODL: A New, Easy-To-Use Text Formatting Language

Larry

> (Larry has done a great job as usual on letting us know about new products and releases. Thanks, Larry, for your contributions. --Editor)

Date: Tue, 20 Aug 1996 14:27:34 -0700 (PDT)
From: hans@mlsoft.com (Hans D. Swildens)
To: gazette@ssc.com
Subject: Microline Software Free LINUX GUI Version

I don't know if you are aware, but we have a free LINUX advanced GUI toolkit (based on the Microline Widget Library for Motif) on our ftp site www.mlsoft.com. The MWL was used to build Netscape Navigator for UNIX and is used for mission critial applications by AT&T, 3Com, Merrill Lynch, Canon, Netscape, Sun, SGI, etc.

Please download our free LINUX version. We would like to be reviewed or mentioned in the Linux Journal to get the word out. Since we are giving it away for free, we can not pay for an ad, etc. We welcome your feedback and hope that the LINUX community enjoys the free download.

Hans Swildens
Microline Software
hans@mlsoft.com
www.mlsoft.com

> (Okay, here's your chance to see your name in print. Let me know that you have downloaded the software and want to do the review. I'll see that it gets in both Linux Gazette and Linux Journal. First come, first serve. --Editor)

Date: Tue, 27 Aug 1996 12:25:02 -0400
From: MikKass@aol.com
To: gazette@ssc.com
Subject: MindQ Publishing Inc.'s Intro to Programming Java Applets

Dear Editor:

"I'm a programmer and I want to spend a few hours getting acquainted with Java applet programming. Is there a faster way to learn than books?" "I'm not a programmer, but I want to learn about Java without wading through Dweeb books. Is there a way?" "My programmers are learning Java and I want to keep up without being overwhelmed. How do I do that?"

These are comments we overheard at the Web Interactive Show in New York this month. The point? It's not just hard-core techies who want to learn about Java--or have time to read the books. So where do the rest of us go?

MindQ Publishing Inc.'s "Intro. to Programming Java Applets" is a multimedia CD-ROM tutorial designed to teach all of the above--using animation, audio, video and hypertext. Experienced programmers can use the hyperlinked table of contents to find exactly what they need. Newbies can jump on any one of five tours. People inbetween can use a combo. All of them can use the Java Developers Kit, or the Launch button to go right to other Java-related programs or websites (when the Launch capability is activated). The program retails for $49.95, but I can provide you with an eval copy. Please email me: MikKass@aol.com, or call me (203)323-4166. Thanks. I look forward to hearing from you.

Cordially,
Michael Kassin

The following letters are from authors who will be having articles in the Linux Gazette soon.

Date: Sat, 17 Aug 1996 19:07:19 -0400
From: Randy Appleton randy@dcs.uky.edu
To: gazette@ssc.com Subject: Re: WANTED: Linux Gazette Needs Writers

I might be the sort of person you are looking for. I've been hacking on the kernel since around version 0.8. I'm a new professor looking to get my name published. I'm teaching a class in System Administration using Linux, and I've written before. Does this sound like the qualifications for writers for the Linux Journal? How do I get an article in the Linux Journal?

-Thanks
-Randy

> (Sounds qualified to me. See the Author section on the Front Page for more information. --Editor)

Date: Sun, 18 Aug 1996 21:46:00 -0500 (CDT)
From: "jwhyche" jwhyche@scott.net
To: gazette@ssc.com
Subject: Writers Needed

I read on Usenet where you are looking for writers for Linux Gazette. If you would send me some information on what is required.

Thank you,

> (Again, see the information found in the Author section on the Front Page. --Editor)

Date: Thu, 29 Aug 1996 13:37:12 +0200 (MET DST)
From: Olof Svensson d95olofs@dtek.chalmers.se
To: gazette@ssc.com
Subject: Re: WANTED: Linux Gazette Needs Writers

Hey.

I would like to write some small articles for the Gazette. Like some novice articles that were in the early articles in LJ. Or maybe it is interesting to review some new products or small articles on how to set up different network features.

Yours sincerely, Olof S (and of course I will spellcheck my articles)

> (Spellchecking is nice -- also formatting them in HTML. --Editor)

Date: Sat, 17 Aug 1996 17:15:41 -0500
From: Morrissey moz@hti.net
To: gazette@ssc.com
Subject: Re: tips & tricks

I would like to contribute to the Linux Gazette. I have just put a link to the Linux Gazette because of the tips and tricks articles!

    ----------------------------------------------------
    "I wear blue on the outside, 'cause blue  |Richard
    is how I feel in the inside." --morrissey.|N=FA=F1ez
     - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://ww.hti.net/~moz/moz.htm ;personal page
    http://ww.hti.net/~moz/	       ;business page

> (Thanks for the link. Mr. Nunoz's home page is pretty cool. --Editor)

Date: Sat, 17 Aug 1996 14:06:54 +0200
From: Manuel Soriano dpsys10@dapsys.ch
To: gazette@ssc.com
Subject: Ideas for Linux Gazette

Hello Marjorie

First, excuse me, my english is not very fluent.

I have several articles, covering general topics, of the intallation and configuration of Linux, test of soft, etc... but all in spanish.

My idea is to make a new section on Linux Gazette in others languages than english.

This will put LG in a new dimension and, why not, LJ :-)

What do you think about ?

Bye
Manu

                    \|/         dpsys10@dapsys.ch
                    O-O         manu@ctv.es
        *****---oOo-(_)-oOo---**********************************************
        * Manuel Soriano             * El Perello/Valencia/Spain *

> (Why not, indeed. Let's try it. An article from Manuel will appear in Issue 10. --Editor)

This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com

## More 2¢ Tips!

### Contents:

- Emacs Control M Trick
- XTerm Title Trick 2
- VI Trick -- Commenting Code
- Masquerading with SendMail
- Linux Upgrade

### Emacs Control M Trick

Date: Fri, 09 Aug 1996 20:15:45 -0500
From: David Ishee
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: $0.02 tip for removing Control M in emacs

After looking at issue 8 about how to remove the pesky Control-M character in vi (vim or whatever) I had to also tell how it could be done in emacs. Say you loaded up a file that has the ^M all over the place. No problem, say M-x replace-string RET C-q C-M RET RET and you're done. Emacs rulz!!

David

### XTerm Title Trick 2

Date: Tue, 13 Aug 1996 20:45:39 +0100
From: Caolan McNamara <9312811@ul.iea>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: XTerm title tricks in Linux Gazette #6.

Just scanning through back issues and came across the tip to keep the hostname of the machine your currently logged into in your xterm titlebar (and wanted to add my 2 cents).

I work in a room of 30 linux boxes, so to keep track of which one I'm logged into despite logging in from one to another and logging out, I put

    alias precmd 'echo -n "\033]2;"`hostname`"\007"'

(course anything could be put here)
in my .cshrc. Keeps my titlebar updated at all times. As a precmd its run after every command but its a tiny overhead and steps around the issue of trying to detect log-outs.
C.

    --
    Real Life: Caolan McNamara                Local: caolan@skynet
    College:   9312811@ul.ie                  Quote: Happiness is a small sig.

### VI Trick--Commenting Code

Date: Fri, 23 Aug 96 10:30:06 EDT
From: dane@cci.com (Daniel Engel)
To: gazette@ssc.com
Subject: vi trick

This is how you comment in a block of code using vi:

    	:START,ENDs/^/# /

where START is the starting line number and END is the ending line number.

    	i.e. :10,30s/^/# /

comments in line 10 through line 30 of the current buffer (file).

same idea can be used for indentation and/or commenting out.

d. at Nortel (dane@cci.com)

### Masquerading with SendMail

Date: Tue, 20 Aug 1996 12:38:12 -0600 (MDT)
From: murphyc@cadvision.com(Jim Murphy)
To: gazette@ssc.com
Subject: Article submission: Newbie Tip on Finding

Hi,

As a new linuxer, I had a hard time finding my way around the filesystem, and discovered that I often had to find a file for some reason or other. I knew the find command was out there, but remembering all the options required to make it search the right places, find the right files, and print the right answers was something I couldn't do, at first. So I made up my own command, using a shell script, and called it "fnd".

"fnd" takes one argument, the name of the file you want to locate, complete with any wildcards you may wish to include, and pipes its output to "less", which then allows you to view a large list of results. What you get, on each line of output, is the complete path to anything which you're looking for! I find it amazingly useful (as is a rough familiarity with the "less" command.) Here's my script:

    #!/bin/bash
    find / -iname $1 -mount -print |less

That's it! The -iname option tells find to be case insensitive, the $1 is a variable which subs in your commandline argument, -mount tells find not to descend directories on other file systems like your cd-ROM (because mine is wonky and locks up the machine if it is accessed;). The -print option is required or you don't get any output! (Get used to it, it's *nix...) The | symbol tells find to direct its output to the "less" command so you can see your results in style! Don't forget the / right after the find command, or it won't know where to look. - Enjoy! You won't regret the time you spend keying in this little shortcut, and don't forget to put it in a "bin" or "sbin" directory after chmod'ing it to be executable.

Jim Murphy
murphyc@cadvision.com

### Masquerading with SendMail

Date: Tue, 27 Aug 1996 21:49:27 +0100 (GMT+0100)
From: "Robert S. Wolfram" <0wolfram01@Lelystad.Flnet.nl>
To: gazette@ssc.com
Subject: Masquerading with sendmail

Hi Marjorie,

First of all, I think it is wonderful that John devoted that much of his spare time to start and maintain the Linux Gazette. I am happy to see that it is being continued. Keep up this beautiful project!

I was very pleased with Leifs Queue-R-Mail Howto, published in issue 6 of the Gazette, but I was still left with one drawback. I have a PPP dialup account at a local provider, and when sending remote mail, the "From" address and "Return Path" should be masqueraded to match my address at the provider. If I would fill the $M macro in my 'sendmail.cf' (as installed by Slackware 3.0), it would only change my domain, so it needed some adjustment. I made some direct changes to 'sendmail.cf', but I did make a backup before trying anything! Here are the changes I made:

    > # Before the edits
    < # After the edits

First of all, I filled the $M macro for masquerading my domain and added a $N macro for masquerading my username:

    > DM
    < DMlelystad.flnet.nl
    < DN0wolfram01

Disable masquerading for the local mailer in ruleset 40:

    > R$*			$: $1 @ $M		add local qualification
    < #R$*			$: $1 @ $M		add local qualification

Include username in remote mail masquerading (rulesets 31 and 61):

    > R$* < @ $+ @ $+ >	$@ $1 < @ $3 >			$M is defined -- use it
    < R$* < @ $+ @ $+ >	$@ $N < @ $3 >			$M is defined -- use it
    > R$+			$: $1 < @ $M >			user w/o host
    < R$+			$: $N < @ $M >			user w/o host

If you send your mail as root, you might want to remove its special treatment:

    > #CLroot
    > CEroot
    < #CLroot
    < #CEroot

After sending 'sendmail' a HUP signal, my mail got masqueraded so that the receiver could just reply to the correct mailbox.
Two remarks:
First, to find ruleset xx, just search for Sxx in the beginning of a line. Secondly, tab characters between the fields in the rewriting rules are REQUIRED!!! Make sure you do not change those into spaces!

Well, those were my $0.02. I hope it was still readable.

Cheers,
Rob.

    Rob S. Wolfram   0wolfram01@lelystad.flnet.nl   rwolfram@wi.leidenuniv.nl
    W3:                                       http://www.flnet.nl/~0wolfram01
    =========================================================================
    L I N U X :   T H E   C H O I C E   O F   A   G N U   G E N E R A T I O N
    =========================================================================

### Linux Upgrade

Date: Tue, 20 Aug 1996 11:02:03 -0400
From: David Bourgin dbourgin@wsc.com
Organization: WSC Technologies, Inc.
To: linux@ssc.com
Subject: Linux upgrade

Hello,

Since this FAQ is comes up a very often in comp.os.linux.*, and since it's already mentioned in kernels 2.0.12+ in /linux/Documentation/Changes and in some News papers (still one contacting me today: The editor of the german magazine UNIXopen.) without any request from us. So I'm going to ask for you to put something in your interesting magazine. It's is how to avoid a lot of problem when upgrading a Linux box. There's a easy way, and some scripts to run. All the stuff is free, and is available by ftp, located at: ftp://ftp.wsc.com/pub/freeware/linux/update.linux/

The upgrade is full, it means it will upgrade any system from 1.2.x (sorry I didn't test any earlier setup). It will be right for anyone from new Linux users to experts (no knowledge is required, no questions are done: all is detected and worked fine for all people who tested, except non-Lilo users since I force Lilo v19 to install. This will change next.)

All the upgrade is always up to date, and only fully tested packages are included (!). For example, I didn't install kernel 2.0.5 when it comes out since I've found out a bug in the code (reported to Linus who did 2.0.6 as a patch). Current upgrade contains:

- New kernel: 2.0.x
- New gcc: 2.7.2
- New libc: 5.4.2
- New libg: 2.7.1.4
- New ld.so: 1.8.1
- New bin utils 86: 0.3
- New modules: 2.0.0
- New make: 3.74
- New lilo: 19
- New autoconf 2.10
- New binary utilities 2.6.0.15 (2.7 only works with kernel 2.0.8+)
- New dip 3.3.7o
- New fdisk 3.04
- New fdutils 4.2
- New fsck 1.04
- New ftape 2.08
- New gawk 3.0.0
- New getty_ps 2.0.7i
- New gpm 1.09
- New hd param 3.0
- New iBCS 2.0 960610
- New man 1.4h
- New man pages 1.12
- New mount 2.5k
- New mtools 3.0
- New ncurses 1.9.9e
- New net tools 1.32alpha
- New pcmcia modules 2.8.18
- New ppp 2.2.0f
- New ps,top,who,w 1.01
- New sendmail 8.7.5a
- New SysVinit 2.64
- New TermCap 2.0.8a
- New apache (HTML server) 1.1.1
- New boot sys 0.4a
- New DosEmu: 960807
- New ghostscript 3.33
- New IP masquerading ipfwadm 2.2
- New lclint 2.1b
- New loadlin 16
- New ntfs 951231a
- New quotas 1.51
- New samba
- New snd-util 3.5
- New socks 5b 0.16.4
- New Linux utilities: 2.5
- New WINE: 960717
- New Netscape: 3.0 (not a freeware!)

All is NOT installed when requested. For more details, see README file at
ftp://ftp.wsc.com/pub/freeware/linux/update.linux/

I know some mirrors exist in Europe as:
ftp://ftp.ibp.fr/pub/linux/update.linux/

Note: I'm French, and I've moved two months ago from France. So sorry if my American is not yet plain ;-)

Bye, David
--
Web: http://www.accescyb.fr/~rezo1/homepage.html
E-mail: dbourgin@wsc.com
David Bourgin - Netware/Unix administration/security.
I'm a netsurfer, and as such, a citizen of the worlda.

This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com

#

### GNU ID Utilities

A new release of the GNU id utilities is available at ftp://ftp.gnu.ai.mit.edu/pub/gnu/id-utils-3.2.tar.gz

GNU id-utils is a package of simple, fast, high-capacity, language-independent identifier database tools. Actually, the term ``identifier'' is too limiting -- ID Utils stores tokens, be they program identifiers of any form, literal numbers, or words of human-readable text. Database queries can be issued from the command-line, or from within emacs, serving as an augmented tags facility.

Release 3.2 fixes a nasty bug in eid (a.k.a., "lid -R edit"), which should only be a problem for users of non-emacs editors (e.g., vi). This release also fixes as well as some minor portability problems. If you use emacs and had no trouble compiling 3.1, there's no reason for you to pick up this release.

Additional information: gnu@prep.ai.mit.edu

### InfoMagic Workgroup Server

The InfoMagic Workgroup Server provides high-performance file and printing services to PC and Macintosh clients using the Linux operating system. It is the first Linux distribution designed specifically for servers. Based on networking software created by the Internet community and already in use at hundreds of companies, universities and organizations worldwide, the InfoMagic Workgroup Server provides simple graphical tools for system administration and set-up. A Unix novice can set up a sophisticated server environment in a couple of hours.

Additional information: Orders@InfoMagic.com,
http://www.infomagic.com/

### Linuxconf 1.6

I am proud to announce the release of linuxconf 1.6. This release incorporates many enhancements and features. The last official release was 1.3. Since, a major user interface rework has been done and many smaller features were added. Release 1.4 and 1.5 were only released on the linuxconf mailing list.

It has been uploaded to sunsite in the pub/Linux/Incmoning directory and should move to /pub/Linux/System/admin/linuxconf-1.6.src.tar.gz. Binaries for both elf and a.out systems are provided at the same place.

The major enhancement is the http mode. With this, you can now operate linuxconf using any web browser supporting forms. This makes administration of large linux networks a wonderful experience. You can navigate in linuxconf and even set bookmarks in your browser. Ultimatly one can build his corporate administration page with link to different part of linuxconf on different linux servers or workstation.

Additional information: jack@solucorp.qc.ca

### Red Hat Rembrandt II

Red Hat Linux - 3.0.4 (Rembrandt II) BETA now available on both the Intel and Sparc!

The Rembrandt beta releases of Red Hat Linux include the following nifty features:

> Modular kernel (2.0.10) One kernel (one boot disk) for all hardware Increased hardware support over 3.0.3 New, simpler installation PAM - Pluggable Authentication Modules More comprehensive X configuration New network configuration tool New version of RPM - 2.2.3 Dependencies Libc 5.3.12

The Rembrandt II release fixes many bugs, and adds a few features. Among the improvements over Rembrandt are:

> config file handling DOS partitions IDE drives c-h flashing asterisk System.map interface cleanups /net /.automount updatedb dip, inn, fvwm95, ypbind, ftpuser module parameters package selection

The Red Hat Linux Rembrandt II is available from:

ftp://ftp.redhat.com/pub/redhat/rembrandt

Additional information: rembrandt-list@redhat.com,
http://www.redhat.com/redhat/rembrandt

### SDK Software

URL CHANGE from The Boy With The Thorn In His Side

The free Linux software which I release under the name "SDK Software" (morepkgtools - supplements Slackware's pkgtool; tidylinks - searches for and tidies dangling and messy symbolic links; LNET-Config - configuration script for the LNET TCP/IP (KA9Q-like) program) has moved from AOL to:

http://www.kalika.demon.co.uk/sdk-software/index.html

Revised versions of the software, with the correct URLs in the manual pages etc., will be released shortly.

If you have my AOL site bookmarked please change your records.

FREE SOFTWARE ANNOUNCEMENT:

http://www.kalika.demon.co.uk/sdk-software/index.html#man2html

http://www.kalika.demon.co.uk/sdk-software/myprogs/unix/man2html

Version 0.15 of this very modest Bourne-shell script is now available. The script is a CGI-bin interface to "man", converting UNIX (Linux) manual pages into fully-legal HTML on the fly.

Sample output can be viewed at: http://www.kalika.demon.co.uk/sdk-software/index.html#manpages

Additional information: steve@kalika.demon.co.uk

### Taper

This is to announce the latest release of taper - version 6.7.4

Taper is a user friendly, full featured tape backup solution for Linux. Multiple features are supported including most recent restore, incremental backups, archive verification and archive management. With triple buffering, and internal compression, backup performance is quite good.

Taper supports ftape, zftape, scsi, floppies, regular files and removable media such as the IOMEGA ZIP drives.

In addition, taper also supports IDE tape drives in ALPHA stage.

PLEASE NOTE:
I am going away for 2.5 months from this week and will be unreachable via e-mail therefore, there will be no support for this version until I return mid-late October.

Additional information: yusuf@nagree.u-net.com

### TranSend

Advanced Network Products, Inc. announces the alpha release of TranSend. TranSend, a "middleware" product, is an efficient, reliable and platform- independent mechanism that provides communications between your applications.

TranSend is a development toolkit that allows rapid construction of real-time client/server and distributed applications. TranSend is the perfect foundation for all of your network development needs, including:

- Real-time client/server and distributed applications
- High performance data distribution systems
- Cross-platform connectivity
- Fault-tolerant systems

Additional information: anpi@advanced-net.com http://www.advanced-net.com/examples.html

### Web-traversing Robot

The VWbot Web-traversing robot is now available as shareware. It was developed on Linux and hasn't been tested on anything else, but it ought to run on most Unix. It uses Perl4 and libwww-perl-0.40

The core program may be customised to perform different functions, such as keeping track of document modifications, operating as a restricted-domain search engine, or as a free-running agent configured for tasks such as lexical analysis. The robot adheres to the original Robot Exclusion Protocol and includes code to implement the newer ROBOTS META tag.

Additional information: robots@vancouver-webpages.com,
http://vancouver-webpages.com/VWbot/

This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com

# Binstats: Finding Unusable Binaries

#### by Larry Ayers

Copyright (c) 1996

##### Published in Issue 9 of the Linux Gazette

Like many other Linux users, I've strayed from the path of my originally installed distribution (Slackware 3.00) and have updated quite a large percentage of the packages and libraries. This can lead to problems; these might come my attention when starting up a long-neglected executable only to receive a message indicating that an essential library is missing, or that a library has an incompatible executable format.

Of course, you could spend a couple of hours every month or so and run ldd on each and every executable on your system, writing down the results for every one which has errors. This could become tedious, I imagine.

Peter Chang is evidently a whiz at cobbling together shell scripts which use various Unix utilities chained and piped one to another. Binstats is one of his, and it is truly an ingenious contrivance. You start it up (after editing it so that it knows where all of your /bin directories are), the hard disc grinds away for a minute or three, and this little script presents you with a list of all the poor orphaned programs which can't run due to a lack of shared libs. It also lists how many of each type of executable (ELF, QMagic, statically linked, etc.) you have, and which shared libs you have which aren't needed by any of your executables.

What really blew my mind was seeing a long list of duplicated executable names, an unexpected result of many upgrades. This can be a result of this imaginary scenario: Joe has been maintaining Package X for several years and is weary of the constant email. He gratefully transfers the maintenance of Package X to an eager, energetic young programmer, Ed. Ed is appalled to find an installation procedure which doesn't follow the Linux Filesystem Standard, and immediately changes the default installation directory from /bin to /usr/local/bin. Yours truly logs in at sunsite.unc.edu, finds a new version of Package X, installs it, and is happy to see the new functionality. Unfortunately the old Package X executable is living out the remainder of its days, unknown to all, in /bin. Then Binstats does its work and the old X binary and all its hoary cohorts are brought to light.

All of the functions of Binstats can be done "by hand", of course. The beauty of this shell program is the combination of tasks into one, with the results logged to a text file. Then you can see at a glance several system administration jobs which should be taken care of.

Binstats is only four and one-half kb. archived in tgz format. A copy of the latest version is available at this UK site, as well as in this sunsite directory. It's well worth the short download time, even if you only run it once.

# The Easy Way to Set Up a Local News Server

By Christophe Blaess (ccb@club-internet.fr).

## Introduction

A few months ago, I decided to set up a local news server on my Linux Box, in order to read off-line the articles. Before then I read the news directly from the Usenet server of my Internet Provider, at the detriment of my phone bill...(Here, in France, even the local communications are rather expensive)

Before trying to install and set up one of the two classical news servers (Inn and CNews), I browsed a bit the Web, looking for a possible other product. I then discovered a very powerful small package "Leafnode" written by Arnt Gulbrandsen. It can be found in source form at ftp://ftp.troll.no/freebies/leafnode/ and the home page of this project is accessible at http://www.troll.no/freebies/leafnode.html.

This package (leafnode-0.9.tar.gz, 29 Kb) contains three little programs, very easy to install, and to use:

- "Fetch" can feed a local news server from a remote Usenet server (university, ISP...). It also posts the outgoing articles, using classical NNTP requests.

- "Leafnode" is a USENET server, run by the inetd daemon, when a connection in required on the NNTP port, by a newsreader.

- "Texpire" is generally run daily from the crontab to erase the oldest articles from the news spool.

The main advantage of this system, is the transparent way it is inserted between the remote news server and the local newsreader. The remote Usenet server sees Leafnode exactly like a classical newsreader (like tin, trn, netscape,...) and the local news reader sees Leafnode just like a USENET server.

I have been happily using Leafnode for several months, and I would like to describe here the (very simple) steps to install and configure it. Then I will explain some hints to use it in a multi-users environment.

## INSTALLING LEAFNODE

I've been using leafnode 0.8 for a few months, but I've recently upgraded to version 0.9. The process for installing it is the same as the previous version, but I've had a little problem, maybe due to my version of make, and I'll describe how I have fixed it.

You first need to download the source code from ftp://ftp.troll.no/freebies/leafnode/. You'll get leafnode-0.9.tar.gz.

### Compiling the source code

Become root and do :

      # cd /usr/local/src
      # tar -xzf ~/leafnode-0.9.tar.gz
      # cd leafnode-0.9/
      # make

Everything must compile without any problem...

### Installing leafnode

Make sure there is a "news" user and a "news" group on your system.

Then you can type:

      # make install

If "make install" complains when making directories in /var/spool/news/message.id/, you may have the same problem as I've had. To fix it, I've modified the Makefile, to insert a part of the leafnode-0.8 Makefile:

replace the lines (in the "install:" section)

      cd $(SPOOLDIR)/message.id
      for a in 0 1 2 3 4 5 6 7 8 9 ; do for b in 0 1 2 3 4 5 6 7 8 9 ; do \
         mkdir ${a}${b}0 ${a}${b}1 ${a}${b}2 ${a}${b}3 ${a}${b}4 ; \
         mkdir ${a}${b}5 ${a}${b}6 ${a}${b}7 ${a}${b}8 ${a}${b}9 ; done

by the line

      -mkdir -p $(SPOOLDIR)/message.id/{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}

Be sure that the first character on the line is a tabulation. Then try again:

      # make install

### End of installation

At this point, Leafnode will have installed the following files on your system:

        /usr/local/sbin/fetch
        /usr/local/sbin/leafnode
        /usr/local/sbin/texpire
        /usr/local/man/fetch.8
        /usr/local/man/leafnode.8
        /usr/local/man/texpire.8
        /usr/lib/leafnode/config.example
        /var/spool/news/ ... and a lot of subdirectories ...

First you have to copy the file /usr/lib/leafnode/config.example to /usr/lib/leafnode/config and edit him, to put the name of your remote NNTP server in place of:

      server = news.hiof.no

Edit the file /etc/inetd.conf, and look for a line like:

      nntp   stream   tcp   nowait   root   /usr/sbin/tcpd   in.nntpd

then modify it like this:

      nntp   stream   tcp   nowait   news   /usr/sbin/tcpd   /usr/local/sbin/leafnode

Depending on your configuration, there may be no TCP wrapper installed, so you could have to remove the "/usr/sbin/tcpd" part of this line.

and do

       # killall -HUP inetd

### First run

Connect to your Usenet provider, and, while being "root" or "news", run:

      $ fetch

You will have to wait for a moment, because Leafnode is asking the NNTP server the list of all the active groups. Once fetch ends, run a newsreader, as normal user, and ask him to contact the localhost. for example, with tin do:

      $ export NNTPSERVER=localhost
      $ tin -r

(With Netscape you have to put localhost in "Options/Mail and News/Servers/NNTP server")

You will get the list of all available newsgroups, then choose interesting ones, and read them. They will appear empty at this time. It's normal.

As root run again fetch. It will download all the content of the previously read newsgroups. The first downloading will take a while, but the next will obviously be very much quicker.

Your local USENET server is installed!

## CONFIGURING LEAFNODE

Now that leafnode run on your Linux box, you can configure some details:

In the file /usr/lib/leafnode/config, there are two fields you can edit:

- the expire value tells to Texpire the number of days an unread thread must be kept.
- the maxcount value limits the number of articles to download from a newsgroup, during a single execution of Fetch.

Refer to the comments in this file to choose the values (on my system I use expire=10 and maxcount=3000)

You must run Texpire from time to time, and a daily entry in the crontab seems to be the best choice:

      00  03  *  *  *  news  /usr/local/sbin/texpire

This line is for a system-wide crontab (generally /etc/crontab maintained by root), but you will have to remove the username "news" on user crontab (/var/spool/cron/news).

You will have to run periodically fetch. If you have a permanent link with your news server, there's an obvious solution: the crontab again, to run it once per hour for example.

      00   *  *  *  *  news  /usr/local/sbin/fetch

If you're using a non-permanent PPP connection, you can insert fetch at the end of the ip-up shell script (see Linux Gazette 7 "Setting up PPP's ip-up and ip-down scripts!").

Put the name "`localhost`" in /etc/nntpserver or set the environment variable (for example in /etc/profile):

    	export NNTPSERVER=localhost =

## USING LEAFNODE ON MULTI-USERS SITE.

There are problems to avoid, especially if there are other users on your system, or if the leafnode server is on a local network. First you must make sure of the validity of the headers in the outgoing posts, but you also need to limit the list of the accessible newsgroups. Don't forget that Fetch will download the whole content of a newsgroup if someone tries to read it. So, be very careful with newsgroups like alt.binaries.pictures...

Fortunately, we can use some little awk and shell scripts to verify and correct the outgoing posts, and to limit the local access to selected newsgroups.

### Checking the outgoing posts

With some newsreaders, the "From:" field of the outgoing articles will be set to myname@my.station.on.my.lan and not myname@my.internet.provider.com. With some of them you can configure the "From:" and "Reply-to:" fields, while the others need you to recompile them.

This problem can be worse if you have a Linux box with several users. Some of them can have misconfigured newsreader (sometimes on purpose...) and it may be safer to check the headers of the outgoing articles before posting them.

Here's a small awk filter which allows a kind of masquerading of the "From:" line of an article. It will change the line `"From: username@my.station.on.my.lan (user real name)"` to a line `"From: username@my.internet.provider.com (user real name)"`.

You may also ensure that username is correct (i.e. in a list of allowed users). The same Perl script will help us to determine the correct articles. Otherwise it will add a line "*** Wrong From field - This article must be deleted ***" to the message.

      #! /usr/bin/gawk -f
      #
      # /usr/local/sbin/change_article_from_domain
      #
      # awk script to change the domain name on the "From:"
      # line of outgoing articles.
      # If the username is not valid a message will be added
      # at the bottom o the file, allowing a 'grep' to delete
      # him.

      BEGIN {
        # replace with the correct domains
        local_domain="my.station.on.my.lan"
        real_domain ="my.internet.provider.com"
        # insert here the name of your users allowed to post articles
        # (may be just one)
        valid_usernames["user1"]
        valid_usernames["user2"]

        must_be_deleted=0
      }

      /^From:/ {
        gsub(local_domain, real_domain)
        username=substr($2,1,index ($2, "@")  - 1)
        if (! (username in valid_usernames)) {
          must_be_deleted=1
          # you can also add a system command
          # example : mail to newsmaster with
          # the username of the wrong article
        }
      }

      END {
        if (must_be_deleted != 0) {
          print "*** Wrong From field - This article must be deleted ***"
        }
      }

      {
        print
      }

This script can be useful if you have up to, say, ten users, otherwise you'll need to improve it in order to read the list of allowed users in an otherfile for example.

Now we will execute the above script on all the outgoing articles, sitting in /var/spool/news/out.going, then delete (or move to another directory) those with bad usernames.

      #! /bin/bash
      #
      # /usr/local/sbin/modify_outgoing_articles
      cd /var/spool/news/out.going
      for i in * ; do
        /usr/local/sbin/change_article_from_domain < $i >/tmp/modified_articles/$i
      done
      rm -f *
      mv /tmp/modified_articles/* .
      rm -f `grep -l "*** Wrong From field - This article must be deleted ***" *`

(The backquote is used to catch the result of grep) Don't forget to create a /tmp/modified_articles/ directory. This script cannot prevent the fake "From:" lines, when an authorized user is hidden behind an other correct username. This can not be easily done, and if you really don't trust your users, you'll have to use another Usenet package like Inn or Cnews.

Now all the outgoing articles will have a correct "From:" line.

### Limiting the list of accessible news groups

The second important point to check out is the list of fetched newsgroups. If you haven't got a huge disk space, it would be better to avoid downloading alt.binaries groups or alt.2600. for example... The problem is that fetch will download the content of each newsgroup corresponding to a file in /var/spool/news/interesting.groups, for example `/var/spool/news/interesting.groups/comp.os.linux.announce`

A file in this directory is touched by leafnode every time a user tries to read the content of the group. Are you sure that none of your users will try to have a look at alt.binaries.pictures.erotica...? So there are two possible solutions:

- You can edit the /usr/lib/leafnode/groupinfo file, in order to suppress the forbidden newsgroups. But this is not a very good solution, because fetch will re-create it during the next connection.
- You can suppress the forbidden groups from /var/spool/news/interesting.groups. This can be done by shell script, in many different ways, for example:

      #! /bin/bash
      #
      # modify_interesting_groups

      cd /var/spool/news
      rm -f alt.*
      rm -f *windows*
      ...
      touch comp.os.linux.announce
      touch comp.windows.x.announce
      ...

you can also have a definite list of fetched newsgroups, for example in /var/spool/news/official.list, manually created:

      # mkdir /var/spool/news/official.list
      # cd /var/spool/news/official.list
      # touch comp.os.linux.announce
      # touch comp.os.linux.answer
      # touch comp.lang.c.moderated
      ...

And this list will be copied in the interesting.groups directory by a script before each execution of fetch.

      #! /bin/bash
      #
      # modify_interesting_groups

      cd /var/spool/news
      rm -f *
      copy /var/spool/news/official.list .

Now we have two scripts to insert before running fetch. For example in /etc/ppp/ip-up:

      #! /bin/bash
      #
      # /etc/ppp/ip-up
      ...
      /usr/local/sbin/modify_interesting_groups
      /usr/local/sbin/modify_outgoing_articles
      fetch

## CONCLUSION

I think that Leafnode is a very interesting package for those (most of us) who are running Linux on a standalone box with intermitent connection to a Usenet server, or on a small local network with few users. It's powerful and much simpler to install and to configure than Inn or Cnews, designed for bigger sites. Moreover it does not require any maintenance.

Christophe Blaess (ccb@club-internet.fr).

# FileRunner: A New Tk/Tcl File Manager

#### by Larry Ayers

Copyright (c) 1996

##### Published in Issue 9 of the Linux Gazette

### Introduction

Recently I happened upon a new Tk-based filemanager, written by Henrik Harmsen, who evidently lives in Sweden. I've been using TkDesk quite a lot lately (see my review in LG #8) so at first I was struck by the resemblance, but the program upon further exploration comes from a different philosophy of file-management and fills a different niche in the Linux software world.

### Amigan Origins

I'll let Henrik Harmsen relate to you FileRunner's origins:
On my good old Amiga, there were a few great file managers called things like DirMaster and Directory Opus. They were very simple (in concept) but highly usable. Especially I came to love the two-filelistings-and-command-buttons concept which is what I've done in FileRunner. It's a fast and intuitive way of doing file handling commands as very many file commands (mv, ln, cp etc) are happy with a source and a destination argument. It also works great for commands that only take a list of source files, like an image viewer and an editor. I was considering the way the FileManager in Windows displays directory trees, but I came to the conclusion that those tree views are more often than not a nuisance to navigate. Instead I implemented the cool Directory menu that can take you anywhere in the file system by mapping directories to sub-menus (even the ".." directory :-). So, basically I just wanted to get back the high usability I had with the old file managers on the Amiga (plus add my own stuff like FTP browsing, the history and hotlist etc).

I had a look at a few other file managers for Unix/X11 but none of them were even close to the convenient two-filelistings-and-command-buttons concept. Some were bloated, some wouldn't compile, some needed Motif etc, and none were intuitive (to me :-). So I set out to create my own. Why am I just not a happy TkDesk user? Well I started working on FileRunner long before TkDesk came out and TkDesk wasn't quite what I was shooting for so I continued on FileRunner. That also gave me exactly the file manager I wanted, of course :-)

After I read the above explanation, I realized what FileRunner reminds me of: I used to use a Norwegian OS/2 filemanager called Dirmaster, which was also inspired by the Amiga filemanagers of yore. It had a layout similar to FileRunner's, with programmable function buttons and twin directory panes.

It's interesting that software has been around long enough that traditions have evolved. In the text editor world there are emacs, vi, and "windows/CUA" strains of editors, while many filemanagers have followed either a "Norton Commander" tradition, an Amiga tradition, or a mouse-based iconic tradition, with various hybrid strains emerging and recombining.

### Features

FileRunner will inevitably be compared to TkDesk, as they share many features and are both Tk-based. The two programs aren't really designed for the same purposes, though. TkDesk is more of a desktop manager combined with a filemanager, as it has an integral icon-bar which can serve the same purpose as Fvwm's buttonbar, or several other similar utilities. It's best used as an app you would open when starting an X-window session and leave open for the duration.

FileRunner is a much less resource-hungry application which starts quickly and lends itself to quick tasks followed by dismissal. It uses around one-third the memory TkDesk uses. It is probably a more appropriate choice for a slower, memory-constrained machine, whereas if you have a fast CPU with plenty of RAM TkDesk or Moxfm will run well without using a disproportionate amount of your system resources.

Among the many thoughtfully designed features in FileRunner, the following I found to be particularly useful:

- A button for each directory pane which will start an xterm or rxvt in the current directory
- Directory hotlists in a drop-down menu
- A dynamically expanding directory tree which allows quick traversal of the entire filesystem
- Quick views of text files via a single right-mouse-button-click
- Function buttons in a column dividing the directory panes, with instructions for creating new ones
- Menu showing directories visited during the session
- Ability to open remote directories via FTP and browse them as if they were local

Here's a screenshot of a Filerunner window:
FileRunner

FileRunner also has a feature which has become fashionable lately in many of the newer apps: quick rereading of the configuration file(s), allowing customization to be done quickly. I first saw this in Fvwm; it's a real time-saver.

### Quirks

FileRunner is almost entirely mouse-based in this first release. I like to use a mouse, but I'm fond of arrow-keys and page-up and page-down keys as well. Henrik Harmsen mentioned in an email message that keyboard support is in the works.

When using the FTP function, any downloading activity prevents you from doing anything else until its done. A separate process or thread would be nice for this. One way around this limitation is to open another instance of FileRunner. The program is small and fast enough that this is feasible.

Aside from these two minor complaints, I found the program to be stable and reliable. It's a relatively small download; why not give it a try?

### Availability

As of August 15, 1996, FileRunner can be found in the /pub/Linux/Incoming directory of ftp://sunsite.unc.edu and its mirrors. I imagine that it will eventually be moved to /pub/Linux/X11/xutils/managers.

# Getting Up and Running on StarOffice 3.1

#### by Dwight William Johnson johnson@olympus.net

Copyright (c) 1996

##### Published in Issue 9 of the Linux Gazette

Happy as can be, I am composing this in Linux on StarWriter, the extremely capable word processor that is part of the StarOffice 3.1 suite of business applications. Below I will guide you through the labyrinth of tricks and fixes that you will need to get this first beta of StarOffice working on your Linux system.

Star Office 3.1 is a suite of office productivity applications containing StarWriter 3.1 (word processor), StarCalc 3.1 (spreadsheet), StarDraw 3.1 (graphics and presentation package), StarImage 3.1 (image manipulation) StarChart 3.1 (bar-, pie- and other charts) and StarMath 3.1 (formula design). StarOffice 3.1 makes heavy use of common code in shared libraries, therefore using relatively few resources for the level of functionality.

If you don't have the patience to fix things that aren't right, you should wait for the next beta release. But if, like me, you don't mind fixing a few things to get the immediate gratification of state-of-the-art business software on Linux that you would pay $400 for on Windows 95, read on.

To save you frustration and disappointment, I must also caution you that you will need about 200 megabyes on your hard drive to install StarOffice the way I outline below.

Like many Linux users, I was delighted when the German company StarDivision announced it would release an international Linux version of its major office suite StarOffice, which competes head to head with Microsoft Office in Europe. And still more pleased when I learned that for non-commercial use StarOffice would be free.

I am almost never, however, the first to jump into a new application. Let others find the bugs; let me find a productive application is my credo.

Nevertheless, the prospect of having a high-end WYSIWYG word processor to use in Linux was irresistible. When StarDivision was pressured into an early release of the first beta of StarOffice 3.1 for Linux on July 31, I rushed up to the StarDivision Home Page at http://www.stardivision.de/index.html and linked to one of a number of possible download sites which in my case was ftp://ftp.io.org/pub/mirrors/linux/sunsite/apps/staroffice.

What I saw stopped me. StarOffice3.1 is a more than a 40Mb download in 53 files, mostly diskette images. The installed product takes over 120 megabytes.

I decided to see what the feedback was on StarOffice before investing in that kind of bandwidth. I aimed my Netscape newsreader for a place I knew I could count on: comp.os.linux.development.apps.

The news was bad. Many users were having problems installing StarOffice and those who could were finding lots of bugs, mostly segmentation faults.

The worst news of all was being reminded that StarOffice 3.1 requires Motif 2.0. Even though StarOffice was free, it did not seem worth the $100-$200 investment in Motif 2.0 to bring up an application that might be useless because of segmentation and other faults.

As the days passed, however, the news began to come in that some were getting StarOffice installed and were quite thrilled with its look and feel.

Then on August 18 Peter Klein wrote in the Redhat-List:
"to run and even to install Star Office 3.1. you don't need Motif."
I found his tips and tricks irresistible. I decided to try StarOffice.

Below is step-by-step how I installed StarOffice 3.1 on my Red Hat 3.0.3 system with Metro-X server upgraded to the 2.0.10 kernel using Peter Klein's recipe garnished with a few additional tricks and fixes which I gleaned from the usenet and mailing lists.

1. I went to my chosen ftp site, ftp.io.org/pub/mirrors/linux/sunsite/apps/staroffice, (Alternatively, you can go to any sunsite mirror. Sunsite is at sunsite.unc.edu/pub/Linux/apps/staroffice.) and downloaded the file 'staroffice.README'. Here I learned about the StarOffice for Linux license, StarDivision's plans for the product, how to connect with the StarOffice technical support and development system and valuable installation notes.

2. My internet service provider has free hours from midnight to 7:30 A.M. So I waited till midnight, fired up xtftp, pointed it to the ftp site, created a ~/download/staroffice directory for the download, highlighted all 53 files, pressed 'copy' and 'ok' and went to bed.

   (The 'staroffice.README' mentions that you can install only part of StarOffice. So my first attempt, not recommended, was to install just the common files with StarWriter. Unfortunately, the install program comes to an error which has to be stepped past each time it finds a file from the complete package that is missing. After clicking 'ignore' with my mouse for the first hundred or so times, I abandoned this attempt.)

3. If you are fortunate to have Motif 2.0 installed on your system, you can skip down to step 6.

4. Peter Klein: "You have to install the SO libraries before you can start the install program."

   - I created the directory ~/so-temp and executed:

         cp ~/download/staroffice/file.01-? ~/so-temp
         cd ~/so-temp
         unzip file.01-1
         unzip file.01-2
         unzip file.01-3
         unzip file.01-4
         unzip file.01-5
         unzip file.01-6
         unzip file.01-7

     In the ~/so-temp file you now have a bunch of subdirectories with the unzipped files in them.

   - Create a directory to hold the 'so' files. I created mine in /usr/X11R6/lib with the command:

         mkdir /usr/X11R6/lib/so-libs.

   - Among the subdirectories created in ~/so-temp you will find the ~/so-temp/lib* directories. I manually went through the ~/so-temp/lib* directories and copied every file to /usr/X11R6/lib/so-libs. I used Midnight Commander, a handy two-panel file manager for the virtual console, for this task.

   - Next, in the /usr/X11R6/lib/so-libs directory I created the symbolic links:

         cd /usr/X11R6/lib/so-libs
         ln -s libso312.so libMrm.so.2
         ln -s libso312.so libXm.so.2

   - I edited the /etc/ld.so.conf file to contain the line:

         /usr/X11R6/lib/so-libs

   - I executed ldconfig from root.

     Thank you Peter Klein.

5. Not recommended because of the large number of failures reported, but still worth checking out for an install approach, is the 'StarInst' Perl script by Steffen Winterfeldt which can be downloaded at:
   http://www.physik.uni-leipzig.de/~wfeldt/starinst/starinst.html.
   This script is alleged to work with installed versions of Motif 1.2.

6. I next ran StarOffice Install which must be executed from root. Install is very easy to use. Just make sure you have enough disk space (about 125 Mb) and follow the simple prompts that Install presents in its dialog boxes. If you have Red Hat and you are executing Install from its own directory, you will need to remember to enter './Install'. I installed StarOffice into /usr/local/StarOffice3.1.

   At the end of Install, I was given directions for proceeding with the second part, the user installation. During the user installation, a user-specified directory and configuration files are created for each user. I found it very easy to just follow the directions in the dialog boxes. I answered 'yes' to the prompt to copy the templates and demo documents to my directory tree because I had been informed that if I answered 'no', I would not be able to modify these documents, although I could still access them as read-only master copies.

7. It is now necessary to fix a couple of things that StarDivision didn't think of in order to actually use StarOffice. I had to glean these fixes from posters to comp.os.linux.development.apps and the Redhat-List after finding that my installation of StarOffice didn't work.

   Logged in users must get permission to use StarOffice's fonts and other files. Log ('su') into root, and

       chgrp -R users /usr/local/StarOffice3.1/Xp3.

   J. Maynard Gelinas proposed the alternate

       chmod -R a+r /usr/local/StarOffice3.1/Xp3

   for this fix on the Red-Hat List.

8. Printing is impossible without this next fix. While logged as root,

       mkdir /tmp/XpSp_
       mkdir /tmp/Xp_
       mkdir /tmp/XpSp_/tmp
       mkdir /tmp/Xp_/tmp
       chgrp -R users /tmp/XpSp_
       chgrp -R users /tmp/Xp_

9. To get the on-line help system (unfortunately only in German in this release), you will need to start the two daemons, 'svdaemon' and 'svportmap' before starting StarOffice. This is how I did it.

   While logged as root, I added the lines:

       /usr/local/StarOffice3.1/linux-x86/bin/svdaemon &
       /usr/local/StarOffice3.1/linux-x86/bin/svportmap &

   to my /etc/rc.d/rc.local.

10. Finally, as directed by the StarOffice user installation, I edited my ~/.bashrc file to contain the line:

        . ~/.sd.sh

    and rebooted my computer.

And, if you followed along with me -- you are finished! All the download and intermediate directories can now be deleted. (Wait a few days, in case you find you have to redo something.)

Log into your user account, 'startx' and open an 'xterm'. The StarOffice applications start at the command line with:

    swriter3
    scalc3
    sdraw3
    schart3
    simage3
    smath3

You will find bugs in this release of StarOffice. But by experimenting, you will also find work-arounds.

For example, I found that exiting the search and replace dialog in StarWriter would generate a fatal segmentation fault. But by activating the cursor in the search area and pressing I can close the dialog box and continue working.

Also, when you use the scroll bar, StarWriter loses its blinking cursor. I just go to the menu bar and activate a pull-down menu and then click my mouse in the document area. Wherever the mouse touches down places the blinking cursor.

For printing on my Postscript printer I have found that I need to set the printer to 'NULL' and the default options to 'lpr'.

There is a neat little button bar, 'soffice3', that is designed to coordinate all these applications. Unfortunately, bugs make it unfunctional. So look, but don't touch until the next release.

Tip of the day for enjoying StarOffice beta one: save your work often.

StarDivision operates a news server with StarOffice newsgroups at:
news://starnews.stardivision.com/beta.staroffice.linux
where users share their experiences. Be sure to connect during German business hours -- no nights or weekends. The same goes for their Web site.

StarDivision is eager to get your bug reports at:
linux-suggest@stardivision.com
I am still getting my feet on the ground in StarOffice. But I found composing this article in StarWriter quite easy and fun. I used a lot of cut and paste between multiple windows, formatting, changing fonts, printing, search and replace -- all the basic things you do in word processing. But I didn't even scratch the surface of the capabilities of just StarWriter. And I haven't even looked at the other applications yet. I am looking forward to exploring StarOffice in the coming months.

I congratulate the vision of StarDivision to recognize that Linux is an important platform for major application development.

# YODL: A New, Easy-To-Use Text Formatting Language

#### by Larry Ayers

Copyright (c) 1996

##### Published in Issue 9 of the Linux Gazette

### Introduction

Linux/un*x is rich in difficult-to-learn, intricate text formatting systems. Though the quality of printed output can be extremely high, the learning curve can be concomitantly steep.

This has led to the development of "meta-formatting" systems, which allow one common text mark-up system to be output in several formats. An example is SGML, which is very capable but hardly intuitive.

Karel Kubat, a Dutch programmer, has written a new text formatting system which he calls YODL, for Yet OneOther Document Language. (I get the impression that the awkward "oneother" word construct exists because Mr. Kubat wanted to have .yo as a filename suffix, rather than .ya.)

### Origins

Karel Kubat had found himself spending an inordinate amount of time marking up documents for HTML, then having to repeat the process for Latex; in other words, he wanted to have a nicely formatted printout of a document and also make it available on a web-page. For various reasons SGML was not satisfying his needs so he set out to write an easy to use document language. His criteria included a minimum of awkward-to-type tags and the ability to include or reference other files in one master file. I think he succeeded remarkably well.

### Features

A sample document will give you a good idea of what a .yo file looks like:

    COMMENT(File for testing purposes.)

    htmlbodyopt(fgcolor)(#0000E0)
    htmlbodyopt(bgcolor)(#E0E0C0)

    article(Test article for YODL)
           (Karel Kubat)
           (1996)

    sect(First section) label(first)

    This is the first section. Now for a subsection:

    subsect(Subsection of first section.)

    This is the subsection.

    sect(Second section.)

    This is the second section, but ref(first) is the first one.
    Lets try some verbatim text.

    verb(
     #include

     int main ()
     {
         printf ("Hello World!\n");
         return (0);
     })

    Now some weird characters: !@#$%^*[]{}\|"~`'.

    Accents? em(Ich m\"ochte bitte \"uberhaupt ein Bier!)
    bf(Apr\`es moi la d\'eluge.)

    subsect(Some lists.)

    subsubsect(An itemized list.)

    itemize(

        it() Item one.

        it() Item two.

    )

    subsubsect(A descriptive list.)

    description(

        dit(First:) Item one.

        dit(Second:) Item two.

    )

    subsubsect(An enumerated list.)

    enumerate(

        eit() Item one.

        eit() Item two.

    )

This test file shows you what some of the tagging is like. Here's a brief excerpt from a .yo file showing how other files from the current directory can be included:

    sect(Using the yodl program)
    includefile(using)

    subsect(Language elements)
    includefile(elements)

As you can see the tags are in an abbreviated verbal form, which makes them easier to remember. The included files can be completely devoid of tagging. This allows you to concentrate more on content rather than structure; the structure can be mostly contained within the master document. YODL documents are noticeably easier to read in their source format than either HTML or Latex source. Format-specific tags are also allowed, as in the above HTML body tags. They will be ignored by the Latex parser, for example.

YODL is very well documented, and the installation of the docs is an effective demonstration of the system. The docs come in .yo source form; these files are copied to /usr/local/yodl/doc, and then YODL is run on them during the installation, with the end result being several HTML files.

As is true with any "meta-formatter", a user is better-off knowing something about the output format. I think it's necessary to at least glance through the output, just to catch any obvious errors. The advantage of a program like YODL is that it will enable you to avoid the grunt-work of starting from scratch.

### Package Contents

The main YODL program is written in C, and it works in conjunction with several shell scripts and macro files. The main supported formats are HTML, Latex, and the troff/groff man and ms formats. There is limited support for conversion to plain ASCII and SGML, as well. As previously mentioned, the documentation is unusually extensive, being about sixty pages worth of well-written material.

### Availability

YODL can be downloaded from its home site under the filename yodl-X.YY.tar.gz, with X.YY being a version number. It is also available from ftp://sunsite.unc.edu and its mirrors, as of this writing in the /pub/Linux/Incoming directory.

#

# The Back Page

##### Copyright (c) 1996 Specialized Systems Consultants, Inc.
For information regarding copying and distribution of this material see the COPYING document.

#### Plans

Now that Linux Journal has taken over the Linux Gazette from John Fisk, I plan to post a new issue of the Gazette sometime during the first week of each month -- preferably on the first. Whether or not I can make this happens will depend on writers getting articles to me each month, AND on time constraints due to my other projects for Linux Journal and SSC.

I wish to keep the Gazette both helpful and fun as John has over the past year. And, of course, it will also remain free. Any ideas and suggestions, as well as criticisms that you might have, for improvements to the Gazette will be welcome. Most of all, I will welcome your contributions -- after all, without you Linux Gazette would disappear.

I'd also like to thank our webmaster, Michael Montoure, for his invaluable help in checking the HTML and designing neat graphics.

#### Not Linux

In the hopes that everyone had a nice Labor Day weekend, I thought I'd tell you about mine. I went camping in Northern Washington and Canada with my husband, Riley, our son, Keith, and Keith's dog Lucky. We had a grand time exploring the Okanagan Lake area of British Columbia. In driving to a campground on Pennask Lake, we traversed what must be one of the worst roads in Canada -- thank goodness for high clearance vehicles! Keith was ahead of us in his 4 wheel drive truck, and was really bouncing through the ditches and holes in the road. Our camper was bouncing and swaying enough to make me worry that it might cause us to tip over -- Riley assured me it would not. At any rate, after 30 minutes of hard driving, we reached the beautiful lake only to find the campground full of fishermen. So we headed back out that wonderful road, looking for side roads, and anyplace that we might camp. We found a place down a side road that had only two huge ditches across it, and set up camp. No bears showed up to spoil the fun, so we had a very good time playing in an isolated spot away from other campers. Canada is certainly a very beautiful country, and the British Columbians very friendly. This jaunt was not our first trip to Canada nor will it be the last.

If you would like some personal information about me, clicking on my name below will take you to my home page. It's not very jazzy at the moment, but I'm looking for the time to fix it up.

Marjorie L. Richardson
Editor, Linux Gazette gazette@ssc.com

This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com