HOWTO : fidonet software for unix

[ index ] [ areafix ] [ binkd ] [ filefix ] [ ifmail ] [ inn ] [ mgetty ] [ sendmail ] [ together ] [ stat ] [ utilities ] [ download ]

filefix

Существуют различные версии filefix'ов : Здесь я опишу настройку первых двух из них.

filefix by Serg Oskin + ffix-plus by Alex Mansurov.

   Берем с ftp://oskin.macomnet.ru/pub/linux/fido/ дистрибутивы filefix-1.8.3.tar.gz и ffix-plus.tgz, раскручиваем filefix-1.8.3.tar.gz в /usr/src/filefix-1.8.3, запускаем make. Если все скомпилировалось нормально, то в /usr/local/fidonet/etc/filefix копируем файлы config, Areas(.dist), Users(.dist), help.txt, а в /usr/local/fidonet/bin/filefix файлы crc32, alt2koi8, koi82alt, fromdos, areaqueue, filefix. Если вы будете использовать filefix-plus by Alex Mansurov, то возьмите из его архива файлы config и filefix и замените ими аналогичные файлы в каталогах etc и bin.
Меняем для всех файлов пакета владельца на fido:fido, и начинаем править config (в основном просто корректируем пути) :
BinDir /usr/local/fidonet/bin/filefix
KoiToAlt /usr/local/fidonet/bin/filefix/koi82alt
AltToKoi /usr/local/fidonet/bin/filefix/alt2koi8
DosToUnix /usr/local/fidonet/bin/filefix/fromdos
Users /usr/local/fidonet/etc/filefix/Users
Areas /usr/local/fidonet/etc/filefix/Areas
IfConfig /usr/local/fidonet/etc/config
Queue /usr/local/fidonet/tmp/filefix/queue
LogFile /usr/local/fidonet/log/filefix.log
LockFile /usr/local/fidonet/tmp/filefix.lock
TicDir /usr/local/fidonet/tmp/filefix/tics
BadTic /usr/local/fidonet/tmp/filefix/bad
BadFile /usr/local/fidonet/tmp/filefix/bad
HelpFile /usr/local/fidonet/etc/filefix/help.txt
MailTo fido@domain.my
ANewsCommand /usr/local/news/bin/inews -h -S
ANewsgroups f99.notify
LastScan /usr/local/fidonet/tmp/filefix/filefix.scan

С config все.

Теперь описания файлэх и линков. Сохраните оригинальные файлы (Users.dist и Areas.dist) - вам пригодятся комментарии из них. В Areas оставьте первую секцию (default), остальные можно стереть, т.к. при тоссинге файлэх они сами создадутся (если для аплинка, с которого они пришли, в файле Users разрешен autocreate) :
Area default
Desc The new area
Group A
Path /var/spool/uucppublic
Exclude 'files.bbs' '.+\.desc'
Newfile /usr/local/fidonet/log/new_files.log
Mode 644
DupeCheck name

Путь /var/spool/uucppublic - тот же, что и указан в настройках ifmail'а как путь для freq's. В нем будут создаваться подкаталоги с файлэхами, типа /var/spool/uucppublic/NODEDIFF, и т.д. Не прописывайте Mode 444, filefix должен иметь права r/w на файлы в файлэхах. Если вы выписываете r/o файлэхи (NODEDIFF, R50ROUTE, etc.), то для них можно прописать ReadOnly 1, во избежание ;).
Правим конфиг Users :
2:5058/500  passwd UpLink  * +A
2:5058/99.1  passwd2 Home_Point  * +C +!


Переходим в /usr/local/fidonet/bin/filefix, правим сам filefix - путь к perl'у (/usr/bin/perl или /usr/local/bin/perl), и путь к конфигу :
$ConfigFile = "/usr/local/fidonet/etc/filefix/config";

