Проблема с Threaded TCL

Частые вопросы возникающие при работе с ботами. Загляните сюда перед созданием новой темы.

Модератор: Модераторы

Проблема с Threaded TCL

Сообщение Deniska » 25 мар 2009 07:01

У многих пользователей возникает проблема, когда бот при запуске не подключается к IRC серверу, а так же не отвечает на telnet подключения, хотя конфигурационный файл настроен верно. В добавок бот успешно запускается и работает с ключом -n (./eggdrop -n eggdrop.conf). Эта проблема вызвана ошибкой работы бота с TCL с поддержкой тридов.

Вариант решения №1
Применить патч Tothwolf'a, созданный для eggdrop 1.6.19.
После применения патча Вы должны пересобрать бота, сконфигурировав его с ключем --enable-tcl-threads (./configure --enable-tcl-threads).
Код: Выделить всё
[~/eggdrop1.6.19]$ patch -p1 < eggdrop1.6.19-threads.patch
patching file aclocal.m4
patching file configure
patching file src/main.c
[~/eggdrop1.6.19]$ ./configure --enable-tcl-threads


Вариант решения №2
Исправить src/config.h в дистрибутиве бота. После конфигурации ./configure - отредактируйте config.h. Измените следующие 2 строки (в моем дистрибутиве они на 244 строке):
Код: Выделить всё
/* Define for Tcl that has threads. */
/* #undef HAVE_TCL_THREADS */

на эти две строки
Код: Выделить всё
/* Define for Tcl that has threads. */
#define HAVE_TCL_THREADS 1
.
Завершите сборку make config && make && make install.

Вариант решения №3
Так же можно перекомпилировать сам TCL, убрав поддержку threads. Изначально Eggdrop может (мог?) работать с threaded tcl, однако либо этот код никогда не работал или же стал бесполезным в результате каких-либо изменений в коде TCL. Последний возможный вариант - пересобрать TCL, убрав поддержку threads, и переустановить бота.


Если у Вас есть доступ уровня root
Debian с TCL 8.5, Ubuntu 8.04 с TCL 8.5
* Установите зависимости для developing деб пэкэйджей используя apt-get. Список необходимых пэкэйджей можно найти на этой странице в секции 1.1.
* mkdir /root/tcl
* cd /root/tcl
* apt-get source tcl8.5
* перейдите в созданную директорию (tcl8.5-8.5.2 на данный момент)
* cd debian
* отредактируйте rules; удалите строку " --enable-threads \" (строка 52)
* cd ..
* dpkg-buildpackage -rfakeroot
* Ваш .deb файл начнет собираться.
* cd ..
* dpkg -i *.deb

Если Вы не хотите делать этого сами - Вы можете скачать подготовленные .deb пакеты здесь: Debian и Ubuntu 8.04 и установить их с помощью dpkg -i.

* Примечание: В Ubuntu 8.04 tcl8.5 файл debian/rules глючный. Кавычки в строках 16, 21 и 23 нужно удалить. Строка 57 должна выглядеть как '$(MAKE) CFLAGS="$(CFLAGS)"'. Группа Ubuntu-MOTU уже была извещена об этом баге.

RHEL5/CentOS5/Fedora Core 9 с TCL 8.5
* mkdir /root/tcl
* cd /root/tcl
* Скачайте последние исходники 8.5 с http://sourceforge.net/project/showfile ... p_id=10894
wget http://superb-west.dl.sourceforge.net/s ... src.tar.gz
wget http://superb-west.dl.sourceforge.net/s ... tml.tar.gz
* tar zxf tcl8.5.2-src.tar.gz
* mv *.gz /usr/src/redhat/SOURCES
* cd tcl8.5.2
* cd unix
* mv tcl.spec tcl.spec.orig
* wget http://ns0.skralg.com/eggdrop/tcl8.5-no ... 5/tcl.spec
* отредактируйте tcl.spec
%define majorver 8.5
+ (должна быть 8.5, если версия 8.5.2)
Version: %{majorver}.2
+ (.2 на конце, если версия 8.5.2)
Release: 2
+ (Не слишком важно. Если Вы хотите полностью исправить - возьмите номер релиза (release number) из tcl.spec.orig. В нашем случае это 2: 8.5.2-2)
* cd ..
* rpmbuild -bb unix/tcl.spec
* cd /usr/src/redhat/RPMS/i386/
* rpm -Uvh tcl-8.5.2-2.i386.rpm tcl-devel-8.5.2-2.i386.rpm tcl-html-8.5.2-2.i386.rpm

Если Вы не хотите делать этого сами - Вы можете скачать подготовленные RPM пакеты здесь: RHEL5/CentOS5 и Fedora Core 9 и установить их с помощью rpm -Uvh.

* Примечание для FC9: мне пришлось удалить старую библиотеку 'rm -rf /usr/lib/tcl8.5' после 'rpm -e tcl' чтобы я смог установить новый RPM.

Archlinux
Код: Выделить всё
cp -r /var/abs/extra/tcl .
cd tcl
nano PKGBUILD   (удалите --enable-threads)
makepkg
pacman -U tcl-8.5.2-1-i686.pkg.tar.gz
Аватара пользователя
Deniska
 
Сообщения: 19
Зарегистрирован: 22 сен 2008 09:29
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Вернуться в FAQ + HowTo

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1

cron