@gjsify/http-soup-bridge 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -3
- package/meson.build +21 -1
- package/package.json +11 -3
package/README.md
CHANGED
|
@@ -76,9 +76,12 @@ the `gjsify.prebuilds` field at startup, so consumers don't need to install
|
|
|
76
76
|
the bridge into a system path.
|
|
77
77
|
|
|
78
78
|
The CI workflow at `.github/workflows/prebuilds.yml` builds prebuilds for
|
|
79
|
-
linux-x86_64, linux-aarch64, linux-ppc64, linux-s390x,
|
|
80
|
-
and auto-commits them to the repo. x86_64 and
|
|
81
|
-
runners; ppc64, s390x, and riscv64 use QEMU
|
|
79
|
+
linux-x86_64, linux-aarch64, linux-ppc64, linux-s390x, linux-riscv64 and
|
|
80
|
+
darwin-arm64, and auto-commits them to the repo. linux x86_64/aarch64 and
|
|
81
|
+
darwin-arm64 use native GitHub runners; ppc64, s390x, and riscv64 use QEMU
|
|
82
|
+
via `uraimo/run-on-arch-action`. The macOS artifact is named
|
|
83
|
+
`libgjsifyhttpsoupbridge.dylib` and its typelib records that leaf — see
|
|
84
|
+
[Platform coverage](#platform-coverage).
|
|
82
85
|
|
|
83
86
|
## TS types
|
|
84
87
|
|
|
@@ -94,3 +97,19 @@ npx @ts-for-gir/cli generate \
|
|
|
94
97
|
|
|
95
98
|
After publication this step disappears — the package's `dependencies`
|
|
96
99
|
already references `@girs/gjsifyhttpsoupbridge-1.0`.
|
|
100
|
+
|
|
101
|
+
## Platform coverage
|
|
102
|
+
|
|
103
|
+
| Platform | Prebuild | Built by |
|
|
104
|
+
|---|---|---|
|
|
105
|
+
| `linux-x86_64` | ✅ `.so` + `.gir` + `.typelib` | native runner |
|
|
106
|
+
| `linux-aarch64` | ✅ | native runner |
|
|
107
|
+
| `linux-ppc64`, `linux-s390x`, `linux-riscv64` | ✅ | QEMU emulation |
|
|
108
|
+
| `darwin-arm64` (macOS, Apple silicon) | ✅ `.dylib` + `.gir` + `.typelib` | `macos-latest` runner |
|
|
109
|
+
| `darwin-x64` (macOS, Intel) | ❌ | — no runner leg yet |
|
|
110
|
+
| Windows | ❌ | — no Vala/GI bridge in this repo targets Windows |
|
|
111
|
+
|
|
112
|
+
**Known gap — a `darwin-arm64` prebuild is built and shipped, but the CLI does not
|
|
113
|
+
load it yet.** `detectNativePackages()` (`packages/infra/cli/src/utils/detect-native-packages.ts`)
|
|
114
|
+
hardcodes a `linux-` directory prefix, and `buildNativeEnv()` exports `LD_LIBRARY_PATH`,
|
|
115
|
+
which macOS `dyld` ignores in favour of `DYLD_LIBRARY_PATH`.
|
package/meson.build
CHANGED
|
@@ -23,12 +23,32 @@ libGjsifyHttpSoupBridge = library('gjsifyhttpsoupbridge', sources,
|
|
|
23
23
|
install_dir: [true, true, true, true],
|
|
24
24
|
)
|
|
25
25
|
|
|
26
|
+
# ----------------------------------------------------------------------------
|
|
27
|
+
# Host-dependent shared-library leaf name.
|
|
28
|
+
#
|
|
29
|
+
# The typelib records the exact filename gjs' g_module_open() resolves at load
|
|
30
|
+
# time, and meson names the shared library per host convention: lib<name>.so on
|
|
31
|
+
# ELF hosts, lib<name>.dylib on macOS. Recording the wrong leaf yields a typelib
|
|
32
|
+
# that IS found via GI_TYPELIB_PATH but whose library never loads — a silent,
|
|
33
|
+
# confusing failure. Mirrors the branch in packages/napi/napi/meson.build.
|
|
34
|
+
#
|
|
35
|
+
# Windows is deliberately absent: this bridge has had no Windows portability
|
|
36
|
+
# work, so `else` (ELF naming) is the honest fallback rather than a .dll branch
|
|
37
|
+
# that would imply support which does not exist.
|
|
38
|
+
# ----------------------------------------------------------------------------
|
|
39
|
+
host_system = host_machine.system()
|
|
40
|
+
if host_system == 'darwin'
|
|
41
|
+
shared_lib_name = 'libgjsifyhttpsoupbridge.dylib'
|
|
42
|
+
else
|
|
43
|
+
shared_lib_name = 'libgjsifyhttpsoupbridge.so'
|
|
44
|
+
endif
|
|
45
|
+
|
|
26
46
|
g_ir_compiler = find_program('g-ir-compiler')
|
|
27
47
|
|
|
28
48
|
custom_target(meson.project_name() + '-1.0.typelib',
|
|
29
49
|
command: [
|
|
30
50
|
g_ir_compiler,
|
|
31
|
-
'--shared-library',
|
|
51
|
+
'--shared-library', shared_lib_name,
|
|
32
52
|
'--output', '@OUTPUT@',
|
|
33
53
|
meson.current_build_dir() / meson.project_name() + '-1.0.gir',
|
|
34
54
|
],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/http-soup-bridge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Vala-based main-thread bridge for libsoup HTTP server. Marshals SoupServer + SoupServerMessage signals onto the GLib main context and keeps every libsoup boxed type (MessageBody, MessageHeaders, the message's GMainContext ref, the HTTP1 IO GSource) on the C side, so SpiderMonkey GC has no chance to race a libsoup-side cleanup. Used by @gjsify/http to keep MCP/SSE/long-poll workloads stable on GJS.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/esm/index.js",
|
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
"src/vala"
|
|
20
20
|
],
|
|
21
21
|
"gjsify": {
|
|
22
|
+
"platforms": [
|
|
23
|
+
"linux-x86_64",
|
|
24
|
+
"linux-aarch64",
|
|
25
|
+
"linux-ppc64",
|
|
26
|
+
"linux-s390x",
|
|
27
|
+
"linux-riscv64",
|
|
28
|
+
"darwin-arm64"
|
|
29
|
+
],
|
|
22
30
|
"prebuilds": "prebuilds",
|
|
23
31
|
"runtimes": {
|
|
24
32
|
"gjs": "polyfill",
|
|
@@ -38,7 +46,7 @@
|
|
|
38
46
|
"build:meson": "gjsify run init:meson && meson compile -C build",
|
|
39
47
|
"build:types": "gjsify tsc",
|
|
40
48
|
"build:gir-types": "ts-for-gir generate --externalDeps --allowMissingDeps --girDirectories=./prebuilds/linux-x86_64 --girDirectories=/usr/share/gir-1.0 --modules=GjsifyHttpSoupBridge-1.0 --outdir=src/ts --npmScope=@girs --package=false --ignoreVersionConflicts=true",
|
|
41
|
-
"build:prebuilds": "gjsify run build:meson &&
|
|
49
|
+
"build:prebuilds": "gjsify run build:meson && node ../../../scripts/stage-prebuild.mjs ."
|
|
42
50
|
},
|
|
43
51
|
"keywords": [
|
|
44
52
|
"gjs",
|
|
@@ -59,7 +67,7 @@
|
|
|
59
67
|
"@girs/soup-3.0": "^4.1.0"
|
|
60
68
|
},
|
|
61
69
|
"devDependencies": {
|
|
62
|
-
"@gjsify/cli": "^0.
|
|
70
|
+
"@gjsify/cli": "^0.23.0",
|
|
63
71
|
"@ts-for-gir/cli": "^4.1.0",
|
|
64
72
|
"@types/node": "^25.9.2",
|
|
65
73
|
"typescript": "^6.0.3"
|