Файлэхи обрабатываются в два прохода.
1. Для тоссинга файлэх запускается filefix -t (от имени пользователя fido), при этом файлэхи в inbound.pro обрабатываются и файлы переносятся в каталог /var/spool/uucppublic/ИМЯ_ФЭХИ/, а описания файлов - в файлы с расширением .desc.
2. Сразу после тоссинга можно запустить filefix -s, при этом те файлы, у которых есть "файлы-спутники" с расширением .desc раскладываются на даунлинков (если они есть), и их описания перемещаются в files.bbs.
Анонсы о новых файлэхах и файлах в них постятся в заданную эху (f99.notify)

Если вы раздаете файлэхи дальше, то вашим даунлинкам понадобится управлять подпиской через робота filefix. Для этого редактируем /etc/aliases (если вы используете sendmail версии 8.10.* и выше, то - /etc/mail/aliases), прописывая (в одну строчку) :
filefix:"|/usr/local/fidonet/bin/filefix/areaqueue /usr/local/fidonet/tmp/filefix/queue", fido
Можете прописать дополнительные алиасы для робота :
allfix: filefix
Здесь filefix (allfix) - имя, на которое будут адресовать письма ваши даунлинки, areaqueue - маленькая програмка, цель которой - положить полученное письмо в каталог /usr/local/fidonet/tmp/filefix/queue, а ", fido" - это если вы хотите читать, что пишут вашему роботу ;)
Не забывайте после изменения aliases запускать newaliases.
areaqueue у меня принадлежит пользователю fido:fido с правами 6555:
-r-sr-sr-x  1 fido  fido   8192  1 ноя 16:43 areaqueue
Для проверки работоспособности areaqueue пишем письмо на имя filefix, например :
$ mail filefix
Subject: test
test
.
EOT

Если в /usr/local/fidonet/tmp/filefix/queue у вас появился файлик с этим содержимым - значит areaqueue работает. Если же в /var/log/maillog появляются сообщения от sendmail'а с диагностикой типа : "DSN: unknown mailer error 126, DSN: unknown mailer error 2" - значит вы сделали что-то не так.

Для тестирования можно использовать следующую схему : залогинимся как пользователь fido (su fido ;) - это позволит, во-первых запускать filefix в "родном" окружении, во-вторых проверить корректность установленных прав/владельцев на конфиги и каталоги. Пропишем пробного пользователя в Users (обратите внимание, чтобы в Имени_Фамилии пользователя не было пробелов), например :
2:5058/99.2  PASSWORD  Test_User  *
А в /usr/local/fidonet/tmp/filefix/queue создадим файлик с именем типа 9911939901337 и следующим содержимым :
To: filefix <filefix@f99.n5058.z2.fidonet.org>
From: Test_User <Test_User@p2.f99.n5058.z2.fidonet.org>
Subject: PASSWORD

%HELP
%LIST

Здесь в строчке с To: пишем имя робота и ваш адрес, в строчках From: и Subject: - адрес и пароль того фиктивного пойнта, а после пустой строчки - команды (%HELP, %LIST, +area, etc.). Запустив filefix -m, смотрим filefix.log. Если там строчки вида :
Nov  31 23:28:08 filefix(mgr)[28949] Read config ok.
Nov  31 23:28:09 filefix(mgr)[28949] Read Users Ok.
Nov  31 23:28:09 filefix(mgr)[28949] Read Areas Ok.
Nov  31 23:28:09 filefix(mgr)[28949] Reply to 2:5058/99.2...
Nov  31 23:28:09 filefix(mgr)[28949] Processing %HELP...
Nov  31 23:28:09 filefix(mgr)[28949] Processing %LIST...

а на этого пойнта отложилось письмо с help'ом и списком файлэх - то все в порядке ;)
Если вы используете filefix-plus, то при пробных запусках лучше закомментарить строчки
#open (STDERR, ">>/dev/null");
#open (STDOUT, ">>/dev/null");

