Merge pull request #32 from starkSV/feat/aur-package

feat: add AUR msdl-bin package; document Homebrew tap everywhere
This commit is contained in:
Shekhar 2026-07-13 13:40:17 +05:30 • committed by GitHub
commit 151f70d67f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 125 additions and 6 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
aur/msdl-bin/PKGBUILD text eol=lf
aur/msdl-bin/.SRCINFO text eol=lf

View file

@ -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

View file

@ -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

View file

@ -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

16
aur/msdl-bin/.SRCINFO Normal file
View file

@ -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

20
aur/msdl-bin/PKGBUILD Normal file
View file

@ -0,0 +1,20 @@
# Maintainer: starkSV <shekharvaidya2@gmail.com>
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"
}

32
aur/msdl-bin/README.md Normal file
View file

@ -0,0 +1,32 @@
# 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:
```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 .SRCINFO msdl-bin/
cd msdl-bin
git add PKGBUILD .SRCINFO
git commit -m "Update to <version>"
git push
```

View file

@ -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 (
<div className="space-y-2">
<p className="text-[10px] font-mono font-semibold uppercase tracking-widest text-zinc-600">1. Install</p>
@ -37,6 +44,18 @@ function InstallSteps() {
</button>
</div>
</div>
<div className="rounded-lg border border-emerald-500/20 bg-emerald-500/5 p-3 space-y-2">
<div className="flex items-center justify-between">
<span className="text-[10px] font-mono font-semibold tracking-widest uppercase text-emerald-500">macOS / Linux · Homebrew</span>
<span className="text-[10px] px-1.5 py-0.5 rounded border border-emerald-500/20 text-emerald-600 font-mono">recommended</span>
</div>
<div className="flex items-center justify-between gap-2 rounded bg-black/30 px-3 py-2">
<code className="text-[12px] font-mono text-zinc-300">brew tap starkSV/msdl && brew install msdl</code>
<button onClick={handleBrewCopy} className="flex-shrink-0 text-zinc-500 hover:text-white transition-colors">
{brewCopied ? <Check size={12} className="text-green-400" /> : <Copy size={12} />}
</button>
</div>
</div>
<a
href={RELEASES_URL}
target="_blank"

View file

@ -107,6 +107,15 @@ export default function CliPage() {
<CodeBlock code="winget install starkSV.msdl" />
</div>
{/* Homebrew — macOS/Linux primary */}
<div className="rounded-xl border border-emerald-500/20 bg-emerald-500/5 p-4 space-y-2.5">
<div className="flex items-center justify-between">
<span className="text-[11px] font-mono font-semibold tracking-widest uppercase text-emerald-500">macOS / Linux · Homebrew</span>
<span className="text-[10px] px-1.5 py-0.5 rounded border border-emerald-500/20 text-emerald-600 font-mono">recommended</span>
</div>
<CodeBlock code="brew tap starkSV/msdl && brew install msdl" />
</div>
{/* Manual / other platforms */}
<div className="rounded-xl border border-white/7 bg-[#111113] p-4 space-y-3">
<div className="flex items-center justify-between">
@ -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 => (
<div key={p.os} className="px-3 py-2.5 rounded-lg bg-white/3 border border-white/5 space-y-1">
<p className="text-zinc-500">{p.os}</p>