@gjsify/gtk-runtime-darwin-arm64 0.19.0 → 0.21.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 +31 -0
- package/gtk/girepository-1.0/Adw-1.typelib +0 -0
- package/gtk/girepository-1.0/AppStream-1.0.typelib +0 -0
- package/gtk/girepository-1.0/DBus-1.0.typelib +0 -0
- package/gtk/girepository-1.0/DBusGLib-1.0.typelib +0 -0
- package/gtk/girepository-1.0/GIRepository-2.0.typelib +0 -0
- package/gtk/girepository-1.0/GIRepository-3.0.typelib +0 -0
- package/gtk/girepository-1.0/GL-1.0.typelib +0 -0
- package/gtk/girepository-1.0/GLib-2.0.typelib +0 -0
- package/gtk/girepository-1.0/GLibUnix-2.0.typelib +0 -0
- package/gtk/girepository-1.0/GModule-2.0.typelib +0 -0
- package/gtk/girepository-1.0/GObject-2.0.typelib +0 -0
- package/gtk/girepository-1.0/Gdk-4.0.typelib +0 -0
- package/gtk/girepository-1.0/GdkMacos-4.0.typelib +0 -0
- package/gtk/girepository-1.0/GdkPixbuf-2.0.typelib +0 -0
- package/gtk/girepository-1.0/GdkPixdata-2.0.typelib +0 -0
- package/gtk/girepository-1.0/Gio-2.0.typelib +0 -0
- package/gtk/girepository-1.0/GioUnix-2.0.typelib +0 -0
- package/gtk/girepository-1.0/Graphene-1.0.typelib +0 -0
- package/gtk/girepository-1.0/Gsk-4.0.typelib +0 -0
- package/gtk/girepository-1.0/Gtk-4.0.typelib +0 -0
- package/gtk/girepository-1.0/HarfBuzz-0.0.typelib +0 -0
- package/gtk/girepository-1.0/Pango-1.0.typelib +0 -0
- package/gtk/girepository-1.0/PangoCairo-1.0.typelib +0 -0
- package/gtk/girepository-1.0/PangoFT2-1.0.typelib +0 -0
- package/gtk/girepository-1.0/PangoFc-1.0.typelib +0 -0
- package/gtk/girepository-1.0/PangoOT-1.0.typelib +0 -0
- package/gtk/girepository-1.0/Rsvg-2.0.typelib +0 -0
- package/gtk/girepository-1.0/Vulkan-1.0.typelib +0 -0
- package/gtk/girepository-1.0/Xmlb-2.0.typelib +0 -0
- package/gtk/girepository-1.0/cairo-1.0.typelib +0 -0
- package/gtk/girepository-1.0/fontconfig-2.0.typelib +0 -0
- package/gtk/girepository-1.0/freetype2-2.0.typelib +0 -0
- package/gtk/girepository-1.0/libxml2-2.0.typelib +0 -0
- package/gtk/girepository-1.0/win32-1.0.typelib +0 -0
- package/gtk/girepository-1.0/xfixes-4.0.typelib +0 -0
- package/gtk/girepository-1.0/xft-2.0.typelib +0 -0
- package/gtk/girepository-1.0/xlib-2.0.typelib +0 -0
- package/gtk/girepository-1.0/xrandr-1.3.typelib +0 -0
- package/gtk/lib/libX11.6.dylib +0 -0
- package/gtk/lib/libXau.6.dylib +0 -0
- package/gtk/lib/libXdmcp.6.dylib +0 -0
- package/gtk/lib/libXext.6.dylib +0 -0
- package/gtk/lib/libXrender.1.dylib +0 -0
- package/gtk/lib/libcairo-gobject.2.dylib +0 -0
- package/gtk/lib/libcairo-gobject.dylib +0 -0
- package/gtk/lib/libcairo-script-interpreter.2.dylib +0 -0
- package/gtk/lib/libcairo-script-interpreter.dylib +0 -0
- package/gtk/lib/libcairo.2.dylib +0 -0
- package/gtk/lib/libcairo.dylib +0 -0
- package/gtk/lib/libdatrie.1.dylib +0 -0
- package/gtk/lib/libepoxy.0.dylib +0 -0
- package/gtk/lib/libfontconfig.1.dylib +0 -0
- package/gtk/lib/libfreetype.6.dylib +0 -0
- package/gtk/lib/libfribidi.0.dylib +0 -0
- package/gtk/lib/libgdk_pixbuf-2.0.0.dylib +0 -0
- package/gtk/lib/libgio-2.0.0.dylib +0 -0
- package/gtk/lib/libgirepository-2.0.0.dylib +0 -0
- package/gtk/lib/libglib-2.0.0.dylib +0 -0
- package/gtk/lib/libgmodule-2.0.0.dylib +0 -0
- package/gtk/lib/libgobject-2.0.0.dylib +0 -0
- package/gtk/lib/libgraphene-1.0.0.dylib +0 -0
- package/gtk/lib/libgraphite2.3.dylib +0 -0
- package/gtk/lib/libgtk-4.1.dylib +0 -0
- package/gtk/lib/libharfbuzz-subset.0.dylib +0 -0
- package/gtk/lib/libharfbuzz.0.dylib +0 -0
- package/gtk/lib/libintl.8.dylib +0 -0
- package/gtk/lib/libjpeg.8.dylib +0 -0
- package/gtk/lib/liblzma.5.dylib +0 -0
- package/gtk/lib/liblzo2.2.dylib +0 -0
- package/gtk/lib/libpango-1.0.0.dylib +0 -0
- package/gtk/lib/libpangocairo-1.0.0.dylib +0 -0
- package/gtk/lib/libpangoft2-1.0.0.dylib +0 -0
- package/gtk/lib/libpcre2-8.0.dylib +0 -0
- package/gtk/lib/libpixman-1.0.dylib +0 -0
- package/gtk/lib/libpng16.16.dylib +0 -0
- package/gtk/lib/libsharpyuv.0.dylib +0 -0
- package/gtk/lib/libthai.0.dylib +0 -0
- package/gtk/lib/libtiff.6.dylib +0 -0
- package/gtk/lib/libwebp.7.dylib +0 -0
- package/gtk/lib/libxcb-render.0.dylib +0 -0
- package/gtk/lib/libxcb-shm.0.dylib +0 -0
- package/gtk/lib/libxcb.1.dylib +0 -0
- package/gtk/lib/libzstd.1.dylib +0 -0
- package/gtk/manifest.json +56 -0
- package/package.json +1 -1
- package/scripts/build-gtk-runtime.mjs +20 -2
package/README.md
CHANGED
|
@@ -71,6 +71,37 @@ The re-exec is a no-op off darwin, without a bundle, or once the fallback alread
|
|
|
71
71
|
covers the bundle — so it costs one extra `exec` only on the first macOS load of a
|
|
72
72
|
batteries-included install, and nothing elsewhere.
|
|
73
73
|
|
|
74
|
+
## Release flow — how the `gtk/` bundle reaches npm
|
|
75
|
+
|
|
76
|
+
The `gtk/` payload is gitignored and built ONLY on macOS/arm64, so it cannot be
|
|
77
|
+
produced by the main (ubuntu) release publish. A dedicated macOS job in
|
|
78
|
+
[`.github/workflows/release.yml`](../../../.github/workflows/release.yml) —
|
|
79
|
+
`publish-gtk-runtime-darwin-arm64` — owns this package's publish end to end:
|
|
80
|
+
|
|
81
|
+
1. On `release: published` it checks out the tag (the version `@release-it/bumper`
|
|
82
|
+
already bumped in this package's `package.json`, in lockstep with the train).
|
|
83
|
+
2. `brew install`s the GTK/GI stack as the build-time closure **source**.
|
|
84
|
+
3. Runs `scripts/build-gtk-runtime.mjs --out gtk` to populate `gtk/` (relocated
|
|
85
|
+
dylibs + typelibs + `manifest.json`), then asserts no `/opt/homebrew` refs
|
|
86
|
+
survived and that `gtk/lib` + `gtk/girepository-1.0` exist (the two dirs
|
|
87
|
+
[`index.js`](./index.js)'s `isPresent` gate checks).
|
|
88
|
+
4. OIDC-publishes **only this package** (Trusted Publisher configured for
|
|
89
|
+
`release.yml`), so `files: ["gtk"]` ships the whole bundle recursively (the
|
|
90
|
+
gjsify packer expands a plain-directory `files` entry). Consumers then see
|
|
91
|
+
`isPresent === true` and get the "no Homebrew needed" path.
|
|
92
|
+
|
|
93
|
+
The main ubuntu publish job never touches this package — `packages/node-gi/*` is
|
|
94
|
+
not a root workspace, so `gjsify foreach` (its enumerator) never sees it. That is
|
|
95
|
+
also why the first bare `0.19.0` was an empty ~18 KB shell: nothing built `gtk/`
|
|
96
|
+
before publish. This job is the fix; the addon-relocation `--addon`/`--stage`
|
|
97
|
+
flags of the build script are a *separate* node-gi concern (see
|
|
98
|
+
[`node-gi.yml`](../../../.github/workflows/node-gi.yml) → `macos-gtk-runtime`) and
|
|
99
|
+
are **not** part of this tarball.
|
|
100
|
+
|
|
101
|
+
**This is the PATTERN the future Windows sibling `@gjsify/gtk-runtime-win32-x64`
|
|
102
|
+
will mirror**: a `windows-latest` publish job using the gvsbuild GTK stack as its
|
|
103
|
+
closure source and its own MSVC-ABI relocation step, publishing only that package.
|
|
104
|
+
|
|
74
105
|
## Scope & what a full windowing bundle still needs
|
|
75
106
|
|
|
76
107
|
This bundle targets the **display-free conformance closure only**. The full
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"platform": "darwin-arm64",
|
|
3
|
+
"generatedFrom": "/opt/homebrew",
|
|
4
|
+
"dylibs": 45,
|
|
5
|
+
"typelibs": 38,
|
|
6
|
+
"libBytes": 29101712,
|
|
7
|
+
"typelibBytes": 2342100,
|
|
8
|
+
"totalBytes": 31443812,
|
|
9
|
+
"dylibList": [
|
|
10
|
+
"libX11.6.dylib",
|
|
11
|
+
"libXau.6.dylib",
|
|
12
|
+
"libXdmcp.6.dylib",
|
|
13
|
+
"libXext.6.dylib",
|
|
14
|
+
"libXrender.1.dylib",
|
|
15
|
+
"libcairo-gobject.2.dylib",
|
|
16
|
+
"libcairo-gobject.dylib",
|
|
17
|
+
"libcairo-script-interpreter.2.dylib",
|
|
18
|
+
"libcairo-script-interpreter.dylib",
|
|
19
|
+
"libcairo.2.dylib",
|
|
20
|
+
"libcairo.dylib",
|
|
21
|
+
"libdatrie.1.dylib",
|
|
22
|
+
"libepoxy.0.dylib",
|
|
23
|
+
"libfontconfig.1.dylib",
|
|
24
|
+
"libfreetype.6.dylib",
|
|
25
|
+
"libfribidi.0.dylib",
|
|
26
|
+
"libgdk_pixbuf-2.0.0.dylib",
|
|
27
|
+
"libgio-2.0.0.dylib",
|
|
28
|
+
"libgirepository-2.0.0.dylib",
|
|
29
|
+
"libglib-2.0.0.dylib",
|
|
30
|
+
"libgmodule-2.0.0.dylib",
|
|
31
|
+
"libgobject-2.0.0.dylib",
|
|
32
|
+
"libgraphene-1.0.0.dylib",
|
|
33
|
+
"libgraphite2.3.dylib",
|
|
34
|
+
"libgtk-4.1.dylib",
|
|
35
|
+
"libharfbuzz-subset.0.dylib",
|
|
36
|
+
"libharfbuzz.0.dylib",
|
|
37
|
+
"libintl.8.dylib",
|
|
38
|
+
"libjpeg.8.dylib",
|
|
39
|
+
"liblzma.5.dylib",
|
|
40
|
+
"liblzo2.2.dylib",
|
|
41
|
+
"libpango-1.0.0.dylib",
|
|
42
|
+
"libpangocairo-1.0.0.dylib",
|
|
43
|
+
"libpangoft2-1.0.0.dylib",
|
|
44
|
+
"libpcre2-8.0.dylib",
|
|
45
|
+
"libpixman-1.0.dylib",
|
|
46
|
+
"libpng16.16.dylib",
|
|
47
|
+
"libsharpyuv.0.dylib",
|
|
48
|
+
"libthai.0.dylib",
|
|
49
|
+
"libtiff.6.dylib",
|
|
50
|
+
"libwebp.7.dylib",
|
|
51
|
+
"libxcb-render.0.dylib",
|
|
52
|
+
"libxcb-shm.0.dylib",
|
|
53
|
+
"libxcb.1.dylib",
|
|
54
|
+
"libzstd.1.dylib"
|
|
55
|
+
]
|
|
56
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/gtk-runtime-darwin-arm64",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "Batteries-included, relocated GTK/GObject-Introspection runtime bundle for macOS arm64 — lets @gjsify/node-gi load gi:// namespaces (GLib/GObject/Gio/cairo/Pango/Graphene/Gdk) with NO Homebrew GTK. Platform-gated (darwin/arm64 only).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -74,6 +74,23 @@ const SEED_PATTERNS = [
|
|
|
74
74
|
/^libgtk-4\..*\.dylib$/, // provides the Gdk typelib's backing library
|
|
75
75
|
];
|
|
76
76
|
|
|
77
|
+
// WINDOWING superset (opt-in via --windowing): also bundle libadwaita, whose dylib
|
|
78
|
+
// backs the Adw-1 typelib, AND libgtksourceview-5, whose dylib backs the GtkSource-5
|
|
79
|
+
// typelib. The display-free conformance closure never touches Adwaita OR GtkSource,
|
|
80
|
+
// so they are NOT base seeds — but the batteries-included bundle ships their TYPELIBS,
|
|
81
|
+
// so without the dylibs a real `new Adw.Application()` / `new GtkSource.View()` fails
|
|
82
|
+
// with "Failed to load shared library '…'" (→ the type is not a constructible
|
|
83
|
+
// GObject). libgtksourceview backs the Learn6502 editor (a GtkSource.View subclass) —
|
|
84
|
+
// the app-gnome node-gi port. This is exactly what the macOS GTK-GUI proof
|
|
85
|
+
// (macos-gtk-windowing) needs; the recursive otool walk pulls each seed's transitive
|
|
86
|
+
// deps + relocates them like any other seed. Mirrors the win32 --windowing superset
|
|
87
|
+
// (WINDOWING_SEED_PATTERNS there). NB: GtkSource's runtime DATA (language-specs /
|
|
88
|
+
// styles under share/gtksourceview-5) is a separate concern; the darwin bundle has no
|
|
89
|
+
// share/ DATA step yet, so GtkSource CONSTRUCTS here but syntax-highlighting language
|
|
90
|
+
// files are not bundled (tracked follow-up; the win32 bundle DOES ship them).
|
|
91
|
+
const WINDOWING = process.argv.includes('--windowing');
|
|
92
|
+
const WINDOWING_SEED_PATTERNS = [/^libadwaita-1\..*\.dylib$/, /^libgtksourceview-5\..*\.dylib$/];
|
|
93
|
+
|
|
77
94
|
function isSystemPath(p) {
|
|
78
95
|
return p.startsWith('/usr/lib/') || p.startsWith('/System/');
|
|
79
96
|
}
|
|
@@ -112,8 +129,9 @@ function resolveInBrew(leaf) {
|
|
|
112
129
|
}
|
|
113
130
|
|
|
114
131
|
// --- 1. discover the closure ----------------------------------------------
|
|
115
|
-
console.log(`build-gtk-runtime: brew prefix ${brewPrefix}`);
|
|
116
|
-
const
|
|
132
|
+
console.log(`build-gtk-runtime: brew prefix ${brewPrefix}${WINDOWING ? ' (windowing superset — + libadwaita + libgtksourceview)' : ' (display-free)'}`);
|
|
133
|
+
const seedPatterns = WINDOWING ? [...SEED_PATTERNS, ...WINDOWING_SEED_PATTERNS] : SEED_PATTERNS;
|
|
134
|
+
const seeds = readdirSync(brewLib).filter((f) => seedPatterns.some((re) => re.test(f)));
|
|
117
135
|
if (seeds.length === 0) {
|
|
118
136
|
console.error('build-gtk-runtime: no seed libraries found — is the GTK stack installed?');
|
|
119
137
|
process.exit(1);
|