Commit graph

18 commits

Author SHA1 Message Date
nia
c38efdc022 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 13:03:36 +00:00
nia
ba1af21c24 chat/unrealircd: Update to 4.2.1.1
Many changes, coming from an unsupported version, but at least
fixes CVE-2016-7144.
2019-02-09 15:23:15 +00:00
jperkin
cb28107473 Update chat/unrealircd to 3.2.10.5.
pkgsrc changes:

 - Remove obsolete and broken MESSAGE files.
 - Find zlib correctly when enabled.
 - Add SMF manifest.
 - Update patch files and add comments where necessary.

Upstream changes:

 - This release fixes a SASL Denial of Service issue

Patch provided by Marco Wessel in joyent/pkgsrc#306.
2015-11-26 16:36:00 +00:00
dholland
d89e57d6a3 pkglint 2015-11-07 22:52:04 +00:00
obache
ffffdaf973 remove duplicated inet6 option. 2014-11-02 05:36:25 +00:00
obache
98911cbf06 Fixes unusual MESSAGE_SRC usage. 2014-11-02 05:35:39 +00:00
rodent
f05526528b 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 15:42:34 +00:00
wiz
f98e8b0585 Add inet6 to default suggested options. It's 2012. 2012-06-12 15:45:54 +00:00
adrianp
e832b2e921 More chroot build fixes from Michael Stapelberg. 2008-06-13 23:15:33 +00:00
adrianp
4f308dc8f5 Update to 3.2.5
==[ MAJOR BUGS FIXED ]==
- Spamfilter was not always working properly
- MS Visual studio 2005 (8.x) was unable to compile Unreal and/or caused crashes
- Certain IPv6 listen blocks could crash the ircd on-boot/on-rehash

==[ MINOR BUGS FIXED ]==
- "Looking up your hostname" message was missing if
  set::options::show-connect-notice was enabled (other messages, like "looking
  up ident" were shown, however)
- It was sometimes impossible to update a link { } block: all old settings
  would still be used, this happened if connfreq was low. This might also have
  caused crashes.
- Netsynch problem, which could cause the wrong modes to be applied to a
  channel in some rare cases.
- Setting set::maxdccallow to 0 (or lower) still allowed one entry to be added
- Spamfilter oversized-checking is no longer done when removing a spamfilter
- Operator count bug (there might still be others...)
- Some chinese-* charsets could not be selected individually
- No longer requiring a C++ compiler (was caused by resolver in 3.2.4)
- Added workaround for "make: Permission denied" bug in some FreeBSD's
2006-07-18 22:43:36 +00:00
adrianp
4d02f4a4cb pkglintification
Add rehash option to rc.d script
Remove dud mirror site
Sort PLIST
Bump pkgrevision
2006-03-07 17:23:51 +00:00
rillig
579e977969 Ran "pkglint --autofix", which corrected some of the quoting issues in
CONFIGURE_ARGS.
2005-12-05 23:55:01 +00:00
adrianp
0d0fbe111a Add unrealircd-hub back to PKG_SUGGESTED_OPTIONS 2005-12-03 04:00:18 +00:00
wiz
43c8dcb28f Prefix all package-specific options with "unrealircd-".
No legacy options handling, since the package is so fresh.
2005-12-02 17:59:53 +00:00
adrianp
ea3bcd71f6 Remove PKG_OPTIONS_OPTIONAL_GROUPS as PKG_OPTIONS_REQUIRED_GROUPS does
the job on it's own.  Suggesed by wiz@ in private email.
2005-12-01 18:20:09 +00:00
adrianp
25d2daeaa5 Change remoteinc to depend on net/libcares as opposed to wip/c-ares
Fix patch-aa so libcares is properly detected
Fix options.mk so that libcurl is properly detected
Use PKG_OPTIONS_OPTIONAL_GROUPS as suggesed by wiz@ in private email
Use PKG_OPTIONS_REQUIRED_GROUPS for hub/leaf choice
Bump to nb1
2005-12-01 18:09:37 +00:00
adrianp
1993d37ee3 Add advanced options available in the default ./Config script
Change default to hub, enable showlistmodes and remove prefixaq in line with
 ./Config defaults
No PKGREVISION bump (riding the initial import)
2005-11-29 21:11:55 +00:00
adrianp
b86da5bcca UnrealIRCd is an IRC server based on the branch of IRCu called Dreamforge,
formerly used by the DALnet IRC Network. Since development started on it
(around May 1999) many new features has been added, modified, and many bugs
fixed. Unreal runs both on *nix platforms, Amiga & Windows 95/98/2k/NT.
Some features to mention: Channel Halfops, No-color channel mode,
Strip-colors channel mode, channelmode +q & +a - protect modes, Oper and
Admin only channels, exception bans, Nokicks mode (channel and user), Flood
limiter, Channel links, Host cloaking, Net* Tech and Co-Admin modes, Whois
notifies, Foreign connects monitor, Oper suspend, G:Lines, T:Lines, channel
restriction (people can only go to these channels if enabled), Trojan/DCC
Deny, RPING/RPONG, Sethost family, Token in server<->server etc.
FDlists/High Traffic Mode, SOCKS check on connect, Speeded up server
synchs, limited WebTV Client support, /vhost, and many dreamforge
optimations. UnrealIRCd is aimed to be an advanced, not an easy IRCd.

Also includes SSL and IPv6 support.
2005-11-29 19:17:03 +00:00