diff --git a/unrealircd/Makefile b/unrealircd/Makefile new file mode 100644 index 0000000..539654b --- /dev/null +++ b/unrealircd/Makefile @@ -0,0 +1,61 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=unrealircd +PKG_VERSION:=3.2.10.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=Unreal$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://www.unrealircd.com/downloads/ +PKG_MD5SUM:=97b4bd68a804e517355efa756f401a90 + +PKG_BUILD_DIR:=$(BUILD_DIR)/Unreal$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/unrealircd + SECTION:=net + CATEGORY:=Network + SUBMENU:=Instant Messaging + DEPENDS:=+zlib +libopenssl +libcurl +libcares +tre + TITLE:=Open Source IRC Server + URL:=http://unrealircd.com +endef + +define Package/unrealircd/conffiles +/etc/unrealircd.conf +endef + +CONFIGURE_ARGS+= --with-showlistmodes \ + --enable-prefixaq --with-listen=5 \ + --with-dpath=/etc/unrealircd \ + --with-spath=/usr/bin \ + --with-nick-history=2000 --with-sendq=3000000 \ + --with-bufferpool=18 \ + --with-permissions=0600 --with-fd-setsize=1024 \ + --enable-dynamic-linking \ + --enable-ziplinks=$(STAGING_DIR)/usr \ + --enable-ssl=$(STAGING_DIR)/usr \ + --disable-inet6 \ + --enable-libcurl=$(STAGING_DIR)/usr \ + --with-system-cares \ + --with-system-tre + +CONFIGURE_VARS+=ac_cv_nonblocking=O_NONBLOCK ac_cv_force_core=yes ac_cv_sigtype=POSIX + +define Package/unrealircd/install + $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/unrealircd $(1)/usr/lib/unrealircd/modules + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ircd $(1)/usr/bin/unrealircd + $(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/example.conf $(1)/etc/unrealircd/unrealircd.conf + $(CP) $(PKG_BUILD_DIR)/*.conf $(1)/etc/unrealircd + $(CP) $(PKG_BUILD_DIR)/src/modules/*.so $(1)/usr/lib/unrealircd/modules + ln -s /usr/lib/unrealircd/modules $(1)/etc/unrealircd/modules + $(INSTALL_DIR) $(1)/etc/init.d + $(CP) $(FILES_DIR)/unrealircd.init $(1)/etc/init.d/unrealircd +endef + +$(eval $(call BuildPackage,unrealircd)) diff --git a/unrealircd/files/unrealircd.init b/unrealircd/files/unrealircd.init new file mode 100644 index 0000000..4ff8255 --- /dev/null +++ b/unrealircd/files/unrealircd.init @@ -0,0 +1,11 @@ +#!/bin/sh /etc/rc.common + +START=65 + +start() { + service_start /usr/bin/unrealircd 1>>/dev/null 2>>/dev/null +} + +stop() { + service_stop /usr/bin/unrealircd +} diff --git a/unrealircd/patches/01-no_openssl_ripe.patch b/unrealircd/patches/01-no_openssl_ripe.patch new file mode 100644 index 0000000..b0989d2 --- /dev/null +++ b/unrealircd/patches/01-no_openssl_ripe.patch @@ -0,0 +1,25 @@ +--- a/include/struct.h ++++ b/include/struct.h +@@ -39,8 +39,10 @@ + #include + #include + #include ++#ifndef OPENSSL_NO_RIPEMD + #include + #endif ++#endif + #include "common.h" + #include "sys.h" + #include "hash.h" +--- a/include/auth.h ++++ b/include/auth.h +@@ -37,7 +37,9 @@ typedef struct { + #ifdef USE_SSL + #define AUTHENABLE_SHA1 + #define AUTHENABLE_SSL_CLIENTCERT ++#ifndef OPENSSL_NO_RIPEMD + #define AUTHENABLE_RIPEMD160 ++#endif + #define AUTHENABLE_SSL_CLIENTCERTFP + /* OpenSSL provides a crypt() */ + #ifndef AUTHENABLE_UNIXCRYPT diff --git a/unrealircd/patches/02-config.patch b/unrealircd/patches/02-config.patch new file mode 100644 index 0000000..fc0030f --- /dev/null +++ b/unrealircd/patches/02-config.patch @@ -0,0 +1,13 @@ +--- a/doc/example.conf ++++ b/doc/example.conf +@@ -33,8 +33,8 @@ + */ + + /* FOR *NIX, uncomment the following 2lines: */ +-//loadmodule "src/modules/commands.so"; +-//loadmodule "src/modules/cloak.so"; ++loadmodule "modules/commands.so"; ++loadmodule "modules/cloak.so"; + + /* FOR Windows, uncomment the following 2 lines: */ + //loadmodule "modules/commands.dll";