buninu-linux 0.7.55 → 0.8.55
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/Dockerfile +5 -2
- package/NOTICE.md +64 -3
- package/README.md +435 -140
- package/fetch-npm.sh +44 -0
- package/fetch-plus-build.sh +1 -0
- package/index.js +15 -13
- package/initramfs/bin/buninu-browser +24 -0
- package/initramfs/bin/jspinyin +12 -0
- package/initramfs/bin/jspulse +2 -0
- package/initramfs/bin/tar +40 -6
- package/initramfs/bin/top +1 -7
- package/initramfs/buninu/CHANGELOG.md +4 -0
- package/initramfs/buninu/apps/bunmsh/CHANGELOG.md +28 -0
- package/initramfs/buninu/apps/bunmsh/package.json +1 -1
- package/initramfs/buninu/apps/bunmsh/src/main.js +7 -5
- package/initramfs/buninu/apps/bunmsh/src/shell.js +584 -75
- package/initramfs/buninu/apps/bunmsh/test/shell1.test.js +64 -0
- package/initramfs/buninu/package.json +1 -1
- package/initramfs/init.js +5 -0
- package/initramfs/lib/browser-resources.js +25 -0
- package/initramfs/lib/tar-exclude.js +20 -0
- package/initramfs/lib/tar-strip.js +94 -0
- package/initramfs/lib/top-memory.js +12 -0
- package/initramfs/usr/share/doc/buninu-linux/tar.md +24 -1
- package/initramfs/usr/share/doc/buninu-linux/top.md +18 -0
- package/package.json +1 -1
- package/scripts/fetch-npm.js +51 -0
- package/scripts/fetch.js +1 -0
- package/scripts/js-tools.js +3 -0
- package/scripts/npm-packages.md +18 -0
- package/scripts/pack-initramfs.sh +1 -0
- package/scripts/pack.js +2 -0
- package/scripts/stage-npm.js +57 -0
- package/scripts/stage-npm.sh +62 -0
- package/test/fetch-npm.test.js +92 -0
- package/test/host/Dockerfile +6 -4
- package/test/host/boot-test.exp +2 -2
- package/test/host/host-test.sh +2 -2
- package/test/host/in-container.sh +4 -4
- package/test/js-tools-selection.test.js +19 -0
- package/test/npm-launchers.test.js +59 -0
- package/test/stage-npm.test.js +130 -0
- package/test/tar-strip.test.js +218 -0
- package/test/top-memory.test.js +23 -0
- package/initramfs/buninu/apps/bunmsh/test/shell.test.js +0 -2092
package/Dockerfile
CHANGED
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
# that do not have it natively (macOS) or would rather not install it.
|
|
3
3
|
# index.js --docker builds this image on first use and runs the fetch/build
|
|
4
4
|
# scripts inside it with the checkout bind-mounted at /src; macOS does that
|
|
5
|
-
# by default. The image only unpacks archives and assembles files, it never
|
|
5
|
+
# by default when JS tools are disabled. The image only unpacks archives and assembles files, it never
|
|
6
6
|
# executes guest binaries, so its own architecture does not matter: Apple
|
|
7
7
|
# Silicon runs it as linux/arm64 and still builds both guests.
|
|
8
8
|
#
|
|
9
9
|
# binutils-mingw-w64-x86-64 PE-aware objcopy/objdump for the x86_64 UKI
|
|
10
10
|
# binutils-aarch64-linux-gnu PE-aware objcopy/objdump for the aarch64 UKI
|
|
11
11
|
# (native binutils on an arm64 host, cross on amd64)
|
|
12
|
-
FROM
|
|
12
|
+
FROM oven/bun:1.4.2
|
|
13
|
+
USER root
|
|
14
|
+
# These images run build scripts, not the base image's default Bun command.
|
|
15
|
+
ENTRYPOINT []
|
|
13
16
|
|
|
14
17
|
RUN apt-get update \
|
|
15
18
|
&& apt-get install -y --no-install-recommends \
|
package/NOTICE.md
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
Buninu Linux is licensed under the MIT License; see `LICENSE`.
|
|
4
4
|
|
|
5
5
|
It redistributes the third-party components below under their own licenses.
|
|
6
|
-
|
|
6
|
+
Platform license texts are in `LICENSES/`; npm application licenses and
|
|
7
|
+
notices also remain inside their installed package directories, as listed
|
|
8
|
+
below. Platform SHA-256 values here were checked
|
|
7
9
|
byte-for-byte against the official Alpine Linux v3.24 x86_64 or aarch64
|
|
8
10
|
package (or the official Bun release) it came from. The x86_64 guest is the
|
|
9
11
|
default build; `--arch aarch64` builds the other one from the same versions.
|
|
10
12
|
|
|
11
|
-
The sections below cover the platform
|
|
12
|
-
|
|
13
|
+
The sections below cover the platform, fetched npm applications and graphics
|
|
14
|
+
resources. The Buninu userspace under `initramfs/buninu/`
|
|
13
15
|
carries its own third-party notices; see the last section.
|
|
14
16
|
|
|
15
17
|
Alpine's CDN serves only the current pkgrel of each branch, so the package
|
|
@@ -236,6 +238,65 @@ native/x86_64/bin/bun 16b72935ffd7a503b978c186874539c92aade4e3515b70a5abf5db2
|
|
|
236
238
|
native/aarch64/bin/bun 1101cd0aa92ea214c2aaf4bb3761ca3c76a90aae0e6f94c07efb4e8c4f18a8fc
|
|
237
239
|
```
|
|
238
240
|
|
|
241
|
+
## npm applications fetched and redistributed in the image
|
|
242
|
+
|
|
243
|
+
The fetch stage downloads the following exact releases directly from the
|
|
244
|
+
npm registry. `scripts/npm-packages.md` is the canonical list of tarball
|
|
245
|
+
URLs and SHA-256 pins. Both fetch and pack verify those hashes. Pack removes
|
|
246
|
+
the leading `package/` component and installs the contents under
|
|
247
|
+
`/usr/lib/node_modules/`; it does not run npm lifecycle scripts or resolve
|
|
248
|
+
additional dependencies. The downloaded archives are build inputs, not
|
|
249
|
+
committed source files, but their contents are redistributed in the image.
|
|
250
|
+
|
|
251
|
+
| Package | Version | Package license | Project / package page | Installed license and notices (relative to `/usr/lib/node_modules/`) |
|
|
252
|
+
|---|---|---|---|---|
|
|
253
|
+
| `buninu-browser` | 0.2.2 | MIT for the browser's own code; bundled components retain their own terms | https://github.com/jjtseng93/buninu-browser | `buninu-browser/LICENSE`, `THIRD_PARTY_NOTICES.md`, `LICENSES/` and vendor notices within that package |
|
|
254
|
+
| `@drxiaozhi/casty` | 1.3.4 | MIT | https://github.com/jjtseng93/casty | `@drxiaozhi/casty/LICENSE` |
|
|
255
|
+
| `@drxiaozhi/jspulse` | 0.2.1 | LGPL-2.1-or-later, with additional component notices | https://github.com/jjtseng93/jspulse | `@drxiaozhi/jspulse/LICENSE`, `NOTICE.md`, `LICENSES/` and source-file notices within that package |
|
|
256
|
+
| `@drxiaozhi/jspinyin` | 0.1.1 | MIT; hanzipinyin material under the Unlicense | https://www.npmjs.com/package/@drxiaozhi/jspinyin | `@drxiaozhi/jspinyin/LICENSE` and `@drxiaozhi/jspinyin/LICENSE-hanzipinyin.md` |
|
|
257
|
+
|
|
258
|
+
The upstream links identify the projects; the pinned registry archives
|
|
259
|
+
identify the exact releases used by this build. Preserve the packages'
|
|
260
|
+
copyright notices, license texts, third-party notices and source material
|
|
261
|
+
when redistributing or repacking the image. Buninu Linux's MIT license does
|
|
262
|
+
not relicense these components.
|
|
263
|
+
|
|
264
|
+
### Browser resources and LGPL media decoder
|
|
265
|
+
|
|
266
|
+
Only the browser's `usr/lib/canvaskit` and `usr/share/fonts` directories are
|
|
267
|
+
excluded from extraction. Its `usr/README.md`, top-level license collection,
|
|
268
|
+
third-party notices and vendor source material are retained. The distribution
|
|
269
|
+
launcher creates relative links to the system CanvasKit and fonts when those
|
|
270
|
+
resource directories are missing; their licenses are documented under
|
|
271
|
+
Graphics stack below and remain with the system copies.
|
|
272
|
+
|
|
273
|
+
The browser includes `@wasmpeg/cpu` 1.0.1 and its FFmpeg code under
|
|
274
|
+
LGPL-2.1-or-later. Within `/usr/lib/node_modules/buninu-browser/`, retain:
|
|
275
|
+
|
|
276
|
+
- `vendor/wasmpeg/LICENSE`, `vendor/wasmpeg/NOTICE` and `LICENSES/wasmpeg.txt`;
|
|
277
|
+
- `vendor/wasmpeg/source-v1.0.1.tar.gz`, the bundled source archive;
|
|
278
|
+
- `vendor/wasmpeg/VENDORING.md`, with artifact hashes and rebuild instructions;
|
|
279
|
+
- `patches/wasmpeg/`, documenting the package's local changes;
|
|
280
|
+
- the other license texts identified in `THIRD_PARTY_NOTICES.md`, including
|
|
281
|
+
those for Emscripten and zlib.
|
|
282
|
+
|
|
283
|
+
The decoder's `cpu.wasm` remains a separate, replaceable file. Do not remove
|
|
284
|
+
the source archive or rebuild material merely to reduce the image size.
|
|
285
|
+
|
|
286
|
+
### jspulse source and notices
|
|
287
|
+
|
|
288
|
+
jspulse is shipped as JavaScript source, with its LGPL license, modification
|
|
289
|
+
notices and additional notices intact. Its `NOTICE.md` describes the
|
|
290
|
+
PulseAudio, Termux, ALSA and Sun G.711 material; `LICENSES/` includes LGPL-2.1
|
|
291
|
+
and NCSA texts. Browser audio communicates with this separate server through
|
|
292
|
+
the PulseAudio protocol. The distribution's launcher does not replace or
|
|
293
|
+
remove the package's source or license files.
|
|
294
|
+
|
|
295
|
+
This inventory records the shipped materials; it is not a blanket compliance
|
|
296
|
+
certification. Redistributors remain responsible for applicable source,
|
|
297
|
+
notice and modification/replacement requirements, particularly if changing
|
|
298
|
+
the packages, their build artifacts or the source material supplied with them.
|
|
299
|
+
|
|
239
300
|
## Graphics stack
|
|
240
301
|
|
|
241
302
|
These files are committed under `initramfs/lib/` and `initramfs/usr/share/`
|