Compare commits

...
Sign in to create a new pull request.

31 commits

Author SHA1 Message Date
Fedora Release Engineering
98c0db6493 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 03:41:09 +00:00
Fedora Release Engineering
25de94d7fd Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 16:59:35 +00:00
Fedora Release Engineering
7bead86920 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 11:03:29 +00:00
Fedora Release Engineering
1647761d5f Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 17:00:35 +00:00
Robert Scheck
ea63731181 Fix building on CentOS/RHEL 7 and 8
anope 2.1.4 requires C++17/filesystem headers and linking, however
-lstdc++fs does not seem to work with GCC 8.x, while it works with
GCC 12.x (RHEL >= 9).
2024-05-12 04:29:00 +02:00
Robert Scheck
40510451f2 Upgrade to 2.1.4 (#2272460) 2024-04-14 23:35:24 +02:00
Robert Scheck
6a071febab Upgrade to 2.1.3 (#2267827) 2024-03-06 00:21:52 +01:00
Robert Scheck
6d097430f3 Upgrade to 2.1.2 (#2264678) 2024-02-17 23:25:17 +01:00
Fedora Release Engineering
34b355e81e Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 23:03:49 +00:00
Fedora Release Engineering
a51f5e666c Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 12:57:30 +00:00
Robert Scheck
e1043a1cf8 Upgrade to 2.1.1 (#2256929) 2024-01-06 01:09:13 +01:00
Robert Scheck
6975485e62 Reflect upstream configuration file changes and renamings 2023-11-28 00:10:53 +01:00
Robert Scheck
db2bcf0ec5 Upgrade to 2.1.0 (#2251530) 2023-11-26 13:39:08 +01:00
Robert Scheck
139916ab99 Upgrade to 2.0.14 (#2229557) 2023-08-07 20:40:36 +02:00
Fedora Release Engineering
4ba428b75b Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 13:17:56 +00:00
Robert Scheck
939fba6b20 Upgrade to 2.0.13 (#2211864) 2023-06-02 15:50:27 +02:00
Fedora Release Engineering
e7cf8de209 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 21:45:23 +00:00
Robert Scheck
fefe1ea5a2 - Upgrade to 2.0.12 (#2152287)
- Switch from deprecated pcre to pcre2 (#2128270)
2022-12-10 22:00:01 +01:00
Robert Scheck
1d240c8194 Upgrade to 2.0.11 2022-09-20 20:00:03 +02:00
Robert Scheck
6bd9f5768d Added sysusers.d file to achieve user() and group() provides 2022-07-29 01:09:44 +02:00
Robert Scheck
31f7172410 Adapt %cmake usage to current expectation 2022-07-20 23:45:33 +02:00
Fedora Release Engineering
d4b36f6897 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 20:49:16 +00:00
Fedora Release Engineering
6d51f23c5e - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 21:16:54 +00:00
Robert Scheck
52200a94af Added upstream patches for OpenLDAP 2.6 support (#2032707) 2021-12-29 06:02:08 +01:00
Sahana Prasad
b9c8a20384 Rebuilt with OpenSSL 3.0.0 2021-09-14 18:58:24 +02:00
Robert Scheck
7c3bd85f47 Upgrade to 2.0.10 (#1991858) 2021-08-10 23:45:11 +02:00
Fedora Release Engineering
fd74ded216 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 17:35:01 +00:00
Fedora Release Engineering
7b647c11ba - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 12:39:23 +00:00
Zbigniew Jędrzejewski-Szmek
b9efd72082 Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:14:14 +01:00
Fedora Release Engineering
6aa000297c - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 00:07:11 +00:00
Robert Scheck
f8fe8982eb Correct include path for OpenSSL 1.1 on RHEL 7 2020-11-24 01:13:39 +01:00
18 changed files with 988 additions and 505 deletions

54
anope-2.1.4-paths1.patch Normal file
View file

@ -0,0 +1,54 @@
From 87a8af0ad71a11c248ba94c9ba20668dcb0fe831 Mon Sep 17 00:00:00 2001
From: Sadie Powell <sadie@witchery.services>
Date: Tue, 2 Apr 2024 16:41:26 +0100
Subject: [PATCH] Use the paths from the build system instead of hardcoding
them.
---
include/sysconf.h.cmake | 15 +++++++++++++++
src/init.cpp | 6 +++++-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/include/sysconf.h.cmake b/include/sysconf.h.cmake
index 927c759107..5605976f9d 100644
--- a/include/sysconf.h.cmake
+++ b/include/sysconf.h.cmake
@@ -20,6 +20,21 @@
// Whether Anope was built in debug mode.
#cmakedefine01 DEBUG_BUILD
+// The default config directory.
+#define DEFAULT_CONF_DIR "@CONF_DIR@"
+
+// The default data directory.
+#define DEFAULT_DATA_DIR "@DB_DIR@"
+
+// The default locale directory.
+#define DEFAULT_LOCALE_DIR "@LOCALE_DIR@"
+
+// The default log directory.
+#define DEFAULT_LOG_DIR "@LOGS_DIR@"
+
+// The default module directory.
+#define DEFAULT_MODULE_DIR "@LIB_DIR@"
+
// Whether the clock_gettime() function is available.
#cmakedefine01 HAVE_CLOCK_GETTIME
diff --git a/src/init.cpp b/src/init.cpp
index df53ee908b..7c760d1af2 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -30,7 +30,11 @@
#endif
#include <thread>
-Anope::string Anope::ConfigDir = "conf", Anope::DataDir = "data", Anope::ModuleDir = "lib", Anope::LocaleDir = "locale", Anope::LogDir = "logs";
+Anope::string Anope::ConfigDir = DEFAULT_CONF_DIR;
+Anope::string Anope::DataDir = DEFAULT_DATA_DIR;
+Anope::string Anope::LocaleDir = DEFAULT_LOCALE_DIR;
+Anope::string Anope::LogDir = DEFAULT_LOG_DIR;
+Anope::string Anope::ModuleDir = DEFAULT_MODULE_DIR;
/* Vector of pairs of command line arguments and their params */
static std::vector<std::pair<Anope::string, Anope::string> > CommandLineArguments;

156
anope-2.1.4-paths2.patch Normal file
View file

@ -0,0 +1,156 @@
From c08aaa86d1ada72ad6e185837f9c179693b60c22 Mon Sep 17 00:00:00 2001
From: Sadie Powell <sadie@witchery.services>
Date: Tue, 2 Apr 2024 16:50:24 +0100
Subject: [PATCH] Sync the build system directory names with the core.
---
CMakeLists.txt | 24 ++++++++++++------------
include/sysconf.h.cmake | 6 +++---
modules/CMakeLists.txt | 4 ++--
modules/webcpanel/CMakeLists.txt | 2 +-
src/modulemanager.cpp | 4 ++--
5 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 52f983079c..0b22650cf7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -256,8 +256,8 @@ endif()
if(NOT BIN_DIR)
set(BIN_DIR "bin")
endif()
-if(NOT DB_DIR)
- set(DB_DIR "data")
+if(NOT DATA_DIR)
+ set(DATA_DIR "data")
endif()
if(NOT DOC_DIR)
set(DOC_DIR "doc")
@@ -265,14 +265,14 @@ endif()
if(NOT CONF_DIR)
set(CONF_DIR "conf")
endif()
-if(NOT LIB_DIR)
- set(LIB_DIR "lib")
+if(NOT MODULE_DIR)
+ set(MODULE_DIR "modules")
endif()
if(NOT LOCALE_DIR)
set(LOCALE_DIR "locale")
endif()
-if(NOT LOGS_DIR)
- set(LOGS_DIR "logs")
+if(NOT LOG_DIR)
+ set(LOG_DIR "logs")
endif()
# Version number processing
@@ -350,15 +350,15 @@ set(SERVICES_BINARY "$<TARGET_FILE:${PROGRAM_NAME}>")
get_filename_component(SERVICES_BINARY ${SERVICES_BINARY} NAME)
# At install time, create the following additional directories
-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DB_DIR}/backups\")")
-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${LOGS_DIR}\")")
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DATA_DIR}/backups\")")
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${LOG_DIR}\")")
if(WIN32)
- install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DB_DIR}/runtime\")")
+ install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DATA_DIR}/runtime\")")
endif()
# On non-Windows platforms, if RUNGROUP is set, change the permissions of the below directories, as well as the group of the data directory
if(NOT WIN32 AND RUNGROUP)
- install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DB_DIR}/backups\")")
- install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${LOGS_DIR}\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DATA_DIR}/backups\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${LOG_DIR}\")")
install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}\")")
endif()
# On Windows platforms, install extra files
@@ -368,7 +368,7 @@ if(WIN32)
)
endif()
-install(CODE "file(REMOVE_RECURSE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/modules\")")
+install(CODE "file(REMOVE_RECURSE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${MODULE_DIR}\")")
# Only process the CPack section if we have CPack
if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
diff --git a/include/sysconf.h.cmake b/include/sysconf.h.cmake
index 5605976f9d..2b981c7af7 100644
--- a/include/sysconf.h.cmake
+++ b/include/sysconf.h.cmake
@@ -24,16 +24,16 @@
#define DEFAULT_CONF_DIR "@CONF_DIR@"
// The default data directory.
-#define DEFAULT_DATA_DIR "@DB_DIR@"
+#define DEFAULT_DATA_DIR "@DATA_DIR@"
// The default locale directory.
#define DEFAULT_LOCALE_DIR "@LOCALE_DIR@"
// The default log directory.
-#define DEFAULT_LOG_DIR "@LOGS_DIR@"
+#define DEFAULT_LOG_DIR "@LOG_DIR@"
// The default module directory.
-#define DEFAULT_MODULE_DIR "@LIB_DIR@"
+#define DEFAULT_MODULE_DIR "@MODULE_DIR@"
// Whether the clock_gettime() function is available.
#cmakedefine01 HAVE_CLOCK_GETTIME
diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt
index c6a98df7f9..aa9e963c44 100644
--- a/modules/CMakeLists.txt
+++ b/modules/CMakeLists.txt
@@ -94,7 +94,7 @@ macro(build_modules SRC)
target_link_libraries(${SO} ${PROGRAM_NAME})
endif()
# Set the module to be installed to the module directory under the data directory
- install(TARGETS ${SO} DESTINATION ${LIB_DIR}/modules)
+ install(TARGETS ${SO} DESTINATION ${MODULE_DIR})
endif()
endif()
endforeach()
@@ -168,7 +168,7 @@ macro(build_subdir)
endif()
# Set the module to be installed to the module directory under the data directory
- install(TARGETS ${SO} DESTINATION ${LIB_DIR}/modules)
+ install(TARGETS ${SO} DESTINATION ${MODULE_DIR})
endmacro()
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/modules/webcpanel/CMakeLists.txt b/modules/webcpanel/CMakeLists.txt
index 0770fddb7b..ab19f12b51 100644
--- a/modules/webcpanel/CMakeLists.txt
+++ b/modules/webcpanel/CMakeLists.txt
@@ -1,5 +1,5 @@
build_subdir(${CMAKE_CURRENT_SOURCE_DIR})
install(DIRECTORY "templates/"
- DESTINATION "${DB_DIR}/webcpanel/templates/default"
+ DESTINATION "${DATA_DIR}/webcpanel/templates/default"
)
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp
index 4ceae6417b..af7b1f811d 100644
--- a/src/modulemanager.cpp
+++ b/src/modulemanager.cpp
@@ -55,7 +55,7 @@ void ModuleManager::CleanupRuntimeDirectory()
*/
static ModuleReturn moduleCopyFile(const Anope::string &name, Anope::string &output)
{
- const auto input = Anope::ExpandModule("modules/" + name + DLL_EXT);
+ const auto input = Anope::ExpandModule(name + DLL_EXT);
struct stat s;
if (stat(input.c_str(), &s) == -1)
@@ -146,7 +146,7 @@ ModuleReturn ModuleManager::LoadModule(const Anope::string &modname, User *u)
return ret;
}
#else
- const auto pbuf = Anope::ExpandModule("modules/" + modname + DLL_EXT);
+ const auto pbuf = Anope::ExpandModule(modname + DLL_EXT);
#endif
dlerror();

46
anope-2.1.4-paths3.patch Normal file
View file

@ -0,0 +1,46 @@
From 5fdc6373275de9c0844c6507509c153ce69fa0c1 Mon Sep 17 00:00:00 2001
From: Sadie Powell <sadie@witchery.services>
Date: Sun, 14 Apr 2024 11:54:18 +0100
Subject: [PATCH] Expand relative paths when installing.
---
CMakeLists.txt | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0b22650cf7..40cd3521e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -350,15 +350,17 @@ set(SERVICES_BINARY "$<TARGET_FILE:${PROGRAM_NAME}>")
get_filename_component(SERVICES_BINARY ${SERVICES_BINARY} NAME)
# At install time, create the following additional directories
-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DATA_DIR}/backups\")")
-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${LOG_DIR}\")")
+get_filename_component(ABSOLUTE_DATA_DIR ${DATA_DIR} REALPATH BASE_DIR ${CMAKE_INSTALL_PREFIX})
+get_filename_component(ABSOLUTE_LOG_DIR ${LOG_DIR} REALPATH BASE_DIR ${CMAKE_INSTALL_PREFIX})
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ABSOLUTE_DATA_DIR}/backups\")")
+install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ABSOLUTE_LOG_DIR}\")")
if(WIN32)
- install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DATA_DIR}/runtime\")")
+ install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${ABSOLUTE_DATA_DIR}/runtime\")")
endif()
# On non-Windows platforms, if RUNGROUP is set, change the permissions of the below directories, as well as the group of the data directory
if(NOT WIN32 AND RUNGROUP)
- install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DATA_DIR}/backups\")")
- install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${LOG_DIR}\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}${ABSOLUTE_DATA_DIR}/backups\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}${ABSOLUTE_LOG_DIR}\")")
install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}\")")
endif()
# On Windows platforms, install extra files
@@ -368,7 +370,8 @@ if(WIN32)
)
endif()
-install(CODE "file(REMOVE_RECURSE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${MODULE_DIR}\")")
+get_filename_component(ABSOLUTE_MODULE_DIR ${MODULE_DIR} REALPATH BASE_DIR ${CMAKE_INSTALL_PREFIX})
+install(CODE "file(REMOVE_RECURSE \"$ENV{DESTDIR}${ABSOLUTE_MODULE_DIR}\")")
# Only process the CPack section if we have CPack
if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")

