Bugs/Threaded Tcl

From Eggdrop Wiki

(Difference between revisions)
Jump to: navigation, search
m (added ubuntu 8.04)
m (new fix)
Line 1: Line 1:
 +
= Current Fix =
 +
After you ./configure your bot, edit config.h.
 +
Remove the /* and */ from line 245 so you see this:
 +
/* Define for Tcl that has threads. */
 +
#undef HAVE_TCL_THREADS
 +
Carry on with your make config && make && make install.
 +
 +
 +
 +
 +
 +
= Old fix (A.K.A. the hard way) =
 +
So, here's the deal.  Eggdrop is supposed to be coded to handle TCL threading.  Either that code never worked, or it's now broken because of some change in TCL internally.  The solution?  Compile and install TCL with no threads, then recompile and reinstall your eggdrop.
So, here's the deal.  Eggdrop is supposed to be coded to handle TCL threading.  Either that code never worked, or it's now broken because of some change in TCL internally.  The solution?  Compile and install TCL with no threads, then recompile and reinstall your eggdrop.
Line 56: Line 69:
If you don't trust the files I've built, build them yourself, it shouldn't be that hard.
If you don't trust the files I've built, build them yourself, it shouldn't be that hard.
-
== If you don't have root access ==
+
=== Archlinux (a debian-based distro) ===
-
  Work in progress
+
cp -r /var/abs/extra/tcl .
 +
cd tcl
 +
nano PKGBUILD  (delete --enable-threads)
 +
makepkg
 +
  pacman -U tcl-8.5.2-1-i686.pkg.tar.gz

Revision as of 18:59, 1 May 2008

Contents

Current Fix

After you ./configure your bot, edit config.h. Remove the /* and */ from line 245 so you see this:

/* Define for Tcl that has threads. */
#undef HAVE_TCL_THREADS

Carry on with your make config && make && make install.



Old fix (A.K.A. the hard way)

So, here's the deal. Eggdrop is supposed to be coded to handle TCL threading. Either that code never worked, or it's now broken because of some change in TCL internally. The solution? Compile and install TCL with no threads, then recompile and reinstall your eggdrop.

Yeah, some of you will say 'Oh, ok, easy' and go and do it. The rest of you are probably saying 'Huh?'

These are some of the possible solutions to fix your problem:

If you have root access

Debian with TCL 8.5, Ubuntu 8.04 with TCL 8.5

  • Install the dependencies for developing debian packages using apt-get. There is a list of these dependencies on this page in section 1.1.
  • mkdir /root/tcl
  • cd /root/tcl
  • apt-get source tcl8.5
  • cd into the directory it creates (tcl8.5-8.5.2 currently)
  • cd debian
  • edit rules; remove the line " --enable-threads \" (currently line 52)
  • cd ..
  • dpkg-buildpackage -rfakeroot
  • Your .deb files are now being built.
  • cd ..
  • dpkg -i *.deb

Instead of doing that yourself, you could download the .deb files here: Debian and Ubunto 8.04 and dpkg -i them yourself.

If you don't trust the files I've built, build them yourself, it shouldn't be that hard.

  • Note: The Ubunto 8.04 tcl8.5 debian/rules file is borked. The quotes in lines 16, 21, and 23 need to be removed. Line 57 should be '$(MAKE) CFLAGS="$(CFLAGS)"'. The Ubuntu-MOTU group has been notified, and someone is filing a bug.

RHEL5/CentOS5 or Fedora Core 9 with TCL 8.5

Instead of doing that yourself, you could download the RPMs here: RHEL5/CentOS5 or Fedora Core 9 and rpm -Uvh them yourself.

  • Note on FC9: I had to 'rm -rf /usr/lib/tcl8.5' after 'rpm -e tcl' before the new RPM would install.

If you don't trust the files I've built, build them yourself, it shouldn't be that hard.

Archlinux (a debian-based distro)

cp -r /var/abs/extra/tcl .
cd tcl
nano PKGBUILD   (delete --enable-threads)
makepkg
pacman -U tcl-8.5.2-1-i686.pkg.tar.gz
Personal tools