************************************** *** X3 IRC Services *** ************************************** *** IMPORTANT UPGRADE INSTRUCTIONS *** ************************************** Upgrading from X3 1.6 ------------------------------------------------------------------------------- Core changes: * There is a new mod-qserver module that allows direct connections to X3. There is no documentation on the protocol, but the file is under 250 lines long, so it shouldn't be hard to figure out. * There is a new mod-blacklist module that allows a blacklist based on DNSBLs and IP- and host-based text files. See x3.conf.example for details on how to configure this module. * Commands that use security overrides can be logged more easily. This includes, among many other things, adding or removing users in channels where the staff user would not normally have the necessary access. These can be selected with the "staff" and "override" log levels. * The database writing code has been rewritten because the previous code performed much worse (for an unknown reason) on 64-bit machines than on 32-bit machines. Now it is faster than ever on both types. * The logger now avoids recursive logging to the same destination. * G-lines support the last-modification syntax introduced in ircu2.10.12.11. * X3 now re-reads translations from its "languages" directory on a ?rehash. * X3 now re-reads its own server name and description on a ?rehash. * X3 has several implementations of the ioset event loop (ioset-epoll.c, ioset-kevent.c, ioset-select.c, ioset-win32.c). The most efficient one supported by the OS should be selected automatically. * X3 has several implementations of its mail sending utility (mail-sendmail.c, mail-smtp.c). The sendmail implementation is used on configure-based builds, and the SMTP implementation is used on mingw/Win32 native builds. ChanServ changes: * Do-not-register (DNR) entries now have an expiration time. The duration can be set to 0 to create a permanent entry; this is the default for pre-1.4 DNRs. There is also a DNR search command that should be bound to ChanServ (/msg OpServ bind ChanServ dnrsearch *ChanServ.dnrsearch; likewise for its actions: dnrsearch\ print, dnrsearch\ remove and dnrsearch\ count). * Kick, ban and unban commands will now accept arguments of the form *ACCOUNT, affecting users with that account name. * The default titles "IRCOp", "network helper" and "support helper" can be localized using "CSMSG_OPERATOR_TITLE", "CSMSG_UC_H_TITLE" and "CSMSG_LC_H_TITLE" respectively. * The BANS command can search for users affected by a ban in addition to searching for matching ban patterns. * The SAY and EMOTE commands will now accept arguments of the form *ACCOUNT. * There is a new channel flag, Unreviewed, that can distinguish between automatically registered channels that have been reviewed against network policies by staff and those that have not. The "unreviewed" search criteria can select channels without this flag. (/msg OpServ bind ChanServ set\ unreviewed *ChanServ.set\ unreviewed; likewise for its values: set\ unreviewed\ on and set\ unreviewed\ off.) * Changing the AutoInvite user option will warn if the user does not have enough access in the channel to be automatically invited. * The GIVEOWNERSHIP command requires a confirmation code. * ChanServ's event handling functions are only registered if it has a nickname set. This makes it easier to disable ChanServ in one instance of X3. There are a few related changes in modcmd.c's permission and flag checks. NickServ changes: * Notes on an account are now supported. (/msg OpServ bind NickServ notes *NickServ.notes; likewise for the related addnote and delnote commands.) * The new command CHECKEMAIL has been added to allow helpers to check whether an account's email address matches one known to the helper. This allows email visibility to remain limited. * The OUNREGISTER command now has two configuration options that may require a "force" parameter to be used: "ounregister_inactive" and "ounregister_flags". See X3.conf.example for details. OpServ changes: * IPs with trusts or with active opers are protected from being accidentally affected by G-lines, TRACE KILL and TRACE GAG. The "abuse" pseudo-criterion for TRACE now has a "trusted" option to override trusted IP protection (in addition to the previous, and independent, "opers" option). * The BLOCK command takes an optional duration after the target. Using this requires the same access level as the GLINE command. * There is a new FORCEKICK command that will allow opers to kick anyone (including remote +k users) from a channel. * The STATS GLINE command now accepts an optional target, to have it show the first known G-line matching that target. * X3 will no longer crash in OpServ's join checks if no OpServ bot is instantiated. * The TRACE command will now allow more than one "channel" criterion to be specified. It also accepts a "target" pseudo-criterion that contains the name of a channel to receive the output. -------------------------------------------------------------------------------------------- From srvx 1.4: Rename srvx.conf to x3.conf Review .conf file settings. * remove giveops, givevoice from set_shows and add "Voice" above "Protect". * you can change from srvx.db to x3.db here also (dont forget to rename the file) Run all of the steps below ***************************** NOTE about command bindings: ***************************** From srvx to x3, and within versions of x3, some commands have changed. When you upgrade your .db file may not have command bindings for new command names. I have added a command to help make solving this easy. If you don't have the 'rebindall' command bound, first bind it: /msg O3 bind o3 * *modcmd.* Then, after any upgrade, or after adding modules, or changing command effecting settings such as 'email', you can simply run: /msg O3 rebindall to ensure you have all the latest commands bound on all services. You may do: 'bind nick * *module.*' to re-bind ALL builtin commands on a givin module, (chanserv, opserv, nickserv, modcmd, etc) if you prefer to update them individually (if you unbind some default commands, and want them to stay unbound). Alternatively you can edit the .db by hand or using the 'bind' command on irc. NOTE: You will need to shut down x3 gracefully (using the die or restart commands) after binding in order for 'set' and 'uset' subcommand changes to function properly since the listings are cached. ********************************************* *** Steps needed, by version: *** note, binding can be taken care of *** according to the note above. ********************************************* As of CVS version 1.24: bind chanserv commands: uset autoop, and set voice As of CVS version 1.29: bind chanserv commands: addlamer, dellamer, addtimedlamer, lamers, and llist bind opserv commands: rebindall