From 0d7f63c945c04b17d0e33de0ab65333ba82eeb15 Mon Sep 17 00:00:00 2001 From: ShortArrow Date: Tue, 20 Oct 2026 12:51:10 +0900 Subject: [PATCH] chore(aur): package 0.5.0-beta.1 without icu --- packaging/aur/README.md | 22 ++++++++++++---------- packaging/aur/ivi-cli-bin/.SRCINFO | 8 +++----- packaging/aur/ivi-cli-bin/PKGBUILD | 21 +++++++++++---------- packaging/aur/ivi-cli/.SRCINFO | 6 +++--- packaging/aur/ivi-cli/PKGBUILD | 18 +++++++++++------- 5 files changed, 40 insertions(+), 35 deletions(-) diff --git a/packaging/aur/README.md b/packaging/aur/README.md index 9a05c986..ecd7d344 100644 --- a/packaging/aur/README.md +++ b/packaging/aur/README.md @@ -16,9 +16,10 @@ means the packaging travels with the code it packages. ## Bumping to a new release -1. Edit `ivi-cli-bin/PKGBUILD`: set `pkgver` to the new version and reset - `pkgrel=1`. (`pkgrel` only moves when the packaging changes and the upstream - version does not.) +1. Edit `ivi-cli-bin/PKGBUILD`: set `_pkgver` to the new version as tagged + (`0.5.0-beta.1`) and reset `pkgrel=1`. `pkgver` is derived from it with the + `-` removed, which pacman refuses. (`pkgrel` only moves when the packaging + changes and the upstream version does not.) 2. Replace `sha256sums`. Every release from v0.3.2 publishes a `SHA256SUMS` asset, so the hash can be read from there instead of downloading the zip: @@ -41,19 +42,20 @@ means the packaging travels with the code it packages. namcap /home/build/*.pkg.tar.zst' ``` - Five `namcap` warnings are expected and can be ignored. The unused + Four `namcap` warnings are expected and can be ignored. The unused `libdl` / `librt` / `libpthread` links are glibc compatibility stubs the .NET - host still records. `icu` and `openssl` look unneeded to `namcap` because it - reads the ELF and .NET loads both through `dlopen`; both are in fact - mandatory, and the way to check that claim is to remove the package and run - the CLI rather than to trust either tool: + host still records. + `openssl` looks unneeded to `namcap` because it reads the ELF and .NET loads + it through `dlopen`; it is in fact mandatory, and the way to check that claim + is to remove the package and run the CLI rather than to trust either tool: ```sh - pacman -Rdd icu && ivicli --version # Couldn't find a valid ICU package pacman -Rdd openssl && ivicli visa scan # No usable version of libssl was found ``` - Anything `namcap` reports beyond those five is new and worth reading. + ICU is not a dependency: the CLI runs with invariant globalization, and + `ivicli --version` starts with `icu` removed. Anything `namcap` reports + beyond those four is new and worth reading. 4. Regenerate `.SRCINFO` from the edited PKGBUILD and commit both: ```sh diff --git a/packaging/aur/ivi-cli-bin/.SRCINFO b/packaging/aur/ivi-cli-bin/.SRCINFO index 1fd13a31..1d2b9eed 100644 --- a/packaging/aur/ivi-cli-bin/.SRCINFO +++ b/packaging/aur/ivi-cli-bin/.SRCINFO @@ -1,22 +1,20 @@ pkgbase = ivi-cli-bin pkgdesc = Integrated CLI for managing, diagnosing, and operating VISA/IVI instruments (prebuilt binary) - pkgver = 0.4.0 + pkgver = 0.5.0beta.1 pkgrel = 1 url = https://github.com/ShortArrow/ivi-cli arch = x86_64 license = MIT license = Apache-2.0 - makedepends = icu depends = glibc depends = libgcc depends = libstdc++ - depends = icu depends = openssl provides = ivi-cli conflicts = ivi-cli options = !strip options = !debug - source = ivi-cli-bin-0.4.0.zip::https://github.com/ShortArrow/ivi-cli/releases/download/v0.4.0/ivicli-0.4.0-linux-x64.zip - sha256sums = 577a31146202d1dcaabca991534a7cbffba2b52eb691a272ec0a700a5c4a998f + source = ivi-cli-bin-0.5.0beta.1.zip::https://github.com/ShortArrow/ivi-cli/releases/download/v0.5.0-beta.1/ivicli-0.5.0-beta.1-linux-x64.zip + sha256sums = 9ed6a68cf920a23f10f2b8b2f483f8da86885b38c4bb925f0a82f86ee091cd10 pkgname = ivi-cli-bin diff --git a/packaging/aur/ivi-cli-bin/PKGBUILD b/packaging/aur/ivi-cli-bin/PKGBUILD index d9a2f0b0..45873b55 100644 --- a/packaging/aur/ivi-cli-bin/PKGBUILD +++ b/packaging/aur/ivi-cli-bin/PKGBUILD @@ -8,7 +8,11 @@ # runtime and needs no .NET on the system at all. pkgname=ivi-cli-bin -pkgver=0.4.0 +# The release version as tagged upstream. pacman refuses a `-` in pkgver, and +# without one vercmp still orders 0.5.0beta.1 after 0.4.0 and before +# 0.5.0beta.2 and 0.5.0, so a stable release upgrades a beta without an epoch. +_pkgver=0.5.0-beta.1 +pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Integrated CLI for managing, diagnosing, and operating VISA/IVI instruments (prebuilt binary)" arch=('x86_64') @@ -19,28 +23,25 @@ license=('MIT' 'Apache-2.0') # split packages rather than the gcc-libs metapackage, which would drag in ten # more runtimes nothing here touches. # -# The rest of the list is invisible to ldd because .NET dlopen()s it, so each -# entry was established by removing the package and running the CLI: +# The rest of the list is invisible to ldd because .NET dlopen()s it, so the +# entry was established by removing the package and running the CLI. ICU is +# not on it: the CLI runs with invariant globalization and starts without it. # -# icu — without it the binary aborts at startup with "Couldn't find a -# valid ICU package installed on the system". # openssl — `ivicli visa scan` and `ivicli api start --tls-self-signed` # load libssl.so.3 / libcrypto.so.3; with openssl removed, # `visa scan` dies on "No usable version of libssl was found". # # zlib is loaded too, but by libssl rather than by the CLI, so openssl # carries it and namcap reports an explicit entry as already satisfied. -depends=('glibc' 'libgcc' 'libstdc++' 'icu' 'openssl') -# The binary is executed during build() to emit its own completion scripts. -makedepends=('icu') +depends=('glibc' 'libgcc' 'libstdc++' 'openssl') provides=('ivi-cli') conflicts=('ivi-cli') # The single-file bundle appends its payload after the ELF image; stripping # rewrites the file and destroys it. Without symbols to split out there is no # debug package either, and leaving it on ships an empty /usr/src/debug dir. options=('!strip' '!debug') -source=("$pkgname-$pkgver.zip::$url/releases/download/v$pkgver/ivicli-$pkgver-linux-x64.zip") -sha256sums=('577a31146202d1dcaabca991534a7cbffba2b52eb691a272ec0a700a5c4a998f') +source=("$pkgname-$pkgver.zip::$url/releases/download/v$_pkgver/ivicli-$_pkgver-linux-x64.zip") +sha256sums=('9ed6a68cf920a23f10f2b8b2f483f8da86885b38c4bb925f0a82f86ee091cd10') build() { chmod +x "$srcdir/ivicli" diff --git a/packaging/aur/ivi-cli/.SRCINFO b/packaging/aur/ivi-cli/.SRCINFO index 2ad5e6b8..68fce667 100644 --- a/packaging/aur/ivi-cli/.SRCINFO +++ b/packaging/aur/ivi-cli/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = ivi-cli pkgdesc = Integrated CLI for managing, diagnosing, and operating VISA/IVI instruments - pkgver = 0.4.0 + pkgver = 0.5.0beta.1 pkgrel = 1 url = https://github.com/ShortArrow/ivi-cli arch = x86_64 @@ -10,7 +10,7 @@ pkgbase = ivi-cli depends = aspnet-runtime conflicts = ivi-cli-bin options = !debug - source = ivi-cli-0.4.0.tar.gz::https://github.com/ShortArrow/ivi-cli/archive/refs/tags/v0.4.0.tar.gz - sha256sums = f7bf14544c4aa1d805fbc80cb2021a79a328e2230bbf66c41a4efac6b453c519 + source = ivi-cli-0.5.0beta.1.tar.gz::https://github.com/ShortArrow/ivi-cli/archive/refs/tags/v0.5.0-beta.1.tar.gz + sha256sums = 805e39fc2b66bc71d568c7725866e112845d85cbab155c252085569232581dd3 pkgname = ivi-cli diff --git a/packaging/aur/ivi-cli/PKGBUILD b/packaging/aur/ivi-cli/PKGBUILD index 5ffb66d5..1c093773 100644 --- a/packaging/aur/ivi-cli/PKGBUILD +++ b/packaging/aur/ivi-cli/PKGBUILD @@ -20,7 +20,11 @@ # "No frameworks were found". pkgname=ivi-cli -pkgver=0.4.0 +# The release version as tagged upstream. pacman refuses a `-` in pkgver, and +# without one vercmp still orders 0.5.0beta.1 after 0.4.0 and before +# 0.5.0beta.2 and 0.5.0, so a stable release upgrades a beta without an epoch. +_pkgver=0.5.0-beta.1 +pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="Integrated CLI for managing, diagnosing, and operating VISA/IVI instruments" arch=('x86_64') @@ -33,11 +37,11 @@ conflicts=('ivi-cli-bin') # there are no sources to split out, so a debug package would carry an # empty /usr/src/debug and a build-id symlink pointing at nothing. options=('!debug') -source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz") -sha256sums=('f7bf14544c4aa1d805fbc80cb2021a79a328e2230bbf66c41a4efac6b453c519') +source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$_pkgver.tar.gz") +sha256sums=('805e39fc2b66bc71d568c7725866e112845d85cbab155c252085569232581dd3') prepare() { - cd "$srcdir/$pkgname-$pkgver" + cd "$srcdir/$pkgname-$_pkgver" # global.json pins the SDK to 10.0.204 with rollForward=latestFeature, # which cannot roll down to the 10.0.1xx band Arch ships — the build @@ -48,7 +52,7 @@ prepare() { } build() { - cd "$srcdir/$pkgname-$pkgver" + cd "$srcdir/$pkgname-$_pkgver" # Keep the SDK's writes inside the build directory: NuGet and the CLI # otherwise populate $HOME, which makepkg does not own. @@ -71,7 +75,7 @@ build() { --self-contained false \ -p:RestoreLockedMode=false \ -p:AllowMissingPrunePackageData=true \ - -p:Version="$pkgver" \ + -p:Version="$_pkgver" \ --output "$srcdir/publish" # The binary emits its own completions. bash and zsh are what it supports @@ -92,7 +96,7 @@ build() { } package() { - cd "$srcdir/$pkgname-$pkgver" + cd "$srcdir/$pkgname-$_pkgver" # A framework-dependent publish is an apphost next to its managed # assemblies, which have to stay together; /usr/lib/$pkgname holds the set