From e660e95d49ec47a07ae32a40c18726b9d58f03ef Mon Sep 17 00:00:00 2001 From: Shekhar Vaidya Date: Mon, 13 Jul 2026 13:16:12 +0530 Subject: [PATCH 1/3] feat: add AUR msdl-bin package; document Homebrew tap Tracks the AUR PKGBUILD in-repo for version history, mirroring how winget/manifests/ already works. Also corrects CONTRIBUTING.md's claim that winget auto-updates via CI -- WINGET_TOKEN isn't set, so that step always no-ops; package manager updates are all submitted manually by the maintainer after each release. Homebrew tap published separately at starkSV/homebrew-msdl. Co-Authored-By: Claude Sonnet 4.6 --- CONTRIBUTING.md | 4 +++- aur/msdl-bin/PKGBUILD | 20 ++++++++++++++++++++ aur/msdl-bin/README.md | 17 +++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 aur/msdl-bin/PKGBUILD create mode 100644 aur/msdl-bin/README.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f28aaf9..10d5504 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,7 +46,9 @@ go test ./... ## CLI releases -CLI releases are cut by the maintainer via git tag (`cli/vX.Y.Z`), which triggers the GitHub Actions build for all platforms and the winget package update. Contributors don't need to worry about tagging, versioning, or winget — just get the fix or feature merged to `main`. +CLI releases are cut by the maintainer via git tag (`cli/vX.Y.Z`), which triggers the GitHub Actions build for all platforms. Contributors don't need to worry about tagging or versioning — just get the fix or feature merged to `main`. + +Package manager updates (winget, the [Homebrew tap](https://github.com/starkSV/homebrew-msdl), and the [`msdl-bin` AUR package](./aur/msdl-bin)) are submitted manually by the maintainer after each release, not automated in CI. ## Code style diff --git a/aur/msdl-bin/PKGBUILD b/aur/msdl-bin/PKGBUILD new file mode 100644 index 0000000..9839dc3 --- /dev/null +++ b/aur/msdl-bin/PKGBUILD @@ -0,0 +1,20 @@ +# Maintainer: starkSV +pkgname=msdl-bin +pkgver=0.3.5 +pkgrel=1 +pkgdesc="Download Windows ISO files directly from Microsoft's servers" +arch=('x86_64' 'aarch64') +url="https://msdl.tech-latest.com" +license=('MIT') +provides=('msdl') +conflicts=('msdl') + +source_x86_64=("$pkgname-$pkgver-x86_64::https://github.com/starkSV/windows-iso-downloader/releases/download/cli%2Fv${pkgver}/msdl-linux-amd64") +sha256sums_x86_64=('dfb0648acd6caa79d597839bb9803c979446a2d77f90447273ee5003d8857c9d') + +source_aarch64=("$pkgname-$pkgver-aarch64::https://github.com/starkSV/windows-iso-downloader/releases/download/cli%2Fv${pkgver}/msdl-linux-arm64") +sha256sums_aarch64=('933beb694b3e59fc84cdccfb5cb3dfe48db3274046df88390cf8ee32070f4088') + +package() { + install -Dm755 "$srcdir/$pkgname-$pkgver-$CARCH" "$pkgdir/usr/bin/msdl" +} diff --git a/aur/msdl-bin/README.md b/aur/msdl-bin/README.md new file mode 100644 index 0000000..f362553 --- /dev/null +++ b/aur/msdl-bin/README.md @@ -0,0 +1,17 @@ +# msdl-bin (AUR) + +`PKGBUILD` for the [msdl-bin](https://aur.archlinux.org/packages/msdl-bin) AUR package, tracked here so version bumps have the same history/review as the winget manifests. + +This file is not auto-published — after editing it here, push it to the AUR repo manually from an Arch (or Arch container) environment: + +```bash +git clone ssh://aur@aur.archlinux.org/msdl-bin.git +cp PKGBUILD msdl-bin/ +cd msdl-bin +makepkg --printsrcinfo > .SRCINFO +git add PKGBUILD .SRCINFO +git commit -m "Update to " +git push +``` + +Requires an AUR account with an SSH key registered at aur.archlinux.org. -- 2.45.3 From c14c18e955e1d7499796bcc8458b9ea5fe7aa8b9 Mon Sep 17 00:00:00 2001 From: Shekhar Vaidya Date: Mon, 13 Jul 2026 13:26:26 +0530 Subject: [PATCH 2/3] feat: generate .SRCINFO via Docker; pin AUR files to LF line endings .SRCINFO generated with the real makepkg tool inside an ephemeral archlinux container -- no VM or native Arch install needed, and no risk of hand-written formatting drift from the makepkg-canonical output. Also adds .gitattributes forcing LF for PKGBUILD/.SRCINFO regardless of platform checkout settings -- both are parsed by shell/makepkg tooling that breaks on CRLF. Co-Authored-By: Claude Sonnet 4.6 --- .gitattributes | 2 ++ aur/msdl-bin/.SRCINFO | 16 ++++++++++++++++ aur/msdl-bin/README.md | 19 +++++++++++++------ 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 .gitattributes create mode 100644 aur/msdl-bin/.SRCINFO diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ff02d63 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +aur/msdl-bin/PKGBUILD text eol=lf +aur/msdl-bin/.SRCINFO text eol=lf diff --git a/aur/msdl-bin/.SRCINFO b/aur/msdl-bin/.SRCINFO new file mode 100644 index 0000000..32f6de2 --- /dev/null +++ b/aur/msdl-bin/.SRCINFO @@ -0,0 +1,16 @@ +pkgbase = msdl-bin + pkgdesc = Download Windows ISO files directly from Microsoft's servers + pkgver = 0.3.5 + pkgrel = 1 + url = https://msdl.tech-latest.com + arch = x86_64 + arch = aarch64 + license = MIT + provides = msdl + conflicts = msdl + source_x86_64 = msdl-bin-0.3.5-x86_64::https://github.com/starkSV/windows-iso-downloader/releases/download/cli%2Fv0.3.5/msdl-linux-amd64 + sha256sums_x86_64 = dfb0648acd6caa79d597839bb9803c979446a2d77f90447273ee5003d8857c9d + source_aarch64 = msdl-bin-0.3.5-aarch64::https://github.com/starkSV/windows-iso-downloader/releases/download/cli%2Fv0.3.5/msdl-linux-arm64 + sha256sums_aarch64 = 933beb694b3e59fc84cdccfb5cb3dfe48db3274046df88390cf8ee32070f4088 + +pkgname = msdl-bin diff --git a/aur/msdl-bin/README.md b/aur/msdl-bin/README.md index f362553..a1aaad4 100644 --- a/aur/msdl-bin/README.md +++ b/aur/msdl-bin/README.md @@ -1,17 +1,24 @@ # msdl-bin (AUR) -`PKGBUILD` for the [msdl-bin](https://aur.archlinux.org/packages/msdl-bin) AUR package, tracked here so version bumps have the same history/review as the winget manifests. +`PKGBUILD` and `.SRCINFO` for the [msdl-bin](https://aur.archlinux.org/packages/msdl-bin) AUR package, tracked here so version bumps have the same history/review as the winget manifests. -This file is not auto-published — after editing it here, push it to the AUR repo manually from an Arch (or Arch container) environment: +`.SRCINFO` is generated with the real `makepkg` tool (via an ephemeral `archlinux` Docker container — no VM or native Arch install needed) whenever `PKGBUILD` changes: + +```bash +docker run --rm -v "$(pwd)":/pkg -w /pkg archlinux:latest bash -c " + useradd -m builder && chown -R builder:builder /pkg && + pacman -Sy --noconfirm --needed base-devel && + su builder -c 'makepkg --printsrcinfo' > .SRCINFO +" +``` + +Publishing (requires an AUR account with an SSH key registered at aur.archlinux.org — this step can't be automated on someone else's behalf): ```bash git clone ssh://aur@aur.archlinux.org/msdl-bin.git -cp PKGBUILD msdl-bin/ +cp PKGBUILD .SRCINFO msdl-bin/ cd msdl-bin -makepkg --printsrcinfo > .SRCINFO git add PKGBUILD .SRCINFO git commit -m "Update to " git push ``` - -Requires an AUR account with an SSH key registered at aur.archlinux.org. -- 2.45.3 From eddf7802bb265ca58935ab24a83ed24191c46f82 Mon Sep 17 00:00:00 2001 From: Shekhar Vaidya Date: Mon, 13 Jul 2026 13:39:30 +0530 Subject: [PATCH 3/3] docs: note AUR publishing is blocked; add Homebrew install everywhere Arch Linux disabled new AUR account registrations on 2026-06-15 after a malware campaign compromised 1,500+ AUR packages. There's no announced reopening date, so aur/msdl-bin/README.md now says so clearly instead of implying publishing is just a pending step. Adds the Homebrew tap install command (brew tap starkSV/msdl && brew install msdl) to every place winget is already documented: README.md, the release workflow's notes, the web CLI page, and the per-product CliHandoff card. Also adds the missing linux-arm64 row to the manual download tables. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/cli-release.yml | 8 +++++++- README.md | 18 +++++++++++++++--- aur/msdl-bin/README.md | 8 ++++++++ frontend/src/components/CliHandoff.tsx | 19 +++++++++++++++++++ frontend/src/pages/CliPage.tsx | 12 +++++++++++- 5 files changed, 60 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cli-release.yml b/.github/workflows/cli-release.yml index 0b14dc3..2562eb1 100644 --- a/.github/workflows/cli-release.yml +++ b/.github/workflows/cli-release.yml @@ -67,7 +67,13 @@ jobs: **Windows (direct download):** Download `msdl-windows-amd64.exe` below, rename to `msdl.exe`, place in a folder on your PATH. - **Linux/macOS:** + **macOS/Linux (Homebrew):** + ```bash + brew tap starkSV/msdl + brew install msdl + ``` + + **Linux/macOS (direct download):** ```bash # Linux x86_64 curl -L https://github.com/starkSV/windows-iso-downloader/releases/download/${{ github.ref_name }}/msdl-linux-amd64 -o msdl diff --git a/README.md b/README.md index 43dc901..ebc438b 100644 --- a/README.md +++ b/README.md @@ -58,16 +58,28 @@ msdl --list ### Install -Download the latest binary from [GitHub Releases](https://github.com/starkSV/windows-iso-downloader/releases/latest) and rename it: +**Windows (winget):** +``` +winget install starkSV.msdl +``` + +**macOS / Linux (Homebrew):** +```bash +brew tap starkSV/msdl +brew install msdl +``` + +**Direct download:** Grab the latest binary from [GitHub Releases](https://github.com/starkSV/windows-iso-downloader/releases/latest) and rename it: | Platform | File | Rename to | |---|---|---| | Windows | `msdl-windows-amd64.exe` | `msdl.exe` | | macOS (Apple Silicon) | `msdl-darwin-arm64` | `msdl` | | macOS (Intel) | `msdl-darwin-amd64` | `msdl` | -| Linux | `msdl-linux-amd64` | `msdl` | +| Linux (x86_64) | `msdl-linux-amd64` | `msdl` | +| Linux (ARM64, incl. Termux on Android) | `msdl-linux-arm64` | `msdl` | -winget support is in progress: `winget install starkSV.msdl` (pending package review). +An AUR package (`msdl-bin`) is prepared but not yet published — Arch Linux disabled new AUR registrations after a [malware incident](https://itsfoss.com/news/arch-linux-aur-malware-flood/); see [`aur/msdl-bin`](./aur/msdl-bin) for status. ### Crowdsourced cache diff --git a/aur/msdl-bin/README.md b/aur/msdl-bin/README.md index a1aaad4..b4d5237 100644 --- a/aur/msdl-bin/README.md +++ b/aur/msdl-bin/README.md @@ -1,5 +1,13 @@ # msdl-bin (AUR) +> **⚠️ Publishing blocked as of 2026-07-13:** Arch Linux disabled new AUR account +> registrations on 2026-06-15 after a malware campaign compromised 1,500+ AUR +> packages across several waves. There's no announced reopening date. This +> package is ready to publish (`PKGBUILD` + `.SRCINFO` below) the moment +> registration reopens — check the [aur-general mailing list](https://lists.archlinux.org/mailman3/lists/aur-general.lists.archlinux.org/) +> or [aur.archlinux.org](https://aur.archlinux.org/register/) periodically. +> Until then, macOS/Linux users should use the [Homebrew tap](https://github.com/starkSV/homebrew-msdl) instead. + `PKGBUILD` and `.SRCINFO` for the [msdl-bin](https://aur.archlinux.org/packages/msdl-bin) AUR package, tracked here so version bumps have the same history/review as the winget manifests. `.SRCINFO` is generated with the real `makepkg` tool (via an ephemeral `archlinux` Docker container — no VM or native Arch install needed) whenever `PKGBUILD` changes: diff --git a/frontend/src/components/CliHandoff.tsx b/frontend/src/components/CliHandoff.tsx index 7993632..b6adf23 100644 --- a/frontend/src/components/CliHandoff.tsx +++ b/frontend/src/components/CliHandoff.tsx @@ -15,6 +15,7 @@ const RELEASES_URL = 'https://minxl.ink/msdl-github-release' function InstallSteps() { const [copied, setCopied] = useState(false) + const [brewCopied, setBrewCopied] = useState(false) function handleCopy() { navigator.clipboard.writeText('winget install starkSV.msdl') @@ -22,6 +23,12 @@ function InstallSteps() { setTimeout(() => setCopied(false), 2000) } + function handleBrewCopy() { + navigator.clipboard.writeText('brew tap starkSV/msdl && brew install msdl') + setBrewCopied(true) + setTimeout(() => setBrewCopied(false), 2000) + } + return (

1. Install

@@ -37,6 +44,18 @@ function InstallSteps() {
+
+
+ macOS / Linux · Homebrew + recommended +
+
+ brew tap starkSV/msdl && brew install msdl + +
+
+ {/* Homebrew — macOS/Linux primary */} +
+
+ macOS / Linux · Homebrew + recommended +
+ +
+ {/* Manual / other platforms */}
@@ -128,7 +137,8 @@ export default function CliPage() { { os: 'Windows (manual)', file: 'msdl-windows-amd64.exe', rename: 'msdl.exe' }, { os: 'macOS (Apple Silicon)', file: 'msdl-darwin-arm64', rename: 'msdl' }, { os: 'macOS (Intel)', file: 'msdl-darwin-amd64', rename: 'msdl' }, - { os: 'Linux', file: 'msdl-linux-amd64', rename: 'msdl' }, + { os: 'Linux (x86_64)', file: 'msdl-linux-amd64', rename: 'msdl' }, + { os: 'Linux (ARM64 / Termux)', file: 'msdl-linux-arm64', rename: 'msdl' }, ].map(p => (

{p.os}

-- 2.45.3