Skip to content

Releases: pacnpal/mds

v1.1.1 — install docs & reliable builds

Choose a tag to compare

@pacnpal pacnpal released this 19 May 23:32

Docs and packaging release — no change to mds's behavior since v1.1.0. This re-cuts the binaries with the current README inside the archives and the rebuilt release workflow.

Added

  • Per-platform installation guide in the README: which artifact to grab, the glibc-vs-musl choice for Linux, and per-OS steps covering the quirks that bite — macOS Gatekeeper quarantine, Windows SmartScreen + the VC++ redistributable, and the glibc version floor.

Changed

  • Release workflow rebuilt on taiki-e/upload-rust-binary-action, trimmed to the major architectures (x86_64 + aarch64) with clean artifact names (mds-linux-x86_64, mds-macos-x86_64, …) instead of raw target triples. macOS x86_64 now builds on the Apple Silicon runner so it no longer gets cancelled. actions/checkout bumped to v5.

Fixed

  • Release builds no longer fail to parse Cargo.lock — the old build action shipped a Cargo too old for the lockfile v4 format, which broke every target.

Binaries

Linux (x86_64 / aarch64, glibc + static musl), macOS (Intel + Apple Silicon), Windows (x86_64 + ARM). Each archive includes a SHA256 checksum, the README, and the changelog. See the README install section for setup notes.

v1.1.0 — mds extract

Choose a tag to compare

@pacnpal pacnpal released this 19 May 23:13

Fork of delta62/mds — first release of this fork.

Added

  • mds extract <FILE.mds> — read files straight out of an .mdf without producing an intermediate ISO.
    • -o/--output <DIR> (defaults to the .mds basename), --list to print the tree without writing, --force to extract into a non-empty directory.
    • Prefers Joliet (Unicode) names, falling back to primary ISO9660; strips ;1 version suffixes.
    • Hand-rolled ISO9660 reader (no new dependencies) hardened against malformed images: bounded directory-extent allocation, recursion depth + ancestor cycle detection, both-endian field validation, sector-boundary checks, multi-extent rejection, even-length Joliet identifier validation.
    • Output-side path-traversal and symlink defences, plus control-char escaping in --list.
  • CookedSectorReader, a 2048-byte logical-sector view over raw 2352/2336/2448 track sectors, shared with the ISO conversion path.

Changed

  • ISO conversion (convert --format iso) carries fork fixes over upstream 1.0.0: cooked user-data extraction from raw-mode tracks, MODE2/2336 (0x920) handling, and track-start seeking.

Verified end-to-end against a 564 MB MODE2/2448 Joliet disc: 1278 files, byte-for-byte identical to the same image converted to ISO and mounted.