HOWTO : fidonet software for unix
[
index ]
Часть четвертая, программы
filefix
Существуют различные версии
filefix'ов :
- filefix, Serg Oskin,
oskin@macomnet.ru, 2:5020/20@fidonet, URL : ftp://oskin.macomnet.ru/pub/linux/fido/
- gtic, Yuri Kuzmenko,
yuri@cracksoft.kiev.ua, 2:463/257@fidonet, URL : ftp://ftp.cracksoft.kiev.ua/pub/linux/gtic/
- tmafix, Maxim Timofeyev,
tma@tma.spb.ru, 2:5030/763@fidonet.org,
URL : ftp://tma.spb.ru/pub/unix/fido/ifmail/;
- LT (The Linux Tic Processor), Cees de
Groot, de_groot@decus.decus.de, SRC :
ifmail-2.14/misc/contrib/tic/;
- u-tic, Yaroslav Tikhiy,
2:5020/118@fidonet, yar@radio-msu.net, SRC :
ifmail-2.14/misc/contrib/u-tic/,;
- aptic, Andrey Povolnov,
2:5029/27@fidonet, URL : ftp://oskin.macomnet.ru/pub/linux/fido/,
;
Здесь я опишу настройку первых
двух из них. Первоначально я
использовал filefix by Serg Oskin, с
модификациями by Alex Mansurov (я его
выбрал из-за поддержки files.bbs ;), но
после некоторого периода
эксплуатации я отказался от него
и перешел на gtic by Yuri Kuzmenko.
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 и
замените ими аналогичные файлы :
/usr/local/fidonet/etc/filefix/config и
/usr/local/fidonet/bin/filefix/filefix.
Меняем для всех
файлов пакета владельца на 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/tmp/filefix/new_files
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, например :
$ ls -la /var/spool/uucppublic/XORNBOOK
total 433
drwxr-xr-x 2 fido uucp
512 2 ноя 11:02 .
drwxrwxrwx 13 uucp uucp
512 2 ноя 11:02 ..
-rw-r--r-- 1 fido uucp 12743
2 ноя 11:02 medic.dos
-rw-r--r-- 1 fido uucp
17 2 ноя 11:02 medic.dos.desc
-rw-r--r-- 1 fido uucp 413769
2 ноя 11:02 setup3.exe
-rw-r--r-- 1 fido uucp
18 2 ноя 11:02 setup3.exe.desc
2. Сразу после тоссинга можно
запустить filefix -s, при этом те
файлы, у которых есть "файлы-спутники"
с расширением .desc заворачиваются
на даунлинков (если они есть), и
их описания перемещаются в files.bbs
:
$ ls -la /var/spool/uucppublic/XORNBOOK
total 432
drwxr-xr-x 2 fido uucp
512 2 ноя 11:09 .
drwxrwxrwx 13 uucp uucp
512 2 ноя 11:02 ..
-rw-r--r-- 1 fido uucp
75 2 ноя 11:09 files.bbs
-rw-r--r-- 1 fido uucp 12743
2 ноя 11:02 medic.dos
-rw-r--r-- 1 fido uucp 413769
2 ноя 11:02 setup3.exe
Анонсы о новых файлэхах и файлах
в них постятся в заданную эху
(f99.notify)
Если вы раздаете
файлэхи дальше, то вашим
даунлинкам понадобится
управлять подпиской через
робота filefix. Для этого
редактируем /etc/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" - это если вы хотите
читать, что пишут вашему роботу ;)
Не забывайте после изменения
/etc/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 у вас
появился файлик с этим
содержимым - значит все работает.
Если же в /var/log/maillog появляются
сообщения от sendmail'а типа : "DSN:
unknown mailer error 126, DSN: unknown mailer error 2"
- значит вы сделали что-то не так.
Для тестирования можно
использовать следующую схему :
залогинимся как пользователь fido
(su fido ;) - это позволит, во-первых
запускать filefix в "родном"
окружении, во-вторых проверить
корректность установленных прав/владельцев
на конфиги и каталоги. Пропишем
пробного пользователя в Users (обратите
внимание, чтобы в Имени_Фамилии
пользователя не было пробелов),
например :
2:5058/99.2 PASSWORD Ivan_Petroff *
А в /usr/local/fidonet/tmp/filefix/queue создадим
файлик с именем 9911939901337 и
содержимым :
To: filefix <filefix@f99.n5058.z2.fidonet.org>
From: Test_Point
<Test_Point@p2.f99.n5058.z2.fidonet.org>
Subject: PASSWORD
%HELP
%LIST
Здесь в строчке с To: пишем имя
робота и ваш адрес, в строчках From:
и Subject: - адрес и пароль того
фиктивного пойнта, что вы
прописали в Users, после пустой
строчки - команды (%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. Более
подробно об этом рассказано в
Части 5 -
совместная
работа.
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
(естественно, к моменту
установки, каталоги etc/filefix и
bin/filefix были очищены от
предыдущего filefix'а).
Компилируем и устанавливаем : 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 JOKE1 * autocreate
2:5030/0 JOKE2 * autocreate
2:2/0 MEGAJOKE * 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 :
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-2000
Last updated : 14 apr 2000