JA :: Just Articles

На главную

Настраиваем софт для работы в FIDOnet под *nix.

Автор: Sergey Guriev

Существует два варианта FTN софта под *nix - первый: традиционный для DOS, Windows и OS/2, включающий в себя редактор сообщений, тоссер и мейлер; второй - сервер новостей, тоссер, мейлер (хотя здесь чаще используется MTA (Mail Transport Agent) - напр. sendmail). Остановимся на первом варианте. Оговорюсь сразу, что софт будем настраивать для поинта. Кроме того он будет использоваться только суперпользователем (при настройке для обычного пользователя проблем возникнуть не должно - просто будет необходимо дать пользователю права для работы с модемом); в качестве shell`a я использую bash; LANG=ru_RU.KOI8-R; версии gcc и g++ 3.2.2-asp; дистрибутив - ASP Linux 9.0 "Ural"; и я полагаю, что вам не нужно объянять, как отредактировать тот или иной файл, создать каталог, как распаковать архив и проч. Настраивать будем GoldED+/LNX 1.1.5, bforce-0.22.8 и различные утилиты проекта Husky. Для начала подготовим структуру каталогов. Необходимо создать следующие

 /root/
       fido/
            bin                         - исполняемые файлы
	    etc/                        - конфигурационные файлы  
                bforce                  
		golded/                 
		       colorset         - файлы цветовых схем
		       xlat             - файлы таблиц перекодировки
		husky                   
                ndl                     - нодлисты
	    fecho                       - каталог для файлэх
	    in/                         - protected inbound
	       tmp
	    lib                         - файлы библиотек
	    log/                        - логи
	        bforce
		husky
	    msg/                        - squish базы
	        dupes
	    out                         - protected outbound
	    src/                        - исходные тексты
	        bforce
	        golded+
		husky
	    tmp/                        - unprotected
	        in/                                   inbound
		   tmp
                out                                   outbound
		    
 

Теперь добавьте к переменной PATH путь /root/fido/bin. Я сделал это добавлением в ~/.bash_profile двух строк

PATH=$PATH:$HOME/fido/bin
export PATH

Рекомендую закрыть текущую консоль и "залогиниться" вновь, чтобы изменения вступили в силу.

Разворачиваем скаченные архивы в заранее подготовленные каталоги в ~/fido/src и приступаем с компиляции.

Первым скомпилируем мейлер bforce.

# cd ~/fido/src/bforce/source
# ./configure

Редактируем Makefile

OWNER = root
GROUP = root
CONFDIR = /root/fido/etc/bforce
BINDIR = /root/fido/bin
LOGDIR = /root/fido/log/bforce

и компилируем bforce:

# make && make install

Следующий на очереди дедушка :) Переходим в каталог ~/fido/src/golded+/golded3 копируем файл mygolded.__h в mygolded.h и изменяем в нем три следующие строки

 #define __GVER_VENDOR_NAME__ "Put in your full name here"
 #define __GVER_VENDOR_FIDO__ "your Fidonet-AKA"
 #define __GVER_VENDOR_EMAIL__ "your email@address"
соответсвенно записываем там свое полное имя, адрес в FIDOnet и электронную почту. Дальше все просто
# cd ~/fido/src/golded+
# make
# cd bin
# ls -sh

Вам не кажется что размер файлов слишком большой? Оптимизируем полученные файлы

# strip *
# gzexe *
# rm -f *~
# mv * ~/fido/bin

Голдед готов. Приступаем к тоссеру и прочим утилитам. Минимальный набор пакетов из Husky project - huskybse, smapi, fidoconf и hpt. Мы же еще скачаем htick (фэхороцессор) и hpucode (ууе-декодер). В Husky project есть еще ряд дополнительных утилит, рассматривать которые я не буду. Распаковываем архивы в ~/fido/src/husky. Должно получиться следующее

 ~/fido/src/husky/
                  fidoconf                  
                  hpt
		  hpucode
		  htick
		  huskybse
		  smapi
 

Копируем файл huskymak.cfg из ~/fido/src/husky/huskybse в ~/fido/src/husky и редактируем его:

LIBDIR=/root/fido/lib
BINDIR=/root/fido/bin
CFGDIR=/root/fido/etc/husky

и компилируем все необходимое:

# cd ~/fido/src/husky/smapi
# make && make install
# cd ../fidoconf
# make && make install
# cd ../hpt
# make && make install
# cd ../hpucode
# make && make install
# cd ../htick
# make && make install

Все скомпилировано. Добавляем путь к необходимым библиотекам в /etc/ld.so.conf

# echo /root/fido/lib >> /etc/ld.so.conf
# ldconfig

Следующий этап - редактирование (создание) файлов конфигурации. После компиляции bforce в ~/fido/etc/bforce появятся файлы конфигурации, которые нам и придется отредактировать, а именно задать пути соответсвующие созданой структуре каталогов в ~/fido, указать свое имя, адрес, пароль и прочие настройки. Вот наиболее важные параметры (но не все необходимые!!!)

 
 address 2:5009/2.111@fidonet
 log_file_daemon /root/fido/log/bforce/bf-daemon
 log_file /root/fido/log/bforce/bf-log
 debug_file /root/fido/log/bforce/bf-debug
 inbound_directory (Protected) /root/fido/in
 inbound_directory /root/fido/tmp/in
 outbound_directory /root/fido/out
 amiga_outbound_directory /root/fido/tmp/out
 nodelist_directory /root/fido/etc/ndl
 status_directory /root/fido/log/bforce
 history_file /root/fido/log/bforce/hist
 modem_port /dev/ttyS1:115200
 nodelist pnt5009.ndl  2:5009/*.*
 system_name PentagOn
 location Tambov, Russia
 sysop_name Sergey Guriev
 phone 7-0752-Pri-vate
 max_speed 33600
 flags XW,V34B,IDC,LMD
 emsi_OH_time 23:00-07:30
 emsi_FR_time 02:00-05:30
 freq_alias_list /root/fido/etc/bforce/freq.aliases
 freq_dir_list /root/fido/etc/bforce/freq.dirs
 password 2:5009/2 mypassw
 override 2:5009/2 Phone 714773 Worktime 00:00-24:00
 

C bforce'ом разобрались - приступаем к голдеду. В ~/fido/etc/golded/golded.cfg НЕ указывайте username и address! (позже укажем это в конфиге hpt). Также НЕ должно быть строки вида

EditCompletion "Н" "H"

В ~/fido/etc/golded/goldkeys.cfg не должно быть строки

"Н" EDITmacro "H"

а в golded.cfg должны быть строки

 DispSoftCR Yes
 EditSoftCrxLat H
 XlatPath /root/fido/etc/golded/xlat/
 IgnoreCharSet
 XlatCharSet KOI8-R CP866 koi_ibm.chs
 XlatCharSet CP866 KOI8-R ibm_koi.chs
 XlatImport CP866
 XlatExport CP866
 XlatLocalSet KOI8-R
 

Файлы koi_ibm.chs и ibm_koi.chs должны соответственно находиться в ~/fido/etc/golded/xlat. Это необходимо для нормального отображения "н" и "Н" а также для корректного перекодирования писем. Вот еще несколько важных строк

 NodePath /root/fido/etc/ndl
 NodeList pnt5009.ndl
 InboundPath /root/fido/in
 OutboundPath /root/fido/out
 GoldPath /root/fido/etc/golded
 include /root/fido/etc/golded/goldarea.cfg
 

последней строкой подключается файл с описанием областей. Запускать редактор будем следующим скриптом

 == ~/fido/bin/ged
 #!/bin/sh
 fconf2golded /root/fido/etc/golded/goldarea.cfg
 gedlnx -C/root/fido/etc/golded/golded.cfg
 ==

не забудьте поставить аттрибут для выполнения

# chmod +x ~/fido/bin/ged

утилита fconf2golded преобразует список областей в формат голдеда из формата hpt.

Файлы конфигурации для Husky можно создать с помощью скрипта ~/fido/src/husky/fidoconf/fidoInst хотя они все рано требуют серьезной доработки (imho), а можно составить вручную, что сложнее и дольше. Описания всех параметров можно прочитать в ~/fido/src/husky/fidoconf/doc, ~/fido/src/husky/hpt и в ~/fido/src/husky/htick/doc

вот наиболее важные параметры

 == ~/fido/etc/husky/config
 Address 2:5009/2.111
 Sysop  Sergey Guriev
 include /root/fido/etc/husky/packer
 include /root/fido/etc/husky/path
 Link Boss
 Aka 2:5009/2
 AutoAreaCreate on
 AutoFileCreate on
 AccessGrp E,F
 AutoAreaCreateDefaults -g F -b squish -$m 1000
 AutoAreaCreateFile /root/fido/etc/husky/areas
 AutoFileCreateFile /root/fido/etc/husky/fileareas
 ticpwd mypass
 Link Loopback
 Aka 2:5009/2.111
 ourAka 2:5009/2.111
 AutoAreaCreate on
 AutoFileCreate on
 AccessGrp E,F
 AutoAreaCreateDefaults -g F -b squish -$m 1000
 AutoAreaCreateFile /root/fido/etc/husky/areas
 AutoFileCreateFile /root/fido/etc/husky/fileareas
 ticpwd (null)
 packer zip
 route crash 2:5009/2 1:* 2:* 3:* 4:* 5:* 6:*
 NetMailArea NetmailArea /root/fido/msg/netmail	-g A -b squish -d "Personal mail"
 BadArea BadArea /root/fido/msg/bad -g B
 DupeArea DupeArea /root/fido/msg/dupe -g B
 include /root/fido/etc/husky/areas
 include /root/fido/etc/husky/fileareas
 ==

 == ~/fido/etc/husky/packer
 Unpack  "unzip -joLqq $a -d $p" 0 504b0304
 Pack 	zip zip -9jgq $a $f

 Unpack  "pkunzip -nojCL $a -d $p" 0 504b0304
 Pack  zip pkzip $a $f
 ==

 == ~/fido/etc/husky/path
 Inbound	 /root/fido/tmp/in
 ProtInbound	 /root/fido/in
 TempInbound	 /root/fido/tmp/in/tmp
 Outbound	 /root/fido/out
 TempOutbound	 /root/fido/tmp/out
 LogFileDir      /root/fido/log/husky
 DupeHistoryDir	 /root/fido/msg/dupes
 NodelistDir	 /root/fido/etc/ndl
 MsgBaseDir	 /root/fido/msg
 EchoTossLog     /root/fido/log/husky/export.lst
 ImportLog       /root/fido/log/husky/import.lst
 LockFile	 /root/fido/tmp/hpt-lock
 FileAreaBaseDir /root/fido/fecho
 PassFileAreaDir /root/fido/fecho
 ==
 

Теперь напишите адрес босса. Например 5009/2. Теперь переводим 5009 в шестнадцатиричную систему счисления - получаем 1391. 2 также переводим в 16ую сс и получам 2 :)) Вместе получим 13910002. Тогда если создадим файлик 13910002.flo в protected outbound, то bforce будет звонить на узел.....если он запущен. Запускать его лучше демоном всего (имхо) при загрузке, для чего я добавил строку в /etc/inittab

bf:5:once:/root/fido/bin/bforce -d

5 - default runlevel в моей системе

В ~/.bashrc добавим строки

 alias poll='echo >/root/fido/out/13910002.flo'
 alias log='tail -f /root/fido/log/bforce/bf-log.ttyS1'
 alias toss='hpt toss'
 alias pack='hpt scan pack'
 alias in='hpt -c /root/fido/etc/husky/config toss && ged'
 alias out='hpt -c /root/fido/etc/husky/config scan pack'
 alias fe='htick toss'
 

Выйдем из сеанса и "залогинемся" вновь. Скопируем нодлист в ~/etc/ndl и скомпилируем его

# bfindex -f
# gnlnx -C /root/fido/etc/golded/golded.cfg

Запустим bforce и начнем звонить на узел:

# bforce -d
# poll

Для просмотра текущего состояния мейлера воспользуемся командой

# log

Закрыть лог можно по ^C. Если ваш модем работает через порт, отличный от ttyS1, то исправьте соответсвующий alias в ~/.bashrc.

После получения почты тоссим ее командой

# in

а пришедшие файлэхи командой

# fe

После создания новых писем введем команду

# out

почта запакуется и начнется дозвон.

Для создания фрек-запроса на узел 5009/2 я написал такой скрипт

 == ~/fido/bin/freq
 #!/bin/sh
 read -p "input filename: " file_name
  if [ "$file_name" = "" ]; then
   echo "filename not entered - exiting"
   exit 1
  fi
 echo $file_name >> /root/fido/out/13910002.req
 ==

Работа с UUE кодированием предельна проста - для декодирования используйте hpucode. Например

# hpucode -cut ru.*

поместит в prot. inbound все удачно раскодированные файлы из всех эх, название которых начинается с префикса "ru.". Если к помещенным в эхах ууе-закодированным файлам есть описание, то будут созданы и tic-файлы, фэхой в которых значится uue.local (что делать с фэхами вы уже знаете).

Для постинга ууе в эху используется команда hpt post ..., где вместо ... указываются необходимые параметры, познакомиться с которыми можно так

# hpt post -h

Кроме того для работы с UUE можно использовать утилиты uuencode/uudecode и uuenview/uudevied, которые обычно входят в дистрибутив Linux.

Ну и в заключение расскажу как вставить в письмо (я выбрал таглайн) строку с названием композиции проигрываемой сейчас в XMMS. Запускаем XMMS, открываем окно с настройками, вкладку "Эффекты/Общие расширения", выбираем плагин "Смена песни", ставим галочку "включить расширение", идем в настройки плагина и вписываем следующую строку (догадаетесь где :)) echo XMMS np: "%s" > /root/fido/etc/golded/xmms.np && xs теперь создаем скрипт ~/fido/bin/xs

 == ~/fido/bin/xs
 #!/bin/sh
 cd ~/fido/etc/golded
 if [ "`cat xmms.np`" = "XMMS np: %s" ];
 then echo "XMMS not playing... silence..." > xmms.np;
 fi
 ==

а в golded.cfg вставляем (изменяем) строки

TaglineSupport Yes
Tagline @/root/fido/etc/golded/xmms.np

Вот и все!


На главную

Дизайн и программирование : Sergey Guriev
Вопросы, предложения, комментарии присылайте по адресу webmaster@ja.fatal.ru