Skip to content

Commit 9912fb2

Browse files
committed
Document why modules removed in v4 were removed.
1 parent 33a11b9 commit 9912fb2

3 files changed

Lines changed: 93 additions & 4 deletions

File tree

docs/3/module-manager.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/3/module-manager.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
title: v3 Module Manager
3+
---
4+
5+
## Managing third-party modules with Module Manager
6+
7+
### Summary
8+
9+
The InspIRCd community has created many third-party modules and Module Manager is an easy-to-use helper script for finding and installing those modules.
10+
11+
### Usage
12+
13+
To see the list of Module Manager subcommands you can run execute `./modulemanager help` in the root of the InspIRCd source directory.
14+
15+
#### Installing a module
16+
17+
To install a module use the `./modulemanager install <name>` command. The module will be downloaded and placed into the `./src/modules` directory. You can then build and install the module by running `make install`.
18+
19+
#### Upgrading modules
20+
21+
To upgrade modules use the `./modulemanager upgrade` command. All outdated modules will be updated and you can rebuild them as mentioned above.
22+
23+
#### Listing available modules
24+
25+
The `./modulemanager list` command shows the names, versions, and descriptions of all available modules.
26+
27+
### Other methods
28+
29+
If for some reason you are unable to use the Module Manager you can download and install modules manually using the following steps:
30+
31+
1. Download the module you wish to install from [the inspircd-contrib repository on GitHub](https://github.com/inspircd/inspircd-contrib/tree/master/3).
32+
33+
2. Move it to the ./src/modules directory.
34+
35+
3. Run `make install` to build and install the module.

docs/4/module-manager.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: v{{ version }} Module Manager
2+
title: v4 Module Manager
33
---
44

55
## Managing third-party modules with Module Manager
@@ -24,12 +24,16 @@ To upgrade modules use the `./modulemanager upgrade` command. All outdated modul
2424

2525
The `./modulemanager list` command shows the names, versions, and descriptions of all available modules.
2626

27-
### Other Methods
27+
### Other methods
2828

2929
If for some reason you are unable to use the Module Manager you can download and install modules manually using the following steps:
3030

31-
1. Download the module you wish to install from [the inspircd-contrib repository on GitHub](https://github.com/inspircd/inspircd-contrib/tree/master/{{version}}).
31+
1. Download the module you wish to install from [the inspircd-contrib repository on GitHub](https://github.com/inspircd/inspircd-contrib/tree/master/4).
3232

3333
2. Move it to the ./src/modules directory.
3434

3535
3. Run `make install` to build and install the module.
36+
37+
### Moved modules
38+
39+
When a module is removed from the main repository we will often move it to the Module Manager. See [the moved modules page](/4/moved-modules) for more information.

docs/4/moved-modules.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: v4 Modules moved to Module Manager
3+
---
4+
5+
## Modules moved to Module Manager
6+
7+
Occasionally we move modules that previously shipped with the previous major version of InspIRCd to [the Module Manager](/4/module-manager). This is usually because they are obsolete or because they have other problems but they are made available to allow networks that need to keep compatibility with an older branch.
8+
9+
These modules will not be updated to the next major version of InspIRCd. If you wish to take over maintainership of one of these modules feel free to send a pull request updating the `ModAuthor` directive to your name and email address.
10+
11+
## Modules moved in v4
12+
13+
### censor
14+
15+
This module is trivial to bypass as it only provides basic text matching. It is recommended that you migrate to [the filter module](/4/modules/filter) for server-wide message blocking using regular expressions. You might also find [the chanfilter](/4/modules/chanfilter) module useful to allow channels to configure their own filtered messages using glob patterns.
16+
17+
### clones
18+
19+
This module was intended for finding clones used for flooding but the way malicious bots work nowadays is by using masses of infected proxy hosts which don't share the same IP. It also didn't provide any other information about the clone subnets which isn't very useful.
20+
21+
### hostchange
22+
23+
This module is obsolete thanks to the new v4 cloaking system which implements the same behaviour. Users of this module should consider migrating to [the cloak_user module](/4/modules/cloak_user) if they use the "addaccount" or "addnick" actions and [the cloak_static module](/4/modules/cloak_static) if they use the "set" action.
24+
25+
### lockserv
26+
27+
This module is extremely niche and there's not really any circumstances in which it would be useful. If disabling a server due to planned updates you are a lot better off removing it from your DNS round robin and waiting for it to empty.
28+
29+
### modenotice
30+
31+
This module is extremely niche as there's not really any circumstances in which you would want to send messages to users with a specific user mode set other than wallops [which has its own command](/4/commands#wallops-message). It mostly existed in v3 for compatibility with v2 when it was a core command.
32+
33+
### protoctl
34+
35+
This module was not included with v3 but provides support for an obsolete protocol negotiation system which was previously implemented by [the multiprefix module](/4/modules/multiprefix) and [the uhnames modules](/4/modules/uhnames). It should not be necessary for modern clients which implement support for IRCv3 Capability Negotiation.
36+
37+
### regex_pcre
38+
39+
This module depends on PCRE which [is no longer maintained by its author](https://lists.exim.org/lurker/message/20210615.162400.c16ff8a3.en.html). The author's recommendation is that you should migrate to PCRE2. Support for the newer PCRE2 library is provided by [the regex_pcre2 module](/4/modules/regex_pcre2) which provides a regular expression engine with the same internal name so it shouild be a drop-in replacement.
40+
41+
### regex_tre
42+
43+
This module depends on TRE library which is less commonly used. The main benefit of it was that it has time and memory consumption linear to the size of the input but this is a feature also provided by more widely used RE2 library as provided by [the regex_re2 module](/4/modules/regex_re2).
44+
45+
### ssl_mbedtls
46+
47+
This module was never really feature complete to the same level as the ssl_gnutls or ssl_openssl modules. Most notably it never gained SNI support or support for SPKI fingerprints. Additionally, the current mbedTLS maintainers have also broken C++ support multiple times (e.g. mbedTLS bugs #7087 and #8866) and relicensed the library from GPLv2 to the Apache License which means we can no longer ship binaries linked against it. Considering these factors it was decided to remove the module. Users are recommended to migrate to [the ssl_gnutls module](/4/modules/ssl_gnutls).
48+
49+
### userip
50+
51+
This module provides more or less the same information as [the check module](/4/modules/check) but in a less useful way. It is recommended that you migrate to [the check module](/4/modules/check).

0 commit comments

Comments
 (0)