тогда вам будет видна диагностика filefix'а и perl'а в случае ошибок.
Если выдаются ошибки типа
Can't locate /usr/share/perl/errno.ph in @INC (did you run h2ph?) (@INC contains: /usr/libdata/perl/5.00503/mach /usr/libdata/perl/5.00503 /usr/local/lib/perl5/site_perl/5.005/i386-freebsd /usr/local/lib/perl5/site_perl/5.005 .) at ./filefix line 117.
то попробуйте последовать его совету и запустить h2ph. Прочитайте man h2ph, перейдите в /usr/include и запустите h2ph -r -l -d/usr/share/perl. (для FreeBSD 3.3)
Запускать filefix можно в различных вариантах : можно просто регулярно по cron'у, можно используя более "интеллектуальные" схемы - с использованием флагов, скриптов типа tossd, etc. Более подробно об этом рассказано в разделе совместная работа.

gtic

Берем последнюю версию с ftp://ftp.cracksoft.kiev.ua/pub/linux/gtic/, например gtic-1.3b.tar.gz, распаковываем, начинаем подготовку к компиляции.
Редактируем CONFIG :
CONFIG = "/usr/local/fidonet/etc/filefix/config"
CONFIGDIR = "/usr/local/fidonet/etc/filefix"
BINDIR = "/usr/local/fidonet/bin/filefix"
OWNER = fido
GROUP = fido
OPTS = -DSECURE_CONFIG

Компилируем и устанавливаем : make clean ; make all ; make install
Если при make install выскочит два раза сообщение "chown: root: illegal group name" - не обращайте внимания.
В результате у вас проинсталлируются файлы :
$ ls -la /usr/local/fidonet/etc/filefix
total 16
drwxr-xr-x 3 fido fido 512 15 фев 11:33 .
drwxr-xr-x 4 fido fido 512 17 ноя 15:14 ..
-rw-r--r-- 1 fido fido 548 15 фев 11:33 areagroups
-rw-r--r-- 1 fido fido 384 15 фев 11:33 areagroups.help
-rw-r--r-- 1 fido fido 1396 15 фев 11:33 areas
-rw-r--r-- 1 fido fido 913 15 фев 11:33 areas.help
-rw-r--r-- 1 fido fido 68 15 фев 11:33 autohatch.conf
-rw-r--r-- 1 fido fido 3071 15 фев 11:33 config
-rw-r--r-- 1 fido fido 483 15 фев 11:33 domains
-rw-r--r-- 1 fido fido 764 15 фев 11:33 help
-rw------- 1 fido fido 785 15 фев 11:33 users
-rw-r--r-- 1 fido fido 450 15 фев 11:33 users.help
$ ls -la /usr/local/fidonet/bin/filefix
total 278
drwxr-xr-x 3 fido fido 512 15 фев 11:36 .
drwxr-xr-x 5 fido fido 512 15 фев 11:36 ..
---s--x--- 1 fido fido 263052 15 фев 11:36 gtic
-rwxr-xr-x 1 root fido 106 15 фев 11:36 gtic.announce
-rwxr-xr-x 1 root fido 997 15 фев 11:36 gtic.autohatch
-rwxr-xr-x 1 root fido 713 15 фев 11:36 gtic.create_area
Обратите внимание на владельца каталогов etc/filefix, bin/filefix и файлов в них.

Переходим в /usr/local/fidonet/etc/filefix, начинаем настройку.
Редактируем config :
address 2:5058/99
inbound /usr/local/fidonet/inbound.pro
domains_file /usr/local/fidonet/etc/filefix/domains
outbound_mode 640
users_file /usr/local/fidonet/etc/filefix/users
areas_file /usr/local/fidonet/etc/filefix/areas
areagroups_config /usr/local/fidonet/etc/filefix/areagroups
log_file /usr/local/fidonet/log/gtic.log
lock_file /usr/local/fidonet/tmp/gtic.lck
default_newfile /usr/local/fidonet/tmp/gtic.newfile
bad_dir /usr/local/fidonet/tmp/filefix/bad
bad_dir_mode 755
help_file /usr/local/fidonet/etc/filefix/help
announce_exec /usr/local/fidonet/bin/filefix/gtic.announce
newarea_exec /usr/local/fidonet/bin/filefix/gtic.create_area
response_exec /usr/sbin/sendmail -f$msg_from root
toss_badtic yes
# используйте здесь имя, отличное от filefix@ или allfix@
msg_from filefix-response@f99.n5058.z2.fidonet.org
make_hardlinks yes
add_point_seenby yes
newarea_group default
basepath /var/spool/uucppublic
msg_to fido

