The deployed site serves a .wasm with acadrust compiled into it, and our vendored copy carries one modified MPL file (src/io/dwg/dwg_stream_readers/object_reader/entities.rs, the read_mesh array-count bounds fix). That is Executable Form distribution of modified Covered Software, so MPL-2.0 3.2 requires the Source Code Form to be available and recipients to be told how to get it. Nothing shipped said so: no license text, no notice, no obtainable source - the upstream mirror repos are private. Add THIRD-PARTY-NOTICES.md plus public/licenses/ (MPL-2.0 text, the read_mesh patch against the pristine 0.4.1 crate, and a served copy of the notice), and link them from the page so recipients can actually find them. Original crate download plus the patch reproduces the exact source compiled into the wasm. MPL does not require upstreaming, and the lineweight work did not touch any MPL file - dwg-wasm/src/lib.rs is our MIT wrapper. docs/license-mpl2- acadrust.md records the analysis and the checklist for future changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
71 lines
2.5 KiB
Markdown
71 lines
2.5 KiB
Markdown
# Third-party notices
|
|
|
|
This viewer bundles third-party code. The notices below apply to the source
|
|
tree **and** to the built site (`dist2/`, deployed at
|
|
`https://dwg-dxf-viewer-sample.pages.dev/`), because the build embeds the
|
|
components listed here.
|
|
|
|
Served copies of the license texts live under
|
|
[`public/licenses/`](./public/licenses/) → `/licenses/…` on the deployed site.
|
|
|
|
---
|
|
|
|
## acadrust 0.4.1 — Mozilla Public License 2.0 — **MODIFIED**
|
|
|
|
| | |
|
|
|---|---|
|
|
| Component | `acadrust` (DWG/DXF parser, Rust) |
|
|
| Version | 0.4.1 |
|
|
| License | MPL-2.0 — full text: [`public/licenses/acadrust-MPL-2.0.txt`](./public/licenses/acadrust-MPL-2.0.txt) (`/licenses/acadrust-MPL-2.0.txt`) |
|
|
| Upstream | https://github.com/hakanaktt/acadrust · https://crates.io/crates/acadrust/0.4.1 |
|
|
| Upstream commit | `f249c2f816acf36ee51cd5533716bdd443c2517e` (from the crate's `.cargo_vcs_info.json`) |
|
|
| Author | Hakan AK |
|
|
| Shipped as | compiled into `assets/acadrust_dwg_bg-*.wasm` (Executable Form) |
|
|
|
|
**This copy is modified.** One file differs from the published crate:
|
|
|
|
```
|
|
src/io/dwg/dwg_stream_readers/object_reader/entities.rs (read_mesh array-count bounds)
|
|
```
|
|
|
|
The modification bounds `read_mesh`'s array counts by the bits remaining in the
|
|
object stream instead of the blanket 100 000-item guard, which truncated and
|
|
thereby corrupted large SubD meshes.
|
|
|
|
### How to obtain the Source Code Form (MPL-2.0 §3.2)
|
|
|
|
1. Get the unmodified crate source — `cargo vendor`, or
|
|
`https://crates.io/api/v1/crates/acadrust/0.4.1/download`, or the upstream
|
|
commit above.
|
|
2. Apply [`public/licenses/acadrust-0.4.1-read_mesh.patch`](./public/licenses/acadrust-0.4.1-read_mesh.patch)
|
|
(`/licenses/acadrust-0.4.1-read_mesh.patch` on the deployed site):
|
|
|
|
```bash
|
|
tar xf acadrust-0.4.1.crate && cd acadrust-0.4.1
|
|
patch -p1 < acadrust-0.4.1-read_mesh.patch
|
|
```
|
|
|
|
The result is the exact Source Code Form of the acadrust code compiled into the
|
|
shipped `.wasm`. Both the original and the modified file remain under MPL-2.0.
|
|
|
|
---
|
|
|
|
## dwg-wasm — MIT
|
|
|
|
The wasm-bindgen wrapper that turns acadrust output into this viewer's
|
|
`parseResult` (`hmwebviewer/rust/dwg-wasm/`). Our own code, MIT. MPL-2.0 §3.3
|
|
permits distributing this Larger Work under different terms as long as the
|
|
MPL-covered files above keep their license — which they do.
|
|
|
|
---
|
|
|
|
## Other components
|
|
|
|
| Component | License |
|
|
|---|---|
|
|
| three.js | MIT |
|
|
| dxf-parser | MIT |
|
|
| opentype.js | MIT |
|
|
| NanumGothic (`public/fonts/`) | SIL Open Font License 1.1 |
|
|
| Viewer2D / sample glue | MIT |
|