Upgrading from 2.0 to 2.1

Upgrading from 2.0 to 2.1 can be done by:

General

  1. Update any scripts you have that execute services to execute anope instead.

  2. If you are using the db_sql or db_sql_live modules it is recommended that on 2.0 you load db_flatfile and export your database to a file and re-import on 2.1 to update the schema of your database.

  3. The syntax for using defines has changed. Replace all usages of services.host with ${services.host} and do the same for any defines you have added.

services.conf

  1. Rename services.conf to anope.conf.

  2. Replace uplink:ipv6 with uplink:protocol (example).

  3. If you are using the bahamut protocol module then migrate to a different IRC server (we recommend InspIRCd) and load the appropriate module.

  4. If you are using the charybdis protocol module then migrate to Solanum and replace it with the solanum module.

  5. If you are using the inspircd3 protocol module then replace it with the inspircd module.

  6. If you are using the inspircd12 or inspircd20 protocol modules then upgrade your IRCd and replace it with the inspircd module.

  7. If you are using the unreal4 protocol module then replace it with the unrealircd module.

  8. If you are using the unreal protocol module then upgrade your IRCd and replace it with the unrealircd module.

  9. Move the enc_md5, enc_none, enc_sha1, and enc_sha256 modules to be secondary encryption modules and add enc_argon2, enc_bcrypt, or enc_sha2 as a new primary encryption module (example).

  10. Replace the nickserv/access privilege in operator accounts with the nickserv/cert privilege.

  11. Replace the nickserv/saset/kill privilege in operator accounts with the nickserv/saset/protect privilege.

  12. Add the global/queue and global/server privileges to operator accounts with the global/global privilege.

  13. Update serverinfo:motd to be relative to the config directory.

  14. Update serverinfo:pid to be relative to the data directory.

  15. If you are using email then add the i flag to the sendmail command in mail:sendmail (example).

  16. If you are using email then update the template variables to the new syntax in mail:emailchange_message, mail:emailchange_subject, mail:memo_message, mail:memo_subject, mail:registration_message, mail:registration_subject,, mail:reset_message, and mail:reset_subject (example).

  17. Replace options:usestrictprivmsg with options:servicealias (example).

  18. Update options:languages to no longer include ca_ES.UTF-8, hu_HU.UTF-8, and ru_RU.UTF-8.

botserv.conf

  1. Add a description to the GREET privilege (example).

  2. Rename {botserv}:gecos to {botserv}:real.

chanserv.conf

  1. Rename the FANTASIA privilege to FANTASY (example).

  2. Add a description to the ACCESS_CHANGE, ACCESS_LIST, AKICK, ASSIGN, AUTOHALFOP, AUTOOP, AUTOOWNER, AUTOPROTECT, AUTOVOICE, BADWORDS, BAN, FANTASY, FOUNDER, GETKEY, HALFOP, HALFOPME, INFO, INVITE, KICK, MEMO, MODE, NOKICK, OP, OPME, OWNER, OWNERME, PROTECT, PROTECTME, SAY, SET, SIGNKICK, TOPIC, UNBAN, UNBANME, VOICE, and VOICEME privileges (example).

  3. Add the UNBANME privilege for chanserv/unban (example).

  4. Rename {chanserv}:gecos to {chanserv}:real.

  5. Remove the cs_secure option from {chanserv}:defaults.

  6. Update the template variables to the new syntax in {chanserv}:signkickformat (example).

  7. Add the misc_numeric field to the SET URL command of the ns_set_misc module (example).

  8. Rename {cs_suspend}:expire to {cs_suspend}:suspendexpire.

global.conf

  1. Add the gl_queue and gl_server modules and their commands (example).

  2. Rename {global}:gecos to {global}:real.

chanstats.conf

  1. Remove the m_ prefix from the chanstats module.

  2. If you have {chanstats}:cs_def_chanstats set then remove it and add CS_STATS to {chanserv}:defaults.

  3. If you have {chanstats}:ns_def_chanstats set then remove it and add NS_STATS to {nickserv}:defaults.