View file

@ -183,7 +183,7 @@ module
/*
* The maximum number of entries a single bad words list can have.
*/
badwordsmax = 32
badwordsmax = 50
/*
* If set, BotServ will use case sensitive checking for badwords.
@ -249,7 +249,7 @@ command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
* botserv/kick/italics - Configures BotServ's italics kicker.
* botserv/kick/repeat - Configures BotServ's repeat kicker.
* botserv/kick/reverses - Configures BotServ's reverse kicker.
* botserv/kick/underlines - Configures BotServ's reverse kicker.
* botserv/kick/underlines - Configures BotServ's underline kicker.
* botserv/set/dontkickops - Used for preventing BotServ from kicking channel operators.
* botserv/set/dontkickvoices - Used for preventing BotServ from kicking voices.
*
@ -323,6 +323,7 @@ command { service = "NickServ"; name = "SASET GREET"; command = "nickserv/saset/
privilege
{
name = "GREET"
desc = _("Greet message displayed on join")
rank = 40
level = 5
flag = "g"

View file

@ -76,8 +76,6 @@ module
* access level or superior
* - cs_private: Hide the channel from ChanServ's LIST command
* - restricted: Kick/ban users who are restricted from the channel
* - cs_secure: Enable channel security, requiring the user to be identified with NickServ in
* order to be considered for being on the access list of the channel
* - secureops: Only allow operator status to be given if the user is on the access list
* - securefounder: Only allow the real founder of the channel to drop the channel, change its
* password, or change the founder or successor
@ -89,12 +87,14 @@ module
* - noautoop: Disables autoop on the channel
* - cs_keep_modes: Enables keep modes on the channel, which retains modes when the channel is
* not in use.
* - cs_no_expire: Enables no expire. Needs founder, successor (if set) or anyone in the access list
* to be a registered nick, otherwise the channel will be dropped.
* - none: No defaults
*
* This directive is optional, if left blank, the options will default to keeptopic, cs_secure, securefounder,
* and signkick. If you really want no defaults, use "none" by itself as the option.
* This directive is optional, if left blank, the options will default to keeptopic, peace,
* securefounder, and signkick. If you really want no defaults, use "none" by itself as the option.
*/
defaults = "keeptopic peace cs_secure securefounder signkick"
defaults = "keeptopic peace securefounder signkick"
/*
* The maximum number of channels which may be registered to a single nickname.
@ -108,21 +108,21 @@ module
* The length of time before a channel registration expires.
*
* This directive is optional, but recommended.
* If not set, the default is 14 days.
* If not set, the default is 30 days.
*/
expire = 14d
expire = 30d
/*
* The maximum number of entries on a channel's access list.
* If not set, the default is 1024. This can be set to 0 for unlimited.
* If not set, the default is 1000. This can be set to 0 for unlimited.
*/
accessmax = 1024
accessmax = 1000
/*
* The length of time ChanServ stays in a channel after kicking a user from a channel they are not
* permitted to be in. This only occurs when the user is the only one in the channel.
*/
inhabit = 15s
inhabit = 1m
/*
* Allow only IRC Operators to use ChanServ.
@ -214,6 +214,7 @@ module
privilege
{
name = "ACCESS_CHANGE"
desc = _("Allowed to modify the access list")
rank = 0
level = 10
flag = "f"
@ -230,6 +231,7 @@ privilege
privilege
{
name = "ACCESS_LIST"
desc = _("Allowed to view the access list")
rank = 10
level = 3
flag = "f"
@ -246,6 +248,7 @@ privilege
privilege
{
name = "AKICK"
desc = _("Allowed to use the AKICK command")
rank = 250
level = 10
flag = "K"
@ -262,6 +265,7 @@ privilege
privilege
{
name = "ASSIGN"
desc = _("Allowed to assign/unassign a bot")
rank = 270
level = "founder"
flag = "s"
@ -278,6 +282,7 @@ privilege
privilege
{
name = "AUTOHALFOP"
desc = _("Automatic halfop upon join")
rank = 100
level = 4
flag = "H"
@ -294,6 +299,7 @@ privilege
privilege
{
name = "AUTOOP"
desc = _("Automatic channel operator status upon join")
rank = 210
level = 5
flag = "O"
@ -310,6 +316,7 @@ privilege
privilege
{
name = "AUTOOWNER"
desc = _("Automatic owner upon join")
rank = 330
level = 9999
flag = "Q"
@ -326,6 +333,7 @@ privilege
privilege
{
name = "AUTOPROTECT"
desc = _("Automatic protect upon join")
rank = 240
level = 10
flag = "A"
@ -342,6 +350,7 @@ privilege
privilege
{
name = "AUTOVOICE"
desc = _("Automatic voice on join")
rank = 50
level = 3
flag = "V"
@ -358,6 +367,7 @@ privilege
privilege
{
name = "BADWORDS"
desc = _("Allowed to modify channel badwords list")
rank = 260
level = 10
flag = "K"
@ -374,6 +384,7 @@ privilege
privilege
{
name = "BAN"
desc = _("Allowed to ban users")
rank = 150
level = 4
flag = "b"
@ -390,6 +401,7 @@ privilege
privilege
{
name = "FANTASIA"
desc = _("Allowed to use fantasy commands")
rank = 30
level = 3
flag = "c"
@ -409,6 +421,7 @@ privilege
privilege
{
name = "FOUNDER"
desc = _("Allowed to issue commands restricted to channel founders")
rank = 360
level = 10000
flag = "F"
@ -426,6 +439,7 @@ privilege
privilege
{
name = "GETKEY"
desc = _("Allowed to use GETKEY command")
rank = 180
level = 5
flag = "G"
@ -443,6 +457,7 @@ privilege
privilege
{
name = "HALFOP"
desc = _("Allowed to (de)halfop users")
rank = 120
level = 5
flag = "h"
@ -460,6 +475,7 @@ privilege
privilege
{
name = "HALFOPME"
desc = _("Allowed to (de)halfop themself")
rank = 110
level = 4
flag = "h"
@ -477,6 +493,7 @@ privilege
privilege
{
name = "INFO"
desc = _("Allowed to get full INFO output")
rank = 80
level = 9999
flag = "I"
@ -494,6 +511,7 @@ privilege
privilege
{
name = "INVITE"
desc = _("Allowed to use the INVITE command")
rank = 190
level = 5
flag = "i"
@ -510,6 +528,7 @@ privilege
privilege
{
name = "KICK"
desc = _("Allowed to use the KICK command")
rank = 130
level = 4
flag = "k"
@ -527,6 +546,7 @@ privilege
privilege
{
name = "MEMO"
desc = _("Allowed to read channel memos")
rank = 280
level = 10
flag = "m"
@ -544,6 +564,7 @@ privilege
privilege
{
name = "MODE"
desc = _("Allowed to use the MODE command")
rank = 170
level = 9999
flag = "s"
@ -560,6 +581,7 @@ privilege
privilege
{
name = "NOKICK"
desc = _("Prevents users being kicked by services")
rank = 20
level = 1
flag = "N"
@ -577,6 +599,7 @@ privilege
privilege
{
name = "OP"
desc = _("Allowed to (de)op users")
rank = 230
level = 5
flag = "o"
@ -594,6 +617,7 @@ privilege
privilege
{
name = "OPME"
desc = _("Allowed to (de)op themself")
rank = 220
level = 5
flag = "o"
@ -611,6 +635,7 @@ privilege
privilege
{
name = "OWNER"
desc = _("Allowed to (de)owner users")
rank = 350
level = "founder"
flag = "q"
@ -628,6 +653,7 @@ privilege
privilege
{
name = "OWNERME"
desc = _("Allowed to (de)owner themself")
rank = 340
level = 9999
flag = "q"
@ -645,6 +671,7 @@ privilege
privilege
{
name = "PROTECT"
desc = _("Allowed to (de)protect users")
rank = 310
level = 9999
flag = "a"
@ -662,6 +689,7 @@ privilege
privilege
{
name = "PROTECTME"
desc = _("Allowed to (de)protect themself")
rank = 300
level = 10
flag = "a"
@ -679,6 +707,7 @@ privilege
privilege
{
name = "SAY"
desc = _("Allowed to use SAY and ACT commands")
rank = 90
level = 5
flag = "B"
@ -698,6 +727,7 @@ privilege
privilege
{
name = "SET"
desc = _("Allowed to set channel settings")
rank = 320
level = 9999
flag = "s"
@ -715,6 +745,7 @@ privilege
privilege
{
name = "SIGNKICK"
desc = _("No signed kick when SIGNKICK LEVEL is used")
rank = 140
level = 9999
flag = "K"
@ -731,6 +762,7 @@ privilege
privilege
{
name = "TOPIC"
desc = _("Allowed to change channel topics")
rank = 160
level = 5
flag = "t"
@ -747,12 +779,30 @@ privilege
privilege
{
name = "UNBAN"
desc = _("Allowed to unban users")
rank = 200
level = 4
flag = "u"
xop = "HOP"
}
/*
* UNBANME privilege.
*
* Used by chanserv/unban.
*
* Users with this permission can unban themself through ChanServ.
*/
privilege
{
name = "UNBANME"
desc = _("Allowed to unban themself")
rank = 200
level = 4
flag = "U"
xop = "HOP"
}
/*
* VOICE privilege.
*
@ -764,6 +814,7 @@ privilege
privilege
{
name = "VOICE"
desc = _("Allowed to (de)voice users")
rank = 70
level = 4
flag = "v"
@ -781,6 +832,7 @@ privilege
privilege
{
name = "VOICEME"
desc = _("Allowed to (de)voice themself")
rank = 60
level = 3
flag = "v"
@ -861,7 +913,7 @@ module
/*
* The maximum number of entries on a channel's autokick list.
*/
autokickmax = 32
autokickmax = 50
/*
* The default reason for an autokick if none is given.
@ -1074,7 +1126,7 @@ module
*
* This directive is optional.
*/
max = 32
max = 50
}
command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; group = "chanserv/management"; }
@ -1195,7 +1247,7 @@ command { service = "ChanServ"; name = "SET NOEXPIRE"; command = "chanserv/saset
*/
module { name = "cs_set_misc" }
command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; misc_description = _("Associate a URL with the channel"); }
command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; misc_description = _("Associate an E-mail address with the channel"); }
command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; misc_description = _("Associate an email address with the channel"); }
/*
* cs_status
@ -1207,6 +1259,7 @@ command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc
*/
module { name = "cs_status" }
command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; }
command { service = "ChanServ"; name = "WHY"; command = "chanserv/status"; hide = true; }
/*
* cs_suspend

View file

@ -5,7 +5,7 @@
module
{
name = "m_chanstats"
name = "chanstats"
/*
* The name of this engine.

View file

@ -66,15 +66,15 @@ module
client = "Global"
/*
* This is the global message that will be sent when Services are being
* This is the global message that will be sent when Anope is being
* shutdown/restarted.
*
* This directive is optional.
*/
#globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone"
#globaloncycledown = "Services are restarting, they will be back shortly - please be good while they're gone"
/*
* This is the global message that will be sent when Services (re)join the
* This is the global message that will be sent when Anope (re)joins the
* network.
*
* This directive is optional.
@ -82,7 +82,7 @@ module
#globaloncycleup = "Services are now back online - have a nice day"
/*
* If set, Services will hide the IRC Operator's nick in a global
* If set, Anope will hide the IRC Operator's nick in a global
* message/notice.
*
* This directive is optional.
@ -113,3 +113,29 @@ command { service = "Global"; name = "HELP"; command = "generic/help"; }
*/
module { name = "gl_global" }
command { service = "Global"; name = "GLOBAL"; command = "global/global"; permission = "global/global"; }
/*
* gl_queue
*
* Provides the command global/queue.
*
* Used for queuing messages to send to every online user.
*/
module
{
name = "gl_queue"
/* The maximum number of messages in a message queue. Defaults to 10. */
maxqueue = 10
}
command { service = "Global"; name = "QUEUE"; command = "global/queue"; permission = "global/queue"; }
/*
* gl_server
*
* Provides the command global/server.
*
* Used for sending a message to every online user on a server.
*/
module { name = "gl_server" }
command { service = "Global"; name = "SERVER"; command = "global/server"; permission = "global/server"; }

View file

