feat(packaging): add an AUR source package linking the system .NET - #186
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
ivi-clialongsideivi-cli-bin, following the AUR convention where the unsuffixed name builds from source and-binunpacks a published binary. The two conflict; a user picks one.ivi-cli-binivi-cliaspnet-runtimeFootprint 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-runtimedrags in ~97 MiB ofdotnet-runtime+aspnet-runtime+dotnet-host+libunwind(measured), landing the two within a couple of MiB of each other.ivi-cliwins 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()deletesglobal.json. It pins 10.0.204 withrollForward=latestFeature, and Arch ships the 10.0.1xx band —latestFeaturedoes 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'sdotnet-sdkships without thePrunePackageDatafolder, and the ASP.NET Core reference otherwise fails withNETSDK1226. 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) andoptions=('!debug')(no sources to split, so the debug package was an empty/usr/src/debugplus a build-id symlink to nothing — namcap flagged it as an error before the fix).Verified in a container
makepkgbuilds from the tag tarball with a matching sha256;.PKGINFOcarriesdepend = aspnet-runtimeand nothing else; the payload is/usr/bin/ivicli→/usr/lib/ivi-cli/ivicliplus licences, third-party notices, and bash/zsh completions. Installed and run:ivicli --version→0.3.1,visa scancompletes,doctorreports[OK] dotnet runtime 10.0.11— the system one this time, not a bundled copy. namcap: four warnings, all expected and documented inpackaging/aur/README.md; no errors.Install guide and the packaging README now describe both packages, including the note that the size intuition is misleading.