hostserv.conf

  1. Rename {hostserv}:gecos to {hostserv}:real.

nickserv.conf

  1. Rename {nickserv}:gecos to {nickserv}:real.

  2. Add the nickserv/set/neverop and nickserv/saset/neverop commands (example).

  3. Remove the nickserv/set/secure and nickserv/saset/secure commands.

  4. Remove the ns_access module and nickserv/access command.

  5. Replace the ns_getemail module with the ns_email module (example).

  6. Remove the ns_getpass module and nickserv/getpass command.

  7. If enabled replace the ns_maxemail module with the maxemails setting of the ns_email module (example).

  8. Remove the ns_status module and nickserv/status command.

  9. Update the template variables to the new syntax in {nickserv}:unregistered_notice (example).

  10. If the killprotect option is set in {nickserv}:defaults replace it with protect and set {nickserv}:defaultprotect to the value of {nickserv}:kill.

  11. If the kill_quick option is set in {nickserv}:defaults replace it with protect and set {nickserv}:defaultprotect to the value of {nickserv}:killquick.

  12. If the kill_immed option is set in {nickserv}:defaults replace it with protect and set {nickserv}:defaultprotect to 0s.

  13. Remove the ns_secure option from {nickserv}:defaults.

  14. Rename {nickserv}:passlen to {nickserv}:maxpasslen.

  15. Replace {nickserv}:guestnickprefix with {nickserv}:guestnick (example).

  16. Replace options:strictpasswords with {nickserv}:minpasslen (example).

  17. Load the ns_set_keepmodes module (example).

  18. Load the ns_set_language module (example).

  19. Load the ns_set_protect module (example).

  20. If options:useprivmsg was enabled load the ns_set_message module (example).

modules.conf

  1. If enabled add {ssl_openssl}:tlsv10, {ssl_openssl}:tlsv11, and {ssl_openssl}:tlsv12 (example).

  2. If enabled remove {ssl_openssl}:sslv3 (now always disabled).

  3. If enabled remove the the m_ prefix from the dns, dnsbl, helpchan, httpd, ldap, ldap_oper, mysql, proxyscan, redis, regex_pcre2, regex_posix, regex_stdlib, regex_tre, rewrite, sql_log, sql_oper, sqlite, ssl_gnutls, and ssl_openssl modules.

  4. If enabled update the template variables to the new syntax in {dnsbl}:blacklist:reason (example).

  5. If enabled update the template variables to the new syntax in {ldap_authentication}:search_filter (example).

  6. If enabled update the template variables to the new syntax in {ldap_oper}:binddn and {ldap_oper}:filter (example).

  7. If enabled update the template variables to the new syntax in {proxyscan}:proxyscan:reason (example).

  8. If enabled replace the m_regex_pcre module with the regex_pcre2 module.

  9. If enabled replace the m_sasl module with the ns_sasl module.

  10. If enabled update {ssl_gnutls}:cert, {ssl_gnutls}:dhparams, and {ssl_gnutls}:key to be relative to the config directory.

  11. If enabled update {ssl_openssl}:cert and {ssl_openssl}:key to be relative to the config directory.

  12. If enabled replace {webcpanel}:template with {webcpanel}:template_dir (example).

  13. If enabled replace the m_xmlrpc module with the xmlrpc extra module or migrate to the jsonrpc module (example).

  14. If enabled replace the m_xmlrpc_main module with the rpc_data, rpc_message, and rpc_user modules (example).

memoserv.conf

  1. Rename {memoserv}:gecos to {memoserv}:real.

operserv.conf

  1. Rename {operserv}:gecos to {operserv}:real.

  2. Remove the os_oline module and operserv/oline command.

  3. Update the template variables to the new syntax in {os_session}:sessionlimitexceeded (example).

stats.standalone.conf

  1. Remove the m_ prefix from the mysql module.