sergio/takana
> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…
1# Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero
2# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el
3# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild.
4name = "forgejo"
5version = "15.0.3"
6
7[source]
8tarball = "https://codeberg.org/forgejo/forgejo/archive/v15.0.3.tar.gz"
9# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
10# sha512 = "c1ebd90bc1c8ce9a0cbbf88451078691d7f272927a8208328f9ba26786200347ca0d9f25bf87a256d825c0c6a63a0a022082f21c2871c45ac1710394c9385f1b"
11sha256 = "a73bb36caebf15925c00d46abce2adbd38b810a86610a0202a928c0a746e5742"
12
13[build]
14compiler = "zig-cc"
15target = "x86_64-linux-musl"
16link = "static"
17flags = []
18
19[build.phases]
20# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático):
21compile = '''
22_abuild_phase() {
23# XXX: LARGEFILE64
24 export CGO_CFLAGS="$CFLAGS -O2 -D_LARGEFILE64_SOURCE"
25 export TAGS="bindata sqlite sqlite_unlock_notify"
26 export GITEA_VERSION="15.0.3"
27 export EXTRA_GOFLAGS="$GOFLAGS"
28 export CGO_LDFLAGS="$LDFLAGS"
29 unset LDFLAGS
30 ## make FHS compliant
31 local setting="forgejo.org/modules/setting"
32 export LDFLAGS="$LDFLAGS -X $setting.CustomConf=/etc/forgejo/app.ini"
33 export LDFLAGS="$LDFLAGS -X $setting.AppWorkPath=/var/lib/forgejo/"
34
35 make -j1 build
36}
37_abuild_phase
38'''
39# de package() de Alpine (traducido $pkgdir→/out):
40install = '''
41_abuild_phase() {
42for dir in forgejo forgejo/git forgejo/data forgejo/db forgejo/custom; do
43 install -dm750 -o forgejo -g www-data \
44 "/out"/var/lib/$dir
45 done
46
47 install -dm755 -o forgejo -g www-data "/out"/var/log/forgejo
48
49 # TODO: rename when upstream does: https://codeberg.org/forgejo/forgejo/issues/5174
50 install -Dm755 -g www-data gitea "/out"/usr/bin/forgejo
51
52 install -Dm644 -o forgejo -g www-data "$srcdir"/forgejo.ini \
53 "/out"/etc/forgejo/app.ini
54 chown forgejo:www-data "/out"/etc/forgejo
55
56 install -Dm755 "$srcdir"/forgejo.initd \
57 "/out"/etc/init.d/forgejo
58 install -Dm644 contrib/systemd/forgejo.service \
59 -t "/out"/usr/lib/systemd/system/
60}
61_abuild_phase
62'''
63
64# depends de runtime de Alpine (NO build-deps): git, git-lfs, gnupg
65
66[deps]
67build = ["nodejs", "npm"]