@ -110,12 +110,12 @@ module
/*
* Upon nickserv/group, this option syncs the nick's main vHost to the grouped nick.
*/
syncongroup = false
syncongroup = true
/*
* This makes vhosts act as if they are per account.
*/
synconset = false
synconset = true
}
command { service = "HostServ"; name = "GROUP"; command = "hostserv/group"; }
@ -161,13 +161,13 @@ module
name = "hs_request"
/*
* If set, Services will send a memo to the user requesting a vHost when it's been
* If set, Anope will send a memo to the user requesting a vHost when it's been
* approved or rejected.
*/
#memouser = yes
/*
* If set, Services will send a memo to all Services staff when a new vHost is requested.
* If set, Anope will send a memo to all services staff when a new vHost is requested.
*/
#memooper = yes
}

View file

@ -83,7 +83,7 @@ module
*
* This directive is optional, but recommended.
*/
senddelay = 3s
senddelay = 30s
}
/*
@ -146,7 +146,7 @@ module
*
* This directive is optional.
*/
max = 32
max = 50
}
command { service = "MemoServ"; name = "IGNORE"; command = "memoserv/ignore"; }

View file

@ -3,7 +3,7 @@
*
* The following blocks are used to load all non-core modules, including 3rd-party modules.
* Modules can be prevented from loading by commenting out the line, other modules can be added by
* adding a module block. These modules will be loaded prior to Services connecting to your network.
* adding a module block. These modules will be loaded prior to Anope connecting to your network.
*
* Note that some of these modules are labeled EXTRA, and must be enabled prior to compiling by
* running the 'extras' script on Linux and UNIX.
@ -19,14 +19,14 @@
module { name = "help" }
/*
* m_dns
* dns
*
* Adds support for the DNS protocol. By itself this module does nothing useful,
* but other modules such as m_dnsbl and os_dns require this.
* but other modules such as dnsbl and os_dns require this.
*/
#module
{
name = "m_dns"
name = "dns"
/*
* The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file.
@ -59,7 +59,7 @@ module { name = "help" }
* SOA record information.
*/
/* E-mail address of the DNS administrator. */
/* Email address of the DNS administrator. */
admin = "admin@example.com"
/* This should be the names of the public facing nameservers serving the records. */
@ -80,7 +80,7 @@ module { name = "help" }
}
/*
* m_dnsbl
* dnsbl
*
* Allows configurable DNS blacklists to check connecting users against. If a user
* is found on the blacklist they will be immediately banned. This is a crucial module
@ -88,17 +88,17 @@ module { name = "help" }
*/
#module
{
name = "m_dnsbl"
name = "dnsbl"
/*
* If set, Services will check clients against the DNSBLs when services connect to its uplink.
* If set, Anope will check clients against the DNSBLs when services connect to its uplink.
* This is not recommended, and on large networks will open a very large amount of DNS queries.
* Whilst services are not drastically affected by this, your nameserver/DNSBL might care.
*/
check_on_connect = no
/*
* If set, Services will check clients when coming back from a netsplit. This can cause a large number
* If set, Anope will check clients when coming back from a netsplit. This can cause a large number
* of DNS queries open at once. Whilst services are not drastically affected by this, your nameserver/DNSBL
* might care.
*/
@ -179,19 +179,19 @@ module { name = "help" }
}
/*
* m_helpchan
* helpchan
*
* Gives users who are op in the specified help channel usermode +h (helpop).
*/
#module
{
name = "m_helpchan"
name = "helpchan"
helpchannel = "#help"
}
/*
* m_httpd
* httpd
*
* Allows services to serve web pages. By itself, this module does nothing useful.
*
@ -200,7 +200,7 @@ module { name = "help" }
*/
#module
{
name = "m_httpd"
name = "httpd"
httpd
{
@ -233,13 +233,13 @@ module { name = "help" }
}
/*
* m_ldap [EXTRA]
* ldap [EXTRA]
*
* This module allows other modules to use LDAP. By itself, this module does nothing useful.
*/
#module
{
name = "m_ldap"
name = "ldap"
ldap
{
@ -254,14 +254,14 @@ module { name = "help" }
}
/*
* m_ldap_authentication [EXTRA]
* ldap_authentication
*
* This module allows many commands such as IDENTIFY, RELEASE, RECOVER, GHOST, etc. use
* LDAP to authenticate users. Requires m_ldap.
* LDAP to authenticate users. Requires ldap.
*/
#module
{
name = "m_ldap_authentication"
name = "ldap_authentication"
/*
* The distinguished name used for searching for users's accounts.
@ -314,16 +314,16 @@ module { name = "help" }
}
/*
* m_ldap_oper [EXTRA]
* ldap_oper
*
* This module dynamically ties users to Anope opertypes when they identify
* via LDAP group membership. Requires m_ldap.
* via LDAP group membership. Requires ldap.
*
* Note that this doesn't give the user privileges on the IRCd, only in Services.
* Note that this doesn't give the user privileges on the IRCd, only in Anope.
*/
#module
{
name = "m_ldap_oper"
name = "ldap_oper"
/*
* An optional binddn to use when searching for groups.
@ -355,13 +355,13 @@ module { name = "help" }
}
/*
* m_mysql [EXTRA]
* mysql [EXTRA]
*
* This module allows other modules to use MySQL.
*/
#module
{
name = "m_mysql"
name = "mysql"
mysql
{
@ -376,13 +376,13 @@ module { name = "help" }
}
/*
* m_redis
* redis
*
* This module allows other modules to use Redis.
*/
#module
{
name = "m_redis"
name = "redis"
/* A redis database */
redis
@ -401,38 +401,61 @@ module { name = "help" }
}
/*
* m_regex_pcre [EXTRA]
* regex_pcre2 [EXTRA]
*
* Provides the regex engine regex/pcre, which uses the Perl Compatible Regular Expressions library.
* Provides the regex engine regex/pcre, which uses version 2 of the Perl Compatible Regular
* Expressions library.
*/
#module { name = "m_regex_pcre" }
#module { name = "regex_pcre2" }
/*
* m_regex_posix [EXTRA]
* regex_posix [EXTRA]
*
* Provides the regex engine regex/posix, which uses the POSIX compliant regular expressions.
* This is likely the only regex module you will not need extra libraries for.
*/
#module { name = "m_regex_posix" }
#module { name = "regex_posix" }
/*
* m_regex_tre [EXTRA]
* regex_stdlib
*
* Provides the regex engine regex/stdlib, which uses the regular expression library that is part of
* the C++ standard library.
*/
module
{
name = "regex_stdlib"
/*
* The syntax scheme to use. Can be set to awk to use the regular expression grammar used by the
* awk utility in POSIX, basic to use the basic POSIX regular expression grammar, ecmascript to
* use the modified ECMAScript regular expression grammar, egrep to use the regular expression
* grammar used by the grep utility with the -E option in POSIX, extended to use the extended
* POSIX regular expression grammar, or grep to use the regular expression grammar used by the
* grep utility in POSIX.
*
* See https://en.cppreference.com/w/cpp/regex/syntax_option_type for more information.
*/
syntax = "ecmascript"
}
/*
* regex_tre [EXTRA]
*
* Provides the regex engine regex/tre, which uses the TRE regex library.
*/
#module { name = "m_regex_tre" }
#module { name = "regex_tre" }
/*
* m_rewrite
* rewrite
*
* Allows rewriting commands sent to/from clients.
*/
#module { name = "m_rewrite" }
#module { name = "rewrite" }
#command
{
service = "ChanServ"; name = "CLEAR"; command = "rewrite"
/* Enable m_rewrite. */
/* Enable rewrite. */
rewrite = true
/* Source message to match. A $ can be used to match anything. */
@ -453,7 +476,7 @@ module { name = "help" }
}
/*
* m_proxyscan
* proxyscan
*
* This module allows you to scan connecting clients for open proxies.
* Note that using this will allow users to get the IP of your services.
@ -467,7 +490,7 @@ module { name = "help" }
*/
#module
{
name = "m_proxyscan"
name = "proxyscan"
/*
* The target IP services tells the proxy to connect back to. This must be a publicly
@ -535,38 +558,39 @@ module { name = "help" }
}
/*
* m_sasl
* sasl
*
* Some IRCds allow "SASL" authentication to let users identify to Services
* during the IRCd user registration process. If this module is loaded, Services will allow
* Some IRCds allow "SASL" authentication to let users identify to services
* during the IRCd user registration process. If this module is loaded, Anope will allow
* authenticating users through this mechanism. Supported mechanisms are:
* PLAIN, EXTERNAL.
*/
module { name = "m_sasl" }
module { name = "sasl" }
/*
* m_ssl_gnutls [EXTRA]
* ssl_gnutls [EXTRA]
*
* This module provides SSL services to Anope using GnuTLS, for example to
* connect to the uplink server(s) via SSL.
*
* You may only load either m_ssl_gnutls or m_ssl_openssl, but not both.
* You may only load either ssl_gnutls or ssl_openssl, but not both.
*/
#module
{
name = "m_ssl_gnutls"
name = "ssl_gnutls"
/*
* An optional certificate and key for m_ssl_gnutls to give to the uplink.
* An optional certificate and key for ssl_gnutls to give to the uplink. All
* paths are relative to the config directory.
*
* You can generate your own certificate and key pair by using:
*
* certtool --generate-privkey --bits 2048 --outfile anope.key
* certtool --generate-self-signed --load-privkey anope.key --outfile anope.crt
* certtool --generate-privkey --bits 2048 --outfile privkey.pem
* certtool --generate-self-signed --load-privkey privkey.pem --outfile fullchain.pem
*
*/
cert = "data/anope.crt"
key = "data/anope.key"
cert = "fullchain.pem"
key = "privkey.pem"
/*
* Diffie-Hellman parameters to use when acting as a server. This is only
@ -579,53 +603,55 @@ module { name = "m_sasl" }
* certtool --generate-dh-params --bits 2048 --outfile dhparams.pem
*
*/
# dhparams = "data/dhparams.pem"
#dhparams = "dhparams.pem"
}
/*
* m_ssl_openssl [EXTRA]
* ssl_openssl [EXTRA]
*
* This module provides SSL services to Anope using OpenSSL, for example to
* connect to the uplink server(s) via SSL.
*
* You may only load either m_ssl_openssl or m_ssl_gnutls, but not both.
* You may only load either ssl_openssl or ssl_gnutls, but not both.
*
*/
#module
{
name = "m_ssl_openssl"
name = "ssl_openssl"
/*
* An optional certificate and key for m_ssl_openssl to give to the uplink.
* An optional certificate and key for ssl_openssl to give to the uplink.
* All paths are relative to the config directory.
*
* You can generate your own certificate and key pair by using:
*
* openssl genrsa -out anope.key 2048
* openssl req -new -x509 -key anope.key -out anope.crt -days 1095
* openssl genrsa -out privkey.pem 2048
* openssl req -new -x509 -key privkey.pem -out fullchain.pem -days 1095
*/
cert = "data/anope.crt"
key = "data/anope.key"
cert = "fullchain.pem"
key = "privkey.pem"
/*
* As of 2014 SSL 3.0 is considered insecure, but it might be enabled
* on some systems by default for compatibility reasons.
* You can use the following option to enable or disable it explicitly.
* Leaving this option not set defaults to the default system behavior.
* If you wish to increase security you can disable support for older
* versions of TLS with no known vulnerabilities but that provide less
* security. For your security SSLv2 and SSLv3 are always disabled.
*/
#sslv3 = no
#tlsv10 = no
#tlsv11 = no
#tlsv12 = yes
}
/*
* m_sql_authentication [EXTRA]
* sql_authentication
*
* This module allows authenticating users against an external SQL database using a custom
* query.
*/
#module
{
name = "m_sql_authentication"
name = "sql_authentication"
/* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */
/* SQL engine to use. Should be configured elsewhere with mysql, sqlite, etc. */
engine = "mysql/main"
/* Query to execute to authenticate. A non empty result from this query is considered a success,
@ -667,7 +693,7 @@ module { name = "m_sasl" }
}
/*
* m_sql_log [EXTRA]
* sql_log
*
* This module adds an additional target option to log{} blocks
* that allows logging Service's logs to SQL. To log to SQL, add
@ -684,24 +710,24 @@ module { name = "m_sasl" }
* it if it doesn't exist. This module does not create any indexes (keys)
* on the table and it is recommended you add them yourself as necessary.
*/
#module { name = "m_sql_log" }
#module { name = "sql_log" }
/*
* m_sql_oper [EXTRA]
* sql_oper
*
* This module allows granting users services operator privileges and possibly IRC Operator
* privileges based on an external SQL database using a custom query.
*/
#module
{
name = "m_sql_oper"
name = "sql_oper"
/* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */
/* SQL engine to use. Should be configured elsewhere with mysql, sqlite, etc. */
engine = "mysql/main"
/* Query to execute to determine if a user should have operator privileges.
* A field named opertype must be returned in order to link the user to their oper type.
* The oper types must be configured earlier in services.conf.
* The oper types must be configured earlier in anope.conf.
*
* If a field named modes is returned from this query then those modes are set on the user.
* Without this, only a simple +o is sent.
@ -713,13 +739,13 @@ module { name = "m_sasl" }
}
/*
* m_sqlite [EXTRA]
* sqlite [EXTRA]
*
* This module allows other modules to use SQLite.
*/
#module
{
name = "m_sqlite"
name = "sqlite"
/* A SQLite database */
sqlite
@ -733,23 +759,23 @@ module { name = "m_sasl" }
}
/*
* m_xmlrpc
* xmlrpc
*
* Allows remote applications (websites) to execute queries in real time to retrieve data from Anope.
* By itself this module does nothing, but allows other modules (m_xmlrpc_main) to receive and send XMLRPC queries.
* By itself this module does nothing, but allows other modules (xmlrpc_main) to receive and send XMLRPC queries.
*/
#module
{
name = "m_xmlrpc"
name = "xmlrpc"
/* Web service to use. Requires m_httpd. */
/* Web service to use. Requires httpd. */
server = "httpd/main"
}
/*
* m_xmlrpc_main
* xmlrpc_main
*
* Adds the main XMLRPC core functions.
* Requires m_xmlrpc.
* Requires xmlrpc.
*/
#module { name = "m_xmlrpc_main" }
#module { name = "xmlrpc_main" }

View file

@ -66,9 +66,9 @@ module
client = "NickServ"
/*
* Force users to give an e-mail address when they register a nick.
* Requires users to give an email address when they register a nick.
*
* This directive defaults to "yes" and is recommended to be enabled. This is required if e-mail registration is enabled.
* This directive defaults to "yes" and is recommended to be enabled.
*/
forceemail = yes
@ -92,12 +92,12 @@ module
*
* The options are:
* - killprotect: Kill nick if not identified within 60 seconds
* - kill_quick: Kill nick if not identified within 20 seconds, this one overrides the above
* option and the above must be specified with this one
* - ns_secure: Enable nickname security, requiring the nick's password before any operations
* can be done on it
* - kill_quick: Kill nick if not identified within 20 seconds, this one overrides the killprotect
* option and the killprotect option must be specified with this one
* - kill_immed: Kill nick immediately if not identified, this one overrides both the killprotect
* and kill_quick options and the killprotect option must be specified with this one
* - ns_private: Hide the nick from NickServ's LIST command
* - hide_email: Hide the nick's e-mail address from NickServ's INFO command
* - hide_email: Hide the nick's email address from NickServ's INFO command
* - hide_mask: Hide the nick's last or current user@host from NickServ's INFO command
* - hide_status: Hide the nick's services operator access status from NickServ's INFO command
* - hide_quit: Hide the nick's last quit message from NickServ's INFO command
@ -105,39 +105,39 @@ module
* - memo_receive: Notify user if they have a new memo as soon as it's received
* - memo_mail: Notify user if they have a new memo by mail
* - autoop: User will be automatically opped in channels they enter and have access to
* - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires
* options:useprivmsg to be enabled as well
* - neverop: User can not be added to access lists
* - msg: Messages will be sent as PRIVMSGs instead of NOTICEs, requires options:useprivmsg
* to be enabled as well
* - ns_keep_modes: Enables keepmodes, which retains user modes across sessions
* - ns_no_expire: Enables no expire. Unconfirmed expire overrules this.
*
* This directive is optional, if left blank, the options will default to ns_secure, memo_signon, and
* This directive is optional, if left blank, the options will default to memo_signon, and
* memo_receive. If you really want no defaults, use "none" by itself as the option.
*/
defaults = "ns_secure ns_private hide_email hide_mask memo_signon memo_receive autoop"
defaults = "killprotect ns_private hide_email hide_mask memo_signon memo_receive autoop"
/*
* The minimum length of time between consecutive uses of NickServ's REGISTER command. This
* directive is optional, but recommended. If not set, this restriction will be disabled.
*/
regdelay = 30s
regdelay = 5m
/*
* The length of time before a nick's registration expires.
*
* This directive is optional, but recommended. If not set, the default is 21 days.
* This directive is optional, but recommended. If not set, the default is 90 days.
*/
expire = 21d
expire = 90d
/*
* Prevents the use of the ACCESS and CERT (excluding their LIST subcommand), DROP, FORBID, SUSPEND,
* GETPASS and SET PASSWORD commands by services operators on other services operators.
* Prevents the use of the ACCESS and CERT (excluding their LIST subcommand), DROP, FORBID, SUSPEND
* and SET PASSWORD commands by services operators on other services operators.
*
* This directive is optional, but recommended.
*/
secureadmins = yes
/*
* If set, Services will set the channel modes a user has access to upon identifying, assuming
* If set, Anope will set the channel modes a user has access to upon identifying, assuming
* they are not already set.
*
* This directive is optional.
@ -145,14 +145,14 @@ module
modeonid = yes
/*
* If set, Services will set these user modes on any user who identifies.
* If set, Anope will set these user modes on any user who identifies.
*
* This directive is optional.
*/
#modesonid = "+R"
/*
* If set, Services will not show netsplits in the last quit message field
* If set, Anope will not show netsplits in the last quit message field
* of NickServ's INFO command.
*/
hidenetsplitquit = no
@ -166,7 +166,7 @@ module
/*
* If set, forbids the registration of nicks that contain an existing
* nick with Services access. For example, if Tester is a Services Oper,
* nick with services access. For example, if Tester is a Services Oper,
* you can't register NewTester or Tester123 unless you are an IRC
* Operator.
*
@ -179,14 +179,14 @@ module
#restrictopernicks = yes
/*
* The username, and possibly hostname, used for fake users created when Services needs to
* The username, and possibly hostname, used for fake users created when Anope needs to
* hold a nickname.
*/
enforceruser = "enforcer"
enforcerhost = "services.host"
/*
* The length of time Services hold nicknames.
* The length of time Anope should hold nicknames for.
*
* This directive is optional, but recommended. If not set it defaults to 1 minute.
*/
@ -202,16 +202,23 @@ module
guestnickprefix = "Guest"
/*
* If set, Services do not allow ownership of nick names, only ownership of accounts.
* If set, Anope does not allow ownership of nick names, only ownership of accounts.
*/
nonicknameownership = no
/*
* The minimum length of passwords
*
* This directive is optional. If not set it defaults to 10.
*/
minpasslen = 10
/*
* The maximum length of passwords
*
* This directive is optional. If not set it defaults to 32.
* This directive is optional. If not set it defaults to 50.
*/
passlen = 32
maxpasslen = 50
}
/*
@ -239,33 +246,6 @@ command_group
/* Give it a help command. */
command { service = "NickServ"; name = "HELP"; command = "generic/help"; }
/*
* ns_access
*
* Provides the command nickserv/access.
*
* Used for configuring what hosts have access to your account.
*/
module
{
name = "ns_access"
/*
* The maximum number of entries allowed on a nickname's access list.
* If not set, the default is 32. This number cannot be set to 0.
*/
accessmax = 32
/*
* If set, Services will add the usermask of registering users to the access list of their
* newly created account. If not set, users will always have to identify to NickServ before
* being recognized, unless they manually add an address to the access list of their account.
* This directive is optional.
*/
addaccessonreg = no
}
command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; }
/*
* ns_ajoin
*
@ -293,6 +273,7 @@ command { service = "NickServ"; name = "AJOIN"; command = "nickserv/ajoin"; }
*/
module { name = "ns_alist" }
command { service = "NickServ"; name = "ALIST"; command = "nickserv/alist"; }
command { service = "NickServ"; name = "ACCESS"; command = "nickserv/alist"; hide = true; }
/*
* ns_cert
@ -333,18 +314,6 @@ command { service = "NickServ"; name = "DROP"; command = "nickserv/drop"; }
module { name = "ns_getemail" }
command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail"; permission = "nickserv/getemail"; group = "nickserv/admin"; }
/*
* ns_getpass
*
* Provides the command nickserv/getpass.
*
* Used for getting users passwords.
*
* Requires no encryption is being used.
*/
#module { name = "ns_getpass" }
#command { service = "NickServ"; name = "GETPASS"; command = "nickserv/getpass"; permission = "nickserv/getpass"; }
/*
* ns_group
*
@ -361,7 +330,7 @@ module
*
* This directive is optional, but recommended. If not set or set to 0, no limits will be applied.
*/
maxaliases = 16
maxaliases = 10
/*
* If set, the NickServ GROUP command won't allow any group changes. This is recommended to
@ -455,7 +424,7 @@ module
name = "ns_recover"
/*
* If set, Services will svsnick and svsjoin users who use the recover
* If set, Anope will svsnick and svsjoin users who use the recover
* command on an identified user to the nick and channels of the recovered user.
*
* This directive is optional.
@ -463,9 +432,10 @@ module
restoreonrecover = yes
}
command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; }
# Uncomment below to emulate 1.8's behavior of ghost and release.
#command { service = "NickServ"; name = "GHOST"; command = "nickserv/recover"; }
#command { service = "NickServ"; name = "RELEASE"; command = "nickserv/recover"; }
# For compatibility with Anope 1.8 and Atheme.
command { service = "NickServ"; name = "GHOST"; command = "nickserv/recover"; hide = true; }
command { service = "NickServ"; name = "RELEASE"; command = "nickserv/recover"; hide = true; }
/*
* ns_register
@ -498,7 +468,7 @@ module
*
* This directive is optional.
*/
#nickregdelay = 30s
nickregdelay = 15s
/*
* The length of time a user using an unconfirmed account has
@ -532,9 +502,9 @@ command { service = "NickServ"; name = "RESETPASS"; command = "nickserv/resetpas
* nickserv/set/kill, nickserv/saset/kill - Used for configuring nickname protection.
* nickserv/set/language, nickserv/saset/language - Used for configuring what language services use.
* nickserv/set/message, nickserv/saset/message - Used to configure how services send messages to you.
* nickserv/set/password, nickserv/saset/password - Used for changing a users password.
* nickserv/set/secure, nickserv/saset/secure - Used for configuring whether a user can identify by simply being recognized by nickserv/access.
* nickserv/set/neverop, nickserv/saset/neverop - Used to configure whether a user can be added to access lists
* nickserv/saset/noexpire - Used for configuring noexpire, which prevents nicks from expiring.
* nickserv/set/password, nickserv/saset/password - Used for changing a users password.
*/
module
{
@ -575,8 +545,8 @@ command { service = "NickServ"; name = "SASET MESSAGE"; command = "nickserv/sase
command { service = "NickServ"; name = "SET PASSWORD"; command = "nickserv/set/password"; }
command { service = "NickServ"; name = "SASET PASSWORD"; command = "nickserv/saset/password"; permission = "nickserv/saset/password"; }
command { service = "NickServ"; name = "SET SECURE"; command = "nickserv/set/secure"; }
command { service = "NickServ"; name = "SASET SECURE"; command = "nickserv/saset/secure"; permission = "nickserv/saset/secure"; }
command { service = "NickServ"; name = "SET NEVEROP"; command = "nickserv/set/neverop"; }
command { service = "NickServ"; name = "SASET NEVEROP"; command = "nickserv/saset/neverop"; permission = "nickserv/saset/neverop"; }
command { service = "NickServ"; name = "SASET NOEXPIRE"; command = "nickserv/saset/noexpire"; permission = "nickserv/saset/noexpire"; }
@ -592,22 +562,12 @@ command { service = "NickServ"; name = "SASET NOEXPIRE"; command = "nickserv/sas
module { name = "ns_set_misc" }
command { service = "NickServ"; name = "SET URL"; command = "nickserv/set/misc"; misc_description = _("Associate a URL with your account"); }
command { service = "NickServ"; name = "SASET URL"; command = "nickserv/saset/misc"; misc_description = _("Associate a URL with this account"); permission = "nickserv/saset/url"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET ICQ"; command = "nickserv/set/misc"; misc_description = _("Associate an ICQ account with your account"); }
#command { service = "NickServ"; name = "SASET ICQ"; command = "nickserv/saset/misc"; misc_description = _("Associate an ICQ account with this account"); permission = "nickserv/saset/icq"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET TWITTER"; command = "nickserv/set/misc"; misc_description = _("Associate a Twitter account with your account"); }
#command { service = "NickServ"; name = "SASET TWITTER"; command = "nickserv/saset/misc"; misc_description = _("Associate a Twitter account with this account"); permission = "nickserv/saset/twitter"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET DISCORD"; command = "nickserv/set/misc"; misc_description = _("Associate a Discord account with your account"); }
#command { service = "NickServ"; name = "SASET DISCORD"; command = "nickserv/saset/misc"; misc_description = _("Associate a Discord account with this account"); permission = "nickserv/saset/discord"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET FACEBOOK"; command = "nickserv/set/misc"; misc_description = _("Associate a Facebook URL with your account"); }
#command { service = "NickServ"; name = "SASET FACEBOOK"; command = "nickserv/saset/misc"; misc_description = _("Associate a Facebook URL with this account"); permission = "nickserv/saset/facebook"; group = "nickserv/admin"; }
/*
* ns_status
*
* Provides the nickserv/status command.
*
* Used to determine if a user is recognized or identified by services.
*/
module { name = "ns_status" }
command { service = "NickServ"; name = "STATUS"; command = "nickserv/status"; }
#command { service = "NickServ"; name = "SET MASTODON"; command = "nickserv/set/misc"; misc_description = _("Associate a Mastodon account with your account"); }
#command { service = "NickServ"; name = "SASET MASTODON"; command = "nickserv/saset/misc"; misc_description = _("Associate a Mastodon account with this account"); permission = "nickserv/saset/mastodon"; group = "nickserv/admin"; }
/*
* ns_suspend
@ -663,7 +623,7 @@ command { service = "NickServ"; name = "UPDATE"; command = "nickserv/update"; }
name = "ns_maxemail"
/*
* The limit to how many registered nicks can use the same e-mail address. If set to 0 or left
* The limit to how many registered nicks can use the same email address. If set to 0 or left
* commented, there will be no limit enforced when registering new accounts or using
* /msg NickServ SET EMAIL.
*/

View file

@ -75,7 +75,7 @@ module
sqlineexpiry = 30d
/*
* If set, this option will make Services send an AKILL command immediately after it has been
* If set, this option will make Anope send an AKILL command immediately after it has been
* added with AKILL ADD. This eliminates the need for killing the user after the AKILL has
* been added.
*
@ -84,7 +84,7 @@ module
akillonadd = yes
/*
* If set, this option will make Services send an (SVS)KILL command immediately after SNLINE ADD.
* If set, this option will make Anope send an (SVS)KILL command immediately after SNLINE ADD.
* This eliminates the need for killing the user after the SNLINE has been added.
*
* This directive is optional.
@ -92,7 +92,7 @@ module
killonsnline = yes
/*
* If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD.
* If set, this option will make Anope send an (SVS)KILL command immediately after SQLINE ADD.
* This eliminates the need for killing the user after the SQLINE has been added.
*
* This directive is optional.
@ -167,7 +167,7 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
name = "os_defcon"
/*
* Default DefCon level (1-5) to use when starting Services up. Level 5 constitutes normal operation
* Default DefCon level (1-5) to use when starting Anope up. Level 5 constitutes normal operation
* while level 1 constitutes the most restrictive operation. If this setting is left out or set to
* 0, DefCon will be disabled and the rest of this block will be ignored.
*/
@ -184,8 +184,8 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
* - forcechanmodes: Forces all channels to have the modes given in the later chanmodes directive
* - reducedsessions: Reduces the session limit to the value given in the later sessionlimit directive
* - nonewclients: KILL any new clients trying to connect
* - operonly: Services will ignore all non-IRCops
* - silentoperonly: Services will silently ignore all non-IRCops
* - operonly: Ignore all non-IRCops
* - silentoperonly: Silently ignore all non-IRCops
* - akillnewclients: AKILL any new clients trying to connect
* - nonewmemos: No new memos will be sent to block MemoServ attacks
*/
@ -209,7 +209,7 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
* The channel modes to set on all channels when the DefCon channel mode system is in use.
*
* Note 1: Choose these modes carefully, because when DefCon switches to a level which does NOT have
* the mode setting selected, Services will set the reverse on all channels, e.g. if this setting
* the mode setting selected, Anope will set the reverse on all channels, e.g. if this setting
* is +RN when DefCon is used, all channels will be set to +RN, when DefCon is removed, all
* channels will be set to -RN. You don't want to set this to +k for example, because when DefCon
* is removed, all channels are set -k, removing the key from previously keyed channels.
@ -227,14 +227,14 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
#timeout = 15m
/*
* If set, Services will send a global message on DefCon level changes.
* If set, Anope will send a global message on DefCon level changes.
*
* This directive is optional.
*/
#globalondefcon = yes
/*
* If set, Services will send the global message defined in the message directive on DefCon level
* If set, Anope will send the global message defined in the message directive on DefCon level
* changes.
*
* This directive is optional.
@ -267,7 +267,7 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
*
* Provides the command operserv/dns.
*
* This module requires that m_dns is loaded.
* This module requires that dns is loaded.
*
* This module allows controlling a DNS zone. This is useful for
* controlling what servers users are placed on for load balancing,
@ -348,7 +348,7 @@ command { service = "OperServ"; name = "FORBID"; command = "operserv/forbid"; pe
*
* Provides the command operserv/ignore.
*
* Used to make Services ignore users.
* Used to make Anope ignore users.
*/
module { name = "os_ignore" }
command { service = "OperServ"; name = "IGNORE"; command = "operserv/ignore"; permission = "operserv/ignore"; }
@ -506,17 +506,6 @@ command { service = "OperServ"; name = "RANDOMNEWS"; command = "operserv/randomn
module { name = "os_noop" }
command { service = "OperServ"; name = "NOOP"; command = "operserv/noop"; permission = "operserv/noop"; }
/*
* os_oline
*
* Provides the command operserv/oline.
*
* Used to set oper flags on users, and is specific to UnrealIRCd 3.2.
* See /helpop ?svso on your IRCd for more information.
*/
#module { name = "os_oline" }
#command { service = "OperServ"; name = "OLINE"; command = "operserv/oline"; permission = "operserv/oline"; }
/*
* os_oper
*
@ -532,7 +521,7 @@ command { service = "OperServ"; name = "OPER"; command = "operserv/oper"; permis
*
* Provides the command operserv/reload.
*
* Used to reload the services.conf configuration file.
* Used to reload the anope.conf configuration file.
*/
module { name = "os_reload" }
command { service = "OperServ"; name = "RELOAD"; command = "operserv/reload"; permission = "operserv/reload"; }
@ -559,7 +548,7 @@ module
*
* This directive is required if os_session is loaded.
*/
defaultsessionlimit = 3
defaultsessionlimit = 5
/*
* The maximum session limit that may be set for a host in an exception.
@ -595,7 +584,7 @@ module
#sessionlimitdetailsloc = "Please visit https://your.website.url/ for more information about session limits."
/*
* If set and is not 0, this directive tells Services to add an AKILL if the number of subsequent kills
* If set and is not 0, this directive tells Anope to add an AKILL if the number of subsequent kills
* for the same host exceeds this value, preventing the network from experiencing KILL floods.
*
* This directive is optional.

View file

@ -1,8 +1,8 @@
/*
* Example configuration file for Services. After making the appropriate
* changes to this file, place it in the Services conf directory (as
* specified in the "configure" script, default /home/username/services/conf)
* under the name "services.conf".
* Example configuration file for Anope. After making the appropriate
* changes to this file, place it in the Anope conf directory (as
* specified in the "Config" script, default /home/username/anope/conf)
* under the name "anope.conf".
*
* The format of this file is fairly simple: three types of comments are supported:
* - All text after a '#' on a line is ignored, as in shell scripting
@ -53,7 +53,7 @@
* included to indicate whether an option is required:
*
* [REQUIRED]
* Indicates a directive which must be given. Without it, Services will
* Indicates a directive which must be given. Without it, Anope will
* not start.
*
* [RECOMMENDED]
@ -71,7 +71,7 @@
*
* [DEPRECATED]
* Indicates a directive which will disappear in a future version of
* Services, usually because its functionality has been either
* Anope, usually because its functionality has been either
* superseded by that of other directives or incorporated into the main
* program.
*/
@ -90,7 +90,7 @@
define
{
name = "services.host"
value = "services.localhost.net"
value = "services.example.com"
}
/*
@ -110,7 +110,7 @@ define
#include
{
type = "executable"
name = "/usr/bin/wget -q -O - https://some.misconfigured.network.com/services.conf"
name = "/usr/bin/wget -q -O - https://some.misconfigured.network.com/anope.conf"
}
/*
@ -120,20 +120,23 @@ define
* This section can be included multiple times, and Anope will attempt to
* connect to each server until it finally connects.
*
* Each uplink IRCd should have a corresponding configuration to allow Services
* Each uplink IRCd should have a corresponding configuration to allow Anope
* to link to it.
*
* An example configuration for InspIRCd that is compatible with the below uplink
* and serverinfo configuration would look like:
*
* # This goes in inspircd.conf, *NOT* your Anope config!
* <link name="services.localhost.net"
* <module name="hidechans">
* <module name="services_account">
* <module name="spanningtree">
* <bind address="127.0.0.1" port="7000" type="servers">
* <link name="services.example.com"
* ipaddr="127.0.0.1"
* port="7000"
* sendpass="mypassword"
* recvpass="mypassword">
* <uline server="services.localhost.net" silent="yes">
* <bind address="127.0.0.1" port="7000" type="servers">
* <uline server="services.example.com" silent="yes">
*
* An example configuration for UnrealIRCd that is compatible with the below uplink
* and serverinfo configuration would look like:
@ -146,32 +149,34 @@ define
* serversonly;
* };
* };
* link services.localhost.net {
* link services.example.com {
* incoming {
* mask *@127.0.0.1;
* };
* password "mypassword";
* class servers;
* };
* ulines { services.localhost.net; };
* ulines { services.example.com; };
*/
uplink
{
/*
* The IP or hostname of the IRC server you wish to connect Services to.
* Usually, you will want to connect Services over 127.0.0.1 (aka localhost).
* The IP address, hostname, or UNIX socket path of the IRC server you wish
* to connect Anope to.
* Usually, you will want to connect over 127.0.0.1 (aka localhost).
*
* NOTE: On some shell providers, this will not be an option.
*/
host = "127.0.0.1"
/*
* Enable if Services should connect using IPv6.
* The protocol that Anope should use when connecting to the uplink. Can
* be set to "ipv4" (the default), "ipv6", or "unix".
*/
ipv6 = no
protocol = "ipv4"
/*
* Enable if Services should connect using SSL.
* Enable if Anope should connect using SSL.
* You must have an SSL module loaded for this to work.
*/
ssl = no
@ -197,26 +202,26 @@ uplink
/*
* [REQUIRED] Server Information
*
* This section contains information about the Services server.
* This section contains information about the services server.
*/
serverinfo
{
/*
* The hostname that Services will be seen as, it must have no conflicts with any
* The hostname that Anope will be seen as, it must have no conflicts with any
* other server names on the rest of your IRC network. Note that it does not have
* to be an existing hostname, just one that isn't on your network already.
*/
name = "services.localhost.net"
name = "services.example.com"
/*
* The text which should appear as the server's information in /WHOIS and similar
* queries.
*/
description = "Services for IRC Networks"
description = "Anope IRC Services"
/*
* The local address that Services will bind to before connecting to the remote
* server. This may be useful for multihomed hosts. If omitted, Services will let
* The local address that Anope will bind to before connecting to the remote
* server. This may be useful for multihomed hosts. If omitted, Anope will let
* the Operating System choose the local address. This directive is optional.
*
* If you don't know what this means or don't need to use it, just leave this
@ -232,16 +237,16 @@ serverinfo
#id = "00A"
/*
* The filename containing the Services process ID. The path is relative to the
* services root directory.
* The filename containing the Anope process ID. The path is relative to the
* data directory.
*/
pid = "/run/anope/services.pid"
pid = "/run/anope/anope.pid"
/*
* The filename containing the Message of the Day. The path is relative to the
* services root directory.
* config directory.
*/
motd = "/etc/anope/services.motd"
motd = "motd"
}
/*
@ -252,20 +257,17 @@ serverinfo
*
* Supported:
* - bahamut
* - charybdis
* - hybrid
* - inspircd12
* - inspircd20
* - inspircd3
* - inspircd
* - ngircd
* - plexus
* - ratbox
* - unreal (for 3.2.x)
* - unreal4 (for 4.x or later)
* - solanum
* - unrealircd
*/
module
{
name = "inspircd20"
name = "inspircd"
/*
* Some protocol modules can enforce mode locks server-side. This reduces the spam caused by
@ -287,48 +289,49 @@ module
/*
* [REQUIRED] Network Information
*
* This section contains information about the IRC network that Services will be
* This section contains information about the IRC network that Anope will be
* connecting to.
*/
networkinfo
{
/*
* This is the name of the network that Services will be running on.
* This is the name of the network that Anope will be running on.
*/
networkname = "LocalNet"
/*
* Set this to the maximum allowed nick length on your network.
* Be sure to set this correctly, as setting this wrong can result in
* Services being disconnected from the network.
* Anope being disconnected from the network. Defaults to 31.
*/
nicklen = 31
#nicklen = 31
/* Set this to the maximum allowed ident length on your network.
* Be sure to set this correctly, as setting this wrong can result in
* Services being disconnected from the network.
* Anope being disconnected from the network. Defaults to 10.
*/
userlen = 10
#userlen = 10
/* Set this to the maximum allowed hostname length on your network.
* Be sure to set this correctly, as setting this wrong can result in
* Services being disconnected from the network.
* Anope being disconnected from the network. Defaults to 64.
*/
hostlen = 64
#hostlen = 64
/* Set this to the maximum allowed channel length on your network.
* Defaults to 32.
*/
chanlen = 32
#chanlen = 32
/* The maximum number of list modes settable on a channel (such as b, e, I).
* Comment out or set to 0 to disable.
* Set to 0 to disable. Defaults to 100.
*/
modelistsize = 100
#modelistsize = 100
/*
* Characters allowed in nicknames. This always includes the characters described
* in RFC1459, and so does not need to be set for normal behavior. Changing this to
* include characters your IRCd doesn't support will cause your IRCd and/or Services
* include characters your IRCd doesn't support will cause your IRCd and/or Anope
* to break. Multibyte characters are not supported, nor are escape sequences.
*
* It is recommended you DON'T change this.
@ -340,7 +343,7 @@ networkinfo
* to services, such as BotServ bot hostnames and user vhosts. Changing this is not
* recommended unless you know for sure your IRCd supports whatever characters you are
* wanting to use. Telling services to set a vHost containing characters your IRCd
* disallows could potentially break the IRCd and/or Services.
* disallows could potentially break the IRCd and/or Anope.
*
* It is recommended you DON'T change this.
*/
@ -365,22 +368,22 @@ networkinfo
}
/*
* [REQUIRED] Services Options
* [REQUIRED] Anope Options
*
* This section contains various options which determine how Services will operate.
* This section contains various options which determine how Anope will operate.
*/
options
{
/*
* On Linux/UNIX systems Anope can setuid and setgid to this user and group
* after starting up. This is useful if Anope has to bind to privileged ports
* after starting up. This is useful if Anope has to bind to privileged ports.
*/
#user = "anope"
#group = "anope"
/*
* The case mapping used by services. This must be set to a valid locale name
* installed on your machine. Services use this case map to compare, with
* installed on your machine. Anope uses this case map to compare, with
* case insensitivity, things such as nick names, channel names, etc.
*
* We provide two special casemaps shipped with Anope, ascii and rfc1459.
@ -393,36 +396,11 @@ options
casemap = "ascii"
/*
* This key is used to initiate the random number generator. This number
* MUST be random as you want your passcodes to be random. Don't give this
* key to anyone! Keep it private!
*
* NOTE: If you don't uncomment this or keep the default values, any talented
* programmer would be able to easily "guess" random strings used to mask
* information. Be safe, and come up with a 7-digit number.
*
* This directive is optional, but highly recommended.
*/
#seed = 9866235
/*
* If set, Services will perform more stringent checks on passwords. If this
* isn't set, Services will only disallow a password if it is the same as the
* entity (nickname name) with which it is associated. When set, however,
* Services will also check that the password is at least five
* characters long, and in the future will probably check other things
* as well.
*
* This directive is optional, but recommended.
*/
strictpasswords = yes
/*
* Sets the number of invalid password tries before Services removes a user
* Sets the number of invalid password tries before services removes a user
* from the network. If a user enters a number of invalid passwords equal to
* the given amount for any Services function or combination of functions
* during a single IRC session (subject to badpasstimeout, below), Services
* will issues a /KILL for the user. If not given, Services will ignore
* the given amount for any services function or combination of functions
* during a single IRC session (subject to badpasstimeout, below), services
* will issues a /KILL for the user. If not given, services will ignore
* failed password attempts (though they will be logged in any case).
*
* This directive is optional, but recommended.
@ -464,7 +442,7 @@ options
/*
* Sets the (maximum) frequency at which the timeout list is checked. This,
* combined with readtimeout above, determines how accurately timed events,
* such as nick kills, occur; it also determines how much CPU time Services
* such as nick kills, occur; it also determines how much CPU time services
* will use doing this. Higher values will cause less accurate timing but
* less CPU usage.
*
@ -477,7 +455,7 @@ options
timeoutcheck = 3s
/*
* If set, this will allow users to let Services send PRIVMSGs to them
* If set, this will allow users to let services send PRIVMSGs to them
* instead of NOTICEs. Also see the "msg" option of nickserv:defaults,
* which also toggles the default communication (PRIVMSG or NOTICE) to
* use for unregistered users.
@ -490,8 +468,8 @@ options
#useprivmsg = yes
/*
* If set, will force Services to only respond to PRIVMSGs addresses to
* Nick@ServerName - e.g. NickServ@localhost.net. This should be used in
* If set, will force services to only respond to PRIVMSGs addresses to
* Nick@ServerName - e.g. NickServ@example.com. This should be used in
* conjunction with IRCd aliases. This directive is optional.
*
* This option will have no effect on some IRCds, such as TS6 IRCds.
@ -499,14 +477,14 @@ options
#usestrictprivmsg = yes
/*
* If set, Services will only show /stats o to IRC Operators. This directive
* If set, Anope will only show /stats o to IRC Operators. This directive
* is optional.
*/
#hidestatso = yes
/*
* A space-separated list of U-lined servers on your network, it is assumed that
* the servers in this list are allowed to set channel modes and Services will
* the servers in this list are allowed to set channel modes and Anope will
* not attempt to reverse their mode changes.
*
* WARNING: Do NOT put your normal IRC user servers in this directive.
@ -521,23 +499,29 @@ options
retrywait = 60s
/*
* If set, Services will hide commands that users don't have the privilege to execute
* If set, services will hide commands that users don't have the privilege to execute
* from HELP output.
*/
hideprivilegedcommands = yes
/*
* If set, Services will hide commands that users can't execute because they are not
* If set, services will hide commands that users can't execute because they are not
* logged in from HELP output.
*/
hideregisteredcommands = yes
/*
* If set, the maximum difference between an invalid and valid command name to allow
* as a suggestion. Defaults to 4.
*/
didyoumeandifference = 4
/* The regex engine to use, as provided by the regex modules.
* Leave commented to disable regex matching.
*
* Note for this to work the regex module providing the regex engine must be loaded.
*/
#regexengine = "regex/pcre"
#regexengine = "regex/stdlib"
/*
* A list of languages to load on startup that will be available in /NICKSERV SET LANGUAGE.
@ -660,7 +644,8 @@ log
* - a channel name
* - a filename
* - globops
* At Fedora and RHEL/CentOS, the path is relative to the /var/log/anope directory.
*
* If you specify a filename the current date in the format ".YYYYMMDD" will be appended to the path.
*/
target = "services.log"
@ -711,7 +696,7 @@ log
* means "* ~operserv/*" would log everything because * matches everything.
*
* Valid admin, override, and command options are:
* pesudo-serv/commandname (e.g. operserv/akill, chanserv/set)
* pseudo-serv/commandname (e.g. operserv/akill, chanserv/set)
*
* Valid server options are:
* connect, quit, sync, squit
@ -744,7 +729,7 @@ log
{
bot = "Global"
target = "globops"
admin = "global/* operserv/chankill operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/oline operserv/set operserv/svsnick operserv/svsjoin operserv/svspart nickserv/getpass */drop"
admin = "global/* operserv/chankill operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/set operserv/svsnick operserv/svsjoin operserv/svspart nickserv/getpass */drop"
servers = "squit"
users = "oper"
other = "expire/* bados akill/*"
@ -757,7 +742,6 @@ log
* You may define groups of commands and privileges, as well as who may use them.
*
* This block is recommended, as without it you will be unable to access most oper commands.
* It replaces the old ServicesRoot directive amongst others.
*
* The command names below are defaults and are configured in the *serv.conf's. If you configure
* additional commands with permissions, such as commands from third party modules, the permissions
@ -775,15 +759,15 @@ log
* memoserv/info - Can see any information with /MEMOSERV INFO
* memoserv/set-limit - Can set the limit of max stored memos on any user and channel
* memoserv/no-limit - Can send memos through limits and throttles
* nickserv/access - Can modify other users access and certificate lists
* nickserv/alist - Can see the channel access list of other users
* nickserv/auspex - Can see any information with /NICKSERV INFO
* nickserv/cert - Can modify other users certificate lists
* nickserv/confirm - Can confirm other users nicknames
* nickserv/drop - Can drop other users nicks
* nickserv/recover - Can recover other users nicks
* operserv/config - Can modify services's configuration
* operserv/oper/modify - Can add and remove operators with at most the same privileges
* protected - Can not be kicked from channels by Services
* protected - Can not be kicked from channels by services
*
* Available commands:
* botserv/bot/del botserv/bot/add botserv/bot/change botserv/set/private
@ -796,17 +780,16 @@ log
*
* memoserv/sendall memoserv/staff
*
* nickserv/getpass nickserv/getemail nickserv/suspend nickserv/ajoin
* nickserv/list
* nickserv/getemail nickserv/suspend nickserv/ajoin nickserv/list
*
* nickserv/saset/autoop nickserv/saset/email nickserv/saset/greet nickserv/saset/password
* nickserv/saset/display nickserv/saset/kill nickserv/saset/language nickserv/saset/message
* nickserv/saset/private nickserv/saset/secure nickserv/saset/url nickserv/saset/noexpire
* nickserv/saset/keepmodes
* nickserv/saset/autoop nickserv/saset/display nickserv/saset/email nickserv/saset/greet
* nickserv/saset/kill nickserv/saset/keepmodes nickserv/saset/language nickserv/saset/message
* nickserv/saset/neverop nickserv/saset/noexpire nickserv/saset/password nickserv/saset/private
* nickserv/saset/url
*
* hostserv/set hostserv/del hostserv/list
*
* global/global
* global/global global/queue global/server
*
* operserv/news operserv/stats operserv/kick operserv/exception operserv/seen
* operserv/mode operserv/session operserv/modinfo operserv/ignore operserv/chanlist
@ -814,7 +797,7 @@ log
* operserv/oper operserv/config operserv/umode operserv/logsearch
* operserv/modload operserv/jupe operserv/set operserv/noop
* operserv/quit operserv/update operserv/reload operserv/restart
* operserv/shutdown operserv/svs operserv/oline operserv/kill
* operserv/shutdown operserv/svs operserv/kill
*
* Firstly, we define 'opertypes' which are named whatever we want ('Network Administrator', etc).
* These can contain commands for oper-only strings (see above) which grants access to that specific command,
@ -868,7 +851,7 @@ opertype
inherits = "Services Operator"
commands = "botserv/* chanserv/access/list chanserv/drop chanserv/getkey chanserv/saset/noexpire memoserv/sendall nickserv/saset/* nickserv/getemail operserv/news operserv/jupe operserv/svs operserv/stats operserv/oline operserv/noop operserv/forbid global/*"
commands = "botserv/* chanserv/access/list chanserv/drop chanserv/getkey chanserv/saset/noexpire memoserv/sendall nickserv/saset/* nickserv/getemail operserv/news operserv/jupe operserv/svs operserv/stats operserv/noop operserv/forbid global/*"
privs = "*"
}
@ -886,10 +869,10 @@ opertype
* After defining different types of operators in the above opertype section, we now define who is in these groups
* through 'oper' blocks, similar to ircd access.
*
* The default is to comment these out (so NOBODY will have Services access).
* The default is to comment these out (so NOBODY will have access).
* You probably want to add yourself and a few other people at minimum.
*
* As with all permissions, make sure to only give trustworthy people access to Services.
* As with all permissions, make sure to only give trustworthy people access.
*/
#oper
@ -900,7 +883,7 @@ opertype
/* The opertype this person will have */
type = "Services Root"
/* If set, the user must be an oper on the IRCd to gain their Services
/* If set, the user must be an oper on the IRCd to gain their
* oper privileges.
*/
require_oper = yes
@ -935,7 +918,7 @@ opertype
/*
* [OPTIONAL] Mail Config
*
* This section contains settings related to the use of e-mail from Services.
* This section contains settings related to the use of email from services.
* If the usemail directive is set to yes, unless specified otherwise, all other
* directives are required.
*
@ -946,7 +929,7 @@ opertype
mail
{
/*
* If set, this option enables the mail commands in Services. You may choose
* If set, this option enables the mail commands in Anope. You may choose
* to disable it if you have no Sendmail-compatible mailer installed. Whilst
* this directive (and entire block) is optional, it is required if
* nickserv:registration is set to yes.
@ -955,7 +938,7 @@ mail
/*
* This is the command-line that will be used to call the mailer to send an
* e-mail. It must be called with all the parameters needed to make it
* email. It must be called with all the parameters needed to make it
* scan the mail input to find the mail recipient; consult your mailer
* documentation.
*
@ -964,20 +947,20 @@ mail
* sendmail applications (or replacements of it) require the -t option
* to be used.
*/
sendmailpath = "/usr/sbin/sendmail -t"
#sendmailpath = "/usr/sbin/sendmail -it"
/*
* This is the e-mail address from which all the e-mails are to be sent from.
* This is the email address from which all the emails are to be sent from.
* It should really exist.
*/
sendfrom = "services@localhost.net"
sendfrom = "services@example.com"
/*
* This controls the minimum amount of time a user must wait before sending
* another e-mail after they have sent one. It also controls the minimum time
* a user must wait before they can receive another e-mail.
* another email after they have sent one. It also controls the minimum time
* a user must wait before they can receive another email.
*
* This feature prevents users from being mail bombed using Services and
* This feature prevents users from being mail bombed using services and
* it is highly recommended that it be used.
*
* This directive is optional, but highly recommended.
@ -985,14 +968,22 @@ mail
delay = 5m
/*
* If set, Services will not attempt to put quotes around the TO: fields
* in e-mails.
* If set, Anope will not put quotes around the TO: fields
* in emails.
*
* This directive is optional, and as far as we know, it's only needed
* if you are using ESMTP or QMail to send out e-mails.
* if you are using ESMTP or QMail to send out emails.
*/
#dontquoteaddresses = yes
/*
* The content type to use when sending emails.
*
* This directive is optional, and is generally only needed if you want to
* use HTML or non UTF-8 text in your services emails.
*/
#content_type = "text/plain; charset=UTF-8"
/*
* The subject and message of emails sent to users when they register accounts.
*
@ -1098,6 +1089,22 @@ mail
#hash = "md5"
}
/*
* db_atheme
*
* This allows importing databases from Atheme. You should load another database module as
* well as this as it can only read Atheme databases not write them.
*/
#module
{
name = "db_atheme"
/*
* The database name db_atheme should use.
*/
database = "atheme.db"
}
/*
* [RECOMMENDED] db_flatfile
*
@ -1114,18 +1121,18 @@ module
/*
* Sets the number of days backups of databases are kept. If you don't give it,
* or if you set it to 0, Services won't backup the databases.
* or if you set it to 0, Anope won't backup the databases.
*
* NOTE: Services must run 24 hours a day for this feature to work.
* NOTE: Anope must run 24 hours a day for this feature to work.
*
* This directive is optional, but recommended.
*/
keepbackups = 3
/*
* Allows Services to continue file write operations (i.e. database saving)
* Allows Anope to continue file write operations (i.e. database saving)
* even if the original file cannot be backed up. Enabling this option may
* allow Services to continue operation under conditions where it might
* allow Anope to continue operation under conditions where it might
* otherwise fail, such as a nearly-full disk.
*
* NOTE: Enabling this option can cause irrecoverable data loss under some
@ -1198,7 +1205,7 @@ module
* db_redis.
*
* This module allows using Redis (https://redis.io/) as a database backend.
* This module requires that m_redis is loaded and configured properly.
* This module requires that redis is loaded and configured properly.
*
* Redis 2.8 supports keyspace notifications which allows Redis to push notifications
* to Anope about outside modifications to the database. This module supports this and
@ -1210,7 +1217,7 @@ module
name = "db_redis"
/*
* Redis database to use. This must be configured with m_redis.
* Redis database to use. This must be configured with redis.
*/
engine = "redis/main"
}
@ -1218,50 +1225,121 @@ module
/*
* [RECOMMENDED] Encryption modules.
*
* The encryption modules are used when dealing with passwords. This determines how
* the passwords are stored in the databases, and does not add any security as
* far as transmitting passwords over the network goes.
*
* Without any encryption modules loaded users will not be able to authenticate unless
* there is another module loaded that provides authentication checking, such as
* m_ldap_authentication or m_sql_authentication.
*
* With enc_none, passwords will be stored in plain text, allowing for passwords
* to be recovered later but it isn't secure and therefore is not recommended.
*
* The other encryption modules use one-way encryption, so the passwords can not
* be recovered later if those are used.
*
* The first encryption module loaded is the primary encryption module. All new passwords are
* encrypted by this module. Old passwords stored in another encryption method are
* automatically re-encrypted by the primary encryption module on next identify.
*
* enc_md5, enc_sha1, and enc_old are deprecated, and are provided for users
* to upgrade to a newer encryption module. Do not use them as the primary
* encryption module. They will be removed in a future release.
* The encryption modules are used when dealing with passwords. This determines
* how the passwords are stored in the databases.
*
* The first encryption module loaded is the primary encryption module. All new
* passwords are encrypted by this module. Old passwords encrypted with another
* encryption method are automatically re-encrypted with the primary encryption
* module the next time the user identifies.
*/
#module { name = "enc_bcrypt" }
module { name = "enc_sha256" }
/*
* When using enc_none, passwords will be stored without encryption. This isn't secure
* therefore it is not recommended.
* enc_sha2
*
* Provides support for encrypting passwords using the HMAC-SHA-2 algorithm. See
* https://en.wikipedia.org/wiki/SHA-2 and https://en.wikipedia.org/wiki/HMAC
* for more information.
*/
#module { name = "enc_none" }
module
{
name = "enc_sha2"
/* Deprecated encryption modules */
/** The sub-algorithm to use. Can be set to sha224 for SHA-224, sha256 for
* SHA-256, sha284 for SHA-384 or sha512 to SHA-512. Defaults to sha256.
*/
#algorithm = "sha256"
}
/*
* [EXTRA] enc_argon2
*
* Provides support for encrypting passwords using the Argon2 algorithm. See
* https://en.wikipedia.org/wiki/Argon2 for more information.
*/
#module
{
name = "enc_argon2"
/** The sub-algorithm to use. Can be set to argon2d for Argon2d, argon2i for
* Argon2i, or argon2id for Argon2id. Defaults to argon2id.
*/
#algorithm = "argon2id"
/** The memory hardness in kibibytes of the Argon2 algorithm. Defaults to
* 128 mebibytes.
*/
#memory_cost = 121072
/** The time hardness (iterations) of the Argon2 algorithm. Defaults to 3.
*/
#time_cost = 3
/** The amount of parallel threads to use when encrypting passwords.
* Defaults to 1.
*/
#parallelism = 1
/** The length in bytes of an Argon2 hash. Defaults to 32. */
#hash_length = 32
/** The length in bytes of an Argon2 salt. Defaults to 32. */
#salt_length = 32
}
/*
* enc_bcrypt
*
* Provides support for encrypting passwords using the Bcrypt algorithm. See
* https://en.wikipedia.org/wiki/Bcrypt for more information.
*/
#module
{
name = "enc_bcrypt"
/** The number of Bcrypt rounds to perform on passwords. Can be set to any
* number between 10 and 32 but higher numbers are more CPU intensive and
* may impact performance.
*/
#rounds = 10
}
/*
* [EXTRA] enc_posix
*
* Provides verify-only support for passwords encrypted using the POSIX crypt()
* function. Load this if you are migratign from another services packages such
* as Atheme. See https://en.wikipedia.org/wiki/Crypt_(C) for more information.
*
* You must load another encryption method before this to re-encrypt passwords
* with when a user logs in.
*/
#module { name = "enc_posix" }
/*
* [DEPRECATED] enc_md5, enc_none, enc_old, enc_sha1, enc_sha256
*
* Provides verify-only support for passwords encrypted using encryption methods
* from older versions of Anope. These methods are no longer considered secure
* and will be removed in a future version of Anope. Only load them if you are
* upgrading from a previous version of Anope that used them.
*
* enc_md5: Verifies passwords encrypted with the MD5 algorithm
* enc_none: Verifies passwords that are not encrypted
* enc_sha1: Verifies passwords encrypted with the SHA1 algorithm
* enc_old: Verifies passwords encrypted with the broken MD5 algorithm used
* before 1.7.17.
* enc_sha256: Verifies passwords encrypted with the SHA256 algorithm using a
* custom initialisation vector as a salt.
*
* You must load another encryption method before this to re-encrypt passwords
* with when a user logs in.
*/
#module { name = "enc_md5" }
#module { name = "enc_sha1" }
/*
* enc_old is Anope's previous (broken) MD5 implementation used from 1.4.x to 1.7.16.
* If your databases were made using that module, load it here to allow conversion to the primary
* encryption method.
*/
#module { name = "enc_none" }
#module { name = "enc_old" }
#module { name = "enc_sha1" }
#module { name = "enc_sha256" }
/* Extra (optional) modules. */
include

View file

@ -6,9 +6,8 @@ After=network.target
User=anope
Group=anope
Type=forking
PIDFile=/run/anope/services.pid
PIDFile=/run/anope/anope.pid
EnvironmentFile=-/etc/sysconfig/anope
#ExecStart=/usr/sbin/anope --confdir=/etc/anope --dbdir=/var/lib/anope --logdir=/var/log/anope --modulesdir=/usr/lib64/anope --localedir=/usr/share/locale $OPTIONS
ExecStart=/usr/sbin/anope $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

View file

@ -2,7 +2,7 @@
%bcond_without ldap
%bcond_without mysql
%bcond_without pcre
%bcond_without pcre2
%bcond_without tre
%bcond_without sqlite
%bcond_without gnutls
@ -10,50 +10,57 @@
Summary: IRC services designed for flexibility and ease of use
Name: anope
Version: 2.0.9
Release: 2%{?dist}
# Anope itself is GPLv2 but uses other source codes, breakdown:
# BSD: include/pstdint.h and modules/encryption/enc_sha256.cpp
Version: 2.1.4
Release: 5%{?dist}
# Anope itself is GPL-2.0-only but uses other source codes, breakdown:
# BSD-3-Clause: include/pstdint.h and modules/encryption/enc_sha256.cpp
# MIT: src/siphash.cpp
# Public Domain: modules/encryption/enc_bcrypt.cpp
# RSA: modules/encryption/enc_md5.cpp
License: GPLv2 and BSD and MIT and Public Domain and RSA
# LicenseRef-Fedora-Public-Domain: modules/encryption/enc_bcrypt.cpp
# LicenseRef-RSA: modules/encryption/enc_md5.cpp
License: GPL-2.0-only AND BSD-3-Clause AND MIT AND LicenseRef-Fedora-Public-Domain AND LicenseRef-RSA
URL: https://www.anope.org/
Source0: https://github.com/anope/anope/archive/%{version}/%{name}-%{version}.tar.gz
Source1: anope.service
Source2: anope.tmpfilesd
Source10: anope-botserv.conf
Source11: anope-chanserv.conf
Source12: anope-chanstats.conf
Source13: anope-global.conf
Source14: anope-hostserv.conf
Source15: anope-irc2sql.conf
Source16: anope-memoserv.conf
Source17: anope-modules.conf
Source18: anope-nickserv.conf
Source19: anope-operserv.conf
Source20: anope-services.motd
Source21: anope-services.conf
BuildRequires: cmake >= 2.4
Source3: anope.sysusersd
Source10: anope.conf
Source11: anope.motd
Source12: anope-botserv.conf
Source13: anope-chanserv.conf
Source14: anope-chanstats.conf
Source15: anope-global.conf
Source16: anope-hostserv.conf
Source17: anope-irc2sql.conf
Source18: anope-memoserv.conf
Source19: anope-modules.conf
Source20: anope-nickserv.conf
Source21: anope-operserv.conf
Patch0: https://github.com/anope/anope/commit/87a8af0ad71a11c248ba94c9ba20668dcb0fe831.patch#/anope-2.1.4-paths1.patch
Patch1: https://github.com/anope/anope/commit/c08aaa86d1ada72ad6e185837f9c179693b60c22.patch#/anope-2.1.4-paths2.patch
Patch2: https://github.com/anope/anope/commit/5fdc6373275de9c0844c6507509c153ce69fa0c1.patch#/anope-2.1.4-paths3.patch
BuildRequires: cmake
%if 0%{?rhel} && 0%{?rhel} < 8
BuildRequires: cmake3
# Compiler with C++17 language, filesystem headers and linking support
BuildRequires: devtoolset-12-toolchain
%endif
BuildRequires: gcc >= 4.2
BuildRequires: gcc-c++ >= 4.2
%if 0%{?rhel} == 8
# Compiler with C++17 filesystem headers and linking support
BuildRequires: gcc-toolset-12
%endif
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gettext
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
BuildRequires: systemd-rpm-macros
%else
BuildRequires: systemd
%endif
Requires(pre): shadow-utils
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
%if 0%{?fedora} || 0%{?rhel} > 7
Recommends: %{_sbindir}/sendmail
%else
Requires: %{_sbindir}/sendmail
%endif
Provides: %{name}-redis = %{version}-%{release}
Provides: %{name}-redis%{?_isa} = %{version}-%{release}
%{?systemd_requires}
%{?sysusers_requires_compat}
%description
Anope is a set of IRC services forked from Epona early 2003 to pick up where
@ -79,7 +86,7 @@ membership, too.
%if %{with mysql}
%package mysql
Summary: MariaDB/MySQL modules for Anope IRC services
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
%if 0%{?fedora} || 0%{?rhel} > 7
BuildRequires: mariadb-connector-c-devel
%else
BuildRequires: mariadb-devel >= 5.5
@ -97,17 +104,19 @@ further modules for IRC channel statistics or to log the IRC services' logs
into a MariaDB or MySQL database.
%endif
%if %{with pcre}
%package pcre
%if %{with pcre2}
%package pcre2
Summary: PCRE regular expression module Anope IRC services
BuildRequires: pcre-devel
BuildRequires: pcre2-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: %{name}-pcre = %{version}-%{release}
Obsoletes: %{name}-pcre < 2.0.12-1
%description pcre
%description pcre2
Anope is a set of IRC services designed for flexibility and ease of use.
This package provides an Anope module to support for Perl Compatible Regular
Expressions (PCRE).
This package provides an Anope module to support regular expressions using
the Perl Compatible Regular Expressions (PCRE) library in version 2.
%endif
%if %{with tre}
@ -167,7 +176,7 @@ uplink server(s) via SSL/TLS.
%endif
%prep
%setup -q
%autosetup -p1
%build
%if 0%{?rhel} && 0%{?rhel} < 8
@ -183,76 +192,75 @@ EXTRA_LIBS+=";%{_libdir}/mysql"
EXTRA_INCLUDE+=";%{_includedir}/openssl11"
EXTRA_LIBS+=";%{_libdir}/openssl11"
%endif
. /opt/rh/devtoolset-12/enable
%endif
%if 0%{?rhel} == 8
. /opt/rh/gcc-toolset-12/enable
%endif
# Build extra modules
mv -f modules/extra/{m_regex_posix,m_sql_authentication,m_sql_log,m_sql_oper}.cpp modules/
%{?with_ldap:mv -f modules/extra/{m_ldap,m_ldap_authentication,m_ldap_oper}.cpp modules/}
%{?with_mysql:mv -f modules/extra/{m_mysql.cpp,stats} modules/}
%{?with_pcre:mv -f modules/extra/m_regex_pcre.cpp modules/}
%{?with_tre:mv -f modules/extra/m_regex_tre.cpp modules/}
%{?with_sqlite:mv -f modules/extra/m_sqlite.cpp modules/}
%{?with_gnutls:mv -f modules/extra/m_ssl_gnutls.cpp modules/}
%{?with_openssl:mv -f modules/extra/m_ssl_openssl.cpp modules/}
# Default directories are not picked up during build process
DEFAULT_DIRS='Anope::ConfigDir = "%{_sysconfdir}/%{name}", '
DEFAULT_DIRS+='Anope::DataDir = "%{_localstatedir}/lib/%{name}", '
DEFAULT_DIRS+='Anope::ModuleDir = "%{_libdir}/%{name}", '
DEFAULT_DIRS+='Anope::LocaleDir = "%{_datadir}/locale", '
DEFAULT_DIRS+='Anope::LogDir = "%{_localstatedir}/log/%{name}";'
sed -e "s|^\(Anope::string\) .*|\1 $DEFAULT_DIRS|" -i src/init.cpp
mv -f modules/extra/regex_posix.cpp modules/
%{?with_ldap:mv -f modules/extra/ldap.cpp modules/}
%{?with_mysql:mv -f modules/extra/mysql.cpp modules/}
%{?with_pcre2:mv -f modules/extra/regex_pcre2.cpp modules/}
%{?with_tre:mv -f modules/extra/regex_tre.cpp modules/}
%{?with_sqlite:mv -f modules/extra/sqlite.cpp modules/}
%{?with_gnutls:mv -f modules/extra/ssl_gnutls.cpp modules/}
%{?with_openssl:mv -f modules/extra/ssl_openssl.cpp modules/}
%cmake \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DBIN_DIR:STRING=%{_sbindir} \
-DDB_DIR:STRING=%{_localstatedir}/lib/%{name} \
-DCONF_DIR:STRING=%{_pkgdocdir}/examples \
-DLIB_DIR:STRING=%{_libdir}/%{name} \
-DDATA_DIR:STRING=%{_localstatedir}/lib/%{name} \
-DCONF_DIR:STRING=%{_sysconfdir}/%{name} \
-DMODULE_DIR:STRING=%{_libdir}/%{name} \
-DLOCALE_DIR:STRING=%{_datadir}/locale \
-DLOGS_DIR:STRING=%{_localstatedir}/log/%{name} \
-DLOG_DIR:STRING=%{_localstatedir}/log/%{name} \
-DPROGRAM_NAME:STRING=%{name} \
-DREPRODUCIBLE_BUILD:BOOL=ON \
-DDISABLE_TOOLS:BOOL=ON \
-DDEFUMASK:STRING=027 \
-DEXTRA_INCLUDE_DIRS=$EXTRA_INCLUDE \
-DEXTRA_LIBS:STRING=$EXTRA_LIBS \
.
-DEXTRA_INCLUDE=$EXTRA_INCLUDE \
-DEXTRA_LIBS:STRING=$EXTRA_LIBS
%cmake_build
%install
%cmake_install
mkdir -p $RPM_BUILD_ROOT{{%{_localstatedir}/log,%{_rundir}}/%{name}/,%{_localstatedir}/lib/%{name}/{backups,runtime}}/
mkdir -p $RPM_BUILD_ROOT{%{_rundir}/%{name},%{_pkgdocdir}/examples}/
mv -f $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/*.conf,%{_pkgdocdir}/examples/}
install -D -p -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
install -D -p -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf
install -D -p -m 0640 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/botserv.conf
install -D -p -m 0640 %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/chanserv.conf
install -D -p -m 0640 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/chanstats.conf
install -D -p -m 0640 %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/global.conf
install -D -p -m 0640 %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/hostserv.conf
install -D -p -m 0640 %{SOURCE15} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/irc2sql.conf
install -D -p -m 0640 %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/memoserv.conf
install -D -p -m 0640 %{SOURCE17} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/modules.conf
install -D -p -m 0640 %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/nickserv.conf
install -D -p -m 0640 %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/operserv.conf
install -D -p -m 0640 %{SOURCE20} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/services.motd
install -D -p -m 0640 %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/services.conf
install -D -p -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysusersdir}/%{name}.conf
install -D -p -m 0640 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
install -D -p -m 0640 %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/motd
install -D -p -m 0640 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/botserv.conf
install -D -p -m 0640 %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/chanserv.conf
install -D -p -m 0640 %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/chanstats.conf
install -D -p -m 0640 %{SOURCE15} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/global.conf
install -D -p -m 0640 %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/hostserv.conf
install -D -p -m 0640 %{SOURCE17} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/irc2sql.conf
install -D -p -m 0640 %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/memoserv.conf
install -D -p -m 0640 %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/modules.conf
install -D -p -m 0640 %{SOURCE20} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/nickserv.conf
install -D -p -m 0640 %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/operserv.conf
# Remove crontab script (pseudo init script) for anope
rm -f $RPM_BUILD_ROOT%{_pkgdocdir}/examples/example.chk
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/example.chk
# Remove webcpanel, doesn't seem to be widely used
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/modules/webcpanel.so
rm -rf $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/modules/
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/webcpanel.so
rm -rf $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/webcpanel/
# Remove MySQL related modules when built without MySQL
%{!?with_mysql:rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/{chanstats,cs_fantasy_stats,cs_fantasy_top,irc2sql}.so}
%find_lang %{name}
%pre
getent group %{name} > /dev/null || %{_sbindir}/groupadd -r %{name}
getent passwd %{name} > /dev/null || %{_sbindir}/useradd -r -g %{name} -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -c "Anope IRC services" %{name}
exit 0
%sysusers_create_compat %{SOURCE3}
%post
%systemd_post %{name}.service
@ -265,7 +273,7 @@ exit 0
%files -f %{name}.lang
%license docs/COPYING
%doc docs/BUGS docs/Changes docs/Changes.conf docs/DEFCON
%doc docs/Changes docs/Changes.conf docs/DEFCON
%doc docs/FAQ docs/MODULES docs/README docs/XMLRPC
%doc %{_pkgdocdir}/examples/
%dir %attr(0750,root,%{name}) %{_sysconfdir}/%{name}/
@ -274,80 +282,165 @@ exit 0
%exclude %{_sysconfdir}/%{name}/chanstats.conf
%exclude %{_sysconfdir}/%{name}/irc2sql.conf
%endif
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/services.motd
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/motd
%{_unitdir}/%{name}.service
%{_sysusersdir}/%{name}.conf
%{_tmpfilesdir}/%{name}.conf
%{_sbindir}/%{name}
%dir %{_libdir}/%{name}/
%dir %{_libdir}/%{name}/modules/
%{_libdir}/%{name}/modules/*.so
%{_libdir}/%{name}/*.so
%if %{with ldap}
%exclude %{_libdir}/%{name}/modules/m_ldap.so
%exclude %{_libdir}/%{name}/modules/m_ldap_authentication.so
%exclude %{_libdir}/%{name}/modules/m_ldap_oper.so
%exclude %{_libdir}/%{name}/ldap.so
%exclude %{_libdir}/%{name}/ldap_authentication.so
%exclude %{_libdir}/%{name}/ldap_oper.so
%endif
%if %{with mysql}
%exclude %{_libdir}/%{name}/modules/m_mysql.so
%exclude %{_libdir}/%{name}/modules/m_chanstats.so
%exclude %{_libdir}/%{name}/modules/cs_fantasy_stats.so
%exclude %{_libdir}/%{name}/modules/cs_fantasy_top.so
%exclude %{_libdir}/%{name}/modules/irc2sql.so
%exclude %{_libdir}/%{name}/mysql.so
%exclude %{_libdir}/%{name}/chanstats.so
%exclude %{_libdir}/%{name}/cs_fantasy_stats.so
%exclude %{_libdir}/%{name}/cs_fantasy_top.so
%exclude %{_libdir}/%{name}/irc2sql.so
%endif
%{?with_pcre:%exclude %{_libdir}/%{name}/modules/m_regex_pcre.so}
%{?with_tre:%exclude %{_libdir}/%{name}/modules/m_regex_tre.so}
%{?with_sqlite:%exclude %{_libdir}/%{name}/modules/m_sqlite.so}
%{?with_gnutls:%exclude %{_libdir}/%{name}/modules/m_ssl_gnutls.so}
%{?with_openssl:%exclude %{_libdir}/%{name}/modules/m_ssl_openssl.so}
%{?with_pcre2:%exclude %{_libdir}/%{name}/regex_pcre2.so}
%{?with_tre:%exclude %{_libdir}/%{name}/regex_tre.so}
%{?with_sqlite:%exclude %{_libdir}/%{name}/sqlite.so}
%{?with_gnutls:%exclude %{_libdir}/%{name}/ssl_gnutls.so}
%{?with_openssl:%exclude %{_libdir}/%{name}/ssl_openssl.so}
%dir %attr(0750,%{name},%{name}) %{_localstatedir}/lib/%{name}/
%dir %attr(0750,%{name},%{name}) %{_localstatedir}/lib/%{name}/backups/
%dir %attr(0750,%{name},%{name}) %{_localstatedir}/lib/%{name}/runtime/
%dir %attr(0750,%{name},%{name}) %{_localstatedir}/log/%{name}/
%dir %attr(0755,%{name},%{name}) %{_rundir}/%{name}/
%if %{with ldap}
%files ldap
%{_libdir}/%{name}/modules/m_ldap.so
%{_libdir}/%{name}/modules/m_ldap_authentication.so
%{_libdir}/%{name}/modules/m_ldap_oper.so
%{_libdir}/%{name}/ldap.so
%{_libdir}/%{name}/ldap_authentication.so
%{_libdir}/%{name}/ldap_oper.so
%endif
%if %{with mysql}
%files mysql
%config(noreplace) %attr(0640,root,anope) %{_sysconfdir}/%{name}/chanstats.conf
%config(noreplace) %attr(0640,root,anope) %{_sysconfdir}/%{name}/irc2sql.conf
%{_libdir}/%{name}/modules/m_mysql.so
%{_libdir}/%{name}/modules/m_chanstats.so
%{_libdir}/%{name}/modules/cs_fantasy_stats.so
%{_libdir}/%{name}/modules/cs_fantasy_top.so
%{_libdir}/%{name}/modules/irc2sql.so
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/chanstats.conf
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/irc2sql.conf
%{_libdir}/%{name}/mysql.so
%{_libdir}/%{name}/chanstats.so
%{_libdir}/%{name}/cs_fantasy_stats.so
%{_libdir}/%{name}/cs_fantasy_top.so
%{_libdir}/%{name}/irc2sql.so
%endif
%if %{with pcre}
%files pcre
%{_libdir}/%{name}/modules/m_regex_pcre.so
%if %{with pcre2}
%files pcre2
%{_libdir}/%{name}/regex_pcre2.so
%endif
%if %{with tre}
%files tre
%{_libdir}/%{name}/modules/m_regex_tre.so
%{_libdir}/%{name}/regex_tre.so
%endif
%if %{with sqlite}
%files sqlite
%{_libdir}/%{name}/modules/m_sqlite.so
%{_libdir}/%{name}/sqlite.so
%endif
%if %{with gnutls}
%files gnutls
%{_libdir}/%{name}/modules/m_ssl_gnutls.so
%{_libdir}/%{name}/ssl_gnutls.so
%endif
%if %{with openssl}
%files openssl
%{_libdir}/%{name}/modules/m_ssl_openssl.so
%{_libdir}/%{name}/ssl_openssl.so
%endif
%changelog
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sun Apr 14 2024 Robert Scheck <robert@fedoraproject.org> 2.1.4-1
- Upgrade to 2.1.4 (#2272460)
* Wed Mar 06 2024 Robert Scheck <robert@fedoraproject.org> 2.1.3-1
- Upgrade to 2.1.3 (#2267827)
* Sat Feb 17 2024 Robert Scheck <robert@fedoraproject.org> 2.1.2-1
- Upgrade to 2.1.2 (#2264678)
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 06 2024 Robert Scheck <robert@fedoraproject.org> 2.1.1-1
- Upgrade to 2.1.1 (#2256929)
* Mon Nov 27 2023 Robert Scheck <robert@fedoraproject.org> 2.1.0-2
- Reflect upstream configuration file changes and renamings
* Sun Nov 26 2023 Robert Scheck <robert@fedoraproject.org> 2.1.0-1
- Upgrade to 2.1.0 (#2251530)
* Mon Aug 07 2023 Robert Scheck <robert@fedoraproject.org> 2.0.14-1
- Upgrade to 2.0.14 (#2229557)
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 02 2023 Robert Scheck <robert@fedoraproject.org> 2.0.13-1
- Upgrade to 2.0.13 (#2211864)
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Dec 10 2022 Robert Scheck <robert@fedoraproject.org> 2.0.12-1
- Upgrade to 2.0.12 (#2152287)
- Switch from deprecated pcre to pcre2 (#2128270)
* Tue Sep 20 2022 Robert Scheck <robert@fedoraproject.org> 2.0.11-1
- Upgrade to 2.0.11
* Fri Jul 29 2022 Robert Scheck <robert@fedoraproject.org> 2.0.10-6
- Added sysusers.d file to achieve user() and group() provides
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.10-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.10-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Dec 29 2021 Robert Scheck <robert@fedoraproject.org> 2.0.10-3
- Added upstream patches for OpenLDAP 2.6 support (#2032707)
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 2.0.10-2
- Rebuilt with OpenSSL 3.0.0
* Tue Aug 10 2021 Robert Scheck <robert@fedoraproject.org> 2.0.10-1
- Upgrade to 2.0.10 (#1991858)
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.0.9-5
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Nov 24 2020 Robert Scheck <robert@fedoraproject.org> 2.0.9-3
- Correct include path for OpenSSL 1.1 on RHEL 7
* Sat Nov 07 2020 Robert Scheck <robert@fedoraproject.org> 2.0.9-2
- License breakdown in spec file (#1890821 #c2)

2
anope.sysusersd Normal file
View file

@ -0,0 +1,2 @@
#Type Name ID GECOS Home directory Shell
u anope - "Anope IRC services" /var/lib/anope -

View file

@ -1 +1 @@
SHA512 (anope-2.0.9.tar.gz) = 0ce2caa5ede2831215781a333d896f1169f90bbb515078912f32beaff1699b7957384974cca7c86f1d584d624cb43c76769299ce245ee1fb6836ce7f14ada3e0
SHA512 (anope-2.1.4.tar.gz) = 6404ed2e072ca039b18fe860b068bed946d041424157bc4d72506762f85192548653e6c60c961d456fd5cd3e4dc4dd6d3a44f094221075a543026267dfab1356