Skip to content

feat(packaging): add an AUR source package linking the system .NET - #186

Merged
ShortArrow merged 1 commit into
mainfrom
feat/aur-source-package
Aug 25, 2026
Merged

feat(packaging): add an AUR source package linking the system .NET#186
ShortArrow merged 1 commit into
mainfrom
feat/aur-source-package

Conversation

@ShortArrow

Copy link
Copy Markdown
Owner

Adds ivi-cli alongside ivi-cli-bin, following the AUR convention where the unsuffixed name builds from source and -bin unpacks a published binary. The two conflict; a user picks one.

install size .NET runtime fixes
ivi-cli-bin 102 MiB none needed wait on an ivi-cli release
ivi-cli 6.5 MB aspnet-runtime arrive via pacman

Footprint is not the reason to prefer it, which is worth stating because it is the intuitive reason and it is wrong: starting from a machine with no .NET, aspnet-runtime drags in ~97 MiB of dotnet-runtime + aspnet-runtime + dotnet-host + libunwind (measured), landing the two within a couple of MiB of each other. ivi-cli wins on size only where the runtime is already installed for something else. The reason it earns its place is the last column: a vendored runtime only gets security fixes when we cut a release.

Two accommodations for Arch's SDK

Both were found by the build failing, not by guessing, and both are commented in the PKGBUILD:

  • prepare() deletes global.json. It pins 10.0.204 with rollForward=latestFeature, and Arch ships the 10.0.1xx band — latestFeature does not roll down, so the build stopped with "A compatible .NET SDK was not found". The pin serves upstream CI reproducibility; a distribution package builds on the distribution's SDK, and both emit the same net10.0 output.
  • -p:AllowMissingPrunePackageData=true. Arch's dotnet-sdk ships without the PrunePackageData folder, and the ASP.NET Core reference otherwise fails with NETSDK1226. The SDK names this exact flag in its own error text.

Also -p:RestoreLockedMode=false (the committed lock files track upstream CI's SDK patch band) and options=('!debug') (no sources to split, so the debug package was an empty /usr/src/debug plus a build-id symlink to nothing — namcap flagged it as an error before the fix).

Verified in a container

makepkg builds from the tag tarball with a matching sha256; .PKGINFO carries depend = aspnet-runtime and nothing else; the payload is /usr/bin/ivicli/usr/lib/ivi-cli/ivicli plus licences, third-party notices, and bash/zsh completions. Installed and run: ivicli --version0.3.1, visa scan completes, doctor reports [OK] dotnet runtime 10.0.11 — the system one this time, not a bundled copy. namcap: four warnings, all expected and documented in packaging/aur/README.md; no errors.

Install guide and the packaging README now describe both packages, including the note that the size intuition is misleading.

ivi-cli-bin vendors a runtime, so .NET fixes wait on an ivi-cli release;
this counterpart depends on aspnet-runtime and takes them from pacman.
@ShortArrow
ShortArrow merged commit 66bd897 into main Aug 25, 2026
8 checks passed
@ShortArrow
ShortArrow deleted the feat/aur-source-package branch August 25, 2026 01:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant