Files
dwg-dxf-viewer-sample/THIRD-PARTY-NOTICES.md
minsungandClaude Opus 5 ce3859c487 docs: ship the acadrust MPL-2.0 notice, license text and local patch
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>
2026-08-04 17:59:10 +09:00

2.5 KiB

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//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 (/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 (/licenses/acadrust-0.4.1-read_mesh.patch on the deployed site):

    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