# FTN SOFT SETUP Manual v0.4.2.ua [08.09.2003] by Oleksandr Liutyi 2:463/811
# KOI8-U

> Ставимо собі Лінукс.
*ROOT*
~не ставимо ftn пакети що йдуть у дістрибутиві.
~mgetty має сенс ставити лише з ALT'ом 
~або якщо знаєте що в вашому дістрибутиві він компільований з DFIDO.

00> Створюємо корістувача ftnsysop

*ROOT* groupadd -g 811 ftn
*ROOT* adduser -u 811 -g ftn ftnsysop 
*ROOT* passwd ftnsysop

~811 можна замініті на будьякий інший вільний 
~також не обов'язково саме "ftnsysop"
~можно і не створювати користувача, а використати вже існуючого.

01> створюємо дерево каталогів у домівці користувача ftnsysop

mkdir /home/ftnsysop/ftn
mkdir /home/ftnsysop/ftn/bin
mkdir /home/ftnsysop/ftn/bin/scripts
mkdir /home/ftnsysop/ftn/etc
mkdir /home/ftnsysop/ftn/etc/golded
mkdir /home/ftnsysop/ftn/etc/hpt
mkdir /home/ftnsysop/ftn/etc/qico
mkdir /home/ftnsysop/ftn/include
mkdir /home/ftnsysop/ftn/include/fidoconf
mkdir /home/ftnsysop/ftn/include/smapi
mkdir /home/ftnsysop/ftn/lib
mkdir /home/ftnsysop/ftn/sbin
mkdir /home/ftnsysop/ftn/share
mkdir /home/ftnsysop/ftn/share/doc
mkdir /home/ftnsysop/ftn/share/info
mkdir /home/ftnsysop/ftn/share/man
mkdir /home/ftnsysop/ftn/src
mkdir /home/ftnsysop/ftn/src/hpt
mkdir /home/ftnsysop/ftn/src/qico
mkdir /home/ftnsysop/ftn/src/golded
mkdir /home/ftnsysop/ftn/src/mgetty
mkdir /home/ftnsysop/ftn/var
mkdir /home/ftnsysop/ftn/var/archive
mkdir /home/ftnsysop/ftn/var/files
mkdir /home/ftnsysop/ftn/var/flags
mkdir /home/ftnsysop/ftn/var/in
mkdir /home/ftnsysop/ftn/var/in.local
mkdir /home/ftnsysop/ftn/var/in.tmp
mkdir /home/ftnsysop/ftn/var/in.u
mkdir /home/ftnsysop/ftn/var/in.u/tmp
mkdir /home/ftnsysop/ftn/var/local
mkdir /home/ftnsysop/ftn/var/local/netmail
mkdir /home/ftnsysop/ftn/var/lock
mkdir /home/ftnsysop/ftn/var/log
mkdir /home/ftnsysop/ftn/var/log/announce
mkdir /home/ftnsysop/ftn/var/log/archive
mkdir /home/ftnsysop/ftn/var/log/dupes
mkdir /home/ftnsysop/ftn/var/nodelist
mkdir /home/ftnsysop/ftn/var/out
#-----Networks
mkdir /home/ftnsysop/ftn/var/neon
mkdir /home/ftnsysop/ftn/var/neon/echo
mkdir /home/ftnsysop/ftn/var/neon/fecho
mkdir /home/ftnsysop/ftn/var/fido
mkdir /home/ftnsysop/ftn/var/fido/echo
mkdir /home/ftnsysop/ftn/var/fido/fecho
mkdir /home/ftnsysop/ftn/var/undernet
mkdir /home/ftnsysop/ftn/var/undernet/echo
mkdir /home/ftnsysop/ftn/var/undernet/fecho
mkdir /home/ftnsysop/ftn/var/yonet
mkdir /home/ftnsysop/ftn/var/yonet/echo
mkdir /home/ftnsysop/ftn/var/yonet/fecho

02> копіюємо сирці в ~/ftn/src

