@push.rocks/smartmta 9.5.0 → 9.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +41 -0
- package/dist_rust/mailer-bin_linux_amd64 +0 -0
- package/dist_rust/mailer-bin_linux_amd64.tsrust-build.json +14 -0
- package/dist_rust/mailer-bin_linux_arm64 +0 -0
- package/dist_rust/mailer-bin_linux_arm64.tsrust-build.json +14 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -1
- package/dist_ts/mail/routing/classes.unified.email.server.d.ts +140 -4
- package/dist_ts/mail/routing/classes.unified.email.server.js +371 -97
- package/dist_ts/mail/routing/interfaces.d.ts +41 -0
- package/notices/aws-lc-sys-0.43.0-fiat-license.txt +22 -0
- package/notices/cargo-dependencies.html +4706 -0
- package/notices/compiler-builtins-license.txt +275 -0
- package/notices/crossbeam-channel-third-party.txt +593 -0
- package/notices/encoding-rs-copyright.txt +61 -0
- package/notices/glibc-copying-lesser.txt +502 -0
- package/notices/glibc-licenses.txt +412 -0
- package/notices/inventory.json +1226 -0
- package/notices/libgcc-gpl-3.0.txt +674 -0
- package/notices/libgcc-runtime-exception.txt +73 -0
- package/notices/mimalloc-license.txt +21 -0
- package/notices/moka-notice.txt +14 -0
- package/notices/ring-0.17.14-fiat-license.txt +15 -0
- package/notices/ring-0.17.14-license-boringssl.txt +272 -0
- package/notices/ring-0.17.14-license-other-bits.txt +13 -0
- package/notices/ring-0.17.14-license.txt +9 -0
- package/notices/ring-0.17.14-once-cell-license-apache.txt +201 -0
- package/notices/ring-0.17.14-once-cell-license-mit.txt +23 -0
- package/notices/rust-standard-library.html +8266 -0
- package/notices/rustversion-1.0.23-license-mit.txt +23 -0
- package/notices/source-attributions.txt +294 -0
- package/notices/wasm-bindgen-license-mit.txt +25 -0
- package/notices/zerocopy-derive-0.8.55-license-mit.txt +26 -0
- package/notices/zstd-license.txt +30 -0
- package/package.json +8 -6
- package/readme.md +70 -2
- package/third-party-notices.md +171 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +1 -0
- package/ts/mail/routing/classes.unified.email.server.ts +452 -108
- package/ts/mail/routing/interfaces.ts +43 -0
- package/readme.hints.md +0 -45
- package/readme.plan.md +0 -30
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
These notices accompany SmartMTA's prebuilt `dist_rust/mailer-bin_linux_amd64`
|
|
4
|
+
and `dist_rust/mailer-bin_linux_arm64` executables, which ship inside the npm
|
|
5
|
+
package. SmartMTA's own TypeScript and Rust code is MIT-licensed under
|
|
6
|
+
[license](./license).
|
|
7
|
+
|
|
8
|
+
Both executables are statically linked: `pnpm build` runs
|
|
9
|
+
`tsbuild tsfolders && tsrust`, and `@git.zone/tsrust` builds the
|
|
10
|
+
`.smartconfig.json` targets `linux_amd64` and `linux_arm64` — the
|
|
11
|
+
`x86_64-unknown-linux-gnu` and `aarch64-unknown-linux-gnu` triples — with
|
|
12
|
+
`-C target-feature=+crt-static`, so the Cargo dependency graph, the Rust
|
|
13
|
+
standard library, the GNU C Library and libgcc are all compiled into the
|
|
14
|
+
shipped object code. Anyone redistributing those executables — including
|
|
15
|
+
inside a container image — redistributes those third-party works in binary
|
|
16
|
+
form and must pass these notices on with them.
|
|
17
|
+
|
|
18
|
+
## Cargo dependencies
|
|
19
|
+
|
|
20
|
+
[Cargo dependency notices](./notices/cargo-dependencies.html) reproduce the
|
|
21
|
+
selected upstream license and copyright texts for 225 of the 232 third-party
|
|
22
|
+
packages in `rust/Cargo.lock`. The seven remaining packages are locked but
|
|
23
|
+
outside the resolved build graph (WebAssembly-only or feature-inactive), and
|
|
24
|
+
are covered by these supplemental notices:
|
|
25
|
+
|
|
26
|
+
- [js-sys 0.3.103, wasm-bindgen 0.2.126, wasm-bindgen-macro 0.2.126,
|
|
27
|
+
wasm-bindgen-macro-support 0.2.126 and wasm-bindgen-shared 0.2.126](./notices/wasm-bindgen-license-mit.txt),
|
|
28
|
+
from their identical published `LICENSE-MIT` files.
|
|
29
|
+
- [rustversion 1.0.23](./notices/rustversion-1.0.23-license-mit.txt), from the
|
|
30
|
+
published crate's `LICENSE-MIT`.
|
|
31
|
+
- [zerocopy-derive 0.8.55](./notices/zerocopy-derive-0.8.55-license-mit.txt),
|
|
32
|
+
from the published crate's `LICENSE-MIT`.
|
|
33
|
+
|
|
34
|
+
Together these cover all 232 locked external packages, conservatively including
|
|
35
|
+
build-only and target-inactive dependencies. Listing a package does not mean it
|
|
36
|
+
is linked into either executable. MIT is preferred where offered as an
|
|
37
|
+
alternative; other selected terms include Apache-2.0, ISC, 0BSD, BSD-2-Clause,
|
|
38
|
+
BSD-3-Clause, Unicode-3.0, Zlib, CC0-1.0, MIT-0, CDLA-Permissive-2.0 and
|
|
39
|
+
bzip2-1.0.6. The exact package versions and declared license expressions are
|
|
40
|
+
recorded in [inventory.json](./notices/inventory.json).
|
|
41
|
+
|
|
42
|
+
Several packages vendor or derive from third-party source whose attribution is
|
|
43
|
+
not carried by the crate-level license text. Those notices are reproduced
|
|
44
|
+
verbatim beside the generated inventory:
|
|
45
|
+
|
|
46
|
+
- ring 0.17.14: [its own ISC terms](./notices/ring-0.17.14-license.txt),
|
|
47
|
+
[the BoringSSL terms](./notices/ring-0.17.14-license-boringssl.txt),
|
|
48
|
+
[the ISC text for new files](./notices/ring-0.17.14-license-other-bits.txt),
|
|
49
|
+
[the fiat-crypto terms](./notices/ring-0.17.14-fiat-license.txt) and the
|
|
50
|
+
once_cell terms it sourced code from
|
|
51
|
+
([Apache-2.0](./notices/ring-0.17.14-once-cell-license-apache.txt),
|
|
52
|
+
[MIT](./notices/ring-0.17.14-once-cell-license-mit.txt)).
|
|
53
|
+
- aws-lc-sys 0.43.0: the vendored AWS-LC notice — itself covering BoringSSL and
|
|
54
|
+
OpenSSL/SSLeay — is the crate's `LICENSE` file and is reproduced in the
|
|
55
|
+
generated inventory; its separately licensed
|
|
56
|
+
[fiat-crypto component](./notices/aws-lc-sys-0.43.0-fiat-license.txt) is
|
|
57
|
+
included here.
|
|
58
|
+
- libmimalloc-sys 0.1.49: [the vendored mimalloc terms](./notices/mimalloc-license.txt).
|
|
59
|
+
- zstd-sys 2.0.16+zstd.1.5.7: [the vendored Zstandard terms](./notices/zstd-license.txt)
|
|
60
|
+
(BSD-3-Clause is selected; upstream also offers GPL-2.0).
|
|
61
|
+
- moka 0.12.15: [its Apache-2.0 NOTICE file](./notices/moka-notice.txt), as
|
|
62
|
+
required by Apache-2.0 section 4(d).
|
|
63
|
+
- crossbeam-channel 0.5.16:
|
|
64
|
+
[its third-party notices](./notices/crossbeam-channel-third-party.txt).
|
|
65
|
+
- encoding_rs 0.8.35:
|
|
66
|
+
[its copyright and WHATWG attribution](./notices/encoding-rs-copyright.txt).
|
|
67
|
+
- [Additional source attributions](./notices/source-attributions.txt) retain the
|
|
68
|
+
copyright and attribution files shipped by charset, enum-as-inner,
|
|
69
|
+
linux-raw-sys, miniz_oxide, rand, rand_chacha, rand_core, regex-syntax, rustix
|
|
70
|
+
and utf8_iter.
|
|
71
|
+
|
|
72
|
+
## Compiler and static runtime
|
|
73
|
+
|
|
74
|
+
Components supplied by the Rust compiler and by the C toolchain are outside
|
|
75
|
+
`rust/Cargo.lock` and have separate notices. The exact versions that produced
|
|
76
|
+
the shipped executables are recorded in
|
|
77
|
+
[inventory.json](./notices/inventory.json) under `rustc` and `staticRuntime`,
|
|
78
|
+
and `test/test.notices.node.ts` reads them back out of
|
|
79
|
+
`dist_rust/mailer-bin_linux_amd64` and `dist_rust/mailer-bin_linux_arm64`, so
|
|
80
|
+
these notices go stale loudly rather than silently.
|
|
81
|
+
|
|
82
|
+
- The Rust toolchain is the one `tsrust` resolves: the system `cargo`/`rustc`
|
|
83
|
+
when one is installed, otherwise its bundled `stable-<host-triple>` under
|
|
84
|
+
`/tmp/tsrust_toolchain`. This release was built with rustc 1.95.0
|
|
85
|
+
(commit `59807616e1fa2540724bfbac14d7976d7e4a3860`), which both executables
|
|
86
|
+
embed. The [Rust standard-library inventory](./notices/rust-standard-library.html)
|
|
87
|
+
is that toolchain's `share/doc/rust/COPYRIGHT-library.html`; the upstream
|
|
88
|
+
inventory covers other targets too.
|
|
89
|
+
- [Compiler-builtins license](./notices/compiler-builtins-license.txt), from
|
|
90
|
+
[Rust 1.95.0](https://github.com/rust-lang/rust/blob/1.95.0/library/compiler-builtins/LICENSE.txt),
|
|
91
|
+
retaining MIT and Apache-2.0 WITH LLVM-exception terms.
|
|
92
|
+
- The GNU C Library 2.39 is statically linked into both executables, in the
|
|
93
|
+
Ubuntu builds that produced them:
|
|
94
|
+
- amd64: `libc6-dev` 2.39-0ubuntu8.9, from Ubuntu source package
|
|
95
|
+
`glibc` 2.39-0ubuntu8.9 —
|
|
96
|
+
`apt-get source glibc=2.39-0ubuntu8.9`, or
|
|
97
|
+
<https://launchpad.net/ubuntu/+source/glibc/2.39-0ubuntu8.9>.
|
|
98
|
+
- arm64: `libc6-dev-arm64-cross` 2.39-0ubuntu8cross1, from Ubuntu source
|
|
99
|
+
package `cross-toolchain-base` 68ubuntu5, which repacks Ubuntu glibc
|
|
100
|
+
2.39-0ubuntu8 —
|
|
101
|
+
`apt-get source cross-toolchain-base=68ubuntu5`, or
|
|
102
|
+
<https://launchpad.net/ubuntu/+source/cross-toolchain-base/68ubuntu5>.
|
|
103
|
+
|
|
104
|
+
Its [LGPL-2.1 terms](./notices/glibc-copying-lesser.txt) and the
|
|
105
|
+
[copying permission notices for its non-FSF parts](./notices/glibc-licenses.txt)
|
|
106
|
+
are reproduced from the upstream `glibc-2.39` tag, which those Ubuntu source
|
|
107
|
+
packages patch. The GNU C Library is free software licensed under the GNU
|
|
108
|
+
Lesser General Public License, version 2.1 or later; because it is linked
|
|
109
|
+
statically, redistributors must keep this notice and the license text with
|
|
110
|
+
the executables.
|
|
111
|
+
- libgcc supplies the unwinder and compiler intrinsics linked into both
|
|
112
|
+
executables: `libgcc-13-dev` 13.3.0-6ubuntu2~24.04.1 (source package `gcc-13`)
|
|
113
|
+
for amd64 and `libgcc-13-dev-arm64-cross` 13.3.0-6ubuntu2~24.04.1cross1
|
|
114
|
+
(source package `gcc-13-cross` 14ubuntu4.4) for arm64, both GCC 13.3.0. It is
|
|
115
|
+
distributed under [GPL-3.0-or-later](./notices/libgcc-gpl-3.0.txt) WITH the
|
|
116
|
+
[GCC Runtime Library Exception 3.1](./notices/libgcc-runtime-exception.txt),
|
|
117
|
+
which permits distributing the compiled runtime with this executable under
|
|
118
|
+
the executable's own terms.
|
|
119
|
+
|
|
120
|
+
## Rebuilding and relinking
|
|
121
|
+
|
|
122
|
+
The executables are rebuilt from this repository with:
|
|
123
|
+
|
|
124
|
+
```sh
|
|
125
|
+
pnpm install
|
|
126
|
+
pnpm build # tsbuild tsfolders && tsrust
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
`tsrust` reads the `@git.zone/tsrust` block of `.smartconfig.json` (`targets`
|
|
130
|
+
`linux_amd64` and `linux_arm64`, `static: true`), runs
|
|
131
|
+
`RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target
|
|
132
|
+
<triple>` in `rust/`, and copies the results to `dist_rust/`. The arm64 link
|
|
133
|
+
uses the `aarch64-linux-gnu-gcc` linker configured in `rust/.cargo/config.toml`.
|
|
134
|
+
|
|
135
|
+
That is also the relink route required by LGPL-2.1 section 6: the complete
|
|
136
|
+
corresponding source of the work that uses the library is this package's own
|
|
137
|
+
MIT-licensed source — `rust/` and `ts/` in
|
|
138
|
+
[the package repository](https://code.foss.global/push.rocks/smartmta) at the
|
|
139
|
+
tag matching this release — and glibc's sources are obtained with the
|
|
140
|
+
`apt-get source` commands above, so a recipient can modify the library, rebuild
|
|
141
|
+
it, and relink the executable with the command shown here.
|
|
142
|
+
|
|
143
|
+
The TypeScript dependency graph is installed independently through the npm
|
|
144
|
+
manifest; its packages are not bundled into these Rust executables.
|
|
145
|
+
|
|
146
|
+
## Reproduction and review
|
|
147
|
+
|
|
148
|
+
From the repository root, with cargo-about 0.9.1:
|
|
149
|
+
|
|
150
|
+
```sh
|
|
151
|
+
cargo about generate --manifest-path rust/Cargo.toml --config rust/about.toml \
|
|
152
|
+
--locked --fail --output-file notices/cargo-dependencies.html rust/about.hbs
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
The configuration selects checksum-verified upstream notices when published
|
|
156
|
+
crates omit or misname them; network access is required for the pinned
|
|
157
|
+
`r-efi` Git source. Those commands regenerate the notices only, not the
|
|
158
|
+
executables; rebuilding and relinking is described above.
|
|
159
|
+
`notices/inventory.json` records the SHA-256 of every notice file and notice
|
|
160
|
+
input alongside the locked package list from `cargo metadata --locked`, the
|
|
161
|
+
rustc that built the executables, and the exact Ubuntu glibc and libgcc
|
|
162
|
+
package revisions linked into them; after a Cargo graph, compiler, C toolchain,
|
|
163
|
+
or notice-input change, regenerate the notices, refresh those digests and
|
|
164
|
+
values, and rerun `pnpm test`.
|
|
165
|
+
`test/test.notices.node.ts` rejects stale digests, packages missing from the
|
|
166
|
+
inventory or from the shipped notices, generic copyright placeholders and
|
|
167
|
+
missing npm notice paths.
|
|
168
|
+
|
|
169
|
+
Keep this index, `license` and the entire `notices/` directory beside any
|
|
170
|
+
separately distributed copy of `mailer-bin_linux_amd64` or
|
|
171
|
+
`mailer-bin_linux_arm64`.
|
package/ts/00_commitinfo_data.ts
CHANGED