Commit14aa6d95Recorded2 Sep 2026Repositorysigil-studio

Relock, add manifest.scm, add the standard pipeline

Message

sigil-studio could not build. The cause was NOT its own code and NOT a missing release: it pinned ^0.7.0 for sigil-app, sigil-graphics and sigil-audio, four to five minor versions behind. Those ranges resolve to commits from the "Migrate to 0.9.1 transitive deps" era, which predate the with-sigil-c-flags fix and therefore fail on a missing sigil-internal.h -- the same defect fixed in sigil-tui v0.8.1.

Verified rather than assumed: sigil-app v0.9.0, sigil-graphics v0.11.1 and sigil-audio v0.12.0 ALL already carry the fix. Repinning to ^0.9, ^0.11 and ^0.12 is the entire build fix.

Adds manifest.scm. sigil-app and sigil-audio vendor sokol but not the platform libraries it needs -- mesa for GL/gl.h, libx11/libxi/libxcursor for the X11 backend (sokol_app.h includes X11/extensions/XInput2.h directly), alsa-lib for sokol_audio. Kept in the repo rather than inline in the CI command so the same environment is reproducible locally.

Also adds dev-dependencies, without which sigil test refuses to build a harness for a package with native code.

THE TEST STEP WILL BE RED, for a reason no repo-side change can fix. The suite opens a real window: sokol_app reports LINUX_X11_QUERY_SYSTEM_DPI_FAILED and then sokol_gfx aborts on Assertion _sg.valid failed in sg_make_image. A virtual display is not sufficient -- tried Xvfb at 1280x1024x24 with LIBGL_ALWAYS_SOFTWARE=1 and the same assertion fires, so sokol_gfx is never validly set up rather than merely lacking an X server. Same class of blocker as slate, and it wants the same answer: a worker image that can present a GL context.

Deps and build coverage is worth having on its own here -- the pin staleness above is exactly what those two steps catch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P6mPymR1ZBRV1nuyDpBxDF

Changed
 .gitignore   |   1 +
 .kiln/ci.sgv |   9 +++++++++
 manifest.scm |  18 ++++++++++++++++++
 package.sgl  |  13 +++++++++----
 sigil.lock   | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 5 files changed, 155 insertions(+), 21 deletions(-)
