@gjsify/webrtc-native 0.22.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 +21 -0
- package/meson.build +21 -1
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -15,6 +15,27 @@ import { RTCPeerConnection } from '@gjsify/webrtc';
|
|
|
15
15
|
|
|
16
16
|
The `@gjsify/webrtc-native` prebuild (`.so` + `.typelib`) is loaded automatically by `gjsify run` via the `GI_TYPELIB_PATH`/`LD_LIBRARY_PATH` detection in the CLI.
|
|
17
17
|
|
|
18
|
+
## Platform coverage
|
|
19
|
+
|
|
20
|
+
| Platform | Prebuild | Built by |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `linux-x86_64` | ✅ `.so` + `.typelib` | native runner |
|
|
23
|
+
| `linux-aarch64` | ✅ | native runner |
|
|
24
|
+
| `linux-ppc64`, `linux-s390x`, `linux-riscv64` | ✅ | QEMU emulation |
|
|
25
|
+
| macOS (`darwin-arm64` / `darwin-x64`) | ❌ | **unverified, see below** |
|
|
26
|
+
| Windows | ❌ | — no Vala/GI bridge in this repo targets Windows |
|
|
27
|
+
|
|
28
|
+
All prebuilds are produced by [`.github/workflows/prebuilds.yml`](../../../.github/workflows/prebuilds.yml)
|
|
29
|
+
and committed back to the repository.
|
|
30
|
+
|
|
31
|
+
**macOS is not blocked — it is unverified.** The bridge needs `gstreamer-sdp-1.0` and
|
|
32
|
+
`gstreamer-webrtc-1.0`, which come from gst-plugins-base/bad inside Homebrew's unified
|
|
33
|
+
`gstreamer` formula; whether that formula exports both `.pc` files has not been confirmed.
|
|
34
|
+
`meson.build` already emits the correct `.dylib` typelib leaf, so the only open question is
|
|
35
|
+
the Homebrew dependency closure. The manual-dispatch
|
|
36
|
+
`build-prebuilds-macos-experimental` job in the prebuilds workflow exists to answer it —
|
|
37
|
+
run it, read the `pkg-config` report it prints, then promote or document the result.
|
|
38
|
+
|
|
18
39
|
## License
|
|
19
40
|
|
|
20
41
|
MIT
|
package/meson.build
CHANGED
|
@@ -24,12 +24,32 @@ libGjsifyWebrtc = library('gjsifywebrtc', sources,
|
|
|
24
24
|
install_dir: [true, true, true, true],
|
|
25
25
|
)
|
|
26
26
|
|
|
27
|
+
# ----------------------------------------------------------------------------
|
|
28
|
+
# Host-dependent shared-library leaf name.
|
|
29
|
+
#
|
|
30
|
+
# The typelib records the exact filename gjs' g_module_open() resolves at load
|
|
31
|
+
# time, and meson names the shared library per host convention: lib<name>.so on
|
|
32
|
+
# ELF hosts, lib<name>.dylib on macOS. Recording the wrong leaf yields a typelib
|
|
33
|
+
# that IS found via GI_TYPELIB_PATH but whose library never loads — a silent,
|
|
34
|
+
# confusing failure. Mirrors the branch in packages/napi/napi/meson.build.
|
|
35
|
+
#
|
|
36
|
+
# Windows is deliberately absent: this bridge has had no Windows portability
|
|
37
|
+
# work, so `else` (ELF naming) is the honest fallback rather than a .dll branch
|
|
38
|
+
# that would imply support which does not exist.
|
|
39
|
+
# ----------------------------------------------------------------------------
|
|
40
|
+
host_system = host_machine.system()
|
|
41
|
+
if host_system == 'darwin'
|
|
42
|
+
shared_lib_name = 'libgjsifywebrtc.dylib'
|
|
43
|
+
else
|
|
44
|
+
shared_lib_name = 'libgjsifywebrtc.so'
|
|
45
|
+
endif
|
|
46
|
+
|
|
27
47
|
g_ir_compiler = find_program('g-ir-compiler')
|
|
28
48
|
|
|
29
49
|
custom_target(meson.project_name() + '-0.1.typelib',
|
|
30
50
|
command: [
|
|
31
51
|
g_ir_compiler,
|
|
32
|
-
'--shared-library',
|
|
52
|
+
'--shared-library', shared_lib_name,
|
|
33
53
|
'--output', '@OUTPUT@',
|
|
34
54
|
meson.current_build_dir() / meson.project_name() + '-0.1.gir',
|
|
35
55
|
],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/webrtc-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Vala-based main-thread signal bridge for @gjsify/webrtc. Marshals webrtcbin signals and GstPromise callbacks from GStreamer's streaming thread onto the GLib main context so GJS can safely handle them.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/esm/index.js",
|
|
@@ -19,6 +19,13 @@
|
|
|
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
|
+
],
|
|
22
29
|
"prebuilds": "prebuilds",
|
|
23
30
|
"runtimes": {
|
|
24
31
|
"gjs": "polyfill",
|
|
@@ -37,7 +44,7 @@
|
|
|
37
44
|
"build:gjsify": "gjsify build --library 'src/ts/**/*.{ts,js}'",
|
|
38
45
|
"build:meson": "gjsify run init:meson && meson compile -C build",
|
|
39
46
|
"build:types": "gjsify tsc -b --force",
|
|
40
|
-
"build:prebuilds": "gjsify run build:meson &&
|
|
47
|
+
"build:prebuilds": "gjsify run build:meson && node ../../../scripts/stage-prebuild.mjs ."
|
|
41
48
|
},
|
|
42
49
|
"keywords": [
|
|
43
50
|
"gjs",
|
|
@@ -56,7 +63,7 @@
|
|
|
56
63
|
"@girs/gstwebrtc-1.0": "^4.1.0"
|
|
57
64
|
},
|
|
58
65
|
"devDependencies": {
|
|
59
|
-
"@gjsify/cli": "^0.
|
|
66
|
+
"@gjsify/cli": "^0.23.0",
|
|
60
67
|
"@types/node": "^25.9.2",
|
|
61
68
|
"typescript": "^6.0.3"
|
|
62
69
|
},
|