diff --git a/lang/eggdrop/Makefile b/lang/eggdrop/Makefile new file mode 100644 index 000000000..34525b32d --- /dev/null +++ b/lang/eggdrop/Makefile @@ -0,0 +1,57 @@ +# +# Copyright (C) 2008 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=eggdrop +PKG_VERSION:=1.6.17 +PKG_RELEASE:=1 + +PKG_SOURCE:=eggdrop$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=ftp://ftp.eggheads.org/pub/eggdrop/source/1.6 +PKG_MD5SUM:=68e181201483dee398f9904e8652e6ca +PKG_CAT:=bzcat + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION) +PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install + +include $(INCLUDE_DIR)/package.mk + +define Package/eggdrop + SECTION:=lang + CATEGORY:=Language + TITLE:=EggDrop IRC BOT + DEPENDS:=+tcl + URL:=http://www.eggheads.org +endef + +define Package/eggdrop/description + EggDrop IRC BOT +endef + +CONFIGURE_ARGS+=\ + --prefix="$(PKG_INSTALL_DIR)/eggdrop" \ + --enable-threads \ + --with-tcllib="$(STAGING_DIR)/usr/lib/libtcl8.4.so" \ + --with-tclinc="$(STAGING_DIR)/usr/include/tcl.h" + +define Build/Compile + $(MAKE) config -C $(PKG_BUILD_DIR) + $(MAKE) -C $(PKG_BUILD_DIR) \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + all install; \ + rm -Rvf $(PKG_INSTALL_DIR)/eggdrop/doc/*;\ + rmdir $(PKG_INSTALL_DIR)/eggdrop/doc; +endef + + +define Package/eggdrop/install + $(INSTALL_DIR) $(1)/eggdrop + $(CP) $(PKG_INSTALL_DIR)/* $(1)/eggdrop +endef + +$(eval $(call BuildPackage,eggdrop)) diff --git a/lang/eggdrop/patches/001-makefile_in.patch b/lang/eggdrop/patches/001-makefile_in.patch new file mode 100644 index 000000000..8c09c41a3 --- /dev/null +++ b/lang/eggdrop/patches/001-makefile_in.patch @@ -0,0 +1,11 @@ +--- eggdrop/Makefile.in 2004-07-25 07:17:33.000000000 -0400 ++++ eggdrop-patched/Makefile.in 2005-05-01 04:33:56.890000000 -0400 +@@ -71,7 +71,7 @@ + + modconf = $(top_srcdir)/misc/modconfig --top_srcdir=$(top_srcdir) + +-egg_test_run = EGG_LANGDIR=$(top_srcdir)/language ./$(EGGEXEC) -v ++egg_test_run = EGG_LANGDIR=$(top_srcdir)/language #./$(EGGEXEC) -v + + post_config = echo "" && \ + echo "You can now compile the bot, using \"make\"." && \ diff --git a/lang/eggdrop/patches/002-eggdrop_h.patch b/lang/eggdrop/patches/002-eggdrop_h.patch new file mode 100644 index 000000000..311b63c35 --- /dev/null +++ b/lang/eggdrop/patches/002-eggdrop_h.patch @@ -0,0 +1,12 @@ +--- eggdrop/src/eggdrop.h 2008-09-08 21:09:57.000000000 +0100 ++++ eggdrop-patched/src/eggdrop.h 2008-09-08 21:11:46.000000000 +0100 +@@ -218,9 +218,6 @@ + # define sigemptyset(x) ((*(int *)(x))=0) + #endif + +-#ifndef HAVE_SOCKLEN_T +-typedef int socklen_t; +-#endif + + /* + * Handy aliases for memory tracking and core dumps diff --git a/lang/eggdrop/patches/003-language_c.patch b/lang/eggdrop/patches/003-language_c.patch new file mode 100644 index 000000000..d67d4fcdb --- /dev/null +++ b/lang/eggdrop/patches/003-language_c.patch @@ -0,0 +1,25 @@ +--- eggdrop/src/language.c 2004-04-06 07:56:38.000000000 +0100 ++++ eggdrop-patched/src/language.c 2008-09-08 23:24:34.000000000 +0100 +@@ -240,8 +240,19 @@ + #else + if (sscanf(lbuf, "0x%x,%500c", &lidx, ltext) != 2) { + #endif +- putlog(LOG_MISC, "*", "Malformed text line in %s at %d.", +- langfile, lline); ++ ltexts++; ++ ctmp = strchr(ltext, '\n'); ++ *ctmp = 0; ++ while (ltext[strlen(ltext) - 1] == '\\') { ++ ltext[strlen(ltext) - 1] = 0; ++ if (fgets(lbuf, 511, FLANG)) { ++ lline++; ++ ctmp = strchr(lbuf, '\n'); ++ *ctmp = 0; ++ ltext = nrealloc(ltext, strlen(lbuf) + strlen(ltext) + 1); ++ strcpy(strchr(ltext, 0), lbuf); ++ } ++ } + } else { + ltexts++; + ctmp = strchr(ltext, '\n'); + diff --git a/lang/eggdrop/patches/004-main_c.patch b/lang/eggdrop/patches/004-main_c.patch new file mode 100644 index 000000000..ad263cd3b --- /dev/null +++ b/lang/eggdrop/patches/004-main_c.patch @@ -0,0 +1,14 @@ +--- eggdrop/src/main.c 2004-07-02 22:21:08.000000000 +0100 ++++ eggdrop/src/main-patched/main.c 2008-09-08 21:37:18.000000000 +0100 +@@ -792,8 +792,8 @@ + printf("\n%s\n", version); + + /* Don't allow eggdrop to run as root */ +- if (((int) getuid() == 0) || ((int) geteuid() == 0)) +- fatal("ERROR: Eggdrop will not run as root!", 0); ++ if (((int) getuid() == 666) || ((int) geteuid() == 666)) ++ fatal("ERROR: Eggdrop will not run the devil!", 0); + + init_dcc_max(); + init_userent(); +