Diff
.gitignoremodified
@@ -1 +1,2 @@
1
build/
+2
.sigil/
.kiln/ci.sgvadded
@@ -0,0 +1,9 @@
+1
(pipeline ci
+2
on: #[ (push) (manual) ]
+3
+4
(job ci
+5
steps: #[
+6
(shell name: deps "guix shell -m manifest.scm -- sh -c 'CPATH=$GUIX_ENVIRONMENT/include LIBRARY_PATH=$GUIX_ENVIRONMENT/lib sigil deps install'")
+7
(shell name: build "guix shell -m manifest.scm -- sh -c 'CPATH=$GUIX_ENVIRONMENT/include LIBRARY_PATH=$GUIX_ENVIRONMENT/lib sigil build'")
+8
(shell name: test "guix shell -m manifest.scm -- sh -c 'CPATH=$GUIX_ENVIRONMENT/include LIBRARY_PATH=$GUIX_ENVIRONMENT/lib LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib sigil test'")
+9
]))
manifest.scmadded
@@ -0,0 +1,18 @@
+1
;; sigil-studio development / CI environment
+2
;; Use with: guix shell -m manifest.scm
+3
;;
+4
;; sigil-studio pulls in sigil-app and sigil-audio, both of which vendor
+5
;; sokol but NOT the platform libraries sokol needs:
+6
;;
+7
;; mesa GL/gl.h, for sokol_app's GL backend
+8
;; libx11 libxi libxcursor the X11 backend; sokol_app.h includes
+9
;; X11/extensions/XInput2.h directly
+10
;; alsa-lib sokol_audio's ALSA backend
+11
;;
+12
;; None of these are vendored, so they must come from the environment.
+13
(specifications->manifest
+14
(list "mesa"
+15
"libx11"
+16
"libxi"
+17
"libxcursor"
+18
"alsa-lib"))
package.sglmodified
@@ -14,6 +14,7 @@
14
(package
15
name: "sigil-studio"
16
version: "0.7.0"
+17
sigil: "0.20"
18
description: "Multimedia development environment for Sigil"
19
url: "https://codeberg.org/sigil/sigil-studio"
20
license: "BSD-3-Clause"
@@ -37,9 +38,13 @@
38
39
dependencies: (list
40
;; Core CLI (brings in sigil-run, sigil-stdlib, and all CLI deps)
−40
(from-git url: "codeberg:sigil/sigil" package: "sigil-cli" version: "^0.9.0")
+41
(from-git url: "codeberg:sigil/sigil" package: "sigil-cli" version: "^0.20")
42
43
;; Multimedia packages
−43
(from-git url: "codeberg:sigil/sigil-app" version: "^0.8.0")
−44
(from-git url: "codeberg:sigil/sigil-graphics" version: "^0.7.0")
−45
(from-git url: "codeberg:sigil/sigil-audio" version: "^0.7.0")))
+44
(from-git url: "codeberg:sigil/sigil-app" version: "^0.9")
+45
(from-git url: "codeberg:sigil/sigil-graphics" version: "^0.11")
+46
(from-git url: "codeberg:sigil/sigil-audio" version: "^0.12"))
+47
+48
dev-dependencies: (list
+49
(from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.20")
+50
(from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.20")))
sigil.lockmodified
@@ -1,30 +1,131 @@
1
;; Auto-generated by sigil deps install. Do not edit.
2
(lock
+3
(package name: "sigil-stdlib"
+4
url: "codeberg:sigil/sigil"
+5
ref: ">=0.20, <1.0"
+6
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+7
package-selector: "sigil-stdlib"
+8
version: "0.20.3")
9
(package name: "sigil-cli"
10
url: "codeberg:sigil/sigil"
−5
ref: "^0.9.0"
−6
sha: "962b7e2788e982264792032d3ba31ed3c237334e"
+11
ref: "^0.20"
+12
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
13
package-selector: "sigil-cli"
−8
version: "0.9.1")
−9
(package name: "sigil-stdlib"
+14
version: "0.20.3")
+15
(package name: "sigil-lib"
16
url: "codeberg:sigil/sigil"
−11
ref: "^0.9.0"
−12
sha: "962b7e2788e982264792032d3ba31ed3c237334e"
−13
package-selector: "sigil-stdlib"
−14
version: "0.9.1")
+17
ref: "^0.19"
+18
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+19
package-selector: "sigil-lib"
+20
version: "0.20.3")
+21
(package name: "sigil-args"
+22
url: "codeberg:sigil/sigil"
+23
ref: "^0.19"
+24
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+25
package-selector: "sigil-args"
+26
version: "0.20.3")
+27
(package name: "sigil-test"
+28
url: "codeberg:sigil/sigil"
+29
ref: "^0.20"
+30
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+31
package-selector: "sigil-test"
+32
version: "0.20.3")
+33
(package name: "sigil-test-runner"
+34
url: "codeberg:sigil/sigil"
+35
ref: "^0.20"
+36
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+37
package-selector: "sigil-test-runner"
+38
version: "0.20.3")
+39
(package name: "sigil-format"
+40
url: "codeberg:sigil/sigil"
+41
ref: "^0.19"
+42
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+43
package-selector: "sigil-format"
+44
version: "0.20.3")
+45
(package name: "sigil-repl"
+46
url: "codeberg:sigil/sigil-repl"
+47
ref: "^0.16.0"
+48
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+49
version: "0.20.3")
+50
(package name: "sigil-help"
+51
url: "codeberg:sigil/sigil"
+52
ref: "^0.19"
+53
sha: "2e452e2f641fcf63be4e88a2748b34791543be8f"
+54
package-selector: "sigil-help"
+55
version: "0.20.3")
56
(package name: "sigil-app"
57
url: "codeberg:sigil/sigil-app"
−17
ref: "^0.8.0"
−18
sha: "fa7bf1338d32ae72444bccb48eebc0fe9c5b3204"
−19
version: "0.8.1")
+58
ref: "^0.9"
+59
sha: "834798443a93ad1774807aaf94b5d5e506597285"
+60
version: "0.9.0")
61
(package name: "sigil-graphics"
62
url: "codeberg:sigil/sigil-graphics"
−22
ref: "^0.7.0"
−23
sha: "cffe3ce7c4767c36c343f326d7b06e8779e1dd58"
−24
version: "0.7.0")
+63
ref: "^0.11"
+64
sha: "9e5b682a14efd78c3fab1cd3c4758fa4e45c014d"
+65
version: "0.11.1")
66
(package name: "sigil-audio"
67
url: "codeberg:sigil/sigil-audio"
−27
ref: "^0.7.0"
−28
sha: "2d7b57821cb06201d11473a17fd23d0c10f47a1f"
−29
version: "0.7.0")
+68
ref: "^0.12"
+69
sha: "a925d966c69b6ef491b4a43c0844e53ae89b7165"
+70
version: "0.12.1")
+71
(package name: "sigil-json"
+72
url: "codeberg:sigil/sigil-json"
+73
ref: "^0.16.0"
+74
sha: "55c9e74712b5f79b45d41c65cfe0aef2c8f7e155"
+75
version: "0.16.0")
+76
(package name: "sigil-log"
+77
url: "codeberg:sigil/sigil-log"
+78
ref: "^0.16.0"
+79
sha: "56e4fc5a52dc370c037ef14502bb8d6d2876dc53"
+80
version: "0.16.0")
+81
(package name: "sigil-nrepl"
+82
url: "codeberg:sigil/sigil-nrepl"
+83
ref: "^0.16.0"
+84
sha: "e5618482fb4adb2ed3851bef980bef91d3ad2ff7"
+85
version: "0.16.2")
+86
(package name: "sigil-http"
+87
url: "codeberg:sigil/sigil-http"
+88
ref: "^0.16.0"
+89
sha: "c24a14cabdb5ceed6273d7a6c1004baee07d69a0"
+90
version: "0.16.7")
+91
(package name: "sigil-tls"
+92
url: "codeberg:sigil/sigil-tls"
+93
ref: "^0.16.0"
+94
sha: "4cde885f8bbb15b1457b0293a5b9fa7d292cfc46"
+95
version: "0.16.6")
+96
(package name: "sigil-ffi"
+97
url: "codeberg:sigil/sigil-ffi"
+98
ref: "^0.16.0"
+99
sha: "43283237fae5abdba324769ad4a7a2baf694e660"
+100
version: "0.16.3")
+101
(package name: "sigil-sqlite"
+102
url: "codeberg:sigil/sigil-sqlite"
+103
ref: "^0.16.0"
+104
sha: "569ef1063dda8f5989968644af31fc09c64b4bfe"
+105
version: "0.16.3")
+106
(package name: "sigil-mcp"
+107
url: "codeberg:sigil/sigil-mcp"
+108
sha: "52d7e90e6d718b72a886dfb74e774e6cf0845fd7"
+109
version: "0.16.4")
+110
(package name: "sigil-lsp"
+111
url: "codeberg:sigil/sigil-lsp"
+112
ref: "^0.16.0"
+113
sha: "323f1caa792223cdad01d73e6e09b5f34a66250f"
+114
version: "0.16.2")
+115
(package name: "sigil-crypto"
+116
url: "codeberg:sigil/sigil-crypto"
+117
ref: "^0.16.0"
+118
sha: "debba4462b7ff4de143db9e0792b8606fdc455bc"
+119
version: "0.16.5")
+120
(package name: "sigil-wasm-gles3"
+121
url: "codeberg:sigil/sigil"
+122
ref: "^0.17"
+123
sha: "070f133a3524142b4febfd7c287385186b616252"
+124
package-selector: "sigil-wasm-gles3"
+125
version: "0.17.20")
+126
(package name: "sigil-socket"
+127
url: "codeberg:sigil/sigil-socket"
+128
ref: "^0.16.0"
+129
sha: "6b9e36eb4d4a944b463e5f6826bd711186ba6710"
+130
version: "0.16.0")
131
)