Linux-QEcho/QDed-FIDO-Point FAQ v0.3
by Nikita Nalutin
(falcon@chat.ru, 2:5020/1354.55, http://www.orc.ru/~nickita/fidofaq )


INDEX


Какие программы, необходимые для работы с FIDO под Linux, рассмотрены здесь?   

В данном FAQ приводится описание настройки и установки варианта: QEcho beta 1.4 snap-981227 "Emma" (редактор, тоссер, сканер) и ifmail 2.14.os-p2 (мэйлер)

Автором QEcho является Nikolay Shadrin, (2:5020/609), Существует также пропатченные версии QEcho - alpha 3.57plX by Vad Adamluk (2:478/13 AKA 2:478/20) e-mail: dmonk@kern.ru сейчас ветку beta 1.x развивает Yura Changea (2:469/75.89), e-mail: yura@linux.asm.md

Original Version FTP: ftp://ftp.mgdtd.ac.ru/pub/QEcho
Patched Alpha Version FTP: ftp://ftp.kern.ru/pub/QEcho
Patched Beta Version WWW: http://www.qecho.qded.da.ru

Ifcico входит в пакет программ Ifmail, автор - Eugene Crosser (2:5020/230), e-mail: crosser@average.org

FTP site: ftp://ftp.average.org/pub/ifmail

К оглавлению


Есть ли какая-нибудь альтернатива QEcho и ifmail?   

Есть:

  1. Можно настроить пакет ifmail и использовать его как гейт FIDO<=>Internet, а для обработки почты использовать sendmail, для обработки эх - inn, а читать все например с помощью pine и Knews. Описание этого варианта можно найти в эхе RU.LINUX - FIDO-FAQ (c) Andrey Joukov (2:5020/20.1313) jav@ufg.ru
    Также существует эха IFMAIL, где можно найти дополнительную информацию о программе.
  2. ifmail и Feddy - мэйлер/гейт и тоссер/редактор
    Этот вариант подробно рассмотрен в Linux-FIDO-Point FAQ by Alex Bogdanov.
  3. FIDOGATE и ifcico - связка гейт-мэйлер.
    В состав FIDOGATE входят Fido-Internet Gateway, Fido FTN-FTN Gateway, Fido Mail Processor, Fido File Processor, Fido Areafix/Filefix
    автор - Martin Junius
    e-mail: mj@fido.de
    Primary-site ftp://ftp.fido.de/pub/fidogate
    Для версии 4.1.6 существует патч который делает перекодировку Alt-Koi прямо в FIDOGATE.
    Автор - Alexander Pevzner (2:5020/20.24)
    e-mail: pzz@pzz.msk.ru
  4. BinkleyTerm вместо ifcico в любой из вышеперечисленных конфигураций
    Primary FTP: ftp://sunsite.unc.edu/pub/Linux/system/fido
    Последняя версия - 3.02

К оглавлению


Какие самые последние версии ifmail и QEcho?   

ifmail - 2.14
Альфа-версия ifcico 3.0 - pl 4.0
Патч Сергея Оськина - 2.14.os-p7
QEcho - стабилный - beta 1.3, снапшот - от 27.12.98 aka beta 1.4 "Emma".
Я рекомендую именно снапшот, и брать только снапшоты - в них исправлено гораздо больше багов.

К оглавлению


Где найти этот документ в Internet?   

Этот документ (а возможно и более новая версия) доступен в Интернете на моей страничке http://www.orc.ru/~nickita/fidofaq/.

К оглавлению


Как связаться с автором?   

В FIDO: 2:5020/1354.55, e-mail: falcon@chat.ru, nickita@orc.ru, ICQ UIN: 7754074 Также иногда можно меня найти на IRC: Undernet, каналы #rusunix или #deol, nickname - _Falcon_. Если вы хотите поместить данный FAQ на WWW пожалуйста сообщите об этом мне, для включения адреса этого WWW в следующий вариант Linux-QEcho/QDed-FIDO-Point-FAQ.

К оглавлению


Я считаю, что приведенный вариант установки далеко не лучший...   

Возможно, но он работает. ;) Хотя любые замечания/дополнения/исправления принимаются. Сам я QEcho больше не использую, и планирую написать FAQ, посвященный настройке ifmail+inn+qmail, который был бы более user-friendly, чем уже существующие и освещал бы ряд проблем, с которыми сталкиваются начинающие фидошники-линуксоиды.

