Next Previous Contents

9. How to compile LinFBB's executable files

9.1 fbbsrc.704h (using Red Hat 7.1)


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 ...

9.2 fbbsrc.704j (using Red Hat 7.1)


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

9.3 fbbsrc.704j (using Red Hat 9.0)


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*
[root@localhost root]#

      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

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. Your suggestions are welcomed (they can be added as contributions to the next releases of this mini-HOWTO!).

9.4 fbbsrc.704o (using Mandrake 9.1)


Notice: I started to play with Mandrake release 9.1 for i586 (Bamboo) some two years ago. That version was equipped with kernel 2.4.21-0.13mdk and, as you can expect, after the installation of the new OS, I decided to put fbbsrc.704j on it because I was familiar with version 7.04j. Unfortunately, in that particular iteration I have only managed to compile the server part of LinFBB (xfbbd) and despite my best efforts I couldn't have produced the graphical client (xfbbX). As you have learned above what I was experiencing with earlier LinFBB versions when I was about to compile GUI clients, I tried to follow the same procedure once again: I mean to ensure that Motif (LessTif) was there etc. But whatever I tried to install/uninstall I haven't got any success with the client. So, I ended up with running xfbbd v. 7.04j and xfbbX v. 7.00g24 (dated Oct 16 1999) which was included in 7.04j tarball. You can imagine that I was not happy with such confusing situation, so I decided to try something that reached the markets in Sep 2007: a new version 7.04o

Since the previous version I was using, it seems that LinFBB has changed its maintainer, though I don't know if Bernard, F6BVP took the 'job' from F6FBB officially or not. Regardless of that, I expected to see some improvements in a way they constructed GUI clients to make it easier to compile xfbbX - regardless a distribution of Linux being used. This time I downloaded the package from F6BVP's location:

The procedure with xd704o-src.tgz is the same as it was with earlier versions of LinFBB - so I am not going to replay how to compile the executable files. A new fact for me was that the base directory tree of LinFBB keeps changing (it started to change from version 7.04n). Now, almost all parts of the program have to be placed in subdirectories of /usr/local but at the first moment I missed that point. To be precize, I was used earlier to put new executables into /usr/sbin directory with other similar files, the configuration files into /etc, etc. When I tried to activate xfbbd within the old locations, nothing happened so I thought the compilation process might have failured. After recognizing my mistake and moving the program parts in accordance with instructions provided (always read the manuals!), another incarnation of LinFBB daemon started to run immediately. To be honest, I haven't noticed anything special with it, so I rushed to compile the client xfbbX.

By the way, besides the location I downloaded xd704o-src.tgz from, I also noticed which I supposed to be a version for older CPUs, like PI or PII. Instead, it appeared that it was the complete structure of LinFBB's new directory tree, including already compiled versions of xfbbd and other executables, minus the client xfbbX - which found me a bit disapointed.

I did not have any option but to try compilation of xfbbX by myself. At first, I tried to position myself to the proper location, as follows:

[root@server src]# cd X11

Then I invoked make command:

[root@server X11]# make
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbbabtd.o xfbbabtd.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbbcnsl.o xfbbcnsl.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbbedtm.o xfbbedtm.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbbedtu.o xfbbedtu.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbblcnx.o xfbblcnx.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbbmain.o xfbbmain.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xfbbpndd.o xfbbpndd.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25   -c -o xeditor.o xeditor.c
xeditor.c: In function `ManageFindDB':
xeditor.c:1511: warning: implicit declaration of function `_XmGrabTheFocus'
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25 -c -o xfbb.o xfbb.c
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25 -o xfbb xfbb.o ../arbre.o ../autobin.o ../balise.o ../bidexms.o ../conf.o ../console.o ../date.o ../devio.o ../dos_1.o ../dos_dir.o ../driver.o ../drv_aea.o ../drv_ded.o ../drv_hst.o ../drv_kam.o ../drv_mod.o ../drv_pop.o ../drv_sock.o ../drv_tcp.o ../edit.o ../ems.o ../error.o ../exec_pg.o ../fbb_conf.o ../fortify.o ../forward.o ../fwdovl1.o ../fwdovl2.o ../fwdovl3.o ../fwdovl4.o ../fwdovl5.o ../fwdovl6.o ../fwdovl7.o ../fwdutil.o ../gesfic.o ../ibm.o ../info.o ../init.o ../init_srv.o ../init_tnc.o ../initfwd.o ../initport.o ../k_tasks.o ../kernel.o ../lzhuf.o ../maint_fw.o ../mbl_edit.o ../mbl_expo.o ../mbl_impo.o ../mbl_kill.o ../mbl_lc.o ../mbl_list.o ../mbl_log.o ../mbl_menu.o ../mbl_opt.o ../mbl_prn.o ../mbl_read.o ../mbl_rev.o ../mbl_stat.o ../mbl_sys.o ../mbl_user.o ../mblutil.o ../md5c.o ../modem.o ../nomenc.o ../nouvfwd.o ../pac_crc.o ../pacsat.o ../qraloc.o ../redist.o ../rx25.o ../serv.o ../serveur.o ../statis.o ../themes.o ../tnc.o ../tncio.o ../trait.o ../trajec.o ../trajovl.o ../variable.o ../warning.o ../watchdog.o ../waveplay.o ../wp.o ../wp_mess.o ../wpserv.o ../xfwd.o ../xmodem.o ../yapp.o xfbbabtd.o xfbbcnsl.o xfbbedtm.o xfbbedtu.o xfbblcnx.o xfbbmain.o xfbbpndd.o xeditor.o -L/usr/lib -lm -lax25 -L/usr/X11R6/lib -L/usr/X11R6/LessTif/Motif2.0/lib -lXm -lXt -lXpm -lXext -lX11
/usr/bin/ld: cannot find -lXpm
collect2: ld returned 1 exit status
make: *** [xfbb] Error 1
[root@server X11]#

