@machinen/native-arm64-linux 0.2.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 ADDED
@@ -0,0 +1,24 @@
1
+ # @machinen/native-arm64-linux
2
+
3
+ All of machinen's host-side native binaries for arm64 linux, in one
4
+ package:
5
+
6
+ | subdir | contents |
7
+ | ------------ | -------------------------------------------------- |
8
+ | `vmm/` | `machinen-vm` (KVM microVM), `gvproxy`, guest ELFs |
9
+ | `e2fsprogs/` | bundled `mke2fs` |
10
+ | `squashfs/` | bundled `mksquashfs` |
11
+
12
+ This replaces the former per-tool packages
13
+ (`@machinen/vmm-arm64-linux`, `@machinen/e2fsprogs-arm64-linux`,
14
+ `@machinen/squashfs-tools-arm64-linux`) — one install, one
15
+ `optionalDependency`, one `os`/`cpu` gate per host.
16
+
17
+ `index.mjs` exports an absolute path per binary: `binary` (the VMM),
18
+ `gvproxy`, `initPath`, `execAgentPath`, `mke2fs`, `mksquashfs`.
19
+
20
+ Unlike the darwin sibling, the linux e2fsprogs/squashfs binaries don't
21
+ ship a `lib/` — they link statically / against the host's libc.
22
+
23
+ The VMM, gvproxy, and guest ELFs are CI-staged on publish (absent in
24
+ the repo); the e2fsprogs/squashfs binaries are committed.
Binary file
package/index.mjs ADDED
@@ -0,0 +1,37 @@
1
+ import { dirname, join } from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+
4
+ // Consolidated host-tool binary package. Replaces the per-tool
5
+ // packages (vmm / e2fsprogs / squashfs-tools) — one install, one
6
+ // optionalDependency, one os/cpu gate per host.
7
+ //
8
+ // Layout is per-tool subdirs so dyld's `@loader_path/../lib` keeps
9
+ // resolving for the bundled e2fsprogs/squashfs dylibs: mke2fs lives at
10
+ // e2fsprogs/bin/mke2fs and loads e2fsprogs/lib/*; the two stay
11
+ // siblings. CI stages the VMM binary during publish (it's absent in
12
+ // the repo so `git status` stays clean); the e2fsprogs/squashfs
13
+ // binaries are committed.
14
+ const here = dirname(fileURLToPath(import.meta.url));
15
+
16
+ // --- VMM (the per-guest hypervisor process) ----------------------------
17
+
18
+ /** The microVM hypervisor binary the runtime spawns per guest. */
19
+ export const binary = join(here, "vmm", "bin", "machinen-vm");
20
+ /**
21
+ * gvproxy (containers/gvisor-tap-vsock) — the userspace TCP/IP sidecar
22
+ * the runtime auto-spawns for virtio-net. Optional; absent installs
23
+ * just boot without a network.
24
+ */
25
+ export const gvproxy = join(here, "vmm", "bin", "gvproxy");
26
+
27
+ // Guest binaries (arm64-linux ELFs) the runtime reads to build the
28
+ // initramfs cpio at boot(). Read as data, never exec()d on the host.
29
+ export const initPath = join(here, "vmm", "guest", "init");
30
+ export const execAgentPath = join(here, "vmm", "guest", "exec-agent");
31
+
32
+ // --- e2fsprogs / squashfs-tools ----------------------------------------
33
+
34
+ /** Bundled `mke2fs` — materializes ext4 rootfs images without a host install. */
35
+ export const mke2fs = join(here, "e2fsprogs", "bin", "mke2fs");
36
+ /** Bundled `mksquashfs` — builds the read-only squashfs lower for `--mount` overlays. */
37
+ export const mksquashfs = join(here, "squashfs", "bin", "mksquashfs");
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@machinen/native-arm64-linux",
3
+ "version": "0.2.0",
4
+ "description": "Machinen host-side native binaries for arm64 linux — VMM (KVM) + gvproxy + guest ELFs, mke2fs, and mksquashfs. Consolidates what used to be several per-tool packages.",
5
+ "license": "FSL-1.1-MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/redwoodjs/machinen.git",
9
+ "directory": "packages/native-arm64-linux"
10
+ },
11
+ "bin": {
12
+ "machinen-gvproxy": "./vmm/bin/gvproxy",
13
+ "machinen-mke2fs": "./e2fsprogs/bin/mke2fs",
14
+ "machinen-mksquashfs": "./squashfs/bin/mksquashfs",
15
+ "machinen-vm": "./vmm/bin/machinen-vm"
16
+ },
17
+ "files": [
18
+ "vmm/bin/",
19
+ "vmm/guest/",
20
+ "e2fsprogs/bin/",
21
+ "squashfs/bin/",
22
+ "index.mjs"
23
+ ],
24
+ "os": [
25
+ "linux"
26
+ ],
27
+ "cpu": [
28
+ "arm64"
29
+ ],
30
+ "type": "module",
31
+ "main": "./index.mjs"
32
+ }
Binary file
File without changes
Binary file
Binary file
File without changes
Binary file
package/vmm/guest/init ADDED
Binary file