libarchive-static
Build times (auto-updated)
- i486: 57m5s (2026-11-11 19:25 UTC, MAKEFLAGS=-j6)
- i686: 39m14s (2026-11-11 20:04 UTC, MAKEFLAGS=-j6)
- pentium4: 1h58m (2026-11-11 22:02 UTC, MAKEFLAGS=-j6)
- x86_64: 21m57s (2026-11-11 22:24 UTC, MAKEFLAGS=-j6)
- armv6h: 4h1m (2026-11-12 02:26 UTC, remote, serial)
- armv7h: 48m17s (2026-11-12 03:16 UTC, remote, MAKEFLAGS=-j4)
- aarch64: 15m17s (2026-11-12 03:16 UTC, remote, MAKEFLAGS=-j4)
Build times (auto-updated)
- i486: 23m14s (2026-10-02 00:15 UTC, MAKEFLAGS=-j6)
- i686: 8m28s (2026-10-02 04:04 UTC, MAKEFLAGS=-j6)
- pentium4: 8m28s (2026-10-02 04:12 UTC, MAKEFLAGS=-j6)
- x86_64: 7m24s (2026-10-02 04:20 UTC, MAKEFLAGS=-j6)
- armv6h: 3h38m (2026-10-02 03:54 UTC, remote, serial)
- armv7h: 1h28m (2026-10-02 03:54 UTC, remote, MAKEFLAGS=-j1)
- aarch64: 25m49s (2026-10-02 03:54 UTC, remote, MAKEFLAGS=-j1)
2026-11-11/12: openssl bump 3.6.5 -> 4.1.0 (new major series), pkgrel 2 -> 3
User-requested (“enqueue libarchive-static for openssl update”),
alongside the identical bump in [[pacman-static]]. _sslver=3.6.5 was
already the newest release in OpenSSL’s 3.x line – no newer 3.x patch
exists. The only thing actually newer upstream is the new 4.x major
series (4.1.0 full release, just out). Checked with the user before
touching the PKGBUILD since a major-version jump is more than a
routine bump:
- The bundled
openssl-3.0.7-no-atomic.patch(adds alinux-not-latomicConfigure target, repointslinux-armv4at it instead oflinux-latomic, to avoid a-latomicdependency on 32-bit ARM in a static build) still applies cleanly against the real 4.1.0 tarball (patch -Np1 --dry-run, confirmed, only line-number offsets, same content) – verified by actually downloading and dry-run-patching 4.1.0, not assumed. - Every
Configureflag this PKGBUILD passes (-static,no-ssl3-method,ec_nistp_64_gcc_128,no-afalgeng,no-sse2,386 no-threads, target nameslinux-x86_64/linux-elf/linux-armv4/linux-aarch64) still exists in 4.1.0’sConfigurescript – confirmed by grepping the real source, not assumed from changelog-reading. OpenSSL’s 3->4 major bump is apparently just their own release-numbering policy change, not a build-system rewrite, at least as far as this PKGBUILD’s flags go. - 4.1.0’s release signature is made with a subkey of the primary key
already in
validpgpkeys(B146647E45A7B33947AB226B2A2C87D161692D40, added 2026-05 per its own comment) – same pattern as [[thunderbird-esr-bin]]’s Mozilla-subkey-rotation case: makepkg validates against the signature’s primary key, so novalidpgpkeysedit was needed, just a freshupdate_pgp_key_dir.shrun to re-export that primary (which pulls in its current subkeys). updpkgsumsrecomputed only the openssl tarball’s hash; every other bundled source (zlib, xz, bzip2, zstd, attr, acl, git-pinned libarchive itself) matched exactly, confirming they’re genuinely unaffected – same reassurance pattern as the 2026-10-25 brotli stale-hash incident in [[pacman-static]]’s own memory.
Built all 7 archs. aarch64 and armv7h both FAILED on the first pass
purely from remote-board lock contention with pacman-static’s own
concurrent run (both packages hit the exact same boards at the same
time, lock fails closed by design – see
[[remote_build_board_lock]]) – retried cleanly once both boards
freed up, no package-level issue at all. All 7 archs published
3.8.11-3 with no connection failures.
User-requested bundled-openssl bump, same as [[pacman-static]]’s same-day
entry (3.6.4 -> 3.6.5, real upstream release). Packaging-only pkgrel bump.
updpkgsums clean, i486/armv6h SKIP-checksum case block (see this file’s own
2026-08-13-ish entry) left untouched and still correct. FEEDBACK.txt thread
ANSWERED (2025-03-16), nothing new.
First repo_release.sh pass: i486 + all 3 ARM boards (armv6h/armv7h/ aarch64)
succeeded, but i686/pentium4/x86_64 all failed at the very first step –
pacman -Syu inside the chroot couldn’t reach archlinux32.andreasbaumann.cc
(Connection timed out) – a transient network blip on the repo host, confirmed
resolved within the hour (plain curl/ping to the host came back clean
immediately after). Retried just those 3 with
REPO_BUILD_ONLY_ARCH="i686 pentium4 x86_64" – all green on retry, confirmed
via repo_arch_status.sh (all 7 at 3.8.9-5).
Two harmless-noise patterns seen in the retry log, neither indicating a real problem:
error: command terminated by signal 11: Segmentation faultduring the chroot’s ownpacman -Syusync/upgrade step (e.g. aroundupgrading gzip/post-transaction hooks) – pre-existing chroot quirk, nothing to do with this package, happens before the actual build even starts.error: failed to commit transaction (conflicting files)/Errors occurred, no packages were upgraded.right after==> Finished making: libarchive-static 3.8.9-5– this is makepkg’s own disposable post-build test-install (pacman -Uinto the chroot for namcap/sanity checking), failing because this package’s static build intentionally installs under hardcoded/build/libarchive-static/src/temp/usr/...paths (the static-recovery design) that collide with leftover files already in the chroot from the build itself. The real package was already built and compressed by this point; signing/publishing afterward succeeded cleanly regardless.Path: arch/maintained/libarchive-static
Source layout:
pkgvertracks upstreamlibarchiveonly (git tagv${pkgver}from https://github.com/libarchive/libarchive.git). Bundled deps (attr, acl, openssl, zlib, xz, bzip2, zstd) each have their own_xxxvervariable and are version-checked separately vianvchecker-deps.toml(archpkg source, i.e. compared against current Arch package versions). Don’t assume a libarchive bump means the deps need bumping too — check nvchecker-old.txt vs nvchecker-new.txt diffs first.Update procedure that worked (2026-07-02, 3.8.7 -> 3.8.8):
- Bump
pkgver, resetpkgrel=1in PKGBUILD. - Run
updpkgsums(needs real network — run withdangerouslyDisableSandboxif sandboxed curl gives spurious 404s). It re-clones the libarchive git tag and only the sha512sums[0] entry (the libarchive source) should change if deps are unchanged. - Regenerate
.SRCINFOwithmakepkg --printsrcinfo > .SRCINFO. - Clean up:
updpkgsums/makepkg leave the downloaded sources (openssl tarball etc, ~80MB) and clonedlibarchive/,xz/dirs behind in the package dir — remove them after a successful build.
- Bump
Builds for arch = i486, i686, pentium4, x86_64, arm, armv6h, armv7h, aarch64. Only i486/i686/pentium4/x86_64 buildable locally via archbuild (extra-i486-build, extra-i686-build, extra-pentium4-build, extra-x86_64-build). All four built cleanly for 3.8.8.
Known-harmless build noise, not real failures:
- namcap emits
BSD is not a valid SPDX license identifier(E) — cosmetic, package still builds and installs fine. - In the 32-bit/pentium4 chroots, the post-build namcap/checkpkg step crashes
with
ImportError: libalpm.so.14: cannot open shared object file(chroot’s namcap python env vs host libalpm mismatch) and thenerror: target not found: libarchive-static— this is chroot tooling breakage, not a package build failure. Verify success by checking thatlibarchive-static-<ver>-<arch>.pkg.tar.xzwas actually produced in the package directory instead of trusting the tail of archbuild’s output.
- namcap emits
2026-07-07, private-repo release pass: this package’s
.xzoutput (confirmed above, not new) tripped a real bug inrepo_release.sh, which hardcoded a.pkg.tar.zst-only glob for the sign/publish steps — the build itself succeeded, but the script reportedERROR: no *.pkg.tar.zst found ... after build. Same issue hitpacman-static(see its own memory file), which explicitly setsPKGEXT=.pkg.tar.xz. Fixed by makingrepo_release.shcollect every valid package extension (.gz/.bz2/.xz/.zst/.lz), matching the setrepo_build.sh’s own cleanup already recognized. Signed and published successfully afterward using the already-built.xzartifacts (no rebuild needed).2026-07-17: ran a full
update_cycle.shpass.nvchecker-old.txtvsnvchecker-new.txtdiff was empty — all bundled deps (attr, acl, openssl, zlib, xz, bzip2, zstd) still match their 2026-07-02 bump. No PKGBUILD change made. (Comparememory/pacman-static.md, whose otherwise-identical dep tracking showed one phantomc-aresbump this same cycle — not applicable here since this package doesn’t track c-ares at all.)2026-07-28: 3.8.8 -> 3.8.9. Same procedure as 2026-07-02; deps diff again empty (nvchecker-deps.toml unchanged).
updpkgsumsonly movedsha512sums[0]. Test-built cleanly for x86_64 viaextra-x86_64-buildbefore realizing the real release should go throughrepo_diff_local_remote.sh+repo_release_changed.shperTOOLING_NOTES.md, not a manual archbuild/sign/publish chain — see that file’s 2026-07-27 entry, same mistake repeated. Cleaned up the manual test artifacts (built .pkg.tar.xz + debug pkg + namcap/build logs) and the updpkgsums-downloaded dep tarballs before handing off to the sanctioned scripts.2026-08-27: bundled-dep check flagged
ssl3.6.3-1 -> 3.6.4-1 (same rotation as [[pacman-static]], see that file’s 2026-08-27 entry for the full OpenSSL new-release-key story — addedB146647E45A7B33947AB226B2A2C87D161692D40tovalidpgpkeyshere too).pkgrel1 -> 2.updpkgsumsre-downloads every source, not just the changed one, anddownload.savannah.gnu.org(hosts bothattrandacl, unrelated to this bump) was intermittently 502’ing/hanging that day — real server-side outage, not a local network issue (confirmed viacurl -v: TLS handshake completes, then the request just hangs). Worked around it package-by-package:attr-2.5.2.tar.xz(tarball only,.sigwasn’t needed — already cached from a prior fetch): pulled a byte-identical copy from the Wayback Machine (https://web.archive.org/web/2id_/<original-url>redirects to a snapshot) — verified sha512 matched the PKGBUILD’s existing checksum before using it.acl-2.3.2.tar.gz+.sig: Wayback Machine had no snapshot of the.sig(CDX API query came back empty — small files are less reliably crawled). Useddownload-mirror.savannah.gnu.orginstead ofdownload.savannah.gnu.org— savannah documents this as a real mirror hostname, not a workaround; it was up and serving normally the whole time. Verified both the tarball’s sha512 against the PKGBUILD andgpg --verifyon the.sigbefore trusting either.- General lesson: for a savannah.gnu.org outage affecting one project’s
release host, try
download-mirror.savannah.gnu.orgfirst (same path structure, just a different frontend) before reaching for archive.org — it’s faster and more likely to have the signature file too. - Since only
_sslveractually changed, manually patched just the openssl tarball’ssha512sums[7]entry by hand (copied the already-known-good hash frompacman-static’s own updated checksum, which had independently downloaded and hashed the sameopenssl-3.6.4.tar.gz) instead of re-running fullupdpkgsumsonce the savannah blocker made that impractical — avoids re-verifying unrelated sources whose checksums aren’t changing anyway. - Manually re-fetched
attr/aclfiles kept as untracked source cache in the package dir afterward (same convention as this file’s existing zlib-caching note below), not cleaned up. - Built and published cleanly on all 4 archs once sources were in place, no other issues.
2026-08-13, republished for all architectures (user request, version unchanged at 3.8.9-1 — only x86_64 had ever actually been published before this). Built+published i486/i686/pentium4/x86_64 (arm/armv6h/armv7h/aarch64 always SKIPPED here, no local archbuild chroots for those).
libarchive-static-debugbuilds and publishes alongside the main package on every arch.- Known flaky source:
https://zlib.net/zlib-1.3.2.tar.gzintermittently times out (GET hangs past 20s; HEAD can succeed while GET doesn’t) even though the host has working internet otherwise — seen failing identically across all 4 local archs in the same run. If a build fails only on that download, don’t chase it as a PKGBUILD/toolchain bug: check/data/INSTALL/libarchive-static/and/scratch/INSTALL/libarchive-static/for a previously-fetchedzlib-1.3.2.tar.gz+.tar.gz.asc(both present there as of 2026-08-13) and copy them intoarch/maintained/libarchive-static/before rebuilding — makepkg finds the file locally and skips the network fetch entirely. Normal source-cache placement in the package’s own dir, not a host-level workaround.
- Known flaky source:
2026-08-27, first real armv6h/armv7h/aarch64 builds (new remote build machines eurobuild4/armv6h, eurobuild5/armv7h, eurobuild14/ aarch64 — see
REMOTE_BUILD_DESIGNnotes /config/remote_build.conf— replacing the always-SKIPPEDfallback these archs got before).pkgrel2 → 3, packaging-only:- armv7h (eurobuild5) and aarch64 (eurobuild14) built cleanly first try, once
remote_build.shwas made to explicitlygpg --importeverykeys/pgp/*.ascbefore building — makepkg’s own automatic import from that same directory during PGP verification didn’t reliably trigger on these boards for a key never seen there before (the openssl 2026-05 release key added below), even though the.ascfile was right there; a plain manualgpg --importof it worked immediately. Not package-specific — fixed once at the remote-build-agent level. - armv6h (eurobuild4) failed source validation instead:
libarchive ... NOT FOUND/xz ... NOT FOUNDfor the twogit+...sources duringValidating source files with sha512sums. Root cause: eurobuild4 runspacman 6.0.1(long EOL — ArchLinux ARM dropped armv6h support entirely a while back, so this board can never be upgraded past it), which can’t compute a checksum for a git source at all and reports it asNOT FOUNDrather than treating a real sha512sums entry as unhashable the way a plainSKIPwould. x86_64/i686/pentium4 (local) and armv7h/ aarch64 (remote, newer pacman) all verify these same hashes fine. - Turned out there was already a dead attempt at exactly this fix in the
PKGBUILD:
if [ "${CARCH}" = "i486" ]; then sha512sums[6]= 'SKIP'; sha512sums[12]='SKIP'; fiwith a# i486, shasumming git archives is broken?comment — but indices 6 and 12 are theacl.tar.gz.sig/zlib.tar.gz.ascsignature files, which are already unconditionallySKIPa few lines up; it never touched index 0 (libarchivegit source) or 13 (xzgit source), the ones that actually needed it. Replaced with acase "${CARCH}" in i486|armv6h)block settingsha512sums[0]andsha512sums[13]toSKIP— verify the exact indices for any future edit to this array viamakepkg --printsrcinfo | grep -n source(source and sha512sums entries share a 1:1 order, easy to miscount by hand across thesource+=(...)brace-expansion blocks, which is exactly how the original dead attempt went wrong). .SRCINFOalways reflects the unconditional hashes (generated on this x86_64 host, doesn’t evaluate thecasefor other archs) — same as how the old i486 conditional already worked before this; not a new quirk.- Full release confirmed working end-to-end:
pkgrel2 → 3 (the sha512sums fix),scripts/repo_release.sh maintained/libarchive-staticbuilt+signed+published all 7 archs cleanly — i486/i686/pentium4/ x86_64 locally, armv6h/armv7h/aarch64 via the new remote-build pipeline (eurobuild4/5/14). armv6h wasREUSEDfrom an earlier isolated retest in this same session rather than rebuilt a third time (see [[remote_arm_build_machines]] /TOOLING_NOTES.md’s remote-build entry) — confirms the pkgver-pkgrel-arch reuse check inrepo_build.shworks as intended. First-ever publish of armv6h/armv7h/aarch64 for this package (previously alwaysSKIPPED, per the 2026-08-13 entry above).
- armv7h (eurobuild5) and aarch64 (eurobuild14) built cleanly first try, once
2026-11-10 (follow-up): ARM archs blocked by pacman-static board lock, retry pending
repo_release.sh maintained/libarchive-static published i486/i686/
pentium4/x86_64 at 3.8.11-2 cleanly (confirmed via
repo_arch_status.sh), but armv6h/armv7h/aarch64 all failed closed:
eurobuild4 is already building something else -- pacman-static
(armv6h) ... (and same for eurobuild5/eurobuild14) – [[pacman-static]]’s
own all-arch rebuild (same session, launched first) was already mid-build
on all 3 ARM boards when this package’s remote dispatch ran. Exactly the
“fails closed, kill+retry the losing job” behavior described in
[[remote_arm_build_machines]] – not a bug, and nothing to clear, since
the lock is legitimately held by a real in-progress build, not stale.
ARM archs remain published at 3.8.11-1 (last known-good, zlib 1.3.2)
until the retry. Follow-up: once pacman-static’s ARM builds finish
and free the boards, rerun
REPO_BUILD_ONLY_ARCH="armv6h armv7h aarch64" repo_release.sh
maintained/libarchive-static to bring those 3 up to 3.8.11-2.
2026-11-10: zlib 1.3.2 -> 1.4 (pkgrel 1 -> 2), dropping the CVE-2026-85091 patch
Triggered by an AUR comment on [pacman-static] – same _zlibver=1.3.2 source affects this package identically,
since both vendor zlib via the same source+=("https://zlib.net/zlib-${_zlibver}.tar.gz"...)
pattern. Confirmed via curl -I: zlib.net/zlib-1.3.2.tar.gz -> 404,
zlib.net/fossils/zlib-1.3.2.tar.gz -> 200 (upstream moved old releases to a
fossils/ subdir when 1.4 shipped 2026-11-04).
First considered the minimal fix (repoint the URL at fossils/, keep
1.3.2 + the local CVE patch) but the user asked to check Arch’s own
zlib package first. Arch’s packaging repo
(gitlab.archlinux.org/archlinux/packaging/packages/zlib) had already
bumped straight to 1:1.4-1 (tag 1-1.4-1, 2026-11-06, 4 days before
this check) and dropped the patch entirely – their own
1:1.3.2-4 → 1:1.4-1 commit confirms zlib 1.4 folds in the
exact same unreleased-git-commit fix for CVE-2026-85091 that our local
zlib-1.3.2-CVE-2026-85091.patch applied (see this file’s 2026-10-14
entry – that patch is now upstream, redundant, and was removed here).
Note: pacman -Q zlib on the build host still shows 1.3.2-4 –
that’s just this machine not having synced yet, not evidence Arch
stayed on 1.3.2; always check the packaging repo’s live PKGBUILD
(or pkgctl repo clone zlib), not the locally installed version, when
deciding whether to follow Arch’s lead on a bundled dep.
User decided to follow Arch’s bump rather than just patch the URL:
_zlibver 1.3.2 -> 1.4, source URL back to plain zlib.net/zlib-${_zlibver}.tar.gz
(1.4 is the current release, not in fossils/), dropped the
zlib-1.3.2-CVE-2026-85091.patch source entry and its prepare()
application step, deleted the now-unused patch file from the package
dir. New sha512sum verified two ways before trusting it: matched the
SHA-256 zlib.net publishes on its own download page, and recomputed
locally from a fresh download.
Array-index gotcha repeats from the 2026-10-14 entry, in reverse:
removing the CVE-patch source entry shifts every later index back by
one – this package’s case "${CARCH}" in i486|armv6h) block’s
sha512sums[14] (old xz-git override, added when the patch entry was
inserted) had to become sha512sums[13]. Verified via
makepkg --printsrcinfo | awk '/^ source = /{print NR": "$0}' against
the case-statement indices rather than counting by hand, same technique
as before.
[[pacman-static]] got the identical fix in the same session (its own
memory/pacman-static.md has the full array-index trace for that
package, which has a longer source array). Breaking-changes section of
zlib 1.4’s release notes is CMake/Windows/minizip-specific; nothing
affects this package’s plain ./configure --static Linux build.
2026-10-14: bundled zlib CVE-2026-85091 fix (pkgrel 5 -> 6), Intel-only this round
User asked for a bundled-zlib security fix. zlib 1.3.1.2 through 1.3.2
(current _zlibver) has a heap buffer overflow in gz_vacate()/gz_write()
reachable via gzprintf()/gzvprintf() after a non-blocking gzwrite()
stall with a stale external buffer pointer (CVE-2026-85091, CVSS 8.3). There
is no zlib 1.3.3 tarball release containing the fix – upstream fixed it
only as a git commit (df84af25dc1942490e1d1c899a07619152a46148, “Fix buffer
overflow bug in non-blocking gzwrite”, 4 lines in gzwrite.c). Confirmed via
pkgctl repo clone zlib (Arch’s own packaging repo) that Arch Linux’s own
zlib package handles this the same way: no pkgver bump, pkgrel 3 -> 4,
fetches that exact commit as a .patch and applies it in prepare() –
verified our downloaded patch’s sha512 matches Arch’s .SRCINFO byte-for-byte
(a8cca9039ff9f09f92fa7fbcf5c6744615e8cd71a033784c0b996ee931af0dfa69f5b6efb67243693d418b9b3e1f7dadc178335bd407b72b0d72bdc4679da9ff),
so this is the authentic upstream fix, not a guess.
Committed the patch locally as zlib-1.3.2-CVE-2026-85091.patch (matching
this file’s existing local-patch convention, e.g.
libarchive-3.8.3-all-static.patch – unlike pacman-static, which already
fetched some patches by URL, this PKGBUILD had none, so kept it consistent
with its own style rather than pacman-static’s). Applied in prepare() right
after the existing openssl patch block, cd "${srcdir}/"zlib-${_zlibver} then
patch -Np1. Dry-run verified clean against a freshly downloaded real
zlib-1.3.2 tarball before touching the PKGBUILD.
Inserting a new source/sha512sums entry mid-array shifts every later
index – this package’s case "${CARCH}" in i486|armv6h) block hard-codes
array indices for the two git sources that can’t be sha512-checksummed on
old pacman (see the 2026-08-27 entry below). The new zlib patch source landed
right after the zlib tarball/sig (old index 12/13), between them and the xz
git source – so sha512sums[13] (old xz-git override) had to become
sha512sums[14]. Verified the final .SRCINFO’s source/sha512sums pairs
line up 1:1 by paste-ing them side by side rather than counting by hand.
Packaging-only (no pkgver bump, per [[feedback_pkgrel_vs_pkgver]]). Built
Intel-only this round (REPO_BUILD_ONLY_ARCH="i486 i686 pentium4 x86_64") –
user explicitly deferred armv6h/armv7h/aarch64 since the ARM cluster
(eurobuild4/5/14) is currently down; do those archs in a follow-up once it’s
back.
2026-10-31 (follow-up): implemented the “wait for Arch” idea as .nvchecker-gate.toml
Added .nvchecker-gate.toml ([gate] source="archpkg" archpkg="libarchive")
right here in this package’s own dir. check_for_updates_maintained.sh now
checks it whenever this package would otherwise show UPD: if upstream
(this package’s .nvchecker.toml, tracking libarchive’s own GitHub tags)
is still ahead of Arch’s own core/libarchive version, the state becomes
WAIT instead – visible but not actioned by a routine update cycle.
Confirmed against the exact live state right after the revert below:
upstream 3.8.11, Arch still 3.8.10 -> correctly shows WAIT, not UPD,
in both STATES.txt and OVERVIEW.md (🟣 icon). Full mechanism detail in
memory/TOOLING_NOTES.md. Once Arch repackages 3.8.11, this should flip
back to UPD on its own and the 3.8.11 rebuild+publish can go ahead for
real.
2026-11-01: gate lifted, 3.8.11 published for real
Re-checked the gate a few hours later (same day): Arch’s own
core/libarchive had moved to 3.8.11-1 (confirmed across 3 retries
after one transient archlinux.org connection-reset false alarm –
retrying the gate check itself is worth doing before trusting a single
result). check_for_updates_maintained.sh correctly flipped back to
UPD. Bumped pkgver 3.8.10 -> 3.8.11 again (same diff shape as the
2026-10-31 attempt that got reverted – only sha512sums[0] changes via
updpkgsums), built+signed+published across all 7 archs via
MAKEFLAGS=-j6 repo_release.sh. Confirmed published (3.8.11-1) on all
7 via repo_arch_status.sh, no connection/mktemp errors in the full log.
Total wall clock ~3h40m this run – armv6h was the long pole again
(3h39m, back to its old serial baseline; the 2026-10-31 run’s
unusually-fast 46m/14m armv7h/aarch64 parallel dispatch doesn’t apply to
armv6h itself, which has always been the slowest board regardless).
Confirmed genuine progress rather than a hang partway through by
checking the board directly (pgrep -af makepkg + recent file mtimes
in the build dir), not just trusting elapsed time – useful technique
for any future multi-hour remote build that looks suspiciously quiet.
2026-10-31: 3.8.10 -> 3.8.11 built+published, then REVERTED same session – hold until Arch’s own libarchive catches up
Confirmed real upstream tag (v3.8.11) via git ls-remote before bumping.
Bundled-dep diff (nvchecker-deps.toml) empty – none of attr/acl/openssl/
zlib/xz/bzip2/zstd changed. Followed the documented procedure exactly:
bumped pkgver, pkgrel stayed at 1, updpkgsums (only sha512sums[0]
changed, as expected), regenerated .SRCINFO. Ran
update_pgp_key_dir.sh first – all keys unchanged.
Built+signed+published via MAKEFLAGS=-j6 repo_release.sh across all 7
archs in one call – i486/i686/pentium4/x86_64 locally (sequential,
~8-9min each) then armv6h/armv7h/aarch64 dispatched to
eurobuild4/5/14 in parallel (not serial), so this round’s remote
wall-clock was bounded by the slowest board rather than the sum of all
three – much faster than the 2026-08-27 entry’s serial figures. All 7
confirmed published (3.8.11-1) via repo_arch_status.sh, no
connection-reset/mktemp errors in the full log. Usual harmless noise only
(BSD is not a valid SPDX license identifier, checkpkg soname-diff
warnings).
User then asked to hold: unlike the 2026-10-15 entry’s “ahead of
Arch’s own packaging, known exception” stance, this time the user
explicitly wants to wait for Arch’s official core/libarchive to
actually ship 3.8.11 before publishing our static build at that version
– revert to 3.8.10 live for now, re-publish 3.8.11 later once Arch
catches up. Follow-up idea from the user, not yet implemented: have
the update-check tooling cross-check a *-static package’s upstream
version against whether Arch’s own corresponding package has picked it
up yet, so this gap is caught before a build, not after a publish –
worth revisiting for this package and [[pacman-static]] alike.
Revert execution hit a real self-inflicted bug worth remembering:
restored 3.8.10 by downloading the archived 3.8.10 files back from
archive/<arch>/ and calling repo_publish.sh on them – but passed
both the .pkg.tar.xz and its .pkg.tar.xz.sig as separate positional
arguments (globbed *3.8.10*.pkg.tar.xz*). repo_publish.sh’s usage is
“one or more PACKAGE files” – it handles each file’s .sig automatically
and does NOT expect the .sig passed as its own argument. Passing it
anyway makes the script process the .sig as if it were itself a
same-named/same-version package to publish: it re-archives the
just-uploaded real package (now “old” relative to this bogus duplicate
target) via _archive_old, uploads the .sig into os/<arch>/ as if it
were data, then fails repo-add on it (bsdtar: Error opening archive:
Unrecognized archive format / is not a package file, skipping /
Package database was not modified due to errors) – net effect across
every arch: the db ends up with no entry at all (“not published” on
repo_arch_status.sh), and os/<arch>/ is left with only a stray
orphaned .sig (the real .pkg.tar.xz got swept into archive/ a
second time instead). Not caught until a repo_arch_status.sh check
right after. Fix: always pass only the real package file(s) to
repo_publish.sh, never the matching .sig alongside it as a separate
arg – re-ran with just the 11 .pkg.tar.xz paths (7 main + 4 debug)
and it published clean. Confirmed fully restored via
repo_arch_status.sh (published (3.8.10-1) on all 7) and a direct
os/<arch>/ listing (correct .xz+.sig pair each, no orphans).
Local PKGBUILD/.SRCINFO reverted back to 3.8.10 via
git checkout -- PKGBUILD .SRCINFO (working-tree revert against the
already-committed 3.8.10 state, no new commit). Downloaded source cache
(openssl/zlib/attr/acl/bzip2/zstd tarballs + libarchive/xz git clones,
plus the temporarily-redownloaded 3.8.10 package files) all cleaned up
from the package dir. The PGP key-dir refresh from this same session
(all keys unchanged, harmless) was left in place.
2026-10-15: pkgver 3.8.10 ahead of Arch’s official core/libarchive – marked as a known exception, not a bug
Full detail on the 3.8.9 -> 3.8.10 bump itself (all 7 archs, pkgrel reset to
- is in UPDATES.md’s entry for this session’s build queue. This entry is
just about the nvchecker exception:
.nvchecker.tomldeliberately tracks libarchive’s own GitHub releases directly (confirmed live, 3.8.10), not Arch’s officialcore/libarchivepackage (still 3.8.9-1 as of 2026-10-15, pernvchecker-deps.toml-stylearchpkgtracking elsewhere in this tree). Added a comment to.nvchecker.tomlright above the[libarchive]section explaining this, so a future session seeing ourpkgverrun ahead of Arch’s own package doesn’t mistake it for a problem – it’s expected to self-resolve once Arch repackages libarchive 3.8.10 on their end. See [[memory/pacman-static.md]] for the same exception on the bundled copy of libarchive pacman-static vendors.