Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions packaging/aur/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand All @@ -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
Expand Down
8 changes: 3 additions & 5 deletions packaging/aur/ivi-cli-bin/.SRCINFO
Original file line number Diff line number Diff line change
@@ -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
21 changes: 11 additions & 10 deletions packaging/aur/ivi-cli-bin/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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"
Expand Down
6 changes: 3 additions & 3 deletions packaging/aur/ivi-cli/.SRCINFO
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
18 changes: 11 additions & 7 deletions packaging/aur/ivi-cli/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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
Expand All @@ -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.
Expand All @@ -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
Expand All @@ -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
Expand Down
Loading