]> jfr.im git - irc/evilnet/x3.git/blobdiff - UPGRADE
Rewrote PHP X3 DB parser function sample code as a class and faster code
[irc/evilnet/x3.git] / UPGRADE
diff --git a/UPGRADE b/UPGRADE
index 80911e85729aa3a787f57df458e7a5c20ae3b0aa..fa9320b4f331f49a16877b8120b27e6def898f7f 100644 (file)
--- a/UPGRADE
+++ b/UPGRADE
@@ -1,8 +1,131 @@
 **************************************
-*** X3 IRC Services                ***
+***        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. 
@@ -10,15 +133,38 @@ From srvx 1.4:
     * you can change from srvx.db to x3.db here also (dont forget to rename the file)
   Run all of the steps below
 
-As of CVS version 1.24:
-  bind chanserv 'uset autoop' and 'set voice' (see note below).
-
 
+*****************************
 NOTE about command bindings:
-You may do: 'bind x3 * *chanserv.*' to re-bind ALL builtin commands on chanserv. This
-is the simplest approach and probably a good idea to run for each module (chanserv, 
-opserv, nickserv, modcmd, etc) after upgrading or changing some features (such as email).  
+*****************************
+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. 
-IMPORTANT: You will need to shut down x3 gracefully (using the die or restart commands)
+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 listing is cached. 
+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
+
+