cp -R hpt-1.2.4-release/* /home/ftnsysop/ftn/src/hpt
cp -R qico-0.49.10si/* /home/ftnsysop/ftn/src/qico
cp -R golded-12.05.2003/* /home/ftnsysop/ftn/src/golded

03> Compile HPT

~в /home/ftnsysop/ftn/src/hpt/huskymak.cfg
~змінити префікс
PREFIX=/home/ftnsysop/ftn

/home/ftnsysop/ftn/src/hpt
make -C /home/ftnsysop/ftn/src/hpt/smapi all install
make -C /home/ftnsysop/ftn/src/hpt/fidoconf all install
make -C /home/ftnsysop/ftn/src/hpt/hpt all install
make -C /home/ftnsysop/ftn/src/hpt/hptkill all install
make -C /home/ftnsysop/ftn/src/hpt/hptsqfix all install
make -C /home/ftnsysop/ftn/src/hpt/hpucode all install
make -C /home/ftnsysop/ftn/src/hpt/htick all install
make -C /home/ftnsysop/ftn/src/hpt/nltools all install
make -C /home/ftnsysop/ftn/src/hpt/sqpack all install
make -C /home/ftnsysop/ftn/src/hpt/bsopack all install

*ROOT* в файл /etc/ld.so.conf додати /home/ftnsysop/ftn/lib
*ROOT* запустити ldconfig

04> Compile Qico-si

/home/ftnsysop/ftn/src/qico/configure --prefix=/home/ftnsysop/ftn --exec-prefix=/home/ftnsysop/ftn --with-config=/home/ftnsysop/ftn/etc/qico/qico.cfg --with-tcp-speed=115200 --with-default-speed=38400 --with-shell=/bin/bash 
make -C /home/ftnsysop/ftn/src/qico
make -C /home/ftnsysop/ftn/src/qico install

05> Compile Golded

~персонализувати голдед можно перед компіляцією у файлі 
 /home/ftnsysop/ftn/src/golded/golded3/mygolded.h
~вибрати режим ncurses (з/без/глючний) можна у файлі 
 /home/ftnsysop/ftn/src/golded/GNUmakef.def
 CPPFLAGS+=-D__USE_NCURSES__ #-DBUGGY_NCURSES

make -C /home/ftnsysop/ftn/src/golded
strip /home/ftnsysop/ftn/src/golded/bin/*

~ скопіювати файли з /home/ftnsysop/ftn/src/golded/bin 
                   в /home/ftnsysop/ftn/bin/golded

06> Compile mgetty (-DFIDO)

*ROOT* потрібно для того щоб приймати модемні дзвінки
       як варіант можно поставіті мгетті від АЛЬТ линукса.
       або так:

*ROOT* rpm -ihv mgetty-1.1.28-alt3.i586.rpm

*ROOT* або спробувати замінити тількі сам бінарний файл /sbin/mgetty  

*ROOT* в /etc/inittab має бути щось на зразок:
S2:2345:respawn:/sbin/mgetty -i /etc/issue.ftn ttyS1 >>/var/log/mgetty.start

*ROOT* в файл /etc/issue.ftn занесіть привітання 
       для тих кто подзвонить терміналом. ttyS1 це com2, ttyS0 - com1.

*ROOT* примітка: Альтовий mgetty вікорістовує /var/lock/serial/

07> Створення розкладу прозвонок задопомогою cron'а

~ для тих кто звик редагувати в FAR'і або MC: 

export EDITOR=mcedit
crontab -e

~ приклад розкладу в examples/cron

08> налаштування xinetd для відповіді по ip

*ROOT* в /etc/services мають бути такі рядки:
tfido		60177/tcp			# Ifmail
tfido		60177/udp			# Ifmail
ifc		60179/tcp			# Ifmail
ifc		60179/udp			# Ifmail

*ROOT* в /etc/xinetd.d/ має бути файл ftn з таким записом у ньому:
# xinetd service qico-ifc
# Shamelessly stolen from RU.UNIX.FTN
# Original author Eugeny Davidov <2:5030/1900.3>
# Modified for ALTLinux by Sir Raorn <raorn@binec.ru>
service ifc
{
	disable		= no
	socket_type	= stream
	wait		= no
	protocol	= tcp
	user		= ftnsysop
	server		= /home/ftnsysop/ftn/sbin/qico 
	server_args	= qico -a **EMSI_INQC816
}

*ROOT* Також треба перевірити строку в /etc/xinetd.conf:

	only_from = 127.0.0.1 192.168.0.


*ROOT* /sbin/service xinetd restart


09> Зробити так щоб демон qico завантажувався при завантаженні системи

~ покласті файл ftn з наступним змістом у /etc/init.d

#! /bin/bash
#
# ftn          Start/Stop FTN services.
#
# chkconfig: 345 86 14
# description: FTN mailer daemon
# processname: qico
# config: /home/ftnsysop/ftn/etc/qico/qico.cfg

# Source function library.
. /etc/init.d/functions

LOCKFILE=/var/lock/subsys/qico
RETVAL=0

start()
{
	echo -n "Starting qico mailer: "
	daemon --user ftnsysop /home/ftnsysop/ftn/sbin/qico -d
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}

stop()
{
	action "Stopping qico mailer:" /home/ftnsysop/ftn/bin/qctl -q
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}

restart()
{
	stop
	start
}

reload()
{
	action "Reloading qico configuration:" /home/ftnsysop/ftn/bin/qctl -R
	RETVAL=$?
	return $RETVAL
} 

# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	reload)
		reload
		;;
	restart)
		restart
		;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
	status)
		status qico
		RETVAL=$?
		;;
	*)
		echo "Usage: ${0##*/} {start|stop|reload|restart|condstop|condrestart|status}"
		RETVAL=1