К оглавлению


Hа что надо обратить внимание при сборке программ?   

Обязательно перед компиляцией прочтите прилагающуюся к программам документацию/FAQ/readme. В принципе, документацию надо читать перед установкой любой программы.

При компиляции ifmail следует обратить внимание на следующие вещи:

  1. Перед сборкой следует поправить файл CONFIG на предмет изменения OWNER и GROUP, а также директорий с конфигами.
  2. На всякий случай посмотрите восьмой вопрос этого FAQ
  3. Если при сборке ifmail вы получаете сообщение об ошибке:
    " trap.c: In function 'trap': trap.c: parameter 'context' has incomplete type",
    то необходимо добавить опцию -DPRE_21_LINUX в файл ifmail-2.9/CONFIG, в разделе определения опций сборки для Linux:
    "# Linux:
    OPTC = -DHAS_STATFS -DPRE_21_LINUX ...."
    в ifmail 2.10 и старше такой ошибки не замечено, и не нужно ничего исправлять в makefile.
  4. Если компиляция вылетает с ошибкой, что не найден ndbm.h, необходимо установить пакет libgdbm (В RedHat это gdbm-*.i386.rpm и gdbm-devel-*.i386.rpm)
  5. Перед сборкой ifmail (ifcico) можно установить patch для ifmail 2.14 by Serg Oskin (2:5020/20) e-mail: serg@oskin.msk.ru Применение данного патча добавляет новые возможности в стандартную версию ifmail, например поддержку протокола Hydra и вывод скорости коннекта в логи. Hайти этот патч можно по адресу: ftp://oskin.macomnet.ru/pub/linux/fido/

При компиляции QEcho обратите внимание на следующее:

  1. Прочитайте файл changes.new и ChangeLog, если у вас стояла более старая версия QEcho ОБЯЗАТЕЛЬНО сохраните конфигурацию (директории /etc/qecho и $HOME/.qded)
  2. В QEcho-snap-981227 отсутствует файл qecho-install, который можно взять из предыдущих снапов. или положить все руками в /usr/bin, /etc/qecho и $HOME/.qded
  3. Посмотрите тринадцатый вопрос этого FAQ

Вся конфигурация Тестировалось на RedHat Linux 4.2 (правда он уже не похож на RedHat, но это ничего не меняет). Kernel 2.0.30-2.0.35.

К оглавлению


Как проинсталлировать программы?   

Если вы читали документацию, то этого вопроса не возникнет ;) Для инсталляции достаточно написать make install. Бинарники ifmail по умолчанию ставятся в /usr/lib/ifmail, конфиги - в /etc/ifmail. Бинарники QEcho - в /usr/bin, конфиги - в /etc/qecho и в $HOME/.qded
Инсталляцию необходимо производить от root, чтобы не было проблем с доступом к некоторым директориям

У меня все служебные файлы установлены в /var/spool/fido, эта директория имеет следующую структуру:

К оглавлению


Как быть с файлами конфигурации программ?   

По умолчанию конфигурация для QEcho помещается в директорию /etc/qecho. Файл qeconfig, входящий в состав QEcho beta 1.0plX и старше можно нормально отредактировать под свои установки. Файл qeconfig, входящий в состав QEcho alpha 3.XplX и более ранних версий неработоспособен. Поищите в этом случае в директории misc архива QEcho файл qeconfig.xDM, а лучше скачайте себе QEcho beta 1.4 (snap-981227) В домашней директории владельца QEcho будет создана директория .qded в которой находятся файлы темплейтов и имен пользователей для разных зон. Эти файлы необходимо подредактировать, чтобы они соответствовали вашей конфигурации. (примеры этих файлов приведены ниже)

К оглавлению


Как насчет примеров файлов конфигурации?   

Here they are ;)

/etc/ifmail/config - файл конфигурации ifmail

=== Cut here ===

# мой адрес и пароль в FIDO
address         2:5020/1354.55@fidonet

password        2:5020/1354@fidonet passw

