aerc b3:a33dbafdcc302154888095b7b5b14278461e60a69c4c8f310e388ba85f544d0a (43 ficheros) syncthing b3:544ebf125c682c720b8555faf4259cd48bee5b4a302c4a4cc29a7311691a6e34 Las dos necesitaron salirse del driver Go genérico, y por motivos distintos: - aerc se construye con SU GNUmakefile. El driver hace `go install` y deja el binario en /out/usr/bin; eso habría dado un paquete que ARRANCA Y NO SIRVE — aerc busca plantillas, stylesets y filtros en /usr/share/aerc, y dos filtros (colorize, wrap) son fuente C que hay que compilar. Con el Makefile el artefacto trae los 43 ficheros. VERSION y GOFLAGS van fijados a mano: el Makefile los saca de `git describe` y de contrib/goflags.sh, y el árbol llega al sandbox SIN .git ⇒ el binario dependería de si hay un .git al lado. - syncthing falla con `go install` a secas y el error no dice por qué: `lib/api/api_statics.go:45:25: undefined: auto.Assets`. La GUI web se sirve desde un fichero Go GENERADO que empaqueta gui/ y el repo no lo versiona: lo produce `go run build.go assets`. No es una dependencia que falte, es un CODEGEN. Todo local, sin red. commit = el tag PELADO en los dos casos (ambos son tags anotados; la trampa de foot).
46 lines
2.5 KiB
TOML
46 lines
2.5 KiB
TOML
# aerc 0.22.0 — cliente de correo en terminal (Go + filtros en C). Es el primer MUA del catálogo.
|
|
#
|
|
# ── POR QUÉ ESTE Y NO OTRO ─────────────────────────────────────────────────────────────────────
|
|
# Los clientes de correo gráficos que el usuario espera —Thunderbird, Evolution— son un frente
|
|
# entero: Thunderbird es la plataforma Gecko otra vez y Evolution arrastra GNOME. aerc es un
|
|
# binario Go, habla IMAP/SMTP/Maildir nativo y corre en cualquier terminal ⇒ cubre el caso de uso
|
|
# en las CUATRO imágenes sin tocar ninguna decisión de escritorio.
|
|
#
|
|
# ── SE CONSTRUYE CON SU MAKEFILE, NO CON EL DRIVER GO GENÉRICO ────────────────────────────────
|
|
# El driver Go de takana hace `go install` y deja un binario en `/out/usr/bin`. Acá eso daría un
|
|
# paquete que ARRANCA Y NO SIRVE: aerc busca sus plantillas, sus filtros y su config de ejemplo en
|
|
# `/usr/share/aerc`, y dos de los filtros (`colorize`, `wrap`) son **fuente C que hay que
|
|
# compilar**. Todo eso lo hace su GNUmakefile, así que se usa el suyo. Es la figura de siempre —
|
|
# un ausente falla ruidosamente; un paquete a medias arranca y decepciona después.
|
|
#
|
|
# ⚠ `VERSION` SE FIJA A MANO. El GNUmakefile la saca de `git describe`, y en el sandbox el árbol
|
|
# llega SIN `.git` ⇒ caería al literal de respaldo. Declararla es lo determinista: que la versión
|
|
# del binario dependa de si hay un `.git` al lado es exactamente la clase de entrada invisible que
|
|
# rompe la reproducibilidad meses después.
|
|
#
|
|
# ⚠ `GOFLAGS` TAMBIÉN. Upstream los calcula con `contrib/goflags.sh`, que consulta el entorno. Se
|
|
# pisan desde la línea de `make` (una asignación en la línea de comandos gana sobre `?=`).
|
|
#
|
|
# `scdoc` es dep de build REAL, no cosmética: las páginas man son parte del install del Makefile.
|
|
name = "aerc"
|
|
version = "0.22.0"
|
|
license = "MIT"
|
|
|
|
[source]
|
|
repo = "https://git.sr.ht/~rjarry/aerc"
|
|
commit = "c2f86b7abde3a70ad71aad57a3db185e7e48a1d1"
|
|
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "static"
|
|
|
|
[build.phases]
|
|
compile = '''export GOCACHE=/src/.gocache GOTMPDIR=/src/.gotmp GOPATH=/tmp/gopath GOTOOLCHAIN=local CGO_ENABLED=0 GOPROXY=off
|
|
mkdir -p /src/.gotmp
|
|
make PREFIX=/usr VERSION=0.22.0 GOFLAGS="-mod=vendor -trimpath"'''
|
|
install = 'make PREFIX=/usr VERSION=0.22.0 DESTDIR=/out install'
|
|
|
|
[deps]
|
|
build = ["go", "scdoc"]
|