Release linux/amd64 binary is dynamically linked, contradicting the "single static binary" claim
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, go
- Ambito
- build-system, cli, release
Direzione di ricerca
Start with the release build matrix in .github/workflows/go.yml, especially the build step around line 192, and inspect how its Linux legs compile and name their assets. Check the resulting Linux binaries with file and add a CI assertion that verifies they are statically linked. Done means Linux release assets meet the issue's stated static/stripped criteria and CI catches regressions.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Why it matters
The repo description, README and site all promise a "single static Go binary". The v0.8.0 subenum-linux-amd64 release asset is actually dynamically linked against glibc (file reports dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2 ... not stripped). It will not run on Alpine/musl, in scratch/distroless images, or on older glibc hosts, which are common pentest/CI environments. Oddly the cross-compiled linux-arm64 asset is static, so behaviour differs by arch.
Evidence
.github/workflows/go.yml:192— the release matrix builds with
go build -v -buildvcs=false -ldflags "-X main.Version=..."and noCGO_ENABLED=0. The linux/amd64 leg compiles natively onubuntu-latest, so cgo is on andnetlinks the cgo resolver.- No
-trimpathand no-s -w, so binaries embed local paths and debug info (larger, not reproducible). -buildvcs=falsestrips VCS info, sogo version -m subenumshows nothing useful for provenance.
Suggested approach
- Set
CGO_ENABLED: 0in the build step env for all legs. - Build with
-trimpath -ldflags "-s -w -X main.Version=..."; drop-buildvcs=falsein CI (keep it only where.gitis absent, e.g. Docker). - Add a CI assertion on Linux legs:
file subenum-linux-* | grep -q 'statically linked'. - (Covered more broadly by the GoReleaser issue, but this one-line fix should ship as a patch release now.)
Done when
- All Linux release assets report
statically linked, are stripped, and CI fails if that regresses. - A v0.8.1 patch release replaces the dynamic binary.
- Lingua principale
- Go
- Stelle
- 1
- Fork
- 1
- Merge medio
- 5g 2h
- PR unite (30g)
- 3
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TMHSDigital/subenum
-
area: cli enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
TMHSDigital/subenum#136 ·
I maintainer di solito rispondono entro 1 giorno
-
community documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
TMHSDigital/subenum#135 ·
I maintainer di solito rispondono entro 1 giorno
-
area: dns enhancement good first issue
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 90/100
TMHSDigital/subenum#134 ·
I maintainer di solito rispondono entro 1 giorno
-
community marketing priority: low
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
TMHSDigital/subenum#132 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
feature priority: low
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
TMHSDigital/subenum#131 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di TMHSDigital/subenum
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
prime-radiant-inc/evener#4223 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
open-telemetry/opentelemetry-go-compile-instrumentation#1467 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
yetone/magpie#1490 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
a:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
gotify/server#1068 · 1 reazione ·
I maintainer di solito rispondono entro 2 giorni