logfile         /var/spool/fido/log/iflog
debugfile       /var/spool/fido/log/ifdebug
verbose         0
inbound         /var/spool/fido/inbound
listinbound     /var/spool/fido/inbound
protinbound     /var/spool/fido/inbound
outbound        /var/spool/fido/fidonet
outbound        /var/spool/fido/chaosnet
public          /var/spool/uucppublic
# Нодлисты для соотв. регионов/зон
nodelist        /var/spool/fido/nodelist/nodelist.000 2:5020/0@fidonet
nodelist        pnt5020.ndl 2:5020/0@fidonet
ModemPort       ttyS3:L38400
ModemReset      AT&F1L0M0\r
ModemDial       ATDP\T\r
ModemHangup     ATH0\r
ModemOK         OK
ModemConnect    CONNECT
ModemError      BUSY
ModemError      NO\sCARRIER
ModemError      NO\sDIAL
ModemError      RING\r
ModemError      ERROR
PhoneTrans	7-095-	/
TimeoutReset    3
TimeoutConnect  70
unzip		/usr/bin/unzip -ojq $F
unarj		/usr/bin/unarj e $F
unarc		/usr/bin/unpack $F
unzoo		/usr/bin/zoo -extract $F
packer		/usr/bin/zip $F $P

# Включите/выключите любые протоколы. Janus еще не реализован, Hydra есть в
# патче by ifmail-2.14.os-p2 и старше Сергея Оськина
options		NoHydra Zmodem NoZedZap NoJanus NoTcp
# когда звонить боссу в Фидо (00:00-12:00)
options		( (!time Any0015-1145) & address 2:5020/1354) Nocall
Name            Falcon
Location        Moscow/Russia
SysOp           Nickita Nalutin
Phone           7-095-Pri-vate
Speed           9600
Flags           XA,MO

=== Cut here ===

/etc/qecho/qeconfig - файл параметров QEcho

=== Cut here ===

# main configuration file

# Адреса
Address		2:5020/1354.55@fidonet

AllowedUser	root

# Тирлайны и ориджины для каждого адреса.
Tearline	QDed %s/Linux

Origin		Communication breakdown. Is always the same...

Template	template

AutoSkip	[ skipped ]

Crosspost	* Crossposted in
CarbonHeader	* CarbonCopy to:
StartCut	>===== Start cut [%s] =====<
EndCut		>=====  End cut  [%s] =====<
OpenPIPE	>===== Open PIPE  [mount@here.net> %s] =====<
ClosePIPE	>===== Close PIPE [mount@here.net> %s] =====<

KillRe		Yes

QuoteTearline	No
QuoteOrigin	No

DoNotCreate	BAD.

# Аплинки и роутинг для боссов
Link            2:5020/1354@fidonet
Password        passw
AutoCreate      2:* 2:5020/1354.55		* 2:5020/1354
AreaFixing      Off
Flavour         Normal

RouteVia	2:5020/1354@fidonet
RouteFor	1: 2: 3: 4: 5: 6: 7:

MaxPacketSize	800000

Inbound		/var/spool/fido/inbound
Outbound	/var/spool/fido/outbound
Temp		/var/spool/fido/inbound.tmp
TempOutbound	/var/spool/fido/outbound.tmp
Flags		/var/spool/fido/flags
Unzip		/usr/bin/unzip
Zip		/usr/bin/zip
MsgBase		/var/spool/fido/msgbase
AreaList	/etc/qecho/AreaList
LinkInfo	/etc/qecho/LinkInfo
AreaFixHelp	/etc/qecho/areafix.hlp
AreaFixReject	/etc/qecho/areafix.rej
AreaFixList	/etc/qecho/areafix.lst
AreaFixMSize	16384
#Routing	/etc/qecho/Routing
SaveBackup	/var/spool/fido/backup
ExpireDays	7
MaxUnlinkedDays	4
LogFile		/var/spool/fido/log/qecho.log
DaemonSleep	10
DaemonLog	/var/spool/fido/log/dlog
TempBase	/var/spool/fido/tmp
ZoneExtensions	No
MessageTracking No
TrackingLog	/var/spool/fido/track
ZonedKludges	No
AlwaysIntl	Yes
BadMailArea	BADMAIL
TransitNetmail	NETMAIL.TRANSIT
SeparateBundles	Yes
KillSent	Yes

UseSysLog	No
StrictOrigin	No
BadPackets	/var/spool/fido/badpkt

DupeChecking	No
DupeBase	/var/spool/fido/dupes
DupeRecords	4096
DupeArea	BADMAIL

# Нодлисты
Nodelist	/var/spool/fido/nodelist/nodelist.000
NodeOrig	2:

Nodelist	/var/spool/fido/nodelist/pnt5020.ndl
NodeOrig	2:5020