Редактируем areagroups, в простейшем случае :
default:options:
*:options:

Редактируем areas, прописывая существующие файлэхи (если они у вас есть) :
Area XORNBOOK
Description Orenburg : books
Group default
Path /var/spool/uucppublic/XORNBOOK
Links 2:5058/500 2:5058/99.1 !2:5058/99.2
Mode 644

Area NODEDIFF
Description FidoNet nodediffs
Group default
Path /var/spool/uucppublic/NODEDIFF
Links 2:5020/204.1000 !2:5058/500 !2:5058/99.1
Mode 644
Options readonly

Area 957PHONE
Description 2:5020/957 : Phone
Group default
Path /var/spool/uucppublic/957PHONE
Links 2:5020/0 2:5058/500
Mode 644
Options passthru

Обратите внимание : даже для passthru файлэх создается каталог (пустой ;)

Редактирем domains :
2 /usr/local/fidonet/outbound
Редактируем users :
# Этот линк имеет право автокриэйта фэх у меня, и на него же
# автоматом прокидываются все фэхи, создавшиеся от других линков
2:5058/500 PASSWORD * autocreate,auto_rw
# На пойнта фэхи кладутся на холд
2:5058/99.1 HOME * hold
# Аплинки
2:5020/0 PWD1 * autocreate
2:5030/0 PWD2 * autocreate
2:2/0 PWD3 * autocreate,auto_rw,hold

С конфигами все.

Переходим в /usr/local/fidonet/bin/filefix
Редактируем gtic.announce. Выберите вид аннонса - мылом и (или) в эху :
#!/bin/sh
#sendmail -f$msg_from root
/usr/local/news/bin/inews -f FileFix-Announce@f49.n5058.z2.fidonet.org -n f99.notify -t "New file announce"


Редактируем gtic.create_area :
Т.к. у меня от предыдущего filefix'а файлэхи создавались в каталогах, имена которых были в UPPER-case (типа /var/spool/uucppublic/NODEDIFF), то я строчку lowercase_name=`echo $1|tr A-Z a-z` исправил на lowercase_name=`echo $1|tr a-z A-Z`. По умолчанию, gtic извещает о создании новой фэхи сисопа нетмейлом. Я исправил это на анонс в эху, заменив строчку echo|mail -s "fileecho $1 autocreated by gtic" $SYSOP на printf "Filearea $1 created at 2:5058/99 by $2\n\n--- gtic 1.3b\n" | /usr/local/news/bin/inews -f FileFix-Announce@f99.n5058.z2.fidonet.org -n f99.notify -t "New filearea created"
(в одну строчку).

Возможности autohatch я не использовал, поэтому gtic.autohatch не трогал.

Для обработки файлэх запускайте gtic -t. Для получения справки по остальным командам (типа hatch) запустите gtic без параметров.

Для обработки запросов линков к gtic корректируем /etc/aliases (/etc/mail/aliases) :
allfix: filefix
filefix: "|/usr/local/fidonet/bin/filefix/gtic -m", fido

Не забывайте запускать newaliases после редактирования.

О совместной работе gtic с другими программами рассказано в разделе совместная работа.
This is a part of "HOWTO : fidonet software for unix", http://howto.id.ru
Original of this document is located at http://howto.id.ru/filefix.html
Copyright (c) Vitaly Kuharev, 2:5058/49@fidonet, 1999-2001
Last updated : March, 09, 2001