Next Previous Contents

## 9. How to compile LinFBB's executable files

## 9.1 fbbsrc.704h (using Red Hat 7.1)

2003-01-01

Notice: Until recently, I preferred to download "factory-made" executables in RPM format (something like ZIP in MS Windows world). After getting a RPM package, a click on it activates the program that unpack and install its content. Well, it is great whenever your RPM has been "manufactured" for the very similar distribution of Linux you have. If not ...

- Well, I have already had the package `xfbb-7.04-2.i386.rpm` (07 August 2001), that was running OK under RH 6.2 distro. And not only that. Its "packer", Jose HI8GN, has explained that this package was actually compiled and linked with utilities that came with RH 6.2 - so under that distribution should be no problems at all.
- One day I finally decided to abandon another 4-5 year old version of an X11 LinFBB application that I knew it would not run under Red Hat Linux newer than 6.2 distribution. I decided to stay with LinFBB's daemon only, so it was also the right time to upgrade the Linux system itself. Another handy installation that I had, was RH 7.1 and I used it. After finishing that task, I rushed to re-install the RPM package mentioned above (just to test if it would eventually work), but as expected it didn't want to run.
- I had no choice but to browse web sites in order to find a RPM package that would fit my RH 7.1 distribution. Unfortunately, it looked that there was no one recompiled LinFBB RPM for 7.1 RedHat version. The only solution was to try with tarballs. So, what I have downloaded from www.f6fbb.org/versions.html, was `xd704h-src.tgz` archive.
- So far - so good. Well, folks, I am not very good of "deepest" secrets of Linux, so I was not sure where might be the best place to unpack the archive. According the readme file, it might be a "fbbsrc" directory, so I considered that /usr/src would be the best location to copy archive's fbbsrc.704h directory tree.
- Well, the fbbsrc.704h directory consists of 12 files and 7 subdirectories, one of which is src subdirectory. As the readme suggested a user to "goto fbbsrc/src" directory, I concluded that /usr/src/fbbsrc.704h/src was the right place.
- The readme also suggested to "update the variables" at the beginning of Makefile files, but I did not do that because I was not sure what exactly should be put in there. So I have just left the file(s) intact.
- The next task was to run make command from the shell and it took half a minute to be finished. The results were several xfbb executable files that I quickly moved to /usr/sbin directory. BTW, some people rather suggest to run make install (instead of make), in order to avoid multiple copying of compiled executables, but I found that way as not functional.
- Soon after, I tried to activate xfbbd - the new LinFBB's daemon and it seemed to work without visible difficulties. Using a home LAN including a Windows laptop, I also started fbbW - a LinFBB Windows client. It recognized the daemon in a second and I've only noticed that there was no Protus password utility running.
- According the readme, the next task should be to "compile the xfbbC client". That operation should be done from a place called "fbbsrc/client" but the only available directory under /usr/src/fbbsrc.704h/src was X11.
- After clicking on its icon, I recognized the second one file named Makefile (they have mentioned "updating" of both Makefile files, so I hoped to reach the proper place once again, regardless of two unfamiliar paths). Besides that, they have also suggested to use "at least the version 2.1.37b of ax25-utils" and I found not to have something like that installed (in the case they have possibly meant of a suit of libax25, ax25apps and ax25tool - than it should be OK). Anyway, then I activated make command from the shell one more time and the result was in getting xfbbC executable.
- As usual, xfbbC client is to be invoked from within an xterm (or similar) command line environment. It also seemed that it was fully functional. So far - so good.
- The next issue was to "compile the xfbbX client", but this time a user was requested to have a version of Motif installed. Well, what I already knew was that I haven't had any Motif software in the box, but a couple of Lesstif RPM packages were somewhere around. I installed them using `--force` and `--nodeps` options in order to avoid various dependency 'obstacles'. In sum, Lestiff stuff has come to its place on the hard disk.
- This one time, I did make some "updates" related to Makefile paths and tried to run make command from the shell (for the 3rd time now). At the first sight, it seemed that I got no answer, because there appeared neither xfbbX nor xfbbX_cl executables. In order to "make" missing files, I just copied the appropriate executables from an earlier LinFBB version (which I backup-ed before).
- Finally, I managed to activate xfbbX client without visible problems, although I knew it was not an up-to-date version (compared to the daemon itself). Regardless of that detail, the GUI client worked properly.
- As I just mentioned, I also noticed that the first console connection was without familiar {PROTUS-4.1b7} designation (that means there was no c_filter utility running). So, I had to check and double-check all the paths and system directories, described in the Protus section of this mini-HOWTO. At the first sight, it looked to me that everything was fine, but the utility was not likely to start. Finally, I copied its main executable into yet another system location: /usr/lib/fbb/filter, re-started the system once again and Protus returned back to its function.
- That was all. I am satisfied with what I have done for the first time. What I have to do in the future, will be to check if the procedure described in this section was the right one, although most of the BBS's main features seemed to be active (just like as if they were running under RH 6.2 distribution using LinFBB packages in RPM format mentioned earlier). The only "mystery" was how to activate some system administering tasks: maintenance (a "housekeeping"), get user's data and other tasks easily accessed from under WinFBB main console (for example). Until now I haven't solved that, but that is not a real problem because I can also run WinFBB whenever my Windows is active, and from there I can perform sysop's tasks, using a mouse click or like.

