Next Previous Contents
9. How to compile LinFBB's executable files
(YT7MPB)
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