[Unreal-users] 3.4-alpha3 released
Status: Beta
Brought to you by:
wildchild
From: Bram M. <sy...@vu...> - 2015-06-11 16:31:08
|
On a more positive note, the development of UnrealIRCd 3.4.x is going well. I only just realized that I forgot to send an announcement out for 3.4-alpha2. No problem, 3.4-alpha3 just came out ;) In 1-2 months we plan to move 3.4.x to 'beta' stage so we can have a 'stable' release by the end of this year (2015). For UnrealIRCd module coders and developers we now have a development documentation available at https://www.unrealircd.org/docs/ which explains how to create a module from scratch and documents a lot of the UnrealIRCd API such as User & Channel modes, Hooks, adding new commands, Command Overrides, extended bans, storing per-user/per-channel custom module data, etc. etc. During development of alpha2 and alpha3 we already noticed increased community interest and contributions to UnrealIRCd 3.4.x via GitHub. We hope that with this detailed technical documentation even more people will be interested in UnrealIRCd. Be it code or patches for inclusion in official UnrealIRCd or coding 3rd party modules. Notable changes in alpha2 are that we now always compile with SSL/TLS support, we show the SSL Fingerprint in /WHOIS, and several crash bugs were resolved including a crash-on-boot problem that affected many. Notable changes in alpha3 are in the /SPAMFILTER command (also supports non-regex, simple '?' and '*' matching), the move to PCRE regex engine which uses a slightly different syntax but is considerably faster, bcrypt password hashing support (very secure, now the default), more secure defaults, warnings when doing something insecure, etc. There have been many changes in the configuration file so we now provide an easy to use tool which will convert your existing configuration file from 3.2.x or earlier 3.4-alpha's to the new style in 3.4-alpha3. Full release notes below: Unreal3.4-alpha3 Release Notes =============================== This is the third 'alpha' version of UnrealIRCd 3.4. We plan to move to 'beta' stage in 1-2 months and have a stable 3.4.x release later in 2015. IMPORTANT REMARKS as long as UnrealIRCd 3.4.x is in alpha stage: * Because this is an alpha version it is far more likely to crash or hang. * Security issues are handled as regular issues (no security advisories!) * Linking with 3.2.x servers is supported but highly untested. * Things are likely to change between alpha versions. Including but not limited to: configuration, command syntax, location of files, etc. Therefore: * You should never run 3.4-alpha3 as a production server * You should not link 3.4-alpha3 with a production 3.2.x network Please do: * Install 3.4-alpha3 to play around, show to your friends, have fun with the latest features and improvements, test things. * Report any problems, bugs, issues and other feedback on https://bugs.unrealircd.org/ so we can improve 3.4.x! During alpha stage we are still very flexible so feedback is really helpful. Finally: * If you are moving from 3.2.x then be sure to read 'CONFIGURATION CHANGES'! * The documentation has not been updated to reflect the changes in 3.4.x. ==[ GENERAL INFORMATION ]== * Documentation is still in doc\unreal32docs.html but - as said - is not up to date for 3.4.x. FAQ is on: http://www.unrealircd.com/faq * Please report bugs at http://bugs.unrealircd.org/ * Below you will see a summary of all changes. Changes may be tagged when a change was made in a specific version, e.g. "(A3)" means 3.4-alpha3. For a complete list of changes (500+) use 'git log' or have a look at https://github.com/unrealircd/unrealircd/commits/unreal34 ==[ CONFIGURATION CHANGES ]== UnrealIRCd 3.4.x comes with an easy to use tool to upgrade your configuration file from the 3.2.x syntax to 3.4.x. If you already have a good working 3.2.x configuration file then this should make it very easy to move to 3.4.x. After UnrealIRCd is compiled/installed you copy your unrealircd.conf over from 3.2.x (along with any other custom .conf's). Then, on *NIX run './unreal upgrade-conf'. On Windows simply try to boot and watch all the errors, click OK and you will be asked if UnrealIRCd should upgrade your configuration file. UnrealIRCd will go through your unrealircd.conf and any other files that are included from there and upgrade the files one by one. For both *NIX and Windows, after running the step from above, simply start UnrealIRCd (again) and it should boot up fine with your freshly converted configuration file(s). Note: UnrealIRCd can only convert *working* 3.2.x configuration files! If your 3.2.x configuration contains mistakes or errors then the upgrade process will likely fail or the resulting config file will fail to load. You may still be interested in the configuration changes, they are listed on: https://www.unrealircd.org/docs/Upgrading_from_3.2.x ==[ NEW ]== * We moved a lot of channel and user modes to modules. These are all loaded by modules.conf, but if you don't want to load a certain module you can now simply comment them out or remove that line. Since a lot of code has been moved from the core to these modules it makes it A) easier for coders to see all source code related to a specific feature, and B) makes it possible to fix something and reload the module rather than restart the IRCd. * Entirely rewritten I/O and event loop. This allows the IRCd to scale more easily to tens of thousands of clients by using kernel-evented I/O mechanisms such as epoll and kqueue. * Memory pooling has been added to improve memory allocation efficiency and performance. * The local nickname length can be modified without recompiling the IRCd * Channel Mode +d: This will hide joins/parts for users who don't say anything in a channel. Whenever a user speaks for the first time they will appear to join. Chanops will still see everyone joining normally as if there was no +d set. * If you connect with SSL/TLS then your SSL Fingerprint (SHA256 hash) can be seen by yourself and others through /WHOIS. The fingerprint is also shared (broadcasted) with all servers on the network. In alpha3 we will add more features that will use SSL fingerprints. (A2) * bcrypt has been added as a password hashing algorithm and is now the preferred algorithm (A3) * './unreal mkpasswd' will now prompt you for the password to hash (A3) * Protection against SSL renegotiation attacks (A3) * When you link two servers the current timestamp is exchanged. If the time differs more than 60 seconds then servers won't link and it will show a message that you should fix your clock(s). This requires version 3.4-alpha3 (or later) on both ends of the link (A3) * Configuration file converter that will upgrade your 3.2.x conf to 3.4.x. On *NIX run './unreal upgrade-conf'. On Windows simply try to boot and after the config errors screen UnrealIRCd offers the conversion. (A3) ==[ CHANGED ]== * Numerics have been removed. Instead we now use SIDs (Server ID's) and UIDs (User ID's). SIDs work very similar to server numerics and UIDs help us to fix a number of lag-related race conditions / bugs. * The module commands.so / commands.dll has been removed. All commands (those that are modular) are now in their own module. * Self-signed certificates are now generated using 4096 bits, a SHA256 hash and validity of 10 years. (A2) * Building with SSL (OpenSSL) is now mandatory (A2) * The link { } block has been restructured, see https://www.unrealircd.org/docs/Upgrading_from_3.2.x#Link_block (A3) * Better yet, check out our secure server linking tutorial: https://www.unrealircd.org/docs/Tutorial:_Linking_servers * If you have no set::throttle block you now get a default of 3:60 (A3) * password entries in the conf no longer require specifying an auth-type like password "..." { md5; };. UnrealIRCd will now auto-detect. (A3) * You will now see a warning when you link to a non-SSL server. (A3) * Previously we used POSIX Regular expressions in spamfilters and at some other places. We have now moved to PCRE Regular expressions. They look very similar, but PCRE is a lot faster. For backwards-compatibility we still compile with both regex engines. (A3) * Spamfilter command syntax has been changed, it now has an extra option to indicate the matching method: /SPAMFILTER [add|del|remove|+|-] [method] [type] .... Where 'method' can be one of: * -regex: this is the new fast PCRE2 regex engine * -simple: supports just strings and ? and * wildcards (super fast) * -posix: the old regex engine for compatibility with 3.2.x. (A3) * If you have both 3.2.x and 3.4.x servers on your network then the 3.4.x server will only send spamfilters of type 'posix' to the 3.2.x servers because 3.2.x servers don't support the other two types. So in a mixed network you probably want to keep using 'posix' for a while until all your UnrealIRCd servers are on 3.4.x. (A3) * set::oper-only-stats now defaults to "*" * oper::from::userhost and vhost::from::userhost are now called oper::mask and vhost::mask. The usermask@ part is now optional and it supports two syntaxes. For one entry you can use: mask 1.2.3.*; For multiple entries the syntax is: mask { 192.168.*; 10.*; }; * Because having both allow::ip and allow::hostname in the same allow block was highly confusing (it was an OR-match) you must now choose between either allow::ip OR allow::hostname. (A3) ==[ MODULE CODERS / DEVELOPERS ]== * A lot of technical documentation for module coders has been added at https://www.unrealircd.org/docs/ describing things like how to write a module from scratch, the User & Channel Mode System, Commands, Command Overrides, Hooks, attaching custom-data to users/channels, and more. (A2+) * Added MOD_OPT_PERM_RELOADABLE which permits reloading (eg: upgrades) but disallows unloading of a module (A3) * There have been *a lot* of source code cleanups (ALL) ==[ MAJOR BUGS FIXED ]== * Crash bug on-boot in alpha1 (A2) * IRCOp commands such as /GLINE were not always working (A2) * This is still an alpha release, so likely contains major issues ==[ MINOR BUGS FIXED ]== * Errors in example configuration files (A2) * Some fixes in delayjoin (Channel mode +d) (A2) * Deal with services who allow you to log in by account name (A3) ==[ REMOVED / DROPPED ]== * Numeric server IDs, see above. (A1) * PROTOCTL TOKEN and SJB64 are no longer implemented. (A1) * Ziplinks have been removed. (A1) * WebTV support. (A3) ==[ KNOWN ISSUES ]== * Documentation has NOT been updated to reflect 3.4.x features!!! -- Bram Matthys Software developer/IT consultant sy...@vu... Website: www.vulnscan.org PGP key: www.vulnscan.org/pubkey.asc PGP fp: EBCA 8977 FCA6 0AB0 6EDB 04A7 6E67 6D45 7FE1 99A6 |