dev-util/shellcheck
Shell script analysis tool (built from source)
ChangeLog
commit 16a7c3975897769269f7f5b77cc93c47880cd2be
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 26 19:20:35 2026 +0200
test(ci): build Haskell packages against the gentoo-haskell overlay
Packages whose deps live in gentoo-haskell mark their `# QA-TEST:` line with
`overlay=haskell`; the test container then registers that overlay (priority 50,
bind-mounted from the host or fetched as a tarball in CI) so their dependency
chain builds from it, as a Gentoo Haskell system does, instead of ::gentoo.
Enable it for dev-util/shellcheck and document the requirement in the README.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit fce455b4fd9174410fbef62766e6aba1d870a9a5
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 26 19:19:53 2026 +0200
fix(dev-util/shellcheck): link the executable statically
A dynamically linked Haskell binary keeps a reference to every dependency
library's old version, so each Haskell-library bump strands shellcheck on
preserved libs until @preserved-rebuild runs. Pass --disable-executable-dynamic
via CABAL_CONFIGURE_FLAGS so the executable links statically and survives
dependency bumps.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit d9df9d4d49a370675d16bdab3b72d0da606b05af
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sat Jun 20 14:40:33 2026 +0200
feat(shellcheck): versioned 0.11.0 via haskell-cabal from source
Replace the fake-live -9999 ebuild with a versioned 0.11.0 built by the
haskell-cabal eclass (EAPI 8) against the tree's dev-haskell/* deps, dropping
the old manual git-clone + networked cabal build. No CABAL_CHDEPS: the fgl
exclusion is native in the 0.11.0 cabal. Validated by make test (source).
Also gitignore *.log (scratch build logs, never committed).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 1024ff58b9876ca8ce52bf7e1c339593ee606fb4
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sat Jun 20 08:11:24 2026 +0200
chore(ebuilds): declare # QA-TEST: strategy per package
binpkg for claude-desktop, fnm, fsearch, redo-backups (binhost-consistent closures, faster); source for the other 8. Verified locally: make test -> 12/12 pass, 0 fallbacks.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit f5529f68855f8f0fe35f5dbf346093e7ff478bd2
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sun Jun 14 17:27:00 2026 +0200
fix(shellcheck): show built tag in pkg_postinst elog
The elog re-ran `git describe` against the build tree in pkg_postinst, which
yielded an empty string. Persist the resolved tag to $/built-tag during
src_unpack ($ survives across all phases) and read it back in pkg_postinst.
Verified in a pristine container: elog now prints "built from tag: v0.11.0".
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 6d2852a46ed72b82627dd2723a4912002f7cfd0c
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sun Jun 14 16:08:03 2026 +0200
fix(shellcheck): clone via git-r3 so dev-vcs/git is present
The hand-rolled `git clone` in src_unpack assumed git was installed, but a
pristine stage3 has no git unless something pulls dev-vcs/git. Inherit git-r3
(which BDEPENDs on git and clones robustly), drop the manual S override, and
pin to the latest tag like sys-apps/fsearch. Verified: full pristine container
build passes (GHC from source, cabal build, binary installed).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 5d1647d1a796d0f6177c6871504dbce539041cd6
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sat Jun 13 07:13:39 2026 +0200
chore: bump EAPI 8 -> 9 where eclasses allow (partial 1.10)
EAPI 9 (2025-12-14) can only be used by ebuilds whose inherited eclasses
support it — an eclass die()s on an unsupported EAPI. Bump the 5 packages
with no EAPI-8-capped eclass: claude-desktop, shellcheck, ksshaskpass
(no inherit), ssh-profile-config and bt-keys-sync (git-r3, EAPI-9-ready).
Verified safe under EAPI 9: no assert/domo; $ is passed explicitly
(emake DESTDIR=, cp ... "$/") so the "variables no longer exported"
and trailing-slash changes don't bite; bt-keys-sync's dosym target is
relative. pkgcheck shows no new issues vs EAPI 8 (stash compare).
The other 6 packages inherit eclasses still capped at EAPI 8
(cargo/rust, cmake, meson, font, xdg) and are deferred to Phase 5.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 52b3cbfef563d2b90c09034856e7b79a7c2a6ebf
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 20:32:47 2026 +0200
chore(ebuilds): empty KEYWORDS on live ebuilds, drop empty assignments
Clear pkgcheck's VisibleVcsPkg and EmptyGlobalAssignment across the
overlay:
- set KEYWORDS="" on the 9 live (-9999) ebuilds; the versioned
nerd-fonts-3.2.1 keeps its keywords
- drop the redundant empty IUSE="" (pamtester, ssh-profile-config,
fsearch, polo)
- drop the other empty global assignments the same check flags:
SRC_URI="" (claude-desktop, shellcheck), DEPEND=""/RDEPEND="$"
(ssh-profile-config, which has no deps) and RDEPEND="" (shellcheck)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit ee218929232b48afc745953d5ff3908a74ee80d9
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 16:34:02 2026 +0200
feat(metadata): add metadata.xml for all packages, fix invalid/redundant ones
Add metadata.xml (maintainer + GitHub remote-id) for the eight packages
that lacked one: pamtester, tvision, fnm, shellcheck, ksshaskpass,
nerd-fonts, fsearch, polo. nerd-fonts also gets <use> descriptions for
all its local font flags (resolves UnknownUseFlags); ksshaskpass, a dummy
package, gets an explanatory longdescription and no upstream remote-id.
Fix the existing ones:
- claude-desktop: replace the placeholder maintainer with the real one,
drop the invalid type= on the upstream maintainer, give <slot> direct
text content, and add the github remote-id (resolves PkgInvalidXml).
- ssh-profile-config: drop the longdescription that merely repeated
DESCRIPTION (resolves RedundantLongDescription) and re-indent to tabs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit e761b3c76d648ffc98c99e3e244d6e3f2478b5e0
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 16:05:02 2026 +0200
docs(ebuilds): credit upstream package authors
Add a short acknowledgement comment above DESCRIPTION crediting the
author of the packaged software (not the ebuild author): pamtester,
claude-desktop, tvision, fnm, shellcheck, nerd-fonts, bt-keys-sync,
fsearch, polo. Skipped where the upstream is OrbintSoft
(ssh-profile-config) and for the ksshaskpass stub.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit a1906ef4e5cfdcb9378a0251a732db701acfd0f0
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 15:52:58 2026 +0200
chore(headers): standardize ebuild copyright/license headers
- original work -> "Copyright <year> Stefano Balzarotti" + GPL-3
(ssh-profile-config, fnm, shellcheck, ksshaskpass, polo)
- reworked from Gentoo(-Authors) ebuilds -> dual "Gentoo Authors" +
"Stefano Balzarotti" + GPL-2 (pamtester, tvision, bt-keys-sync,
fsearch, claude-desktop, nerd-fonts), preserving upstream attribution
- also covers the bt-keys-sync OpenRC initd/confd
- drop stray "/var/db/repos/..." path comments on fnm/shellcheck/polo
Marks PLAN.md item 1.1 done.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit b5c784dcb833bf097353265dae20dbf2ba3af736
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 10:43:44 2026 +0200
fix
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 26 19:20:35 2026 +0200
test(ci): build Haskell packages against the gentoo-haskell overlay
Packages whose deps live in gentoo-haskell mark their `# QA-TEST:` line with
`overlay=haskell`; the test container then registers that overlay (priority 50,
bind-mounted from the host or fetched as a tarball in CI) so their dependency
chain builds from it, as a Gentoo Haskell system does, instead of ::gentoo.
Enable it for dev-util/shellcheck and document the requirement in the README.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit fce455b4fd9174410fbef62766e6aba1d870a9a5
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 26 19:19:53 2026 +0200
fix(dev-util/shellcheck): link the executable statically
A dynamically linked Haskell binary keeps a reference to every dependency
library's old version, so each Haskell-library bump strands shellcheck on
preserved libs until @preserved-rebuild runs. Pass --disable-executable-dynamic
via CABAL_CONFIGURE_FLAGS so the executable links statically and survives
dependency bumps.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit d9df9d4d49a370675d16bdab3b72d0da606b05af
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sat Jun 20 14:40:33 2026 +0200
feat(shellcheck): versioned 0.11.0 via haskell-cabal from source
Replace the fake-live -9999 ebuild with a versioned 0.11.0 built by the
haskell-cabal eclass (EAPI 8) against the tree's dev-haskell/* deps, dropping
the old manual git-clone + networked cabal build. No CABAL_CHDEPS: the fgl
exclusion is native in the 0.11.0 cabal. Validated by make test (source).
Also gitignore *.log (scratch build logs, never committed).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 1024ff58b9876ca8ce52bf7e1c339593ee606fb4
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sat Jun 20 08:11:24 2026 +0200
chore(ebuilds): declare # QA-TEST: strategy per package
binpkg for claude-desktop, fnm, fsearch, redo-backups (binhost-consistent closures, faster); source for the other 8. Verified locally: make test -> 12/12 pass, 0 fallbacks.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit f5529f68855f8f0fe35f5dbf346093e7ff478bd2
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sun Jun 14 17:27:00 2026 +0200
fix(shellcheck): show built tag in pkg_postinst elog
The elog re-ran `git describe` against the build tree in pkg_postinst, which
yielded an empty string. Persist the resolved tag to $/built-tag during
src_unpack ($ survives across all phases) and read it back in pkg_postinst.
Verified in a pristine container: elog now prints "built from tag: v0.11.0".
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 6d2852a46ed72b82627dd2723a4912002f7cfd0c
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sun Jun 14 16:08:03 2026 +0200
fix(shellcheck): clone via git-r3 so dev-vcs/git is present
The hand-rolled `git clone` in src_unpack assumed git was installed, but a
pristine stage3 has no git unless something pulls dev-vcs/git. Inherit git-r3
(which BDEPENDs on git and clones robustly), drop the manual S override, and
pin to the latest tag like sys-apps/fsearch. Verified: full pristine container
build passes (GHC from source, cabal build, binary installed).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 5d1647d1a796d0f6177c6871504dbce539041cd6
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Sat Jun 13 07:13:39 2026 +0200
chore: bump EAPI 8 -> 9 where eclasses allow (partial 1.10)
EAPI 9 (2025-12-14) can only be used by ebuilds whose inherited eclasses
support it — an eclass die()s on an unsupported EAPI. Bump the 5 packages
with no EAPI-8-capped eclass: claude-desktop, shellcheck, ksshaskpass
(no inherit), ssh-profile-config and bt-keys-sync (git-r3, EAPI-9-ready).
Verified safe under EAPI 9: no assert/domo; $ is passed explicitly
(emake DESTDIR=, cp ... "$/") so the "variables no longer exported"
and trailing-slash changes don't bite; bt-keys-sync's dosym target is
relative. pkgcheck shows no new issues vs EAPI 8 (stash compare).
The other 6 packages inherit eclasses still capped at EAPI 8
(cargo/rust, cmake, meson, font, xdg) and are deferred to Phase 5.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit 52b3cbfef563d2b90c09034856e7b79a7c2a6ebf
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 20:32:47 2026 +0200
chore(ebuilds): empty KEYWORDS on live ebuilds, drop empty assignments
Clear pkgcheck's VisibleVcsPkg and EmptyGlobalAssignment across the
overlay:
- set KEYWORDS="" on the 9 live (-9999) ebuilds; the versioned
nerd-fonts-3.2.1 keeps its keywords
- drop the redundant empty IUSE="" (pamtester, ssh-profile-config,
fsearch, polo)
- drop the other empty global assignments the same check flags:
SRC_URI="" (claude-desktop, shellcheck), DEPEND=""/RDEPEND="$"
(ssh-profile-config, which has no deps) and RDEPEND="" (shellcheck)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit ee218929232b48afc745953d5ff3908a74ee80d9
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 16:34:02 2026 +0200
feat(metadata): add metadata.xml for all packages, fix invalid/redundant ones
Add metadata.xml (maintainer + GitHub remote-id) for the eight packages
that lacked one: pamtester, tvision, fnm, shellcheck, ksshaskpass,
nerd-fonts, fsearch, polo. nerd-fonts also gets <use> descriptions for
all its local font flags (resolves UnknownUseFlags); ksshaskpass, a dummy
package, gets an explanatory longdescription and no upstream remote-id.
Fix the existing ones:
- claude-desktop: replace the placeholder maintainer with the real one,
drop the invalid type= on the upstream maintainer, give <slot> direct
text content, and add the github remote-id (resolves PkgInvalidXml).
- ssh-profile-config: drop the longdescription that merely repeated
DESCRIPTION (resolves RedundantLongDescription) and re-indent to tabs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit e761b3c76d648ffc98c99e3e244d6e3f2478b5e0
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 16:05:02 2026 +0200
docs(ebuilds): credit upstream package authors
Add a short acknowledgement comment above DESCRIPTION crediting the
author of the packaged software (not the ebuild author): pamtester,
claude-desktop, tvision, fnm, shellcheck, nerd-fonts, bt-keys-sync,
fsearch, polo. Skipped where the upstream is OrbintSoft
(ssh-profile-config) and for the ksshaskpass stub.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit a1906ef4e5cfdcb9378a0251a732db701acfd0f0
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 15:52:58 2026 +0200
chore(headers): standardize ebuild copyright/license headers
- original work -> "Copyright <year> Stefano Balzarotti" + GPL-3
(ssh-profile-config, fnm, shellcheck, ksshaskpass, polo)
- reworked from Gentoo(-Authors) ebuilds -> dual "Gentoo Authors" +
"Stefano Balzarotti" + GPL-2 (pamtester, tvision, bt-keys-sync,
fsearch, claude-desktop, nerd-fonts), preserving upstream attribution
- also covers the bt-keys-sync OpenRC initd/confd
- drop stray "/var/db/repos/..." path comments on fnm/shellcheck/polo
Marks PLAN.md item 1.1 done.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
commit b5c784dcb833bf097353265dae20dbf2ba3af736
Author: Stefano Balzarotti <stefano.balzarotti@orbintsoft.net>
Date: Fri Jun 12 10:43:44 2026 +0200
fix


View
Download
Browse