**************************************
*** IMPORTANT UPGRADE INSTRUCTIONS ***
**************************************
-Upgrading from X3 1.6
--------------------------------------------------------------------------------
+Generally version-to-version upgrades can be done without trouble. The code
+for the most part aims to be backward-compatable. You should back up the .db
+files first (but you back those up anyway, dont you?)
-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.
+Sometimes when upgrading, some commands may have changed. When you upgrade
+your .db file may not have command bindings for new commands added.
+There is now a command to assist with this: rebindall.
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
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
-
-