REDA APPS AUDIO TOOLS v1.0.0 - CORRESPONDING SOURCE AND BUILD
=================================================================

Runtime provenance
------------------
The shipped codec is the official npm @ffmpeg/core 0.12.10 single-thread UMD
release: https://registry.npmjs.org/@ffmpeg/core/-/core-0.12.10.tgz
The NPM SHA-512 integrity value and original JavaScript/WASM SHA-256 values are
in SOURCE_MANIFEST.json. The JavaScript is unmodified. Concatenate part1.bin and
part2.bin in that order to recover the unmodified upstream WASM. The worker and
application adapters are provided as ordinary JavaScript in this deployment.

The executed binary reports FFmpeg 5.1.4, Emscripten 3.1.40 (commit
5c27e79dd0a9c4e27ef2326841698cdd4f6b5784), GPL v2 or later, and the linked
libraries/configuration preserved in source-rebuild-tools-v1.0.0.tar.gz.

Sources supplied alongside the runtime
-------------------------------------
Download every archive linked by SOURCE_INDEX.html. SOURCE_MANIFEST.json lists
the source archives, exact official upstream/fork commit, original recipe ref,
download URL and SHA-256 checksum. The full original sources and upstream
licence files are retained, including tests and optional files not linked.
HarfBuzz and Emscripten are losslessly recompressed as .tar.xz to stay below
the hosting limit. All other source archives are upstream codeload .tar.gz.

The build/binding archive is the official ffmpeg.wasm tag v12.15, whose core
package version is 0.12.10. Its Dockerfile, Makefile, build/, src/bind/ and
src/fftools/ files were verified byte-for-byte against the last upstream commit
before NPM publication (4ace9e8a702cfc72d8958046d4e169ee0c174c10). Only the core
package version field differs (0.12.9 versus 0.12.10). The mutable x264/x265/lame
fork branches resolve to commits unchanged since before that release; all
other dependencies use the recipe's named release refs. See each manifest
entry's resolution and commit date.

SDL2 2.24.2 is the exact SDL port used by Emscripten 3.1.40's -sUSE_SDL=2.
The full Emscripten 3.1.40 tree includes the runtime JavaScript and linked system
library sources. LLVM/Clang, Docker and base-image operating-system packages
are general build-tool prerequisites, rather than modifications to this codec.
The zimg googletest submodule is included at its exact gitlink commit.

Prepare and rebuild (Linux or a Linux Docker environment)
-------------------------------------------------------
1. Install Python 3.12 or newer and Docker with buildx support. Allow enough
   disk space for the source trees and Docker build layers (several GB).
2. Extract source-rebuild-tools-v1.0.0.tar.gz into a working directory. Keep
   SOURCE_MANIFEST.json and all 20 source archives in a separate ARCHIVES folder.
3. Verify the supplied archive checksums without changing files:
      python prepare-source.py --archives /path/to/ARCHIVES
4. Prepare a NEW, nonexistent build-context directory:
      python prepare-source.py --archives /path/to/ARCHIVES --output /path/to/new-context
   The helper performs no downloads and never deletes or overwrites an existing
   build context. The original Dockerfile, Makefile and build scripts are kept.
   Dockerfile.local uses the supplied pinned sources instead of mutable network
   Git clones, including a local SDL port and the exact zimg test submodule.
5. In that new build context run:
      docker buildx build -f Dockerfile.local --build-arg FFMPEG_ST=yes --build-arg "EXTRA_CFLAGS=-O3 -msimd128" -o ./rebuilt-core .
   This is the single-thread production configuration of upstream `make prd`.
   Docker may download emscripten/emsdk:3.1.40 and operating-system/build packages.
   It uses the unchanged upstream compilation scripts and configuration.
   The source snapshot of Emscripten is included for inspecting/rebuilding the
   runtime and system libraries; the base image already supplies that version.
6. Output UMD and ESM core files appear in rebuilt-core/dist/. For this app use
   the UMD ffmpeg-core.js and ffmpeg-core.wasm. If replacing the codec, split the
   new WASM into chunks no larger than 20 MiB and update the application loader's
   part filenames/byte totals and this source provenance together.

This package supplies source and build instructions; a complete Docker rebuild
has not been run on the release workstation. Matching source/configuration is
verified, but no byte-for-byte reproducible-build claim is made. Docker image
digests, OS package versions and build timestamps can affect generated bytes.

Deployment
----------
Keep SOURCE_INDEX.html, this document, SOURCE_MANIFEST.json, notices and every
source archive in the same static deployment directory as the codec. Source
downloads are ordinary same-origin files and do not upload or process user
audio. These files are not needed to edit audio, but accompany the distributed
GPL codec so recipients can obtain its corresponding source and modify it.
