#1
|
|||
|
|||
Установка поинта на Archlinux
Alexey Khromov написал(а) к All в Mar 23 13:26:42 по местному времени:
* Forwarded from 5030-722.local by Alexey Khromov (2:5030/722.143). * Originally by: Alexey Khromov (2:5030/722.143), 20 Mar 23 11:44. * Originally to: all. Через тернии к поинту. (для тех, кто не ищет легких путей) О существовании фидо я знал давно, и даже хотел приобщиться году так в 2006-м, учитывая что городская нода (по слухам) еще существовала и даже работала. Помешало, в первую очередь, отсутствие телефонной линии и непонятки с софтом - я уже успешно изучал различные дистрибутивы Linux и FreeBSD, а в них изначально использовался стек протоколов TCP/IP, и про "древние" пакетные DOS-технологии они из-коробки, к сожалению, не знали. На данный момент, вроде, ничего не изменилось. За исключением пары моментов, наверное. Во-первых, современные системы "шагнули" далеко вперед, избавляясь от остатков старого кода, исправляя ошибки и меняя версии интерфейсов. Во-вторых, развитие фидо-софта если и не замерло в первой половине 2000х, то сменило "вектор" развития на комплекты "все-в-одном", сначала под Windows, а теперь уже и под Android. Итак, что же делать ньюфагу, имеющему Linux-десктоп? Конечно же, собирать софт и настраивать, не смотря на трудности. Фидо-поинт состоит из нескольких "программ" (если точнее, программ там больше, но части, выполняющиеразные функции, обособлены). Это мейлер, тоссер и редактор. Пошарив по интернетам, найдя обрывки информации, нашел подходящий комплект для установки в Linux - FidoIP и его "адаптация" для Debian/ Ubuntu - Fidian. Комплект из одного скрипта, который устанавливает необходимые пакеты, скачивает набор упрощающих жизнь скриптов и проводит настройку нескольких конфиг-файлов. Дело за малым - прочитать скрипт, выкачать необходимое, собрать недостающее и настроить... Система не самая обычная - ArchLinux. В моем случае 32-битный, только в текстовом режиме, без Иксов и Гномов, на нетбуке Asus EEE PC Surf 2G. Итак, мейлер - binkd. Присутствует в AUR (релиз и git), собирается без проблем. Тоссер - husky. Присутствует в AUR в виде трех пакетов - полный, без редактора и отдельно редактор msged. Т.к. последний не особо нужен, можно попробовать собрать версию без редактора. Я собирал полную. Сборка завершилась ошибкой - cmake не смог найти один .h файл. Покопавшись в дереве исходников, находим его каталогом выше необходимого, правим PKGBUILD (описание процесса сборки) и пересобираем на этот раз успешно. Редактор - golded-plus. Присутствует в AUR, также не собирается и выпадает в ошибку. Во-первых, не может применить патч из AUR - вносим правки руками читая patch-файл, создаем новый patch (командой diff -u -p3 старый новый). Во-вторых, сборка выпадает в ошибку на ассемблерной вставке в одном из файлов главной библиотеки goldlib. Ассемблерных вставок я, конечно, не опасаюсь, но все оказалось проще. Конкретно эта часть кода, условно компилируемая только под 32-битными и именно Linux, определяла тип процессора и, по мнению современного компилятора GCC 12 рушила стек. Соседний участок кода мог просто сказать unknown про модель процессора, поэтому абсолютно устаревшая и ненужная asm-вставка была выпилена. Пересборка прошла без критических ошибок и GoldED+ успешно установлен. Скрипты от Fidian пришлось модифицировать, т.к. они расчитаны на работу под отдельным пользователем fido с разрешенным sudo, а мне приятней работать "под собой" и без лишних прав. Рабочие каталоги для мейлера и эхопроцессора размещены в /var/spool/ftn, владельцем - пользователь (система однопользовательская), права - 1777 на папки, 666 на файлы, так, чтобы создаваемые различными компонентами системы файлы были доступны друг другу. Теперь, как это все работает вместе и как это диагностировать... Binkd, запущенный как сервис (на самом деле это для поинта не обязательно), или вызванный внешним скриптом/программой пишет достаточно подробный лог-файл, за что отдельное спасибо разработчикам. Если в логе увидели сначала connected, а потом done (to 2:5030/722@fidonet, OK, S/R: 0/0 (0/0 bytes)) - все отлично, можно продолжать. Мейлер полученные пакеты кладет в назначенную папку inbound (попутно отсылая сформированные пакеты из папки outbound) и вызывает тоссер (он может и по расписанию работать - это не так важно). Тоссер hpt должен распаковать пакеты и уложить их в базу messagebase (у меня она в формате Jam - то есть база данных sqlite). Сообщения из базы должен прочитать и показать редактор. hpt тоже пишет лог-файл, однако он малоинформативен (для отладки, для сигнализации о новой почте как раз), поэтому ориентироваться надо в первую очередь на состояние папок и файлов в них. Ну и сверять пути, прописанные в конфигах, а так же можно проверить конфигурацию тоссера с помощью программы tparser, например так: /usr/bin/tparser | tee tparser.txt | grep ! Для редактора GoldED+ базовый конфиг можно сформировать c помощью fconf2golded и дополнить из примеров в /usr/share/goldedplus - там есть все и много больше. Однако есть особенность: golded - это скрипт, вызывающий gedlnx с помощью программы подмены локали luit. Под linux уберите из скрипта переназначение переменной TERM (оставим как есть, linux) и GoldED+ будет отображаться без артефактов. Исходящие пакеты проверить достаточно легко - каждый этап выполняет преобразование файлов, которые можно отследить по папке outbound. Следует помнить, что binkd смотрит только в саму папку outbound и не просматривает вложенные папки, а так же что тоссер husky упаковывает zip-ом нетмейл только при включенной (для описания Link) опции arcNetmail и совпадении типа (flavour) исходящей эхопочты и нетпочты. Этапы преобразований пошагово: 1. hpt toss - выбирает исходящий нетмейл, обрабатывает inbound 2. hpt scan - выбирает исходящий эхомейл 3. hpt link - обрабатывает входящий эхомейл 4. hpt pack - упаковывает эхомейл и (при настройке arcNetmail) нетмейл 5. при наличии любых исходящих в outbound должны появиться .[fcdio]ut файл и .moX| .tuX|.weX|.thX|.frX|.saX|.suX файл. Второй при этом - обычный зип, с .pkt-ами внутри, а в первом описание этих pkt-ов. 6. binkd -P <Аплинк> <путь к конфигу> перешлет исходящую и заберет входящую почту. По-умолчанию (в конфиге) он вызывает hpt toss link при наличии пакетов в inbound. Вот и вся сессия, по-сути. Удачи в настройке всем, здесь оказавшимся по нужде. ----- Archlinux 32, kernel 6.1.11-arch1-1.0 18.03.2023 -+- GoldED+/LNX 1.1.5-b20230304 + Origin: --- You are in danger - you are surrounded by robo (2:5030/722.143) Нello everybody! Alexey --- GoldED+/LNX 1.1.5-b20230304 |