aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: dfacd1d0ca7acbb191c816a8997ad62556f66e59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
neo-curl arrives from the future
================================

Drop-in replacement for the [neocurl] SourceMod extension, in turn a drop-in
replacement for the ancient [SourceMod cURL] extension.

* Builds with AMBuild instead of make, if for no other reason than to get
  cflags straight from the horse's mouth.
* Gets rid of vendored OpenSSL and cURL, and their
  _vendored binary dependencies_.
* Gets rid of `smsdk_ext.{c,h}` as those can be referenced from SourceMod.

Building
--------

    python configure.py --mms-path /path/metamod --sm-path /path/sourcemod
    ambuild

Requirements:
* AMBuild
* SourceMod
* MetaMod: Source
* pkg-config, which should be able to find static 32-bit:
  * openssl
  * libcurl, which for parity with neocurl, should apparently be built with at
    least:
    * brotli
    * zlib
    * zstd
    * gsasl
    * nghttp2
    * ngtcp2
    * ssh2
    * openssl >= 3.3 for QUIC

Upon success, you will find `build/package/addons`, ready to overlay on your
server directory.

Releases
--------

Given the rate at which CVEs appear in OpenSSL, prepackaged static builds would
be irresponsible. You are encouraged to find a way to maintain builds against
up-to-date system libraries.

Licensing
---------

tl;dr GPL3 with AlliedModders exceptions; see COPYING for more details. To the
best of my knowledge, OpenSSL and cURL present no licensing incompatibilities
via linkage.

[neocurl]: https://github.com/sapphonie/SM-neocurl-ext
[SourceMod cURL]: https://code.google.com/archive/p/sourcemod-curl-extension