esac

exit $RETVAL



*ROOT* /sbin/chkconfig --levels 234 ftn on
*ROOT* /sbin/service ftn restart


10> налаштування logrotate для автоматічного пакування log файлів.

*ROOT* в /etc/cron.daily (або в /etc/cron.*) має бути такий скрипт :
#{/etc/cron.daily/logrotate}
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
#{end of file}

*ROOT* в /etc/logrotate.conf щось на зразок:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}
# system-specific logs may be also be configured here.

*ROOT* в /etc/logrotate.d має бути файл ftn з таким записом у ньому:
# QICO LOGFILES ROTATE
/home/ftnsysop/ftn/var/log/qico-master.log {
	weekly
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
	postrotate
		/sbin/service ftn reload
	endscript
}
/home/ftnsysop/ftn/var/log/qico.log {
	weekly
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
	postrotate
		/sbin/service ftn reload
	endscript
}
/home/ftnsysop/ftn/var/log/qico-history.log {
	monthly
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
	postrotate
		/sbin/service ftn reload
	endscript
}
/home/ftnsysop/ftn/var/log/qico-emsi.log {
	weekly
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
	postrotate
		/sbin/service ftn reload
	endscript
}
# HUSKY LOGFILES ROTATE
/home/ftnsysop/ftn/var/log/hpt.log {
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
}
/home/ftnsysop/ftn/var/log/htick.log {
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
}
#TTY12 LOGFILE
/home/ftnsysop/ftn/var/log/tty12 {
	weekly
	compress
	notifempty
	missingok
	create 660 ftnsysop ftn
}

11> Налаштування Statmaker'а

~ дивіться скрипт examples/home_ftnsysop_ftn_bin/scripts/ftn_stat

12> Налаштування FREQ процессора 

~ дивіться скрипт examples/home_ftnsysop_ftn_bin/scripts/ftn_freq_proc

13> Компілювання osastat
make -C /home/ftnsysop/ftn/src/osastat
strip /home/ftnsysop/ftn/src/osastat/osastat
cp /home/ftnsysop/ftn/src/osastat/osastat /home/ftnsysop/ftn/bin


SMALL FAQ ;-)

 A01> Як "дзвонити" по IP?
/home/ftnsysop/qico -cI 2:463/999 -i f999.n463.z2.fidonet.net

( можно замість f999.n463.z2.fidonet.net прямо вказати ip-адресу) 

 A02> Якось воно некоректно модем вікорістовує..
Перевірте шляхі до lock файлів (.. перекомпілюйте mgetty)

 A03> Воно не працює..
Якщо все встановлено як треба але не працює перевірте права доступу.
Зазвичай більшість помілок пов'язана с цим. 
