[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Compiling and installing FIDOGATE

2.1 The config.h Header File  The config.h header file
2.2 The config.make Makefile Configuration  The config.make Makefile configuration
2.3 Compiling and Installing FIDOGATE  Compiling and installing FIDOGATE
2.4 Integrating FIDOGATE and the Mail/News System  Integrating FIDOGATE and the mail/news system
2.5 Testing the FIDOGATE Installation  Testing FIDOGATE operation
2.6 Connecting to FIDONET  

This chapter describes the FIDOGATE configuration and installation. You must also create and edit the config files to be installed in the CONFIGDIR directory, fidogate.conf, areas, hosts, passwd, routing, packing, aliases according to your setup (see the examples subdirectory).

The chapter on config files describes them in detail.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 The config.h Header File

Normally, if you want to compile a standard version of FIDOGATE on one of the supported platforms, it is not necessary to change anything in this file. Most things can be configured or overridden in config.make (compile-time) or fidogate.conf (run-time).

If you really want to edit config.h, here are the gory details:

LOCAL_FTN_ADDRESSES
Generate "local" FTN addresses: User_Name%p.f.n.z@hostname.domain instead of User_name@p.f.n.z.domain.

DO_BSY_FILES
Create Binkley-style busy files while accessing the Binkley outbound.

NFS_SAFE_LOCK_FILES
Create lock / bsy files in an NFS-safe way.

AMIGADOS_4D_OUTBOUND
Use AmigaDOS-style outbound file names.

MAXMSGSIZE
Maximum size of FIDO messages generated by rfc2ftn, larger messages will be split. Alas, less than 16K seems to be the only safe setting. This is the default value.

FTN_INVALID_DOMAIN
Domain address to be used for invalid FTN addresses.

FACILITY
syslog facility used if Logfile is set to "syslog".

CHARSET_STDFTN
Default charset for Fido messages.

CHARSET_STD7BIT
Default charset for RFC messages with 7bit encoding.

ALIASES_ARE_LOCAL
Addresses found in the aliases config file are rewritten so that the sender's address is the gateway.

PASSTHRU_NETMAIL
Passthru operation for NetMail: if the sender of the message is an FTN address, the origin address of the resulting FTN message will be that FTN address. WARNING: enabled only if you really know what you're doing!

PASSTHRU_ECHOMAIL
Passthru operation for EchoMail: X-FTN-Tearline, X-FTN-Origin, X-FTN-Seen-By, X-FTN-Path headers will be used for tear line, * Origin, SEEN-BY, ^APATH, when gating from Internet to FTN. WARNING: enabled only if you really know what you're doing!

AI_1
AI_3
AI_5
AI_6
AI_8
Configuration for Andy Igoshin's patches, see contrib/fidogate-4.3a3-ai-pl9.1/README.ai for details. AI_2,4,7 are now fully integrated.

System dependent configuration:

This configuration contains several groups of #define/#undef. First, the definitions for a standard POSIX UNIX, followed by #ifdef'ed definitions for SunOS, Linux, FreeBSD, Interactive UNIX, MSDOS DJGPP, NextStep, GNU-WIN32.

If you want to port FIDOGATE to a new system, please add a #ifdef'ed section similar to the already existing ones.

The gory details:

HAS_FCNTL_LOCK
Define, if the system support fcntl() file locking.

HAS_GETTIMEOFDAY
Define, if the system has the gettimeofday() function.

HAS_TM_GMTOFF
Define, if the system has a tm_gmtoff field in struct tm.

HAS_SYSEXITS_H
Define, if the system support the sysexits.h header file.

HAS_TM_ZONE
Define, if the system has a tm_zone field in struct tm.

HAS_STRFTIME
Define, if the system has the Standard-C strftime() function.

HAS_TZNAME
Define, if the system has extern char *tzname[2].

HAS_STRCASECMP
Define, if the system has the strcasecmp() and strncasecmp() functions.

HAS_STRICMP
Define, if the system has the stricmp() and strnicmp() functions.

HAS_STERROR
Define, if the system has the strerror() function.

DO_BINARY
Define, if files must be opened in binary mode.

DO_DOSIFY
Define, if filenames must be converted to DOS, OS2-style \.

RECEIVED_BY_MAILER
Define, if extra Received lines are inserted by the mail system, currently only used for NeXT.

HAS_SYSLOG
Define, if syslogd and the library function syslog(), vsyslog() are suppored.

HAS_SNPRINTF
Define, if snprintf() and vsnprintf() are supported.

HAS_HARDLINKS
Define, if the system supports file systems with hard links and the library function link().

HAS_POSIX_REGEX
Define, if the system supports the POSIX regex functions regcomp(), regexec() etc.

Define only one of HAS_TM_ZONE, HAS_STRFTIME, HAS_TZNAME, and also only one of HAS_STRCASECMP, HAS_STRICMP.

THE FOLLOWING DEFINES SHOULD REALLY BE LEFT AS IS!!!

MSGID_FIDONET_DOMAIN
Default domain for standard FIDO addresses (zone 1--6). Used for Message-IDs only, so DO NOT CHANGE.

PACKET_MODE
BSY_MODE
FLO_MODE
DATA_MODE
DIR_MODE
CONF_MODE
Permissions for files processed by FIDOGATE.

FTN_RFC_HEADERS
RFC headers recognized at the beginning of FTN messages.

RFC_LVL_1_HEADERS
RFC headers put into FTN messages for RFC level 1.

R_MODE
W_MODE
A_MODE
RP_MODE
WP_MODE
AP_MODE
Modes (fopen()) for opening files.

DATE_LOG
DATE_DEFAULT
DATE_NEWS
DATE_MAIL
DATE_FROM
DATE_FTS_0002
DATE_TICK_PATH
DATE_VIA
DATE_SPLIT
Date format strings.

PRODUCT_CODE
FIDO product code used by rfc2ftn.

MAXADDRESS
Maximum number of Address and Zone statements in config file.

MAXDOSDRIVE
Maximum number of DosDrive statements in config file.

MAXPATH
Maximum length of a pathname in FIDOGATE.

MAXINETADDR
Maximum length of the address part of an Internet address in FIDOGATE.

MAXUSERNAME
Maximum length of the user name part of an Internet address in FIDOGATE.

MAXOPENFILES
Maximum number of packet files concurrently opened by tosser programs. The maximum possible value is operating system and configuration dependent, see UNIX ulimits.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.2 The config.make Makefile Configuration

This file is included in all FIDOGATE Makefiles.

A special convention is used for defining FIDOGATE configuration macros: macro name starting with DEFAULT_ are used by the compilation process to automatically generate C code.

DEFAULT_V_option
Creates a Makefile macro definition, substitutes <option> in shell and perl scripts, creates a compile-time C #define DEFAULT_option in paths.h, a run-time configuration option option in fidogate.conf, and makes FIDOGATE evaluate the environment variable FIDOGATE_option.

DEFAULT_F_option
Creates a Makefile macro definition, substitutes <option> in shell and perl scripts, creates a compile-time C #define DEFAULT_option in paths.h. No run-time override!

DEFAULT_A_option
Creates a %X abbreviation (can be used at the start of file names) for option.

Be very carefull not to remove any of the FIDOGATE standard macros and don't touch the standard abbreviations in this file!!!

DEFAULT_V_CONFIGDIR
Directory for config files.

DEFAULT_V_LIBDIR
Directory for FIDOGATE's internal programs.

DEFAULT_V_BINDIR
Directory for user programs and scripts.

DEFAULT_V_LOGDIR
Directory for log files.

DEFAULT_V_VARDIR
Directory for areas.bbs, history.

DEFAULT_V_LOCKDIR
Directory for lock files.

DEFAULT_V_SPOOLDIR
Internal spool directory (temporary files).

DEFAULT_V_BTBASEDIR
BinkleyTerm-style outbound base directory. This is the base directory, not the actual zone outbound directory.

DEFAULT_V_INBOUND
BinkleyTerm-style inbound directory.

DEFAULT_V_PINBOUND
BinkleyTerm-style protected inbound directory.

DEFAULT_V_UUINBOUND
BinkleyTerm-style inbound directory for the recvuu script.

DEFAULT_V_FTPINBOUND
BinkleyTerm-style FTP inbound directory.

DEFAULT_V_ACL
Access control list for AI patches (not used for standard FIDOGATE distribution).

DEFAULT_V_ALIASES
Configuration file for aliases.

DEFAULT_V_AREAS
Configuration file for areas/newsgroups gateway.

DEFAULT_V_HOSTS
Configuration file for registered hosts.

DEFAULT_V_PASSWD
Configuration file for passwords.

DEFAULT_V_PACKING
Configuration file for ArcMail packer (ftnpack).

DEFAULT_V_ROUTING
Configuration file for NetMail/EchoMail routing (ftntoss, ftnroute).

DEFAULT_V_HISTORY
MSGID history file for dupe check.

DEFAULT_V_LOGFILE
Default log file.

DEFAULT_V_CHARSETMAP
Character set mapping table.

DEFAULT_F_NEWSETCDIR
INN directory: config files

DEFAULT_F_NEWSVARDIR
INN directory: active, history files.

DEFAULT_F_NEWSLIBDIR
INN directory: scripts.

DEFAULT_F_NEWSSPOOLDIR
INN directory: news spool.

DEFAULT_F_IFMAILDIR
Ifcico/ifmail directory.

DEFAULT_F_CONFIG_GATE
DEFAULT_F_CONFIG_MAIN
DEFAULT_F_CONFIG_FFX
FIDOGATE main configuration file fidogate.conf.

DEFAULT_F_SEQ_MAIL
DEFAULT_F_SEQ_NEWS
DEFAULT_F_SEQ_MSGID
DEFAULT_F_SEQ_PKT
DEFAULT_F_SEQ_SPLIT
DEFAULT_F_SEQ_FF
DEFAULT_F_SEQ_TOSS
DEFAULT_F_SEQ_PACK
DEFAULT_F_SEQ_TICK
Sequencer files.

DEFAULT_F_LOCK_HISTORY
Lock file for history access.

DEFAULT_F_OUTRFC_MAIL
DEFAULT_F_OUTRFC_NEWS
DEFAULT_F_OUTPKT
DEFAULT_F_OUTPKT_MAIL
DEFAULT_F_TOSS_TOSS
DEFAULT_F_TOSS_ROUTE
DEFAULT_F_TOSS_PACK
DEFAULT_F_TOSS_BAD
DEFAULT_F_OUTPKT_NEWS
Internal spool directories (temporary files). If these directories are different from the default ones, the commands for the install-dirs target of Makefile must be changed as well.

DEFAULT_F_TICK_HOLD = %B/tick
Outbound hold directory for TIC files.

DEFAULT_A_CONFIGDIR
DEFAULT_A_LIBDIR
DEFAULT_A_BINDIR
DEFAULT_A_LOGDIR
DEFAULT_A_VARDIR
DEFAULT_A_LOCKDIR
DEFAULT_A_SPOOLDIR
DEFAULT_A_BTBASEDIR
DEFAULT_A_INBOUND
DEFAULT_A_PINBOUND
DEFAULT_A_UUINBOUND
Abbreviations for configured directories.

PERL
Full path name of perl executable.

SENDMAIL_CF_DIR
Directory where the sendmail m4 configuration files are installed (/usr/lib/sendmail-cf on RedHat Linux systems).

INFODIR
Directory for installing info documentation files.

HTMLDIR
Directory for installing HTML documentation files.

HTMLLOGDIR
Directory for installing CGI files.

M4
m4 macro processor (for compiling sendmail cf files).

OWNER
Owner of FIDOGATE files.

GROUP
Group of FIDOGATE files.

PERM_PROG
Permissions for installing programs.

PERM_DATA
Permissions for installing data files.

PERM_SETUID
Permissions for installing setuid OWNER programs.

PERM_DIR
Permissions for installing directories.

CC
C compiler.

YACC
yacc or a clone like bison -y.

AR
ar monkey ... (@!#$%&... ouch!) ... librarian.

RANLIB
Library utitility, if needed.

DEBUG
Optimize or debugging flags for compiling.

INCLUDE
C include (-I) options.

CFLAGS
Flags for compiling FIDOGATE.

LFLAGS
Flags for linking FIDOGATE.

LIBS
Libraries for linking FIDOGATE, including the FIDOGATE library libfidogate.a.

INSTALL
Install program.

Set to .exe for MSDOS, OS2, Win32.

INSTALL_PROG
Install command for installing programs.

INSTALL_DATA
Install command for installing data files.

INSTALL_SETUID
Install command for installing setuid programs.

INSTALL_DIR
Install command for installing directories.

PREFIX
Extra prefix directory for make install.

LIB
Name of the FIDOGATE library.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 Compiling and Installing FIDOGATE

Compile the beast by entering
 
make depend
make

Alternatively an optimized version can be compiled with
 
make DEBUG=-O2

If everything works, you must create the necessary directories:
 
make install-dirs
Then install all FIDOGATE programs:
 
make install

Next you must create the configuration files in (default) /etc/fidogate. Have a look at the various configuration in directory examples/ and use them to build your own configuration.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.4 Integrating FIDOGATE and the Mail/News System

scripts/inn
Scripts for INN.

scripts/cnews
Scripts for CNews.

sendmail/cf
Sendmail V8 configuration files (m4) and example .mc files for FIDOGATE: Fido.DE domain gateway morannon, orodruin, point setup.

Much more concise instructions should be here!!! ;-)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 Testing the FIDOGATE Installation


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5.1 Tosser

...


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5.2 Gateway

...


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.6 Connecting to FIDONET

FIDOGATE does NOT include a FIDO mailer, so you have to transfer FIDO mail to and from the UNIX system by some other means.

If you want everything running on the UNIX system, you need a FIDO mailer for UNIX. Currently, this choice is limited to

I don't know what the current state of BinkleyTerm for Unix/Linux is, but ifcico and BinkD are working very well for me. See the FIDOGATE home page at http://www.fido.de/fidogate/ for links.

Another solution is a separate PC running DOS or OS/2 and BinkleyTerm as a mailer. The Fido.DE gateway currently comprises a LINUX PC for the gateway/tosser and Samba server, and an OS/2 PC running BinkleyTerm for the analog phone and ISDN lines. The BinkleyTerm outbound is kept on the LINUX server, so the OS/2 PC and the gateway have access to it.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Martin Junius on August, 26 2004 using texi2html