## 9.2 fbbsrc.704j (using Red Hat 7.1)

2004-01-03

Notice: The other day I tried to upgrade my Red Hat 7.1 distribution to Red Hat 9.0 - in order to get more up-to-date system, being also capable to be upgraded from its original Netscape 4.76 browser to Netscape 7.1 (In fact, the more newer Netscape I need for other purposes - not related to FBB stuff at all - but I have not succeeded to perform a kind of a 'browser-only' upgrade (In fact, Netscape 7.1 needs newer Glibc and some other things not easily being upgraded within under Red Hat 7.1). That's why I decided to upgrade the complete Linux system - i.e. not just reinstalling it 'from scratch'. The reason for that was I wanted to preserve my old Netscape Messenger email directory tree etc). So, at first, I made cca. 450 MB of free space on my / partition, hoping that would be enough to upgrade. But, RH 9.0's setup asked for even more 400 MB - that I couldn't made. Then I tried to make a 'fresh' installation of RH 9.0 and it also looked that I had better supply a larger hard disk (besides that, it seemed that RH 9.0 performed a bit slower on my system than the old RH 7.1). Finally, I made a decision to re-install RH 7.1 again.

After I did it, one of the first tasks to do was to install LinFBB. I took some browsing in order to find something newer than that fbbsrc.704h and I've got fbbsrc.704j tarball from ftp://www.f6fbb.org/pub/f6fbb/distrib/linux/src

- At first, I extracted .tgz package to the /usr/src directory. fbbsrc.704j consists of 7 subdirs and 12 files. According to its readme, at the beginning I should 'goto fbbsrc/src directory' so I went to /usr/src/fbbsrc.704j/src
- The readme also suggested to "update the variables" at the beginning of Makefile files, but I just left the file(s) intact.
- The next task was to run make command from the shell and it took almost two minutes to be finished. The result was new xfbb executables (clr_user, epurmess, epurwp, fbbgetconf, maintinf, reqdir, xfbbC and xfbbd) that I quickly moved to /usr/sbin directory.
- Then I copied fbb.conf (previously backup-ed) as well as other config stuff that should go to /etc/ax25/fbb directory. I have not created new directories LinFBB should use as a 'normal' Linux-only BBS (a 'configuration tree', a 'utilities tree' and a 'data tree' - all of which suggested by /usr/src/fbbsrc.704j/FBBTREE file. If I haven't copied my backup-ed fbb.conf (that, in turn, has been configured to share config files with my WinFBB on a spare FAT16 partition) and if I wanted to activate LinFBB's daemon before copying my particular fbb.conf - then I had to create those FBB-trees. In opposite, LinFBB couldn't run.
- Soon after, I tried to activate LinFBB's daemon and it seemed to work without visible difficulties (using a temporary home LAN with a laptop, I performed telnet xfbbd_IP_address 6300, from Windows' utility Command Prompt. It recognized the daemon in a second and I've only noticed that there was no Protus password utility running). The latter I solved by copying /var/ax25/fbb/protus/c_filter file to a location /usr/lib/fbb/filter and re-starting LinFBB. To make more tests, I have also installed xfbbW (Windows client for LinFBB). It also worked fine.
- According the readme, the next task should be to "compile the xfbbX client". That operation is to be performed from a place called "fbbsrc/client" but the only sub-directory available under /usr/src/fbbsrc.704j/src was X11 subdir. I went there, but before trying to activate make again, I also installed a couple of LessTif RPM packages of version 0.93.18-1 (lesstif, lesstif-mwm, lesstif-devel and lesstif- clients). In fact, I haven't had a version of Motif to be installed.
- Once again, I did not make "updates" related to Makefile paths and just tried to run make from the shell (for the 2nd time now). In a half a minute, I got two new executables: xfbb and xfbbX_cl. I also copied them to /usr/sbin directory, accompanied with xfbbX shell script. The difference to the older version 704h was that this time I haven't had to apply the GUI client executables from an earlier version I have backup-ed previously. That means, I could be sure now that both server and client parts of LinFBB are of the very same version.
- Then I entered /usr/sbin/xfbbX and soon after XFBB Setup screen appeared, asking to enter the Callsign and Password. From the Help menu, I checked for About and Copyright and I was satisfied when noticed that it was 7.04j version of the Linux GUI client.

## 9.3 fbbsrc.704j (using Red Hat 9.0)

2004-01-05

Notice: Although I managed to compile all parts of the newest LinFBB version, I was not so happy because my Linux platform was still the old one: Red Hat 7.1 and I wanted to have 9.0 version. That's why I started planning what to do with the things intended to be backup-ed before the another fresh installation of Linux. The main trouble were the existing Netscape 4.76 email folders, because it was obvious that the 4.76 directory structure greatly differ from Netscape 7.1 folder tree. In fact, a user of Netscape 4.76 email only has to make a backup copy of the hidden .nsmail directory that, in turn, has to be restored into the same location after the eventual next re-installation of the Red Hat 7.1 distribution. That is a simple task to do. But, the problem with newer Netscape 7.1 was that it has the different directory tree when compared to its predecessor, in addition to a slightly changed email structure. In fact, I tried to use Netscape 4.76's .nsmail directory with the fresh Netscape 7.1 installation and that just didn't want to run properly. Than I looked for another way to accomplish that task and here is how I did it.

I already knew that Netscape and Mozilla software (in particular the newer one versions of them) converge in a way they seem to use a similar or the very same "engine" as well as the directory structure. Having in mind that the newer Red Hat 9.0 distribution have not offered any version of Netscape software at all and that Mozilla packages remained in the newer Red Hat's - I decided to perform the following steps:

1. to make a simple upgrade from Red Hat 7.1 to Red Hat 9.0 (in order to keep the original Netscape's 4.76 .nsmail directory structure intact, but to get an up-to-dated version of Mozilla which comes with this particular Red Hat upgrade and that is the same as Mozilla after the 'fresh' installation of RH 9.0);

2. to make an import of the existing email from Netscape 4.76 to Mozilla (interestingly, the new Mozilla only supports an import from a "Netscape 4.x");

3. to make a backup copy of the new Mozilla's directory structure;

4. to make a 'fresh' installation of Red Hat 9.0 (in order to ensure the stable environment that, in turn, will also have the same new Mozilla);

5. to make a 'restore' of Mozilla's directory structure (previously backup-ed);

6. to install the new Netscape 7.1 that, as mentioned, will use the same directory structure as the new Mozilla;

7. to have a choice: to run either Netscape or Mozilla (if you get bored from either of them :-)).

Well, these steps were the nice mental exercise, but finally I got them all running as I wanted. After I got sure that the Internet email and browsing capabilities of my new Red Hat 9.0 became OK, I got to the beginning of LinFBB installation procedure. Now I am not going to repeat the items from the previous LinFBB sub-section, but what I would like to say is that the step 4. (a couple of paragraphs above) have not brought some X Window development packages, needed for compiling of xfbbX. I mean, once again I managed to compile xfbbd and xfbbC without problems, but a make of xfbbX haven't produced the result I expected. In fact, it returned something like this:

> `

>     [root@localhost X11]# make
>     gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  ...
>     In file included from ../../include/xfbb.h:34,

>     ...
>     ...

>     xfbbabtd.c: In function `DisplayInfoDialog':
>     xfbbabtd.c:428: warning: comparison between pointer and integer
>     make: *** [xfbbabtd.o] Error 1
>     [root@localhost X11]#

> `

I was advised by the friendly FBB-hams that obviously something of the X Window development stuff have been missing, so I started to explore the RPM's I already have installed:

> `

>     [root@localhost root]# rpm -qa *lesst*
>     lesstif-devel-0.93.18-1
>     lesstif-clients-0.93.18-1
>     lesstif-mwm-0.93.18-1
>     lesstif-0.93.18-1
>     [root@localhost root]#

> `

- As long as I know, all these lesstif packages don't belong to either Red Hat 7.1 nor 9.0 distribution. I have probably downloaded them as a '3rd party' software. Besides that, I also noticed that Red Hat 9.0 installation CD's do include the following:

  > `

  >           lesstif-0.93.36-3.i386.rpm
  >           lesstif-devel-0.93.36-3.i386.rpm
  >           openmotif21-2.1.30-8.i386.rpm
  >           openmotif-devel-2.2.2-14.i386.rpm

  > `

- Well, a nice try to 'upgrade' to lesstif-0.93.36-3.i386.rpm ended up with an error report on the conflicts with the existing lesstif-0.93.18-1 - so I gave up;
- Then I entered a 'loop' of failed dependencies as follows:

> `

>           lesstif-devel-0.93.36-3.i386.rpm required
>           XFree86-devel and lesstif = 0.93.36

>           XFree86-devel-4.3.0-2.i386.rpm required
>           fontconfig-devel and pkgconfig

>           fontconfig-devel-2.1-9.i386.rpm required
>           freetype-devel >= 2.1.2-7

> `

- Then the following stuff got installed without complaints:

  > `

  >     [root@localhost root]# rpm -i freetype-devel-2.1.3-6.i386.rpm
  >     [root@localhost root]# rpm -i fontconfig-devel-2.1-9.i386.rpm
  >     [root@localhost root]# rpm -i pkgconfig-0.14.0-3.i386.rpm
  >     [root@localhost root]# rpm -i XFree86-devel-4.3.0-2.i386.rpm

  > `

- Well, at this point I tried to recursively install lesstif-0.93.36-3.i386.rpm once again but it conflicted with the existing lesstif-0.93.18-1 - so I gave up once again;
- While pulling out the remaining hair, I just tried another make within the X11 directory and ... Bingo! ... xfbbX finally got compiled! Only God knows which one of the packages above was/were the missing part(s). Case some of you knows, please let me know.
- And, as they said: ... and after all that had happened, what remained has just gone to a legend ... :-)

What remains to be explored (at least for me) is to see how to maintain various sysop's tasks (ex. how to execute 'housekeeping' mechanism by a mouse click or like) - from within xfbbX. Any suggestion is welcomed (it may also be a contribution for the next release of this mini-HOWTO, hams!).

Next Previous Contents