NoSearchFor	AreaFix
NoSearchFor	AllFix
PackNetmail Yes
MaxBundleSize 200000

=== Cut here ===

Большинство параметров аналогичны параметрам в файле /etc/ifmail/config Их описание есть в документации по QEcho.
Для работы необходимо откомпилировать нодлисты для создания своего внутреннего индекса с использованием программ ifindex и qecho index. Без компиляции нодлиста программы работать не будут!

К оглавлению


Hа что еще следует обратить при работе?   

Перед запуском программ следует еще раз проверить:

  1. Права доступа к файлам и директориям используемым ifcico и qded/qecho.
  2. Есть ли /usr/lib/ifmail и /usr/bin в вашей переменной окружения PATH
  3. При возникновении проблем с протоколом Hydra можно вернуться к варианту Hydra для ifmail-2.10.os - убрать из файла CONFIG, который находится в дистрибутиве ifmail-2.14.os строку -DBI_HYDRA и прописать вместо нее -DHAS_SELECT. Спасибо Сергею Оськину за эту информацию.
  4. Команда tail -f /var/spool/fido/log/iflog запущенная в другом окне/на другой консоли позволит вам посмотреть, что сейчас происходит на линии

К оглавлению


Как все это запускать?   

Сейчас скажу ;)
/usr/bin/qded - вызов редактора сообщений
/usr/bin/qecho scan - export new mail/news
/usr/bin/qecho toss - import new mail/news
/usr/lib/ifmail/ifpoll - poll boss
Вот вариант поллинга босса, который использую я (файл ifpoll):

=== Cut Here ===

#!/bin/sh
# ver 0.7
# i start this shell script every day by crond, but you can
# start it also by hand :) start it as the owner of ifcico.
# rasca, berlin 1993 (Rasca Gmelch, 2:2410/305.4)
#

# where "ifcico" and "ifpack" reside
FIDOPATH=/usr/lib/ifmail

# logfile of ifcico
IFLOG=/var/spool/fido/log

# owner of "ifcico"
IFCICO_OWNER=root

# sysop of fido stuff
IFCICO_SYSOP=root

# how often should i try to call NODE?
MaxTry=100

# delay between outgoing calls in seconds
DELAY=121

# where to log processing - file or tty/console
INFO_TTY=/dev/tty

# Адрес вашего босса
BOSS=f1354.n5020.z2

clear

echo "`date \"+%b %d %T\"` ifpoll[$$]: starting" >> $INFO_TTY


# remember me, not to run as root..
#
if [ `whoami` != "$IFCICO_OWNER" ]; then
        echo "*** run $0 as the owner of ifcico ***"
        echo "`date \"+%b %d %T\"` ifpoll[$$]: wrong uid (rc 2)" >> $INFO_TTY
        exit 2
fi

# let's pack the fido stuff..
#
#
        echo "`date \"+%b %d %T\"` ifpoll[$$]: Exporting new mail & news.. " >> $INFO_TTY
        qecho scan
#
        $FIDOPATH/ifpack

#
#---
#
# loop until ifcico could connect the node or MaxTry is encountered
#
i=1; errlv=1
while let 'i <= MaxTry' && let 'errlv != 0'
do
        echo -n "`date \"+%b %d %T\"` ifpoll[$$]: $i. try " >> $INFO_TTY
        #
        # start ifcico in master mode ..
        #
        $FIDOPATH/ifcico $BOSS
        errlv=$?
        if [ $errlv != "0" ]; then
                echo "failed - RC=(rc $errlv)" >> $INFO_TTY
                if [ $i != $MaxTry ]; then
                        sleep $DELAY
                fi
                let i=i+1
        else
                echo "ok :)" >> $INFO_TTY
        fi
done

# if the poll was fine, unpacking..
#
if [ $errlv = "0" ]; then
        echo "`date \"+%b %d %T\"` ifpoll[$$]: Importing new mail & news.. " >> $INFO_TTY
#
#
#     Сюда можно вставить вызов rarunpack.pl - см. ниже.
        qecho toss
        qecho link
#
        echo "`date \"+%b %d %T\"` ifpoll[$$]: tic processing.. " >> $INFO_TTY
        $FIDOPATH/tic/process_tics.pl
        echo "All done !" >> $INFO_TTY
        # add here some additional lines for processing tic files or
        # incoming file-lists or simular..
