sic: add sicd + sic-agent packages (Arch + Debian) + CI
build and publish packages / distcc-avahi-aarch64 (push) Successful in 6s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 4s
build and publish packages / mesa-panvk-bifrost-video-aarch64 (push) Successful in 4s
build and publish packages / lmcp-any (push) Successful in 5s
build and publish packages / lmcp-debian (push) Successful in 5s
build and publish packages / claude-his-any (push) Successful in 4s
build and publish packages / aish-any (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 4s
build and publish packages / claude-his-debian (push) Successful in 5s
build and publish packages / aish-debian (push) Successful in 5s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been cancelled
build and publish packages / sicd-arch (push) Has been cancelled
build and publish packages / sic-agent-arch (push) Has been cancelled
build and publish packages / sicd-debian (push) Has been cancelled
build and publish packages / sic-agent-debian (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
build and publish packages / mpv-fourier-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-debian (push) Has been cancelled

sicd (daemon, target hosts) and sic-agent (client + agent skills) from
git.reauktion.de/marfrit/sic v0.1.0. Go binaries, cross-built with GOARCH.

- arch/sicd, arch/sic-agent: PKGBUILDs (build from source via go).
- debian/sicd, debian/sic-agent: control/copyright/changelog + build-deb.sh
  (per-arch amd64/arm64).
- .gitea/workflows/build.yml: 4 jobs — Arch aarch64 (repo-signed, -> nc) and
  Debian amd64+arm64 (-> hertz reprepro, bookworm+trixie). continue-on-error,
  chained after the existing jobs.

Validated locally: Arch aarch64 pkgs + Debian arm64/amd64 debs build; the
packaged sicd binary runs (netstring exec).
This commit is contained in:
Markus Fritsche
2026-07-19 12:32:22 +02:00
parent 5716775f91
commit 108fc4fba7
12 changed files with 574 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
#!/bin/bash
# Build sic-agent_<ver>_<arch>.deb using dpkg-deb (Go cross-build of the client
# plus the agent skills).
#
# Usage: ./build-deb.sh [amd64|arm64] (default: host dpkg architecture)
# Needs: go, dpkg-deb, curl.
set -euo pipefail
PKGVER=0.1.0
PKGREL=1
SIC_TARBALL_SHA256=5cd10c3a1ab7361e72e7579af5819f9d322ecd59424541cfb80e5b7514253511
HERE=$(dirname "$(readlink -f "$0")")
DEB_ARCH="${1:-$(dpkg --print-architecture)}"
case "$DEB_ARCH" in
amd64) GOARCH=amd64 ;;
arm64) GOARCH=arm64 ;;
*) echo "unsupported arch: $DEB_ARCH (use amd64 or arm64)" >&2; exit 1 ;;
esac
export SOURCE_DATE_EPOCH=1784462400
work=$(mktemp -d)
trap "rm -rf $work" EXIT
cd "$work"
curl -sSLfo sic.tar.gz \
"https://git.reauktion.de/marfrit/sic/archive/v${PKGVER}.tar.gz"
echo "$SIC_TARBALL_SHA256 sic.tar.gz" | sha256sum -c
tar xzf sic.tar.gz
( cd sic && GOOS=linux GOARCH="$GOARCH" CGO_ENABLED=0 \
GOFLAGS='-buildvcs=false -trimpath' go build -ldflags='-s -w' -o sic ./cmd/sic )
ROOT="$work/pkgroot"
mkdir -p "$ROOT/DEBIAN" "$ROOT/usr/bin" \
"$ROOT/usr/share/sic-agent/skills/sic" \
"$ROOT/usr/share/sic-agent/skills/sic-bg" \
"$ROOT/usr/share/doc/sic-agent"
install -m755 sic/sic "$ROOT/usr/bin/sic"
install -m644 sic/SKILL.md "$ROOT/usr/share/sic-agent/skills/sic/SKILL.md"
install -m644 sic/SKILL-bg.md "$ROOT/usr/share/sic-agent/skills/sic-bg/SKILL.md"
install -m644 sic/README.md "$ROOT/usr/share/doc/sic-agent/README.md"
install -m644 "$HERE/debian/copyright" "$ROOT/usr/share/doc/sic-agent/copyright"
{
echo "Package: sic-agent"
echo "Version: ${PKGVER}-${PKGREL}"
echo "Architecture: ${DEB_ARCH}"
echo "Maintainer: Markus Fritsche <mfritsche@reauktion.de>"
echo "Section: net"
echo "Priority: optional"
echo "Depends: openssh-client"
echo "Homepage: https://git.reauktion.de/marfrit/sic"
echo "Description: sic client and agent skills for remote command execution"
echo " The sic client frames argv as netstrings and pipes it over ssh to"
echo " sicd on a remote host. Installs /usr/bin/sic and foreground/background"
echo " agent skills under /usr/share/sic-agent/skills/; link them into the"
echo " agent's skills directory to activate. Targets need the sicd package."
} > "$ROOT/DEBIAN/control"
OUT="$HERE/sic-agent_${PKGVER}-${PKGREL}_${DEB_ARCH}.deb"
rm -f "$OUT"
dpkg-deb --root-owner-group --build "$ROOT" "$OUT"
echo "built $OUT"
+5
View File
@@ -0,0 +1,5 @@
sic-agent (0.1.0-1) unstable; urgency=low
* Initial release: sic client plus foreground/background agent skills.
-- Markus Fritsche <mfritsche@reauktion.de> Sat, 19 Jul 2026 12:00:00 +0000
+19
View File
@@ -0,0 +1,19 @@
Source: sic-agent
Section: net
Priority: optional
Maintainer: Markus Fritsche <mfritsche@reauktion.de>
Build-Depends: debhelper-compat (= 13), golang-go
Standards-Version: 4.6.2
Homepage: https://git.reauktion.de/marfrit/sic
Package: sic-agent
Architecture: any
Depends: ${misc:Depends}, openssh-client
Description: sic client and agent skills for remote command execution
The sic client frames argv as netstrings and pipes it over ssh to sicd on a
remote host, which runs it with execvp — no shell re-parses the arguments.
.
Installs /usr/bin/sic and two agent skills (foreground and background remote
exec) under /usr/share/sic-agent/skills/. Link the skills into the agent's
skills directory (for example ~/.claude/skills/) to activate them. The target
hosts need the sicd package.
+26
View File
@@ -0,0 +1,26 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: sic
Source: https://git.reauktion.de/marfrit/sic
Files: *
Copyright: 2026 marfrit
License: MIT
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Vendored Executable
+61
View File
@@ -0,0 +1,61 @@
#!/bin/bash
# Build sicd_<ver>_<arch>.deb using dpkg-deb. Mirrors the lmcp/claude-his-agent
# pattern, plus a Go cross-build step (sicd is a compiled binary).
#
# Usage: ./build-deb.sh [amd64|arm64] (default: host dpkg architecture)
# Needs: go, dpkg-deb, curl.
set -euo pipefail
PKGVER=0.1.0
PKGREL=1
SIC_TARBALL_SHA256=5cd10c3a1ab7361e72e7579af5819f9d322ecd59424541cfb80e5b7514253511
HERE=$(dirname "$(readlink -f "$0")")
DEB_ARCH="${1:-$(dpkg --print-architecture)}"
case "$DEB_ARCH" in
amd64) GOARCH=amd64 ;;
arm64) GOARCH=arm64 ;;
*) echo "unsupported arch: $DEB_ARCH (use amd64 or arm64)" >&2; exit 1 ;;
esac
# Reproducible build: pin mtimes + ar timestamps (v0.1.0, 2026-07-19 12:00 UTC).
export SOURCE_DATE_EPOCH=1784462400
work=$(mktemp -d)
trap "rm -rf $work" EXIT
cd "$work"
curl -sSLfo sic.tar.gz \
"https://git.reauktion.de/marfrit/sic/archive/v${PKGVER}.tar.gz"
echo "$SIC_TARBALL_SHA256 sic.tar.gz" | sha256sum -c
tar xzf sic.tar.gz
( cd sic && GOOS=linux GOARCH="$GOARCH" CGO_ENABLED=0 \
GOFLAGS='-buildvcs=false -trimpath' go build -ldflags='-s -w' -o sicd ./cmd/sicd )
ROOT="$work/pkgroot"
mkdir -p "$ROOT/DEBIAN" "$ROOT/usr/bin" "$ROOT/usr/share/doc/sicd"
install -m755 sic/sicd "$ROOT/usr/bin/sicd"
install -m644 sic/gateway/sicd "$ROOT/usr/share/doc/sicd/sicd-reference.py"
install -m644 sic/docs/design.md "$ROOT/usr/share/doc/sicd/design.md"
install -m644 "$HERE/debian/copyright" "$ROOT/usr/share/doc/sicd/copyright"
{
echo "Package: sicd"
echo "Version: ${PKGVER}-${PKGREL}"
echo "Architecture: ${DEB_ARCH}"
echo "Maintainer: Markus Fritsche <mfritsche@reauktion.de>"
echo "Section: net"
echo "Priority: optional"
echo "Recommends: openssh-server"
echo "Homepage: https://git.reauktion.de/marfrit/sic"
echo "Description: sic daemon — netstring argv over stdin, execvp'd"
echo " sicd reads netstring-framed argv from stdin and runs it with execvp,"
echo " so no shell re-parses the arguments. Deploy on target hosts and run"
echo " it over ssh (as the remote command, or command=\"sicd\" on a key)."
} > "$ROOT/DEBIAN/control"
OUT="$HERE/sicd_${PKGVER}-${PKGREL}_${DEB_ARCH}.deb"
rm -f "$OUT"
dpkg-deb --root-owner-group --build "$ROOT" "$OUT"
echo "built $OUT"
+6
View File
@@ -0,0 +1,6 @@
sicd (0.1.0-1) unstable; urgency=low
* Initial release: netstring-framed argv over stdin, execvp'd. Deploy on
target hosts, run over ssh.
-- Markus Fritsche <mfritsche@reauktion.de> Sat, 19 Jul 2026 12:00:00 +0000
+19
View File
@@ -0,0 +1,19 @@
Source: sicd
Section: net
Priority: optional
Maintainer: Markus Fritsche <mfritsche@reauktion.de>
Build-Depends: debhelper-compat (= 13), golang-go
Standards-Version: 4.6.2
Homepage: https://git.reauktion.de/marfrit/sic
Package: sicd
Architecture: any
Depends: ${misc:Depends}
Recommends: openssh-server
Description: sic daemon — netstring-framed argv over stdin, execvp'd
sicd reads netstring-framed argv from stdin and runs it with execvp, so no
shell re-parses the arguments. Deploy it on target hosts and run it over ssh
(as the remote command, or pinned to a key with command="sicd").
.
Installs /usr/bin/sicd. A Python reference implementation and the wire-format
design doc are under /usr/share/doc/sicd/.
+26
View File
@@ -0,0 +1,26 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: sic
Source: https://git.reauktion.de/marfrit/sic
Files: *
Copyright: 2026 marfrit
License: MIT
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.