Unreal 3.4-alpha2 released

News about the UnrealIRCd project, including release announcements
Post Reply
UnrealIRCd head coder
Posts: 2029
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl

Unreal 3.4-alpha2 released

Post by Syzop »

The second alpha version for UnrealIRCd 3.4 has been released (long overdue). I've worked on this together with Heero and we also had a number of contributions from Adam, DBoyz and others. Thanks to our presence of GitHub it's now easy to file Pull Requests.

3.4-alpha2 consists of several fixes for major bugs in the alpha1 version. Some of you complained that alpha1 didn't even boot, that's fixed now. New in particular is showing the SSL Fingerprint of SSL/TLS connected users in /WHOIS. Also we no longer support building without SSL support as everyone really should run SSL/TLS enabled servers nowadays.

For UnrealIRCd module coders and developers we now have a development wiki up 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.
Hopefully this will help contributions even more, be it for inclusion in official UnrealIRCd or just for 3rd party modules.

For alpha3 we have in mind (among other things) a new IRC Operator privilege system. Want to contribute on something? Small or large? Check out our bug tracker for pending bugs or feature requests, and/or file a pull request on GitHub. Also feel free to join #unreal3-devel on irc.unrealircd.org or e-mail me (syzop@unrealircd.com) or Heero (heero@unrealircd.com) if you prefer e-mail.

Full release notes:

Code: Select all

Unreal3.4-alpha2 Release Notes

This is the second alpha version of UnrealIRCd 3.4.
Some important remarks(!):
* This version is NOT STABLE and could easily CRASH or hang from time to time.
  Security issues are also more likely in this 3.4-alpha series.
  Use this alpha version to play around with the latest features and
  improvements, test them, and give us feedback(!) on bugs.unrealircd.org
  and/or on the forums.
* Linking of 3.2 <-> 3.4 is supported. However, because this is such an
  early alpha version we can make no guarantees about the impact of this 3.4
  server on the rest of the net. At this point WE DO NOT RECOMMEND LINKING
  3.4-alpha* to a 3.2 PRODUCTION/LIVE NETWORK. Later versions will support this.
* Things are likely to change between alpha versions. Including configuration,
  commands, etc. You should not make any assumptions as long as 3.4 is in
  alpha stage.
* If you are moving from 3.2.x then be sure to read 'CONFIGURATION CHANGES'!
* A lot of documentation has not been updated to reflect 3.4.x status.
  Similarly, all translated documents are out of date. Don't use them!

* Documentation is still in doc\unreal32docs.html but - as said - is not
  entirely up to date. FAQ is on: http://www.unrealircd.com/faq
* Please report bugs at http://bugs.unrealircd.org/
* The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a
  SUMMARY of the changes in this release.  There have been many changes in
  total, for the full list of changes see 'git log'. Changes in alpha2 in
  particular are tagged with "(A2)". Some changes in alpha2 are simply a
  continuation of changes in alpha1 and are not specifically marked.

You can use your 3.2.x unrealircd.conf WITH SOME CHANGES:
* In your me { } block, change your "numeric" to "sid", and change the
  value as follows: pick a 3 character Server ID that starts with a digit.
  For example: numeric "1"; becomes: sid "001";
* The commands module is gone and replaced with 100+ individual modules:
  1) Remove the loadmodule lines for commands.so and cloak.so
  2) Add the following line to your unrealircd.conf:
     include "modules.conf";
* For any remaining loadmodule lines you can (and should!) now use the
  shorter syntax which is OS-neutral. Instead of:
  loadmodule "src/modules/somemodule.so";
  You should now use:
  loadmodule "modules/somemodule";
  UnrealIRCd will figure out the exact name of the module. It doesn't
  matter if you are on Windows or *NIX, and whether your modules are in
  src/modules/ or in modules/.

==[ 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)

==[ 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)

* 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)
* There have been a lot of source code cleanups, things who end-users
  won't see.

* Crash bug on-boot in alpha1 (A2)
* IRCOp commands such as /GLINE were not always working (A2)
* Most likely a number of major bugs are introduced by this early alpha!

* Errors in example configuration files (A2)
* Some fixes in delayjoin (Channel mode +d) (A2)

* Numeric server IDs, see above.
* PROTOCTL TOKEN and SJB64 are no longer implemented.
* Ziplinks have been removed. We recommend to use SSL/TLS for all server
  connections. Later on we will look at enabling SSL/TLS compression.

* Documentation has NOT been updated to reflect most 3.4.x features!!
* Regexes still have their usual issues
Post Reply