pkgsrc/chat/inspircd/Makefile
adrianp b3bb9fd042 Update to 1.1.11
Include SVN patch for cmd_list.cpp.

* Do not take away mode r for nickchanges that only changes the case.
* Merge in error check from trunk, bail if we can't chdir to our own dir on startup
* Merge from trunk, eliminate warning when building with anal flags
* Merge detail fix from trunk
* Convert some ancient GlobalCulls usage into userrec::QuitUser
* Remove redundant include for a speedup of 0.1 in compile time
* Fix some comments to be multiline, and remove a redundant if() case caused by windows patch a while back
* Fix crash on unload of modules with listening sockets -- some situations require that the socket cull list is purged *immediately*, provide facility for this.
* Squish some silly error output on unloading spanningtree.
* Add some documentation
* Sanity check: we don't want to deal with Config being invalid while logging
* Squash a warning reported by owine
* Fix a bug reported downstream regarding cloaking keys
* Remove a braindead comment ('this belongs in class InspIRCd' -- when it's already there.)
* Tidyup a bunch of stuff that was using userrec::modes directly rather than userrec::IsModeSet. Same for chanrec.
* Make these notices a little more helpful
* Bit more tidying. Add some comments here, too.
* Minor cleanup
* A couple of tweaks that i did earlier as diffs. ISON didnt always respect invisibility state of users. socketengine iocp didnt range check fd's before passing them for array lookup
* Fix for bug #358, by rogalek. "If there is a channel on Server1 without any ops and Server2 will link to it, first nick sent with FJOINs will be marked as op on this channel created on Server2. Every user joined this channel from Server2 will see this nick prefixed by '@'."
* * Sockets will now always be nonblocking on win32 version of InspIRCd. There were some cases (mainly in TreeSockets) where a socket would not get restored to nonblocking mode after a connect() call, resulting in the server getting stuck on a blocking send() call causing freezeups., * configure will now compile under VC7 again.
* Fixed windows configure in release mode in a directory with spaces.
* m_testcommand deletes its command handler manually, no modules should do this. Will cause a double free
* Add syntax.
* Add m_taxonomy.so to example config.
* Less WOOT more TAXANOMY :>
* oper-immune filters should be fixed now
* I broke socketengine_iocp with some fixes. Fixed again.
2007-07-30 22:00:00 +00:00

145 lines
4.3 KiB
Makefile

# $NetBSD: Makefile,v 1.3 2007/07/30 22:00:00 adrianp Exp $
#
DISTNAME= InspIRCd-1.1.11
PKGNAME= ${DISTNAME:S/InspIRCd/inspircd/}
CATEGORIES= chat
MASTER_SITES= http://www.inspircd.org/downloads/
EXTRACT_SUFX= .tar.bz2
MAINTAINER= adrianp@NetBSD.org
HOMEPAGE= http://www.inspircd.org/
COMMENT= Modular C++ IRC Daemon
USE_TOOLS+= perl:build gmake pkg-config
REPLACE_PERL+= .inspircd.inc configure
WRKSRC= ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
HAS_CONFIGURE= yes
CONFIG_SHELL= ${PERL5}
USE_LANGUAGES= c++
PLIST_SRC= ${WRKDIR}/.PLIST_SRC
PLIST_SRC+= ${PKGDIR}/PLIST.common_end
RCD_SCRIPTS+= inspircd
PKG_SYSCONFSUBDIR= inspircd
FILES_SUBST+= INSPIRCD_USER=${INSPIRCD_USER:Q}
FILES_SUBST+= INSPIRCD_GROUP=${INSPIRCD_GROUP:Q}
.include "../../mk/bsd.prefs.mk"
EGDIR= ${PREFIX}/share/examples/inspircd
EXTRA= ${WRKSRC}/src/modules/extra
MODULES?= # undef
HEADERS?= # undef
CONF_FILES_PERMS= ${EGDIR}/inspircd.conf.example \
${PKG_SYSCONFDIR}/inspircd.conf \
${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
PKG_USERS_VARS= INSPIRCD_USER
PKG_GROUPS_VARS= INSPIRCD_GROUP
PKG_GROUPS= ${INSPIRCD_GROUP:Q}
PKG_USERS= ${INSPIRCD_USER:Q}:${INSPIRCD_GROUP:Q}
PKG_GECOS.${INSPIRCD_USER}= InspIRCd user
CONFIGURE_ARGS+= --disable-interactive
CONFIGURE_ARGS+= --prefix=${PREFIX}/share/inspircd
CONFIGURE_ARGS+= --config-dir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+= --binary-dir=${PREFIX}/bin
CONFIGURE_ARGS+= --library-dir=${PREFIX}/lib/inspircd
CONFIGURE_ARGS+= --module-dir=${PREFIX}/share/inspircd/modules
CONFIGURE_ARGS+= --with-nick-length=${INSP_NICLEN:Q}
CONFIGURE_ARGS+= --with-channel-length=${INSP_CHANLEN:Q}
CONFIGURE_ARGS+= --with-max-clients=${INSP_MAXCLI:Q}
CONFIGURE_ARGS+= --with-ident-length=${INSP_MAXIDENT:Q}
CONFIGURE_ARGS+= --with-quit-length=${INSP_MAXQUIT:Q}
CONFIGURE_ARGS+= --with-topic-length=${INSP_MAXTOPIC:Q}
CONFIGURE_ARGS+= --with-kick-length=${INSP_MAXKICK:Q}
CONFIGURE_ARGS+= --with-gecos-length=${INSP_MAXGECOS:Q}
CONFIGURE_ARGS+= --with-away-length=${INSP_MAXAWAY:Q}
CONFIGURE_ARGS+= --with-max-modes=${INSP_MAXMODES:Q}
.include "options.mk"
SUBST_CLASSES+= conf
SUBST_STAGE.conf= pre-configure
SUBST_FILES.conf= docs/inspircd.conf.example
SUBST_SED.conf+= -e "s|/path/to/inspircd.pid|${VARBASE}/run/inspircd/inspircd.pid|g"
SUBST_MESSAGE.conf= Fixing configuration files.
BUILD_DEFS+= INSP_NICLEN INSP_CHANLEN INSPIRCD_USER INSPIRCD_GROUP
BUILD_DEFS+= INSP_MAXCLI INSP_MAXIDENT INSP_MAXQUIT INSP_MAXTOPIC
BUILD_DEFS+= INSP_MAXKICK INSP_MAXGECOS INSP_MAXAWAY INSP_MAXMODES
BUILD_DEFS+= VARBASE
OWN_DIRS_PERMS+= ${VARBASE}/run/inspircd \
${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 750
INSPIRCD_USER?= inspircd
INSPIRCD_GROUP?= inspircd
# from a default ./configure
INSP_NICLEN?= 31
INSP_CHANLEN?= 64
INSP_MAXCLI?= 64
INSP_MAXIDENT?= 12
INSP_MAXQUIT?= 255
INSP_MAXTOPIC?= 307
INSP_MAXKICK?= 255
INSP_MAXGECOS?= 128
INSP_MAXAWAY?= 200
INSP_MAXMODES?= 20
CHECK_BUILTIN.openssl:=yes
.include "../../security/openssl/builtin.mk"
CHECK_BUILTIN.openssl:=no
post-extract:
${MV} ${WRKDIR}/inspircd ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
.if !empty(USE_BUILTIN.openssl:M[yY][eE][sS])
${CP} ${FILESDIR}/openssl.pc ${WRKSRC}
SUBST_FILES.conf+= openssl.pc
SUBST_SED.conf+= -e "s|@SSLBASE@|${BUILDLINK_PREFIX.openssl}|g"
SUBST_SED.conf+= -e "s|@SSLVER@|${BUILTIN_VERSION.openssl}|g"
CONFIGURE_ENV+= PKG_CONFIG_PATH=${WRKSRC:Q}
.endif
pre-configure:
.if defined(MODULES)
. for f in ${MODULES}
${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
. endfor
.endif
.if defined(HEADERS)
. for f in ${HEADERS}
${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
. endfor
.endif
post-build:
${CP} ${PKGDIR}/PLIST ${WRKDIR}/.PLIST_SRC
.if defined(MODULES)
. for f in ${MODULES}
${ECHO} share/inspircd/modules/${f} | \
${SED} -e "s|\\.cpp|\\.so|g" >> ${WRKDIR}/.PLIST_SRC
. endfor
.endif
post-install:
${INSTALL_DATA_DIR} ${EGDIR}
${INSTALL_DATA_DIR} ${EGDIR}/sql
${INSTALL_DATA_DIR} ${EGDIR}/aliases
${INSTALL_DATA} ${WRKSRC}/conf/inspircd.* ${EGDIR}
${INSTALL_DATA} ${WRKSRC}/conf/aliases/*.example ${EGDIR}/aliases
${INSTALL_DATA} ${WRKSRC}/docs/inspircd.conf.example ${EGDIR}
${INSTALL_DATA} ${WRKSRC}/extras/m_*.sql ${EGDIR}/sql
${TOUCH} ${VARBASE}/log/inspircd.log
${CHOWN} ${INSPIRCD_USER}:${INSPIRCD_GROUP} ${VARBASE}/log/inspircd.log
${CHMOD} 0640 ${VARBASE}/log/inspircd.log
.include "../../mk/bsd.pkg.mk"