License audit: SPDX headers + per-file provenance (closes 7cbbf97)
Add SPDX-License-Identifier to every source file in lib/ and cli/. Files derived from Bobrowski's libunuc2 retain LGPL-3.0-only; cli/src/main.c (derived from his GPL-licensed unuc2 tool) and all new Phase 2-7 work by Valetov are GPL-3.0-or-later. No silent LGPL-to-GPL upgrade has been applied. CREDITS.md now lists each Bobrowski-derived file specifically rather than crediting libunuc2 as generic 'inspiration'. docs/license-audit.md records the full per-file provenance table, the LGPL-3.0 -> GPL-3.0 chain rationale (LGPL sec. 4 Combined Works is the operative clause; LGPL sec. 3 single-direction upgrade is documented but not exercised), and confirms that: - the 2015 LGPL-3.0 release in original/UC2_source/ is preserved unchanged; - the 2020-2021 LGPL/GPL releases in original/unuc2-0.6/ are preserved unchanged; - lib/src/super.bin is bit-identical to upstream and to de Vries's 1992 distribution data.
This commit is contained in:
+24
-2
@@ -18,7 +18,23 @@ versioning. The original source code is preserved in `original/UC2_source/`.
|
||||
**Jan Bobrowski** wrote a clean-room portable decompressor (2020--2021) that
|
||||
forms the foundation of this project's decompression engine. The library
|
||||
(`libunuc2`) is licensed under LGPL-3.0; the CLI tool (`unuc2`) is licensed
|
||||
under GPL-3.0.
|
||||
under GPL-3.0-or-later.
|
||||
|
||||
The following files in this repository derive directly from Bobrowski's
|
||||
work and retain his licence (see `docs/license-audit.md` for the full
|
||||
provenance table):
|
||||
|
||||
- `lib/src/decompress.c` (LGPL-3.0-only) -- derived from `libunuc2.c`
|
||||
- `lib/src/list.h` (LGPL-3.0-only) -- byte-identical to upstream
|
||||
- `lib/include/uc2/libuc2.h` (LGPL-3.0-only) -- derived from `libunuc2.h`
|
||||
- `cli/src/main.c` (GPL-3.0-or-later) -- derived from `unuc2.c`,
|
||||
with substantial additions for archive creation, OTS, and benchmarking
|
||||
- `cli/src/compat/compat_win32.c` (LGPL-3.0-only)
|
||||
- `cli/src/compat/compat_dos.c` (LGPL-3.0-only, DOS adaptation by Valetov)
|
||||
|
||||
The SuperMaster dictionary (`lib/src/super.bin`) is bit-identical to the
|
||||
copy shipped in `original/unuc2-0.6/` and to the data extracted from
|
||||
de Vries's 1992 binaries.
|
||||
|
||||
- Website: <http://torinak.com/~jb/unuc2/>
|
||||
- Original source preserved in `original/unuc2-0.6/`
|
||||
@@ -44,8 +60,14 @@ under GPL-3.0.
|
||||
- Content-aware preprocessing (BCJ, BWT, delta filter)
|
||||
- LZ4 ultra-fast compression
|
||||
- BLAKE3 cryptographic hashing
|
||||
- SHA-256 (FIPS 180-4) implementation
|
||||
- OpenTimestamps integration (proof parser, walker, archive trailer)
|
||||
- Dictionary metadata for cross-archive sharing
|
||||
- Backward compatibility with original UC2 Pro (verified via DOSBox-X)
|
||||
- Automated test infrastructure (16 unit tests, DOSBox-X cross-tool testing)
|
||||
- Automated test infrastructure (19 unit tests, DOSBox-X cross-tool testing)
|
||||
|
||||
All files under "UC2 v3.0.0 Revival" are licensed GPL-3.0-or-later by
|
||||
Eremey Valetov (2026). See `docs/license-audit.md` for the per-file
|
||||
provenance table and the LGPL-3.0 / GPL-3.0 chain rationale.
|
||||
|
||||
- GitHub: <https://github.com/evvaletov/uc2>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: LGPL-3.0-only */
|
||||
|
||||
/* DOS/DJGPP compatibility layer for UC2.
|
||||
Provides BSD err.h functions and fnmatch for DJGPP,
|
||||
which lacks these POSIX/BSD extensions.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: LGPL-3.0-only */
|
||||
|
||||
/* Win32 compatibility layer for UC2 CLI.
|
||||
Provides POSIX/BSD functions missing from MSVC and MinGW.
|
||||
All file operations use wide-char Windows APIs for UTF-8 support.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Minimal POSIX getopt() for MSVC.
|
||||
Supports short options with optional arguments (e.g., "d:"). */
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
#ifndef _ERR_H
|
||||
#define _ERR_H
|
||||
#ifdef __GNUC__
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
#ifndef _FNMATCH_H
|
||||
#define _FNMATCH_H
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Minimal POSIX getopt for MSVC */
|
||||
#ifndef _COMPAT_GETOPT_H
|
||||
#define _COMPAT_GETOPT_H
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Minimal POSIX unistd.h for MSVC */
|
||||
#ifndef _COMPAT_UNISTD_H
|
||||
#define _COMPAT_UNISTD_H
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* POSIX utime.h for MSVC (which only provides sys/utime.h) */
|
||||
#ifndef _COMPAT_UTIME_H
|
||||
#define _COMPAT_UTIME_H
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* UltraCompressor II extraction tool.
|
||||
Copyright © Jan Bobrowski 2020, 2021
|
||||
torinak.com/~jb/unuc2/
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
# UC2 License Audit
|
||||
|
||||
Status: 2026-05-03. Maintained by Eremey Valetov.
|
||||
|
||||
UC2 v3 builds on three layers of prior work, each released under its
|
||||
own free-software licence. This document records per-file provenance,
|
||||
the LGPL-3.0 -> GPL-3.0 transition rationale, and the SPDX identifiers
|
||||
applied across the source tree.
|
||||
|
||||
## Layer 1: Nico de Vries (1992-1996), released 2015
|
||||
|
||||
Nico de Vries authored UltraCompressor II as proprietary DOS software
|
||||
between 1992 and 1996. Danny Bezemer obtained permission to release
|
||||
the source code publicly and did so in 2015 under the GNU Lesser
|
||||
General Public License v3 (LGPL-3.0).
|
||||
|
||||
The 2015 release is preserved in this repository under
|
||||
`original/UC2_source/` byte-for-byte unchanged, including its license
|
||||
header (`GNU LESSER GENERAL PUBLIC LICENSE V3.txt`) and the original
|
||||
binaries (`uc2pro.exe`, `uc237b.exe`, `ue.exe`). No file in `lib/` or
|
||||
`cli/` is a verbatim copy of any file in that release. The 2015 source
|
||||
serves as the format specification: it is read for documentation
|
||||
purposes (the on-disk archive layout, the SuperMaster dictionary
|
||||
contents, the Huffman tree encoding) but its C code is not linked in.
|
||||
|
||||
Relicensing impact: none. Layer 1 is preserved under its original
|
||||
LGPL-3.0 licence; nothing is moved upward to GPL-3.0.
|
||||
|
||||
## Layer 2: Jan Bobrowski (2020-2021), libunuc2 / unuc2
|
||||
|
||||
Jan Bobrowski wrote a clean-room portable decompressor for UC2 v3
|
||||
archives between 2020 and 2021. He released two products:
|
||||
|
||||
- `libunuc2` (decompression library) under LGPL-3.0
|
||||
- `unuc2` (CLI tool) under GPL-3.0-or-later
|
||||
|
||||
The upstream source is preserved in `original/unuc2-0.6/`. The
|
||||
following files in this repository derive from Bobrowski's work and
|
||||
retain his original licence:
|
||||
|
||||
| Current file | Upstream origin | Licence |
|
||||
|---------------------------------------|------------------------------------------|---------------|
|
||||
| `lib/src/decompress.c` | `original/unuc2-0.6/libunuc2.c` | LGPL-3.0-only |
|
||||
| `lib/src/list.h` | `original/unuc2-0.6/list.h` (identical) | LGPL-3.0-only |
|
||||
| `lib/src/super.bin` | `original/unuc2-0.6/super.bin` (identical) | data (de Vries) |
|
||||
| `lib/include/uc2/libuc2.h` | `original/unuc2-0.6/libunuc2.h` | LGPL-3.0-only |
|
||||
| `cli/src/main.c` | `original/unuc2-0.6/unuc2.c` | GPL-3.0-or-later |
|
||||
| `cli/src/compat/compat_win32.c` | `original/unuc2-0.6/compat/compat.c` (Win32 portions) | LGPL-3.0-only |
|
||||
| `cli/src/compat/compat_dos.c` | derived from `compat/compat.c` (DOS adaptation by Valetov) | LGPL-3.0-only |
|
||||
|
||||
Modifications by Valetov in 2026 are released under the same licence
|
||||
as the file's upstream origin (LGPL-3.0 stays LGPL-3.0; GPL-3.0 stays
|
||||
GPL-3.0). No unilateral upgrade from LGPL to GPL has been applied to
|
||||
Bobrowski's work.
|
||||
|
||||
`lib/src/super.bin` is the SuperMaster dictionary block from the 1992
|
||||
distribution. It is data, not code: a fixed binary table used as a
|
||||
compression-context priming dictionary. It is bit-identical to the
|
||||
file in Bobrowski's release and to the data extracted from de Vries's
|
||||
1992 binaries.
|
||||
|
||||
## Layer 3: Eremey Valetov (2026), UC2 v3 revival
|
||||
|
||||
The following files are new work by Valetov, originally authored for
|
||||
the UC2 v3 revival project, released under GPL-3.0-or-later:
|
||||
|
||||
| File | Function |
|
||||
|---------------------------------------|----------------------------------------------------|
|
||||
| `lib/src/compress.c` | LZ77+Huffman compressor (inverse of decompress.c) |
|
||||
| `lib/src/uc2_tables.c` | Huffman delta-coding lookup tables |
|
||||
| `lib/src/uc2_internal.h` | Shared compressor/decompressor types and constants |
|
||||
| `lib/src/uc2_cdc.c` + `.h` | Content-defined chunking (Gear hash) |
|
||||
| `lib/src/uc2_merkle.c` + `.h` | Merkle DAG of deduplicated blocks |
|
||||
| `lib/src/uc2_blockstore.c` + `.h` | Cross-archive content-addressable block store |
|
||||
| `lib/src/uc2_simhash.c` + `.h` | SimHash near-duplicate detection |
|
||||
| `lib/src/uc2_delta.c` + `.h` | Binary delta compression |
|
||||
| `lib/src/uc2_rans.c` + `.h` | rANS entropy coder (method 10) |
|
||||
| `lib/src/uc2_dict.c` + `.h` | Dictionary metadata for cross-archive sharing |
|
||||
| `lib/src/uc2_preprocess.c` + `.h` | BCJ / BWT / delta-filter preprocessing |
|
||||
| `lib/src/uc2_lz4.c` + `.h` | LZ4 ultra-fast compression |
|
||||
| `lib/src/uc2_blake3.c` + `.h` | BLAKE3 cryptographic hashing |
|
||||
| `lib/src/uc2_sha256.c` + `.h` | SHA-256 (FIPS 180-4) |
|
||||
| `lib/src/uc2_ots.c` + `.h` | OpenTimestamps proof parser, walker, trailer |
|
||||
| `cli/src/compat/getopt.c` | Minimal POSIX getopt for MSVC |
|
||||
| `cli/src/main.c` (post-`9525a81` additions) | OTS attach/extract/info, archive creation, scanning, benchmark | GPL-3.0-or-later (matches upstream `unuc2.c`) |
|
||||
|
||||
The Phase 3-7 modules are independent implementations. They reference
|
||||
the UC2 v3 archive format (which is a bitstream layout, not a
|
||||
copyrighted work) and use BLAKE3, SHA-256, LZ4, rANS, etc. from
|
||||
public-domain or self-authored reference implementations. None of
|
||||
these modules link to or derive from Bobrowski's code beyond using
|
||||
shared header types declared in `uc2_internal.h`.
|
||||
|
||||
## Relicensing rationale
|
||||
|
||||
The composite project links Bobrowski's LGPL-3.0 library (`lib/`) into
|
||||
a GPL-3.0-or-later executable (`cli/`). This combination is permitted
|
||||
by LGPL-3.0 sec. 4 (Combined Works): the LGPL library may be used in
|
||||
GPL-licensed work without requiring the library itself to be relicensed.
|
||||
|
||||
No code has been moved from LGPL-3.0 to GPL-3.0 in this project.
|
||||
LGPL §3 permits a one-way upgrade from LGPL to GPL but exercising it
|
||||
is unnecessary here: the LGPL files remain LGPL, the GPL files remain
|
||||
GPL, and the combined work is distributable under GPL-3.0-or-later (as
|
||||
recorded in the project root `LICENSE` file).
|
||||
|
||||
If a downstream user wishes to redistribute `lib/` standalone under
|
||||
LGPL-3.0, the LGPL-3.0 files are individually identifiable via their
|
||||
SPDX-License-Identifier headers.
|
||||
|
||||
## SPDX policy
|
||||
|
||||
All source files in `lib/` and `cli/` carry one of two SPDX
|
||||
identifiers near the top:
|
||||
|
||||
- `SPDX-License-Identifier: LGPL-3.0-only` for files derived from
|
||||
Bobrowski's libunuc2 / compat code.
|
||||
- `SPDX-License-Identifier: GPL-3.0-or-later` for `cli/src/main.c`
|
||||
(matches Bobrowski's original GPL-3.0-or-later choice for the CLI
|
||||
tool) and for all Valetov-authored Phase 2 through Phase 7 work.
|
||||
|
||||
Original copyright lines authored by Bobrowski are preserved verbatim
|
||||
where present. Where Valetov has added substantial new content to a
|
||||
Bobrowski-originated file (notably `cli/src/main.c` and
|
||||
`compat_dos.c`), an additional Valetov copyright line has been added
|
||||
without removing the original.
|
||||
|
||||
The 2015 LGPL-3.0 release in `original/UC2_source/` and the 2020-2021
|
||||
release in `original/unuc2-0.6/` are preserved unchanged and are not
|
||||
subject to this policy: they retain whatever licence headers their
|
||||
authors shipped them with.
|
||||
|
||||
## Audit checklist
|
||||
|
||||
- [x] LGPL-3.0 release by Bezemer/de Vries preserved unchanged in
|
||||
`original/UC2_source/`
|
||||
- [x] LGPL-3.0 / GPL-3.0 release by Bobrowski preserved unchanged in
|
||||
`original/unuc2-0.6/`
|
||||
- [x] Per-file provenance table above
|
||||
- [x] SPDX-License-Identifier on every source file in `lib/` and `cli/`
|
||||
- [x] CREDITS.md attributes Bobrowski specifically for libunuc2-derived
|
||||
files, not as generic "inspiration"
|
||||
- [x] LICENSE-HISTORY summary published as this file
|
||||
(`docs/license-audit.md`)
|
||||
- [x] No silent LGPL-to-GPL upgrade: every Bobrowski-origin file
|
||||
retains LGPL-3.0-only
|
||||
|
||||
## References
|
||||
|
||||
- LGPL-3.0 text: <https://www.gnu.org/licenses/lgpl-3.0.html>
|
||||
- GPL-3.0 text: see `LICENSE` in repository root
|
||||
- Bobrowski upstream: <http://torinak.com/~jb/unuc2/>
|
||||
- Bezemer 2015 release notes: `original/UC2_source/Read Me First.txt`
|
||||
- LGPL-3.0 sec. 3 (allowing one-way upgrade to GPL):
|
||||
<https://www.gnu.org/licenses/lgpl-3.0.html#section3>
|
||||
- LGPL-3.0 sec. 4 (Combined Works): same document, sec. 4
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: LGPL-3.0-only */
|
||||
|
||||
#ifndef LIBUC2_H
|
||||
#define LIBUC2_H
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* BLAKE3 cryptographic hashing for archive integrity.
|
||||
*
|
||||
* BLAKE3 is a fast cryptographic hash based on the Bao tree hashing
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Cross-archive block store for content-addressable deduplication.
|
||||
*
|
||||
* Stores unique CDC chunks indexed by 64-bit content hash. Multiple
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Content-defined chunking (CDC) for UC2 deduplication.
|
||||
*
|
||||
* Uses the Gear rolling hash for fast, content-aware chunk boundary
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Delta compression for file versioning.
|
||||
*
|
||||
* Computes a compact binary delta between a source (old) and target
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Dictionary management for zstd-inspired dictionary compression.
|
||||
*
|
||||
* Formalizes UC2's master blocks as proper dictionaries with content
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* LZ4-compatible ultra-fast compression.
|
||||
*
|
||||
* Minimal LZ4-like compressor optimized for speed over ratio.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Merkle DAG for content-addressable deduplication.
|
||||
*
|
||||
* Builds a Merkle tree from CDC chunks: each file is represented as a
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* OpenTimestamps integration.
|
||||
*
|
||||
* UC2 stores an OpenTimestamps proof in a magic-bracketed sidecar
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Content-aware preprocessing filters for improved compression.
|
||||
*
|
||||
* These transforms are applied BEFORE compression to expose redundancy
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* rANS (range Asymmetric Numeral Systems) entropy coder.
|
||||
*
|
||||
* Drop-in replacement for Huffman coding with ~5-15% better compression
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* SHA-256 (FIPS 180-4) -- pure C implementation.
|
||||
*
|
||||
* Used by the OpenTimestamps integration; calendars accept SHA-256
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Near-duplicate detection via SimHash.
|
||||
*
|
||||
* SimHash produces a fixed-size fingerprint where similar documents
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* UC2 LZ77+Huffman compressor.
|
||||
Produces bitstreams compatible with Bobrowski's decompressor (decompress.c).
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: LGPL-3.0-only */
|
||||
|
||||
/* UltraCompressor II decompression library.
|
||||
Copyright © Jan Bobrowski 2020, 2021
|
||||
torinak.com/~jb/unuc2/
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: LGPL-3.0-only */
|
||||
|
||||
/* list.h by Jan Bobrowski. Inspired by list.h from Linux */
|
||||
|
||||
#ifndef LIST_H
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* BLAKE3 cryptographic hashing — simplified single-threaded implementation.
|
||||
*
|
||||
* Based on the BLAKE3 specification (github.com/BLAKE3-team/BLAKE3).
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Cross-archive block store for content-addressable deduplication.
|
||||
*
|
||||
* Chunks are stored as individual files named by their 64-bit hash
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Content-defined chunking (CDC) for UC2 deduplication.
|
||||
*
|
||||
* Gear hash: each byte updates the hash by shifting left and XORing
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Delta compression for file versioning.
|
||||
*
|
||||
* Uses a hash-based matching approach: hash all 4-byte windows in the
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Dictionary management for zstd-inspired dictionary compression. */
|
||||
|
||||
#include "uc2/uc2_dict.h"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* UC2 format constants and shared types.
|
||||
Used by both the compressor and decompressor. */
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* LZ4-compatible ultra-fast compression.
|
||||
*
|
||||
* Single-probe hash table with 4-byte match minimum. No hash chains —
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Merkle DAG for content-addressable deduplication.
|
||||
*
|
||||
* Each file is split into CDC chunks (Gear hash), each chunk hashed
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* OpenTimestamps proof parser, serializer, walker, and UC2 trailer.
|
||||
*
|
||||
* The walker supports the calendar-path subset of opcodes (APPEND,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Content-aware preprocessing filters. */
|
||||
|
||||
#include "uc2/uc2_preprocess.h"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* rANS (range Asymmetric Numeral Systems) entropy coder.
|
||||
*
|
||||
* Table-based rANS with 32-bit state. The state represents a position
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* SHA-256 (FIPS 180-4). Reference textbook implementation. */
|
||||
|
||||
#include "uc2/uc2_sha256.h"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* Near-duplicate detection via SimHash.
|
||||
*
|
||||
* Algorithm: extract overlapping 4-byte shingles from the input,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
/* UC2 shared tables: Huffman delta coding and default tree lengths. */
|
||||
|
||||
#include "uc2_internal.h"
|
||||
|
||||
Reference in New Issue
Block a user