pkgsrc/chat/unrealircd/Makefile

136 lines
5.1 KiB
Makefile
Raw Normal View History

2020-05-22 12:55:42 +02:00
# $NetBSD: Makefile,v 1.74 2020/05/22 10:55:59 adam Exp $
unrealircd: Update to 5.0.4 UnrealIRCd 5.0.4 Release Notes =============================== This new 5.0.4 version fixes quite a number of bugs. It contains only two small feature improvements. Fixes: * When placing a SHUN on an online user it was not always effective. * Channeldb was not properly restoring all channel modes, such as +P. * When upgrading UnrealIRCd it could sometimes crash the currently running IRC server (rare), or trigger a crash report on ```./unrealircd restart``` (quite common). * UnrealIRCd was giving up too easily on ident lookups. * Crash when unloading a module with moddata. * Crash if an authenticated server sends wrong information (rare). * Removing a TEMPSHUN did not work if the user was on another server. * SAJOIN to 0 (part all channels) resulted in a desync when used on remote users. * Forced nick change from services was not showing up if the user was not in any channels. Enhancements: * New option [set::hide-idle-time::policy](https://www.unrealircd.org/docs/Set_block#set%3A%3Ahide-idle-time) by which you can change usermode +I (hide idle time in WHOIS) from oper-only to settable by users. More options will follow in a future release. * In WHOIS you can now see if a user is currently (temp)shunned. This only works for locally connected users for technical reasons, so use ```/WHOIS Nick Nick``` to see it for remote users. Changes: * The oper notices and logging with regards to server linking have changed a little. They are more consistent and log more now. * When an IRCOp tries to oper up from an insecure connection we will now mention the https://www.unrealircd.org/docs/FAQ#oper-requires-tls page. This message is customizable through [set::plaintext-policy::oper-message](https://www.unrealircd.org/docs/Set_block#set::plaintext-policy). * The French HELPOP text was updated.
2020-05-18 12:10:00 +02:00
DISTNAME= unrealircd-5.0.4
2020-05-22 12:55:42 +02:00
PKGREVISION= 1
CATEGORIES= chat
unrealircd: Update to 5.0.2 Upgrade notes (seem like there are very few breaking changes): https://www.unrealircd.org/docs/Upgrading_from_4.x What's new in UnrealIRCd 5: * Channel history. You can now see the last couple of lines that have been said on channels when you JOIN. For this you need to set channel mode +H, eg: eg: /MODE #chan +H 15:1440 * More IRCv3 features. Additional details are communicated to clients which may help with displaying information. Implemented specs are: account-tag, message-ids, time, echo-message, labeled-response and BATCH. * Ban exceptions (/ELINE). You can now exempt users dynamically on IRC from *LINES, spamfilter, throttling, blacklist checking, connection floods, bypassing antirandom, etc. Just type /ELINE on IRC to see details. * *LINES and Spamfilters are remembered: All of these are saved to a file every few minutes and saved across reboots. This uses the new tkldb module (loaded by default). No need for services for that anymore. * Persistent channels are remembered: For channels which have mode +P set we now save all channel settings across reboots (topic, regular modes and +beI lists). This via the channeldb module (loaded by default). * Anti connect-flood measures. In the last few 4.2.x versions we introduced Connthrottle and reputation. In 5.x these modules are now loaded by default for increased security. * Easily restrict commands to fight drones. You can now disable any command or impose restrictions, such as: command can only be executed after being connected for XX seconds, or if you are identified to services, etc. See the example for how to restrict LIST, INVITE and messaging. * Module manager for managing 3rd party modules easily. Install and update modules with a single command. * Condition configuration. You can have condition configuration where you e.g. @define $IP "203.0.113.1" and can use $IP everywhere in the configuration file. Similarly, support for @if-blocks. This is especially useful for advanced users who like to use the same configuration file on multiple machines, usually with the help of remote includes. * Improved Channel Mode +L now kicks in for any rejected join, so not just for +l but also for +b, +i, +O, +z, +R and +k. If, for example, the channel is +L #insecure and also +z then, when an insecure user ties to join they will be redirected to #insecure. * Ban forwards. New extended ban ~f to forward users to the specified channel if the ban matches. Example: MODE #chan +b ~f:#badisp:*!*@*.isp.org * Improved WebSocket support. We already supported websockets, but now we support websocket type 'text', which is compatible with web IRC clients such as Kiwi IRC. * Code cleanups. The biggest effort of all went into cleaning up old code and making the code much more readable. This also means that UnrealIRCd 5 will not be able to link with really older servers or services, like UnrealIRCd 3.2.x. * Windows version is 64-bits. This should allow for increased address space and security. This also means UnrealIRCd 5 will not run on 32-bits Windows (should be rare nowadays, anyway)
2020-01-28 14:03:36 +01:00
MASTER_SITES= https://www.unrealircd.org/downloads/
2009-07-17 20:00:13 +02:00
MAINTAINER= pkgsrc-users@NetBSD.org
2017-09-06 11:02:59 +02:00
HOMEPAGE= https://www.unrealircd.org/
COMMENT= Advanced IRC server with IPv6 and SSL support
Update to latest release, 3.2.10.1. LICENSE=gnu-gpl-v2; USE_TOOLS+=gunzip; WRKSRC is now handled automatically. Let options.mk include bsd.prefs.mk instead of pulling it in again in Makefile. CONFIGURE_ARGS for hub and leaf no longer exist. Removed from PKG_OPTIONS. Specifying hostname in CONFIGURE_ARGS is also no longer available. Removed. ${IRCD_SHARE}/networks files are no longer provided. Removing from post-install and PLIST. From Changes: - Fix compilation issue when disabling stacked extbans. https://bugs.gentoo.org/389949 - Fix compilation issues with bundled tre and ./curlinstall-ed curl caused by over-generic regexes. Reported by warg. - Include CMDS=STARTTLS in ISUPPORT/numeric 005 to let clients discover STARTTLS support through VERSION, before or after registration (#4064). - Added patch from nenotopia to use more modern LUSERS numerics (#3967). - Fix small error in oper block documentation, reported by Stealth (#2318). - Config parser failed to check for invalid set::ssl options, reported and patch by fbi (#4035). - Tweak: send actual channel name and not user supplied channel in KICK, reported and patch by Stealth (#3298). - Services coders: Added support for ESVID. Instead of a number you can now store a string (of max NICKLEN size) as service stamp. - Show account name in /WHOIS, for ESVID-capable services packages, patch from nenotopia (#3966). - Added extended ban ~a:<account name> which matches users who are logged in to services with that account name. This works only on services that support ESVID. Patch from nenotopia (#3966). - Updated extended ban documentation in help.conf and unreal32docs: new bantype ~a, and some text about extended bans & invex (+I). - compile fix for just-checked-in patches. - extban ~a = also allowed for invex - Throw up an error if a password in the configuration file is too long (max 48 characters), reported by JasonTik, based on patch from WolfSage (#3223). - Enforce matching of unrealircd version and PACKAGE_VERSION macros (#4014). - Make default service stamp 0 (zero) again, instead of '*' which was introduced by ESVID changes a few days ago. This makes anope happy, and also means nothing will change in a non-ESVID scenario. - Fix misuse of stdarg.h macros when calling vsyslog() (#4065 by Jimini). - Ditch vsyslog() as it's only a waste of CPU, inspired by #4065. - Add CAP support. Currently implemented are: multi-prefix (NAMESX), and userhost-in-names (UHNAMES). Patch from nenotopia (#4018, #4066) - Fix issue with CAP & NOSPOOF. Patch from nenolod (#4077). - Advertise 'tls' (STARTTLS) capability in CAP. Patch from nenolod (#4081). - New user mode +I (IRCOp only) which hides idle times to other users, suggested and patch supplied by Nath & binki (#3953). - Added remove_oper_modes(), which works just like remove_oper_snomasks(), - Get rid of networks/ directory, and all references to it. Suggested by katsklaw and others (#4056). - Added doc/example.es.conf, translated by Severus_Snape. - Make the accept code check if the fd is within bounds instead of relying on OpenFiles to be correct. - Moved nospoof to config file, suggested by and patch from nenolod (#4078). - Even when 'M' was listed in set::oper-only-stats you could still do a '/STATS m'. Unlike other stats characters, case insensitivity was not checked for this one. Reported by and patch from Apocalypse (#4086). - Added patch from Adam for poll() support (#1245). update my own fd check code for poll support - Some more changes and fixes regarding poll patch: - make c-ares use 100% poll. and make sure we never deal with negative fds. - UnrealIRCd now supports poll() instead of select(). - Speed optimization: First, moved a large part of vsendto_prefix_one into vmakebuf_local_withprefix. Then use this new function - which creates the buffer-to-be-sent - at the top of functions like sendto_channel_butserv and sendto_common_channels and send the prepared buffer in the loop that comes after it. This means we only prepare the buffer once and then send it many times, rather than both building and sending it XYZ times. Benchmarking connect-join-quit of 10k clients: 100 users per channel: no noticeable speed improvement 1000 users per channel: 18% faster 10000 users in one channel: 50% faster As you can see, unfortunately, for a typical irc network there isn't much speed improvement. However, if you have a couple of 500+ user channels or get attacked by clones then you may see some improvement in speed and/or lower CPU usage. - Call m_cap_Init() when m_cap is loaded through commands.so. Reported by nenolod. - Fix for speed optimization a few lines up, was accidentally using ident username (which might have been 'unknown') instead of effective username. - Added support for SASL, patch from nenolod (#4079). - Fix crash in AUTHENTICATE (SASL commit from an hour or so ago). - Tweak SASL code to conform to current coding style. - Split up PROTOCTL line, since with the addition of ESVID we exceeded MAXPARA when using ZIP links. - Poll I/O engine: get_client_by_pollfd() may return -1 when there's a race condition. Don't abort, instead just skip those clients. - Fix win32 installer: apparently it sometimes complained about not having - the Visual C++ 2008 redistributable package installed when this was not true. - Fix Windows build. - Win32 compile fix (nenolod) - Print out a warning when we can't write to a log file. When booting this goes to the boot screen. When we are already booted it's sent to all IRCOps with a limit of max. 1 message per 5 minutes. - Refuse to boot when we can't write to any log file. - Remove old no-stealth configuration directive from documentation, reported by katsklaw, patch from warg (#4036). - Added 'away-notify' client capability, which informs the client of any AWAY state changes of users on the same channel. Patch from nenolod (#4097). - Add support for account-notify client capability (#4098). This capability can be used to request passive notifications for accountname changes. - If set::options::dont-resolve is enabled, then use only the IP information from a WEBIRC message, reported by Ismat (#4103). - Moved sendto_connectnotice, and thus the call to HOOKTYPE_LOCAL_CONNECT, so it gets called after the broadcast of NICK to other servers. - Fix bug caused by new I/O engine (both with and without USE_POLL): queued data on the receive queue (eg: due to fake lag) was not processed unless we got new data from the client. - Add support for server-enforced mode locks (MLOCK). This allows the IRCd to enforce MLOCKs that are set by services, which eliminates clashes between users setting modes and services enforcing it's mlock on channels. (#3055) - complete the previous patch (MLOCK).. mostly just bringing it up to date & code-style - Fixed another SASL crash bug. Always use HookAddEx, not HookAdd! Crash occured after the first quit of a user after a REHASH. - SASL now needs to be enabled explicitly by setting a set::sasl-server. - Changed numeric 307 (RPL_WHOISREGNICK) to 'is identified for this nick', - Win32 installer (SSL): Uncheck 'create certificate' checkbox when server.cert.pem exists, and check it if the file doesn't exist. - Win32 installer: Latest InnoSetup no longer supports Windows 95/98, so update Minversion to make the .iss compile. - Module coders: added HOOKTYPE_AWAY (sptr, away-reason). - Add optional oper::require-modes setting to the oper block. (#4008 by katsklaw) - Clarify that hiddenhost-prefix must be the same on linked servers for bans to function properly (#4090, patch from warg, reported in #4043 by maxb). - Add /SILENCE to HTML documentation (reported by Severus_Snape in #4072, patch from warg). - Show "Ping timeout: XYZ seconds" instead of just "Ping timeout". - a bigger scratch buffer makes me sleep at night ;) - Install server.*.pem files, patch from katsklaw (#3988). - The ./Config script will now ask whether to generate an SSL certificate when it does not exist (defaults to Yes), instead of always generating one. - Added missing Mod_Header to m_sasl.c - Remove old reference to networks/ directory from Windows installer - Disable sending of UHNAMES when HTM (High Traffic Mode) is ON, - Disable sending of UHNAMES when HTM (High Traffic Mode) is ON, - Add 'class' option to allow/deny channel so you can allow/deny users based on their class. Patch from fspijkerman (#4125). - Use poll() in the remote includes functions when USE_POLL is defined (#4091). - Fix bug where recursive includes would hang the IRCd, patch from binki with some minor modifications, reported by warg (#3919). - Upgraded to c-ares 1.9.1. Updated configure & other files. - various win32 fixes: - Disable USE_POLL on Windows, since it doesn't work with XP and has no advantage anyway. Reported by nenolod (#4129). - Various updates to makefile.win32 and .iss file, found during building new versions of zlib, openssl, and curl. - Added set::options::disable-cap, which can be used to disable the new CAP support (#4104). - Added auth method 'sslclientcertfp' which provides an alternative method to authenticate users with SSL client certificates based on SHA256 fingerprints. This can be used instead of the already existing 'sslclientcert' so you don't have to use an external file. One way to get the SHA256 fingerprint would be: openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint Suggested and patch supplied by Jobe (#4019). - Added documentation on the new sslclientcertfp - Moved documentation on authentication types to one place and refer to it from each section (oper::password, vhost::password, link::password-receive, etc). - Windows: fix MOTD file always showing a date of 1/1/1970, reported by maxarturo (#4102). - Removed unreal32docs.es.html (outdated since 2006-12-22), unreal32docs.gr.html (outdated since 2006-12-02), and unreal32docs.nl.html (outdated since 2009-01-18, possibly 2007-07-12). - Remove wircd.def, needs to be re-generated almost each build anyway.. - Use our own (v)snprintf if not available. - Use a more robust method of learning the server origin for a SASL agent. - Use a more robust method of learning the server origin for a SASL agent. Fixes crash reported by Adam. - Import unreal32docs Spanish translation by Karim Benzema. - In the Mercurial repository the Changes file no longer exists (except for a dummy file). You now need to run ./createchangelog to generate it. Of course in official releases the Changes file will be present and contain all details. - From now on, the Changes file is based on the history of the Mercurial repository. This means we no longer have to write text manually to the Changes file. This simple change helps a lot in future development because patches will no longer break when they are being ported from one branch to another. - Update ./createchangelog to make it only show changes on default branch. - If you are running the IRCd as root and use IRC_USER/IRC_GROUP then we now change ownership of the log file to that user/group so it can still write after the setuid(). Reported by asmadeus (#4152). - Fix duplicate user@host in away-notify and account-notify, reported by grawity (#4153). - '/rehash -global' did often not rehash all servers. Reported by Cronus (#4143) - allow channel: Permit multiple channel items in one block again, was broken by patch from #4125. - Update the documentation about set::dns::nameserver to reflect reality (that the setting is only used if c-ares can?t read /etc/resolv.conf). - Don't remove oper-modes such as +S from non-local clients. - Pull in poll(2) stuff before any other ircd include files. (#4155) - Windows: Fix strange linking bug. Outgoing connects from a Windows IRCd caused a garbled SERVER protocol message, causing 'cannot find server' errors and killing of users. Reported by Sunkat (#4183). - Custom modules: move EXLIBS= so shared libraries are always linked.
2013-07-14 17:42:34 +02:00
LICENSE= gnu-gpl-v2
CONFLICTS+= ircu-[0-9]*
GNU_CONFIGURE= YES
Update to latest release, 3.2.10.1. LICENSE=gnu-gpl-v2; USE_TOOLS+=gunzip; WRKSRC is now handled automatically. Let options.mk include bsd.prefs.mk instead of pulling it in again in Makefile. CONFIGURE_ARGS for hub and leaf no longer exist. Removed from PKG_OPTIONS. Specifying hostname in CONFIGURE_ARGS is also no longer available. Removed. ${IRCD_SHARE}/networks files are no longer provided. Removing from post-install and PLIST. From Changes: - Fix compilation issue when disabling stacked extbans. https://bugs.gentoo.org/389949 - Fix compilation issues with bundled tre and ./curlinstall-ed curl caused by over-generic regexes. Reported by warg. - Include CMDS=STARTTLS in ISUPPORT/numeric 005 to let clients discover STARTTLS support through VERSION, before or after registration (#4064). - Added patch from nenotopia to use more modern LUSERS numerics (#3967). - Fix small error in oper block documentation, reported by Stealth (#2318). - Config parser failed to check for invalid set::ssl options, reported and patch by fbi (#4035). - Tweak: send actual channel name and not user supplied channel in KICK, reported and patch by Stealth (#3298). - Services coders: Added support for ESVID. Instead of a number you can now store a string (of max NICKLEN size) as service stamp. - Show account name in /WHOIS, for ESVID-capable services packages, patch from nenotopia (#3966). - Added extended ban ~a:<account name> which matches users who are logged in to services with that account name. This works only on services that support ESVID. Patch from nenotopia (#3966). - Updated extended ban documentation in help.conf and unreal32docs: new bantype ~a, and some text about extended bans & invex (+I). - compile fix for just-checked-in patches. - extban ~a = also allowed for invex - Throw up an error if a password in the configuration file is too long (max 48 characters), reported by JasonTik, based on patch from WolfSage (#3223). - Enforce matching of unrealircd version and PACKAGE_VERSION macros (#4014). - Make default service stamp 0 (zero) again, instead of '*' which was introduced by ESVID changes a few days ago. This makes anope happy, and also means nothing will change in a non-ESVID scenario. - Fix misuse of stdarg.h macros when calling vsyslog() (#4065 by Jimini). - Ditch vsyslog() as it's only a waste of CPU, inspired by #4065. - Add CAP support. Currently implemented are: multi-prefix (NAMESX), and userhost-in-names (UHNAMES). Patch from nenotopia (#4018, #4066) - Fix issue with CAP & NOSPOOF. Patch from nenolod (#4077). - Advertise 'tls' (STARTTLS) capability in CAP. Patch from nenolod (#4081). - New user mode +I (IRCOp only) which hides idle times to other users, suggested and patch supplied by Nath & binki (#3953). - Added remove_oper_modes(), which works just like remove_oper_snomasks(), - Get rid of networks/ directory, and all references to it. Suggested by katsklaw and others (#4056). - Added doc/example.es.conf, translated by Severus_Snape. - Make the accept code check if the fd is within bounds instead of relying on OpenFiles to be correct. - Moved nospoof to config file, suggested by and patch from nenolod (#4078). - Even when 'M' was listed in set::oper-only-stats you could still do a '/STATS m'. Unlike other stats characters, case insensitivity was not checked for this one. Reported by and patch from Apocalypse (#4086). - Added patch from Adam for poll() support (#1245). update my own fd check code for poll support - Some more changes and fixes regarding poll patch: - make c-ares use 100% poll. and make sure we never deal with negative fds. - UnrealIRCd now supports poll() instead of select(). - Speed optimization: First, moved a large part of vsendto_prefix_one into vmakebuf_local_withprefix. Then use this new function - which creates the buffer-to-be-sent - at the top of functions like sendto_channel_butserv and sendto_common_channels and send the prepared buffer in the loop that comes after it. This means we only prepare the buffer once and then send it many times, rather than both building and sending it XYZ times. Benchmarking connect-join-quit of 10k clients: 100 users per channel: no noticeable speed improvement 1000 users per channel: 18% faster 10000 users in one channel: 50% faster As you can see, unfortunately, for a typical irc network there isn't much speed improvement. However, if you have a couple of 500+ user channels or get attacked by clones then you may see some improvement in speed and/or lower CPU usage. - Call m_cap_Init() when m_cap is loaded through commands.so. Reported by nenolod. - Fix for speed optimization a few lines up, was accidentally using ident username (which might have been 'unknown') instead of effective username. - Added support for SASL, patch from nenolod (#4079). - Fix crash in AUTHENTICATE (SASL commit from an hour or so ago). - Tweak SASL code to conform to current coding style. - Split up PROTOCTL line, since with the addition of ESVID we exceeded MAXPARA when using ZIP links. - Poll I/O engine: get_client_by_pollfd() may return -1 when there's a race condition. Don't abort, instead just skip those clients. - Fix win32 installer: apparently it sometimes complained about not having - the Visual C++ 2008 redistributable package installed when this was not true. - Fix Windows build. - Win32 compile fix (nenolod) - Print out a warning when we can't write to a log file. When booting this goes to the boot screen. When we are already booted it's sent to all IRCOps with a limit of max. 1 message per 5 minutes. - Refuse to boot when we can't write to any log file. - Remove old no-stealth configuration directive from documentation, reported by katsklaw, patch from warg (#4036). - Added 'away-notify' client capability, which informs the client of any AWAY state changes of users on the same channel. Patch from nenolod (#4097). - Add support for account-notify client capability (#4098). This capability can be used to request passive notifications for accountname changes. - If set::options::dont-resolve is enabled, then use only the IP information from a WEBIRC message, reported by Ismat (#4103). - Moved sendto_connectnotice, and thus the call to HOOKTYPE_LOCAL_CONNECT, so it gets called after the broadcast of NICK to other servers. - Fix bug caused by new I/O engine (both with and without USE_POLL): queued data on the receive queue (eg: due to fake lag) was not processed unless we got new data from the client. - Add support for server-enforced mode locks (MLOCK). This allows the IRCd to enforce MLOCKs that are set by services, which eliminates clashes between users setting modes and services enforcing it's mlock on channels. (#3055) - complete the previous patch (MLOCK).. mostly just bringing it up to date & code-style - Fixed another SASL crash bug. Always use HookAddEx, not HookAdd! Crash occured after the first quit of a user after a REHASH. - SASL now needs to be enabled explicitly by setting a set::sasl-server. - Changed numeric 307 (RPL_WHOISREGNICK) to 'is identified for this nick', - Win32 installer (SSL): Uncheck 'create certificate' checkbox when server.cert.pem exists, and check it if the file doesn't exist. - Win32 installer: Latest InnoSetup no longer supports Windows 95/98, so update Minversion to make the .iss compile. - Module coders: added HOOKTYPE_AWAY (sptr, away-reason). - Add optional oper::require-modes setting to the oper block. (#4008 by katsklaw) - Clarify that hiddenhost-prefix must be the same on linked servers for bans to function properly (#4090, patch from warg, reported in #4043 by maxb). - Add /SILENCE to HTML documentation (reported by Severus_Snape in #4072, patch from warg). - Show "Ping timeout: XYZ seconds" instead of just "Ping timeout". - a bigger scratch buffer makes me sleep at night ;) - Install server.*.pem files, patch from katsklaw (#3988). - The ./Config script will now ask whether to generate an SSL certificate when it does not exist (defaults to Yes), instead of always generating one. - Added missing Mod_Header to m_sasl.c - Remove old reference to networks/ directory from Windows installer - Disable sending of UHNAMES when HTM (High Traffic Mode) is ON, - Disable sending of UHNAMES when HTM (High Traffic Mode) is ON, - Add 'class' option to allow/deny channel so you can allow/deny users based on their class. Patch from fspijkerman (#4125). - Use poll() in the remote includes functions when USE_POLL is defined (#4091). - Fix bug where recursive includes would hang the IRCd, patch from binki with some minor modifications, reported by warg (#3919). - Upgraded to c-ares 1.9.1. Updated configure & other files. - various win32 fixes: - Disable USE_POLL on Windows, since it doesn't work with XP and has no advantage anyway. Reported by nenolod (#4129). - Various updates to makefile.win32 and .iss file, found during building new versions of zlib, openssl, and curl. - Added set::options::disable-cap, which can be used to disable the new CAP support (#4104). - Added auth method 'sslclientcertfp' which provides an alternative method to authenticate users with SSL client certificates based on SHA256 fingerprints. This can be used instead of the already existing 'sslclientcert' so you don't have to use an external file. One way to get the SHA256 fingerprint would be: openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint Suggested and patch supplied by Jobe (#4019). - Added documentation on the new sslclientcertfp - Moved documentation on authentication types to one place and refer to it from each section (oper::password, vhost::password, link::password-receive, etc). - Windows: fix MOTD file always showing a date of 1/1/1970, reported by maxarturo (#4102). - Removed unreal32docs.es.html (outdated since 2006-12-22), unreal32docs.gr.html (outdated since 2006-12-02), and unreal32docs.nl.html (outdated since 2009-01-18, possibly 2007-07-12). - Remove wircd.def, needs to be re-generated almost each build anyway.. - Use our own (v)snprintf if not available. - Use a more robust method of learning the server origin for a SASL agent. - Use a more robust method of learning the server origin for a SASL agent. Fixes crash reported by Adam. - Import unreal32docs Spanish translation by Karim Benzema. - In the Mercurial repository the Changes file no longer exists (except for a dummy file). You now need to run ./createchangelog to generate it. Of course in official releases the Changes file will be present and contain all details. - From now on, the Changes file is based on the history of the Mercurial repository. This means we no longer have to write text manually to the Changes file. This simple change helps a lot in future development because patches will no longer break when they are being ported from one branch to another. - Update ./createchangelog to make it only show changes on default branch. - If you are running the IRCd as root and use IRC_USER/IRC_GROUP then we now change ownership of the log file to that user/group so it can still write after the setuid(). Reported by asmadeus (#4152). - Fix duplicate user@host in away-notify and account-notify, reported by grawity (#4153). - '/rehash -global' did often not rehash all servers. Reported by Cronus (#4143) - allow channel: Permit multiple channel items in one block again, was broken by patch from #4125. - Update the documentation about set::dns::nameserver to reflect reality (that the setting is only used if c-ares can?t read /etc/resolv.conf). - Don't remove oper-modes such as +S from non-local clients. - Pull in poll(2) stuff before any other ircd include files. (#4155) - Windows: Fix strange linking bug. Outgoing connects from a Windows IRCd caused a garbled SERVER protocol message, causing 'cannot find server' errors and killing of users. Reported by Sunkat (#4183). - Custom modules: move EXLIBS= so shared libraries are always linked.
2013-07-14 17:42:34 +02:00
USE_TOOLS+= gmake gunzip pkg-config
Update to latest release, 3.2.10.1. LICENSE=gnu-gpl-v2; USE_TOOLS+=gunzip; WRKSRC is now handled automatically. Let options.mk include bsd.prefs.mk instead of pulling it in again in Makefile. CONFIGURE_ARGS for hub and leaf no longer exist. Removed from PKG_OPTIONS. Specifying hostname in CONFIGURE_ARGS is also no longer available. Removed. ${IRCD_SHARE}/networks files are no longer provided. Removing from post-install and PLIST. From Changes: - Fix compilation issue when disabling stacked extbans. https://bugs.gentoo.org/389949 - Fix compilation issues with bundled tre and ./curlinstall-ed curl caused by over-generic regexes. Reported by warg. - Include CMDS=STARTTLS in ISUPPORT/numeric 005 to let clients discover STARTTLS support through VERSION, before or after registration (#4064). - Added patch from nenotopia to use more modern LUSERS numerics (#3967). - Fix small error in oper block documentation, reported by Stealth (#2318). - Config parser failed to check for invalid set::ssl options, reported and patch by fbi (#4035). - Tweak: send actual channel name and not user supplied channel in KICK, reported and patch by Stealth (#3298). - Services coders: Added support for ESVID. Instead of a number you can now store a string (of max NICKLEN size) as service stamp. - Show account name in /WHOIS, for ESVID-capable services packages, patch from nenotopia (#3966). - Added extended ban ~a:<account name> which matches users who are logged in to services with that account name. This works only on services that support ESVID. Patch from nenotopia (#3966). - Updated extended ban documentation in help.conf and unreal32docs: new bantype ~a, and some text about extended bans & invex (+I). - compile fix for just-checked-in patches. - extban ~a = also allowed for invex - Throw up an error if a password in the configuration file is too long (max 48 characters), reported by JasonTik, based on patch from WolfSage (#3223). - Enforce matching of unrealircd version and PACKAGE_VERSION macros (#4014). - Make default service stamp 0 (zero) again, instead of '*' which was introduced by ESVID changes a few days ago. This makes anope happy, and also means nothing will change in a non-ESVID scenario. - Fix misuse of stdarg.h macros when calling vsyslog() (#4065 by Jimini). - Ditch vsyslog() as it's only a waste of CPU, inspired by #4065. - Add CAP support. Currently implemented are: multi-prefix (NAMESX), and userhost-in-names (UHNAMES). Patch from nenotopia (#4018, #4066) - Fix issue with CAP & NOSPOOF. Patch from nenolod (#4077). - Advertise 'tls' (STARTTLS) capability in CAP. Patch from nenolod (#4081). - New user mode +I (IRCOp only) which hides idle times to other users, suggested and patch supplied by Nath & binki (#3953). - Added remove_oper_modes(), which works just like remove_oper_snomasks(), - Get rid of networks/ directory, and all references to it. Suggested by katsklaw and others (#4056). - Added doc/example.es.conf, translated by Severus_Snape. - Make the accept code check if the fd is within bounds instead of relying on OpenFiles to be correct. - Moved nospoof to config file, suggested by and patch from nenolod (#4078). - Even when 'M' was listed in set::oper-only-stats you could still do a '/STATS m'. Unlike other stats characters, case insensitivity was not checked for this one. Reported by and patch from Apocalypse (#4086). - Added patch from Adam for poll() support (#1245). update my own fd check code for poll support - Some more changes and fixes regarding poll patch: - make c-ares use 100% poll. and make sure we never deal with negative fds. - UnrealIRCd now supports poll() instead of select(). - Speed optimization: First, moved a large part of vsendto_prefix_one into vmakebuf_local_withprefix. Then use this new function - which creates the buffer-to-be-sent - at the top of functions like sendto_channel_butserv and sendto_common_channels and send the prepared buffer in the loop that comes after it. This means we only prepare the buffer once and then send it many times, rather than both building and sending it XYZ times. Benchmarking connect-join-quit of 10k clients: 100 users per channel: no noticeable speed improvement 1000 users per channel: 18% faster 10000 users in one channel: 50% faster As you can see, unfortunately, for a typical irc network there isn't much speed improvement. However, if you have a couple of 500+ user channels or get attacked by clones then you may see some improvement in speed and/or lower CPU usage. - Call m_cap_Init() when m_cap is loaded through commands.so. Reported by nenolod. - Fix for speed optimization a few lines up, was accidentally using ident username (which might have been 'unknown') instead of effective username. - Added support for SASL, patch from nenolod (#4079). - Fix crash in AUTHENTICATE (SASL commit from an hour or so ago). - Tweak SASL code to conform to current coding style. - Split up PROTOCTL line, since with the addition of ESVID we exceeded MAXPARA when using ZIP links. - Poll I/O engine: get_client_by_pollfd() may return -1 when there's a race condition. Don't abort, instead just skip those clients. - Fix win32 installer: apparently it sometimes complained about not having - the Visual C++ 2008 redistributable package installed when this was not true. - Fix Windows build. - Win32 compile fix (nenolod) - Print out a warning when we can't write to a log file. When booting this goes to the boot screen. When we are already booted it's sent to all IRCOps with a limit of max. 1 message per 5 minutes. - Refuse to boot when we can't write to any log file. - Remove old no-stealth configuration directive from documentation, reported by katsklaw, patch from warg (#4036). - Added 'away-notify' client capability, which informs the client of any AWAY state changes of users on the same channel. Patch from nenolod (#4097). - Add support for account-notify client capability (#4098). This capability can be used to request passive notifications for accountname changes. - If set::options::dont-resolve is enabled, then use only the IP information from a WEBIRC message, reported by Ismat (#4103). - Moved sendto_connectnotice, and thus the call to HOOKTYPE_LOCAL_CONNECT, so it gets called after the broadcast of NICK to other servers. - Fix bug caused by new I/O engine (both with and without USE_POLL): queued data on the receive queue (eg: due to fake lag) was not processed unless we got new data from the client. - Add support for server-enforced mode locks (MLOCK). This allows the IRCd to enforce MLOCKs that are set by services, which eliminates clashes between users setting modes and services enforcing it's mlock on channels. (#3055) - complete the previous patch (MLOCK).. mostly just bringing it up to date & code-style - Fixed another SASL crash bug. Always use HookAddEx, not HookAdd! Crash occured after the first quit of a user after a REHASH. - SASL now needs to be enabled explicitly by setting a set::sasl-server. - Changed numeric 307 (RPL_WHOISREGNICK) to 'is identified for this nick', - Win32 installer (SSL): Uncheck 'create certificate' checkbox when server.cert.pem exists, and check it if the file doesn't exist. - Win32 installer: Latest InnoSetup no longer supports Windows 95/98, so update Minversion to make the .iss compile. - Module coders: added HOOKTYPE_AWAY (sptr, away-reason). - Add optional oper::require-modes setting to the oper block. (#4008 by katsklaw) - Clarify that hiddenhost-prefix must be the same on linked servers for bans to function properly (#4090, patch from warg, reported in #4043 by maxb). - Add /SILENCE to HTML documentation (reported by Severus_Snape in #4072, patch from warg). - Show "Ping timeout: XYZ seconds" instead of just "Ping timeout". - a bigger scratch buffer makes me sleep at night ;) - Install server.*.pem files, patch from katsklaw (#3988). - The ./Config script will now ask whether to generate an SSL certificate when it does not exist (defaults to Yes), instead of always generating one. - Added missing Mod_Header to m_sasl.c - Remove old reference to networks/ directory from Windows installer - Disable sending of UHNAMES when HTM (High Traffic Mode) is ON, - Disable sending of UHNAMES when HTM (High Traffic Mode) is ON, - Add 'class' option to allow/deny channel so you can allow/deny users based on their class. Patch from fspijkerman (#4125). - Use poll() in the remote includes functions when USE_POLL is defined (#4091). - Fix bug where recursive includes would hang the IRCd, patch from binki with some minor modifications, reported by warg (#3919). - Upgraded to c-ares 1.9.1. Updated configure & other files. - various win32 fixes: - Disable USE_POLL on Windows, since it doesn't work with XP and has no advantage anyway. Reported by nenolod (#4129). - Various updates to makefile.win32 and .iss file, found during building new versions of zlib, openssl, and curl. - Added set::options::disable-cap, which can be used to disable the new CAP support (#4104). - Added auth method 'sslclientcertfp' which provides an alternative method to authenticate users with SSL client certificates based on SHA256 fingerprints. This can be used instead of the already existing 'sslclientcert' so you don't have to use an external file. One way to get the SHA256 fingerprint would be: openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint Suggested and patch supplied by Jobe (#4019). - Added documentation on the new sslclientcertfp - Moved documentation on authentication types to one place and refer to it from each section (oper::password, vhost::password, link::password-receive, etc). - Windows: fix MOTD file always showing a date of 1/1/1970, reported by maxarturo (#4102). - Removed unreal32docs.es.html (outdated since 2006-12-22), unreal32docs.gr.html (outdated since 2006-12-02), and unreal32docs.nl.html (outdated since 2009-01-18, possibly 2007-07-12). - Remove wircd.def, needs to be re-generated almost each build anyway.. - Use our own (v)snprintf if not available. - Use a more robust method of learning the server origin for a SASL agent. - Use a more robust method of learning the server origin for a SASL agent. Fixes crash reported by Adam. - Import unreal32docs Spanish translation by Karim Benzema. - In the Mercurial repository the Changes file no longer exists (except for a dummy file). You now need to run ./createchangelog to generate it. Of course in official releases the Changes file will be present and contain all details. - From now on, the Changes file is based on the history of the Mercurial repository. This means we no longer have to write text manually to the Changes file. This simple change helps a lot in future development because patches will no longer break when they are being ported from one branch to another. - Update ./createchangelog to make it only show changes on default branch. - If you are running the IRCd as root and use IRC_USER/IRC_GROUP then we now change ownership of the log file to that user/group so it can still write after the setuid(). Reported by asmadeus (#4152). - Fix duplicate user@host in away-notify and account-notify, reported by grawity (#4153). - '/rehash -global' did often not rehash all servers. Reported by Cronus (#4143) - allow channel: Permit multiple channel items in one block again, was broken by patch from #4125. - Update the documentation about set::dns::nameserver to reflect reality (that the setting is only used if c-ares can?t read /etc/resolv.conf). - Don't remove oper-modes such as +S from non-local clients. - Pull in poll(2) stuff before any other ircd include files. (#4155) - Windows: Fix strange linking bug. Outgoing connects from a Windows IRCd caused a garbled SERVER protocol message, causing 'cannot find server' errors and killing of users. Reported by Sunkat (#4183). - Custom modules: move EXLIBS= so shared libraries are always linked.
2013-07-14 17:42:34 +02:00
.include "options.mk"
SUBST_CLASSES+= argon2
SUBST_STAGE.argon2= pre-configure
SUBST_MESSAGE.argon2= Fixing Argon2 version number
SUBST_FILES.argon2+= configure
SUBST_SED.argon2+= -e 's|0~20161029|ZERO|g'
PKG_SYSCONFSUBDIR= unrealircd
# Quoth ./configure,
# "noone knows if disabling dynamic linking actually does anything or not".
# Also needed to configure non-interactively.
CONFIGURE_ARGS+= --enable-dynamic-linking
CONFIGURE_ARGS+= --enable-ssl=${BUILDLINK_PREFIX.openssl}
CONFIGURE_ARGS+= --with-system-cares
CONFIGURE_ARGS+= --with-system-pcre2
CONFIGURE_ARGS+= --with-permissions=0660
CONFIGURE_ARGS+= --with-datadir=${PREFIX}/unrealircd/data
CONFIGURE_ARGS+= --with-cachedir=${PREFIX}/unrealircd/cache
CONFIGURE_ARGS+= --with-logdir=${PREFIX}/unrealircd/logs
CONFIGURE_ARGS+= --with-tmpdir=${PREFIX}/unrealircd/tmp
CONFIGURE_ARGS+= --with-pidfile=${PREFIX}/unrealircd/ircd.pid
CONFIGURE_ARGS+= --with-scriptdir=${PREFIX}/unrealircd/scripts
CONFIGURE_ARGS+= --with-bindir=${PREFIX}/bin
CONFIGURE_ARGS+= --with-modulesdir=${PREFIX}/lib/unrealircd/modules
CONFIGURE_ARGS+= --with-docdir=${PREFIX}/share/doc/unrealircd
CONFIGURE_ARGS+= --with-confdir=${PKG_SYSCONFDIR}
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/data ${UIRCD_USER} ${UIRCD_GROUP} 0700
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/cache ${UIRCD_USER} ${UIRCD_GROUP} 0700
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/logs ${UIRCD_USER} ${UIRCD_GROUP} 0700
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/tmp ${UIRCD_USER} ${UIRCD_GROUP} 0700
CONFIGURE_ARGS+= --with-nick-history=${UIRCD_NICKHIST:Q}
CONFIGURE_ENV.SunOS+= ac_cv_func_epoll_create=no
CONFIGURE_ENV.SunOS+= ac_cv_func_epoll_ctl=no
CONFIGURE_ENV.SunOS+= ac_cv_func_epoll_wait=no
2015-11-07 23:52:04 +01:00
IRCD_EG= ${PREFIX}/share/examples/unrealircd
unrealircd: Update to 5.0.2 Upgrade notes (seem like there are very few breaking changes): https://www.unrealircd.org/docs/Upgrading_from_4.x What's new in UnrealIRCd 5: * Channel history. You can now see the last couple of lines that have been said on channels when you JOIN. For this you need to set channel mode +H, eg: eg: /MODE #chan +H 15:1440 * More IRCv3 features. Additional details are communicated to clients which may help with displaying information. Implemented specs are: account-tag, message-ids, time, echo-message, labeled-response and BATCH. * Ban exceptions (/ELINE). You can now exempt users dynamically on IRC from *LINES, spamfilter, throttling, blacklist checking, connection floods, bypassing antirandom, etc. Just type /ELINE on IRC to see details. * *LINES and Spamfilters are remembered: All of these are saved to a file every few minutes and saved across reboots. This uses the new tkldb module (loaded by default). No need for services for that anymore. * Persistent channels are remembered: For channels which have mode +P set we now save all channel settings across reboots (topic, regular modes and +beI lists). This via the channeldb module (loaded by default). * Anti connect-flood measures. In the last few 4.2.x versions we introduced Connthrottle and reputation. In 5.x these modules are now loaded by default for increased security. * Easily restrict commands to fight drones. You can now disable any command or impose restrictions, such as: command can only be executed after being connected for XX seconds, or if you are identified to services, etc. See the example for how to restrict LIST, INVITE and messaging. * Module manager for managing 3rd party modules easily. Install and update modules with a single command. * Condition configuration. You can have condition configuration where you e.g. @define $IP "203.0.113.1" and can use $IP everywhere in the configuration file. Similarly, support for @if-blocks. This is especially useful for advanced users who like to use the same configuration file on multiple machines, usually with the help of remote includes. * Improved Channel Mode +L now kicks in for any rejected join, so not just for +l but also for +b, +i, +O, +z, +R and +k. If, for example, the channel is +L #insecure and also +z then, when an insecure user ties to join they will be redirected to #insecure. * Ban forwards. New extended ban ~f to forward users to the specified channel if the ban matches. Example: MODE #chan +b ~f:#badisp:*!*@*.isp.org * Improved WebSocket support. We already supported websockets, but now we support websocket type 'text', which is compatible with web IRC clients such as Kiwi IRC. * Code cleanups. The biggest effort of all went into cleaning up old code and making the code much more readable. This also means that UnrealIRCd 5 will not be able to link with really older servers or services, like UnrealIRCd 3.2.x. * Windows version is 64-bits. This should allow for increased address space and security. This also means UnrealIRCd 5 will not run on 32-bits Windows (should be rare nowadays, anyway)
2020-01-28 14:03:36 +01:00
BUILD_DEFS+= UIRCD_NICKHIST VARBASE
PTHREAD_OPTS+= require
2015-11-07 23:52:04 +01:00
.include "../../mk/bsd.prefs.mk"
# The defaults for most of these here are from the standard Conf
# script supplied with the UnrealIRCd package.
#
UIRCD_NICKHIST?= 2000
UIRCD_USER?= uircd
UIRCD_GROUP?= uircd
PKG_USERS_VARS+= UIRCD_USER
PKG_GROUPS_VARS+= UIRCD_GROUP
2015-11-07 23:52:04 +01:00
PKG_GROUPS= ${UIRCD_GROUP}
PKG_USERS= ${UIRCD_USER}:${UIRCD_GROUP}
PKG_GECOS.${UIRCD_USER}= UnrealIRCD user
RCD_SCRIPTS= unrealircd
2015-11-07 23:52:04 +01:00
FILES_SUBST+= UIRCD_USER=${UIRCD_USER}
FILES_SUBST+= UIRCD_GROUP=${UIRCD_GROUP}
CFLAGS.Darwin+= -DUSE_LOCALE
2012-02-16 17:04:52 +01:00
CFLAGS.SunOS+= -DUSE_LOCALE
INSTALLATION_DIRS+= bin
INSTALLATION_DIRS+= unrealircd/scripts
INSTALLATION_DIRS+= lib/unrealircd/modules
INSTALLATION_DIRS+= lib/unrealircd/modules/usermodes
INSTALLATION_DIRS+= lib/unrealircd/modules/chanmodes
INSTALLATION_DIRS+= lib/unrealircd/modules/snomasks
INSTALLATION_DIRS+= lib/unrealircd/modules/extbans
INSTALLATION_DIRS+= lib/unrealircd/modules/third
INSTALLATION_DIRS+= share/doc/unrealircd
INSTALLATION_DIRS+= ${IRCD_EG}
INSTALLATION_DIRS+= ${IRCD_EG}/aliases
INSTALLATION_DIRS+= ${IRCD_EG}/help
unrealircd: Update to 5.0.2 Upgrade notes (seem like there are very few breaking changes): https://www.unrealircd.org/docs/Upgrading_from_4.x What's new in UnrealIRCd 5: * Channel history. You can now see the last couple of lines that have been said on channels when you JOIN. For this you need to set channel mode +H, eg: eg: /MODE #chan +H 15:1440 * More IRCv3 features. Additional details are communicated to clients which may help with displaying information. Implemented specs are: account-tag, message-ids, time, echo-message, labeled-response and BATCH. * Ban exceptions (/ELINE). You can now exempt users dynamically on IRC from *LINES, spamfilter, throttling, blacklist checking, connection floods, bypassing antirandom, etc. Just type /ELINE on IRC to see details. * *LINES and Spamfilters are remembered: All of these are saved to a file every few minutes and saved across reboots. This uses the new tkldb module (loaded by default). No need for services for that anymore. * Persistent channels are remembered: For channels which have mode +P set we now save all channel settings across reboots (topic, regular modes and +beI lists). This via the channeldb module (loaded by default). * Anti connect-flood measures. In the last few 4.2.x versions we introduced Connthrottle and reputation. In 5.x these modules are now loaded by default for increased security. * Easily restrict commands to fight drones. You can now disable any command or impose restrictions, such as: command can only be executed after being connected for XX seconds, or if you are identified to services, etc. See the example for how to restrict LIST, INVITE and messaging. * Module manager for managing 3rd party modules easily. Install and update modules with a single command. * Condition configuration. You can have condition configuration where you e.g. @define $IP "203.0.113.1" and can use $IP everywhere in the configuration file. Similarly, support for @if-blocks. This is especially useful for advanced users who like to use the same configuration file on multiple machines, usually with the help of remote includes. * Improved Channel Mode +L now kicks in for any rejected join, so not just for +l but also for +b, +i, +O, +z, +R and +k. If, for example, the channel is +L #insecure and also +z then, when an insecure user ties to join they will be redirected to #insecure. * Ban forwards. New extended ban ~f to forward users to the specified channel if the ban matches. Example: MODE #chan +b ~f:#badisp:*!*@*.isp.org * Improved WebSocket support. We already supported websockets, but now we support websocket type 'text', which is compatible with web IRC clients such as Kiwi IRC. * Code cleanups. The biggest effort of all went into cleaning up old code and making the code much more readable. This also means that UnrealIRCd 5 will not be able to link with really older servers or services, like UnrealIRCd 3.2.x. * Windows version is 64-bits. This should allow for increased address space and security. This also means UnrealIRCd 5 will not run on 32-bits Windows (should be rare nowadays, anyway)
2020-01-28 14:03:36 +01:00
INSTALLATION_DIRS+= ${IRCD_EG}/tls
OWN_DIRS_PERMS+= unrealircd/tmp ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= unrealircd/logs ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= unrealircd/data ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= unrealircd/cache ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= ${PKG_SYSCONFDIR} ${UIRCD_USER} ${UIRCD_GROUP} 0755
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/src/ircd ${DESTDIR}${PREFIX}/bin/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/Authors ${DESTDIR}${PREFIX}/share/doc/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/coding-guidelines ${DESTDIR}${PREFIX}/share/doc/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/tao.of.irc ${DESTDIR}${PREFIX}/share/doc/unrealircd
unrealircd: Update to 5.0.2 Upgrade notes (seem like there are very few breaking changes): https://www.unrealircd.org/docs/Upgrading_from_4.x What's new in UnrealIRCd 5: * Channel history. You can now see the last couple of lines that have been said on channels when you JOIN. For this you need to set channel mode +H, eg: eg: /MODE #chan +H 15:1440 * More IRCv3 features. Additional details are communicated to clients which may help with displaying information. Implemented specs are: account-tag, message-ids, time, echo-message, labeled-response and BATCH. * Ban exceptions (/ELINE). You can now exempt users dynamically on IRC from *LINES, spamfilter, throttling, blacklist checking, connection floods, bypassing antirandom, etc. Just type /ELINE on IRC to see details. * *LINES and Spamfilters are remembered: All of these are saved to a file every few minutes and saved across reboots. This uses the new tkldb module (loaded by default). No need for services for that anymore. * Persistent channels are remembered: For channels which have mode +P set we now save all channel settings across reboots (topic, regular modes and +beI lists). This via the channeldb module (loaded by default). * Anti connect-flood measures. In the last few 4.2.x versions we introduced Connthrottle and reputation. In 5.x these modules are now loaded by default for increased security. * Easily restrict commands to fight drones. You can now disable any command or impose restrictions, such as: command can only be executed after being connected for XX seconds, or if you are identified to services, etc. See the example for how to restrict LIST, INVITE and messaging. * Module manager for managing 3rd party modules easily. Install and update modules with a single command. * Condition configuration. You can have condition configuration where you e.g. @define $IP "203.0.113.1" and can use $IP everywhere in the configuration file. Similarly, support for @if-blocks. This is especially useful for advanced users who like to use the same configuration file on multiple machines, usually with the help of remote includes. * Improved Channel Mode +L now kicks in for any rejected join, so not just for +l but also for +b, +i, +O, +z, +R and +k. If, for example, the channel is +L #insecure and also +z then, when an insecure user ties to join they will be redirected to #insecure. * Ban forwards. New extended ban ~f to forward users to the specified channel if the ban matches. Example: MODE #chan +b ~f:#badisp:*!*@*.isp.org * Improved WebSocket support. We already supported websockets, but now we support websocket type 'text', which is compatible with web IRC clients such as Kiwi IRC. * Code cleanups. The biggest effort of all went into cleaning up old code and making the code much more readable. This also means that UnrealIRCd 5 will not be able to link with really older servers or services, like UnrealIRCd 3.2.x. * Windows version is 64-bits. This should allow for increased address space and security. This also means UnrealIRCd 5 will not run on 32-bits Windows (should be rare nowadays, anyway)
2020-01-28 14:03:36 +01:00
${INSTALL_DATA} ${WRKSRC}/doc/conf/*.conf ${DESTDIR}${IRCD_EG}
${INSTALL_DATA} ${WRKSRC}/doc/conf/examples/*.conf ${DESTDIR}${IRCD_EG}
${INSTALL_DATA} ${WRKSRC}/doc/conf/aliases/*.conf ${DESTDIR}${IRCD_EG}/aliases
${INSTALL_DATA} ${WRKSRC}/doc/conf/help/*.conf ${DESTDIR}${IRCD_EG}/help
unrealircd: Update to 5.0.2 Upgrade notes (seem like there are very few breaking changes): https://www.unrealircd.org/docs/Upgrading_from_4.x What's new in UnrealIRCd 5: * Channel history. You can now see the last couple of lines that have been said on channels when you JOIN. For this you need to set channel mode +H, eg: eg: /MODE #chan +H 15:1440 * More IRCv3 features. Additional details are communicated to clients which may help with displaying information. Implemented specs are: account-tag, message-ids, time, echo-message, labeled-response and BATCH. * Ban exceptions (/ELINE). You can now exempt users dynamically on IRC from *LINES, spamfilter, throttling, blacklist checking, connection floods, bypassing antirandom, etc. Just type /ELINE on IRC to see details. * *LINES and Spamfilters are remembered: All of these are saved to a file every few minutes and saved across reboots. This uses the new tkldb module (loaded by default). No need for services for that anymore. * Persistent channels are remembered: For channels which have mode +P set we now save all channel settings across reboots (topic, regular modes and +beI lists). This via the channeldb module (loaded by default). * Anti connect-flood measures. In the last few 4.2.x versions we introduced Connthrottle and reputation. In 5.x these modules are now loaded by default for increased security. * Easily restrict commands to fight drones. You can now disable any command or impose restrictions, such as: command can only be executed after being connected for XX seconds, or if you are identified to services, etc. See the example for how to restrict LIST, INVITE and messaging. * Module manager for managing 3rd party modules easily. Install and update modules with a single command. * Condition configuration. You can have condition configuration where you e.g. @define $IP "203.0.113.1" and can use $IP everywhere in the configuration file. Similarly, support for @if-blocks. This is especially useful for advanced users who like to use the same configuration file on multiple machines, usually with the help of remote includes. * Improved Channel Mode +L now kicks in for any rejected join, so not just for +l but also for +b, +i, +O, +z, +R and +k. If, for example, the channel is +L #insecure and also +z then, when an insecure user ties to join they will be redirected to #insecure. * Ban forwards. New extended ban ~f to forward users to the specified channel if the ban matches. Example: MODE #chan +b ~f:#badisp:*!*@*.isp.org * Improved WebSocket support. We already supported websockets, but now we support websocket type 'text', which is compatible with web IRC clients such as Kiwi IRC. * Code cleanups. The biggest effort of all went into cleaning up old code and making the code much more readable. This also means that UnrealIRCd 5 will not be able to link with really older servers or services, like UnrealIRCd 3.2.x. * Windows version is 64-bits. This should allow for increased address space and security. This also means UnrealIRCd 5 will not run on 32-bits Windows (should be rare nowadays, anyway)
2020-01-28 14:03:36 +01:00
${INSTALL_DATA} ${WRKSRC}/doc/conf/tls/curl-ca-bundle.crt ${DESTDIR}${IRCD_EG}/tls
${INSTALL_SCRIPT} ${WRKSRC}/unrealircd ${DESTDIR}${PREFIX}/unrealircd/scripts
${INSTALL_LIB} ${WRKSRC}/src/modules/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules
${INSTALL_LIB} ${WRKSRC}/src/modules/usermodes/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/usermodes
${INSTALL_LIB} ${WRKSRC}/src/modules/chanmodes/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/chanmodes
${INSTALL_LIB} ${WRKSRC}/src/modules/snomasks/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/snomasks
${INSTALL_LIB} ${WRKSRC}/src/modules/extbans/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/extbans
.include "../../net/libcares/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../devel/pcre2/buildlink3.mk"
.include "../../security/argon2/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"