fi
        #Now run futility to leave only 400 msg in news
#       $FIDOPATH/futility tool "+delete" "keep+400"

echo "`date \"+%b %d %T\"` ifpoll[$$]: finished (rc $errlv)" >> $INFO_TTY

# return the errorlevel of ifcico
exit $errlv

=== Cut Here ===

BTW Этот пример - далеко не самый лучший! Если вы написали более удобный скрипт для поллинга, пожалуйста, пришлите его на 2:5020/1354.55 или falcon@chat.ru

К оглавлению


Как работать с файлэхами?   

Я пользуюсь LT aka Linux Tic Processor. Он поставляется вместе с ifmail и лежит в директории misc/contrib/tic.

Перед установкой LT прочитайте документацию. Я ставил его так - *.pl и *.pli - в диркекторию /usr/lib/ifmail/tic. Конфигурацию - в /etc/tic. Вам нужно поправить определение переменной $ConfigFile, указывающий на файл Config с его полным путем - в моем случа переменная будет иметь значение "/etc/tic/Config"

Пример файлов конфигурации, которые надо положить в /etc/tic находится в файле tic_config.tar.gz После распаковки и редактирования параметров под свой адрес необходимо запустить утилиту makeconfig.pl, лежащую в /usr/lib/ifmail/tic. Вызов разгребалки файлэх осуществляется из скрипта ifpoll, приведенного выше.

К оглавлению


ifcico звонит не тогда, когда нужно   

Если вы запускаете ifcico с явным указанием адреса или из скрипта ifpoll, временные ограничения из файла /etc/ifmail/config игнорируются. Я предпочитаю вставлять вызов ifpoll в /etc/crontab, например так: 20 00,03,06,07,11 * * * root /usr/lib/ifmail/ifpoll

К оглавлению


Мой босс пакует пакеты с помощью RAR. Как с ними быть, надоело распаковывать руками?   

Я использую для этого скриптик на перле, вызов которого можно вставить в ifpoll перед qecho toss. Скрипт написан совсем не оптимальным образом за две минуты, но он работает.

=== Cut Here ===

#!/usr/bin/perl
chdir("/var/spool/fido/inbound");
opendir(INB,".");

foreach (readdir(INB)) {
if ($_!="*.mo*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

foreach (readdir(INB)) {
if ($_!="*.tu*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

foreach (readdir(INB)) {
if ($_!="*.we*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

foreach (readdir(INB)) {
if ($_!="*.th*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

foreach (readdir(INB)) {
if ($_!="*.fr*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

foreach (readdir(INB)) {
if ($_!="*.sa*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

foreach (readdir(INB)) {
if ($_!="*.su*") {
 system("unrar x $_");
 rename($_,"/var/spool/fido/backup/$_");
}
}

closedir(INB);

=== Cut Here ===

К оглавлению


В QDed при запуске в rxvt или xterm часть букв печатается на    белом фоне

Это связано с не совсем верной обработкой цветов в rxvt. В принципе я отослал Yura Changea патч для Qecho-snap-981227, но я не знаю, когда он будет включен в следующий snap и будет ли включен вообще, поэтому привожу патч в файле qecho_xterm_patch.gz

К оглавлению


Я все сделал так как написано, но что-то не работает   

Еще раз проверьте соответствие вашей конфигурации той, что описана в FAQ, проверьте, указали ли вы свои пароли (мои, по понятной причине, я заменил словом passw), почитайте документацию к программам ifmail и QEcho, напишите письмо в RU.LINUX. Также полезно проверить следующее:

  1. А настроен ли вообще этот последовательный порт для работы в Linux? Проверить это можно запустив любую терминалку (minicom,seyon). Если из этой терминалки модем не доступен - можно проверить, правильно ли указаны параметры модема или порта. Настроить порт можно командой setserial.
  2. Если в minicom модем работает нормально следует обратить внимание на логи. Если использовался приведенный в этом FAQ вариант установки - то это файлы iflog и ifdebug (каталог /var/spool/fido/log/). (последний файл будет создан только в том случае, если в файле конфигурации ifmail значение параметра verbose не нулевое.

К оглавлению


Благодарности   

К оглавлению


With Best Regards, Nikita "Falcon" Nalutin

E-mail: falcon@chat.ru, nickita@orc.ru
Homepage: http://www.orc.ru/~nickita/homepage
FIDO: 2:5020/1354.55