At that point it looked to me that something was missing within the installation of LessTif/Motif but I don't have any idea about what might be wrong. If somebody has some ideas, it may help, so please do not hesitate to contact me via email: skoric at eunet dot rs

Interestingly, I faced to the very same symptoms earlier when tried to compile the GUI front-end of fbbsrc.704j where all I managed to have was the following:

cd /usr/src/fbbsrc.704j/src/X11
[root@localhost X11]# make
gcc -Wall -Wstrict-prototypes -O2 -g -funsigned-char  -D__LINUX__ -DPROTOTYPES -I../../include -I/usr/X11R6/LessTif/Motif2.0/include -I/usr/X11R6/include  -I/usr/include/netax25 -o xfbb xfbb.o ../arbre.o ../autobin.o ../balise.o ../bidexms.o ../conf.o ../console.o ../date.o ../devio.o ../dos_1.o ../dos_dir.o ../driver.o ../drv_aea.o ../drv_ded.o ../drv_hst.o ../drv_kam.o ../drv_mod.o ../drv_pop.o ../drv_sock.o ../drv_tcp.o ../edit.o ../ems.o ../error.o ../exec_pg.o ../fbb_conf.o ../fortify.o ../forward.o ../fwdovl1.o ../fwdovl2.o ../fwdovl3.o ../fwdovl4.o ../fwdovl5.o ../fwdovl6.o ../fwdovl7.o ../fwdutil.o ../gesfic.o ../ibm.o ../info.o ../init.o ../init_srv.o ../init_tnc.o ../initfwd.o ../initport.o ../k_tasks.o ../kernel.o ../lzhuf.o ../maint_fw.o ../mbl_edit.o ../mbl_expo.o ../mbl_impo.o ../mbl_kill.o ../mbl_lc.o ../mbl_list.o ../mbl_log.o ../mbl_menu.o ../mbl_opt.o ../mbl_prn.o ../mbl_read.o ../mbl_rev.o ../mbl_stat.o ../mbl_sys.o ../mbl_user.o ../mblutil.o ../md5c.o ../modem.o ../nomenc.o ../nouvfwd.o ../pac_crc.o ../pacsat.o ../qraloc.o ../redist.o ../rx25.o ../serv.o ../serveur.o ../statis.o ../themes.o ../tnc.o ../tncio.o ../trait.o ../trajec.o ../trajovl.o ../variable.o ../warning.o ../watchdog.o ../waveplay.o ../wp.o ../wp_mess.o ../wpserv.o ../xfwd.o ../xmodem.o ../yapp.o xfbbabtd.o xfbbcnsl.o xfbbedtm.o xfbbedtu.o xfbblcnx.o xfbbmain.o xfbbpndd.o xeditor.o -L/usr/lib -lm -lax25 -L/usr/X11R6/lib -L/usr/X11R6/LessTif/Motif2.0/lib -lXm -lXt -lXpm -lXext -lX11
/usr/bin/ld: cannot find -lXpm
collect2: ld returned 1 exit status
make: *** [xfbb] Error 1
[root@localhost X11]#

Then too I got no clues what was caused the errors close to the end of the sequence above and I would really appreciate if somebody would be kind enough to give me some pointers. Actually, all 'make' tries just haven't produced either xfbbX or xfbbX_cl files (or I happened not to find them elsewhere?). The only idea I've got was just to try executing (i.e. mouse clicking on) the original xfbbX shell script (dated 09/07/03) which resulted in opening XFBB's main GUI window, asking for callsign, pasword etc. I am not so sure if things should have gone that way, because as explained in earlier installations, I managed to compile xfbbX and xfbbX_cl files, move them to /usr/sbin and activate from there.

After some Internet searching for ideas, I got an email from VK5KMG:

"Hi there Misko, it might be more of a help if you included your complete operating system,ie: computer,processor and so on. As to the ax25 stuff you will need libax25-0.0.11 ax25-apps-0.0.6 ax25-tools-0.0.8. You should be able to get rpm's of these.

Th original compile error was in regard to the updated ax25stuff wnerein you will have to edit the necessary files to reflect the use of the later versions,,,,,alternatively if you are using a 2.2 kernel ( though the later updated stuff works quite ok on the earlier kernels) you would need the ax25-utils package, then FBB would compile up ok using the earlier stuff.

To get the X stuff compiled you will have to go into the relative dir in src and compile the files in there and install manually."

I have also downloaded the following versions of AX25 packages from the Net:

libax25-0.0.11-1.i386.rpm ax25-apps-0.0.6-178.i586.rpm ax25-tools-0.0.8-324.i586.rpm

Although all three complained for bad file signatures or like, I managed to install all of them. What followed a repeated 'make' command, was the same failed output. For your information, I tried to tweak appropriate Makefile file before doing make in fbb/source/X11 directory, for several times now, but nothing helped.

According to earlier 'symptoms' of that type of an error, I was suspicious that I have forgotten to install some parts of developing software - related to graphical environment. In order to check what actually was installed per default (Mandrake 9.1 distribution), I did the following test:

[root@localhost src]# rpm -qa *lesst*
[root@localhost src]#

It was obvious that some of the X Window development parts of lestiff routines were missing here. I started Mandrake 9.1 Control Center's RpmDrake, searching there for possible lestiff-related packages and found three of them. After having them installed, I performed another test:

[root@localhost src]# rpm -qa *lesst*
[root@localhost src]#

Then it seemed that I finally got all four parts of lestiff, but regardless of that I was not able to compile the xfbbX client.

I would appreciate if someone has new pointers to solve this issue.

Next Previous Contents