buninu-linux 0.14.57 → 0.15.58

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.
Files changed (94) hide show
  1. package/LICENSES/linux-firmware/LICENCE.nvidia +131 -0
  2. package/LICENSES/linux-firmware/LICENSE.amdgpu +51 -0
  3. package/LICENSES/linux-firmware/LICENSE.amdisp +31 -0
  4. package/LICENSES/linux-firmware/LICENSE.i915 +39 -0
  5. package/LICENSES/linux-firmware/LICENSE.radeon +51 -0
  6. package/LICENSES/linux-firmware/LICENSE.xe +39 -0
  7. package/LICENSES/linux-firmware/WHENCE +10280 -0
  8. package/NOTICE.md +64 -46
  9. package/README.md +371 -87
  10. package/README.zh.md +2034 -0
  11. package/build-image.sh +10 -1
  12. package/build-uki.sh +3 -1
  13. package/fetch-alpine.sh +14 -0
  14. package/graphics.md +31 -0
  15. package/index.js +28 -11
  16. package/initramfs/bin/buninu-browser +4 -1
  17. package/initramfs/bin/buninu-land +1 -1
  18. package/initramfs/bin/bunterm +3 -3
  19. package/initramfs/bin/chroot +13 -0
  20. package/initramfs/bin/chvt +11 -0
  21. package/initramfs/bin/mount +4 -0
  22. package/initramfs/bin/umount +6 -0
  23. package/initramfs/bin/xdg-open +33 -0
  24. package/initramfs/buninu/CHANGELOG.md +19 -0
  25. package/initramfs/buninu/apps/bunmsh/CHANGELOG.md +4 -0
  26. package/initramfs/buninu/apps/bunmsh/package.json +1 -1
  27. package/initramfs/buninu/apps/bunmsh/src/main.js +1 -1
  28. package/initramfs/buninu/apps/jsgotty/README.en.md +40 -0
  29. package/initramfs/buninu/apps/jsgotty/README.md +40 -0
  30. package/initramfs/buninu/apps/jsgotty/package-lock.json +2 -2
  31. package/initramfs/buninu/apps/jsgotty/package.json +1 -1
  32. package/initramfs/buninu/apps/jsgotty/static/index.html +1 -0
  33. package/initramfs/buninu/apps/jsgotty/static/js/gotty.js +82 -17
  34. package/initramfs/buninu/apps/jsgotty/static/js/kitty-keyboard.js +193 -0
  35. package/initramfs/buninu/apps/jsgotty/tests/android-alt.test.js +115 -0
  36. package/initramfs/buninu/apps/jsgotty/tests/arrow-modifiers.test.js +80 -0
  37. package/initramfs/buninu/apps/jsgotty/tests/kitty-keyboard-browser.test.js +53 -0
  38. package/initramfs/buninu/apps/jsgotty/tests/kitty-keyboard.test.js +102 -0
  39. package/initramfs/buninu/apps/jsgotty/tests/manual/README.md +20 -0
  40. package/initramfs/buninu/apps/jsgotty/tests/manual/keyboard-collector.cjs +55 -0
  41. package/initramfs/buninu/apps/jsgotty/tests/manual/keyboard-debug.js +74 -0
  42. package/initramfs/buninu/apps/jsgotty/tests/manual/kitty-keyboard.js +80 -0
  43. package/initramfs/buninu/package.json +1 -1
  44. package/initramfs/init.js +19 -3
  45. package/initramfs/lib/bunterm/clipboard.js +14 -0
  46. package/initramfs/lib/bunterm/commands.js +37 -0
  47. package/initramfs/lib/bunterm/fps.js +38 -0
  48. package/initramfs/lib/bunterm/images.js +9 -5
  49. package/initramfs/lib/bunterm/input.js +58 -15
  50. package/initramfs/lib/bunterm/keyboard.js +62 -0
  51. package/initramfs/lib/bunterm/keycodes.js +104 -0
  52. package/initramfs/lib/bunterm/kitty-keyboard.cjs +195 -0
  53. package/initramfs/lib/bunterm/raw-protocol.js +33 -0
  54. package/initramfs/lib/bunterm/renderer.js +89 -20
  55. package/initramfs/lib/bunterm/selection.js +60 -0
  56. package/initramfs/lib/bunterm/terminal.js +146 -11
  57. package/initramfs/lib/bunterm/vt-menu.js +181 -0
  58. package/initramfs/lib/bunterm/vt.js +27 -1
  59. package/initramfs/lib/canvas.js +99 -0
  60. package/initramfs/lib/chvt.js +31 -0
  61. package/initramfs/lib/fbdev.js +21 -3
  62. package/initramfs/lib/gpu.js +77 -0
  63. package/initramfs/lib/raw-image.js +47 -0
  64. package/initramfs/lib/xdg-open.js +42 -0
  65. package/initramfs/usr/share/doc/buninu-linux/bunterm.md +85 -11
  66. package/initramfs/usr/share/doc/buninu-linux/chvt.md +34 -0
  67. package/initramfs/usr/share/doc/buninu-linux/xdg-open.md +43 -0
  68. package/package.json +1 -1
  69. package/scripts/arch.js +7 -5
  70. package/scripts/arch.sh +5 -5
  71. package/scripts/build.js +16 -3
  72. package/scripts/fetch-gpu.js +105 -0
  73. package/scripts/fetch.js +11 -1
  74. package/scripts/gpu-firmware.json +22 -0
  75. package/scripts/modules.js +4 -1
  76. package/scripts/npm-packages.md +17 -17
  77. package/test/bunterm-fps.test.js +17 -0
  78. package/test/bunterm-keyboard.test.js +116 -0
  79. package/test/bunterm-next-vt.test.js +9 -0
  80. package/test/bunterm-raw-protocol.test.js +19 -0
  81. package/test/bunterm-renderer.test.js +158 -0
  82. package/test/bunterm-selection.test.js +38 -0
  83. package/test/bunterm-vt-menu.test.js +178 -0
  84. package/test/chroot-bind.test.js +40 -2
  85. package/test/chvt.test.js +46 -0
  86. package/test/fbdev-sync.test.js +33 -0
  87. package/test/gpu.test.js +155 -0
  88. package/test/image-size.test.js +17 -0
  89. package/test/manual-bunterm-image-paths.js +31 -0
  90. package/test/mount-libc-lifetime.test.js +50 -0
  91. package/test/no-gpu.test.js +43 -0
  92. package/test/readme-cli.test.js +29 -0
  93. package/test/stage-npm.test.js +11 -4
  94. package/test/xdg-open.test.js +55 -0
package/NOTICE.md CHANGED
@@ -18,6 +18,23 @@ Alpine's CDN serves only the current pkgrel of each branch, so the package
18
18
  URLs below stop working once a build is superseded. The pinned aports commits
19
19
  are permanent and are the Corresponding Source for each exact build.
20
20
 
21
+ ## Optional GPU firmware
22
+
23
+ Images whose kernel packages PC GPU modules also bundle the unmodified firmware
24
+ files from Alpine v3.24 `linux-firmware-{amdgpu,i915,nvidia,radeon,xe}`
25
+ `20260519-r0` (x86_64 APKs). URLs use
26
+ `https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/`; exact archive filenames
27
+ and SHA-256 values are in `scripts/gpu-firmware.json`.
28
+ The Alpine recipe is aports commit `0d703a66341886130fe4e46c51cd4f161d8b96b8`,
29
+ `main/linux-firmware/APKBUILD`; upstream is
30
+ <https://gitlab.com/kernel-firmware/linux-firmware/-/tree/20260519>.
31
+ Redistribution terms differ by firmware. The upstream `WHENCE` inventory and
32
+ `LICENSE.amdgpu`, `LICENSE.radeon`, `LICENSE.i915`, `LICENSE.xe`,
33
+ `LICENCE.nvidia`, and `LICENSE.amdisp` are preserved in `LICENSES/linux-firmware/`
34
+ and copied into the image's license directory. This includes GPU firmware, not
35
+ NVIDIA's proprietary host kernel/userspace driver. Loading remains opt-in via
36
+ `cfg.gpu`; firmware does not change the project source license.
37
+
21
38
  ## Bootstrap source archives
22
39
 
23
40
  `initramfs/usr/lib/bootstrap/sources/` additionally carries uncompiled source:
@@ -139,83 +156,83 @@ the built image redistributes them.
139
156
  - License: GPL-2.0-only WITH Linux-syscall-note
140
157
  - See: `LICENSES/GPL-2.0.txt` and `LICENSES/Linux-syscall-note.txt`
141
158
 
142
- Linux 6.18.57 as packaged by Alpine Linux 3.24 from the `linux-lts` aport.
143
- The default build uses package `linux-virt`, version 6.18.57-r0.
144
- `--linux-lts` and `--real` use package `linux-lts`, version 6.18.57-r0.
159
+ Linux 6.18.58 as packaged by Alpine Linux 3.24 from the `linux-lts` aport.
160
+ The default build uses package `linux-virt`, version 6.18.58-r0.
161
+ `--linux-lts` and `--real` use package `linux-lts`, version 6.18.58-r0.
145
162
  Each comes from the x86_64 or aarch64 repository to match `--arch`. All
146
163
  listed modules are the selected package's `.ko.gz` files decompressed without
147
164
  modification.
148
165
 
149
- - Upstream source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.57.tar.xz
166
+ - Upstream source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.58.tar.xz
150
167
  - Alpine build recipe, configuration and patches (Corresponding Source),
151
- pinned to the commit shipping 6.18.57-r0 (the same for both architectures):
152
- https://gitlab.alpinelinux.org/alpine/aports/-/blob/0c40eb4fea009af7de457fa20e186f43a88e0954/main/linux-lts/APKBUILD
168
+ pinned to the commit shipping 6.18.58-r0 (the same for both architectures):
169
+ https://gitlab.alpinelinux.org/alpine/aports/-/blob/5fe63f789de75f6a71001cf2de771f922bedd0d2/main/linux-lts/APKBUILD
153
170
  - Packages:
154
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-virt-6.18.57-r0.apk
155
- SHA-256 `414aa2572ef88164b1af9905fa6dfbe863bf50f6130d895d57282dea3e15f7b9`
156
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-lts-6.18.57-r0.apk
157
- SHA-256 `7614556471859956a436b95813daf409b444aa849ec899178b404e828c5a9d98`
158
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-virt-6.18.57-r0.apk
159
- SHA-256 `b3820fee22e0366a15f7c139e5bc00348e333f3e7f77802271df7ded795aee4f`
160
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-lts-6.18.57-r0.apk
161
- SHA-256 `67b8f61c5cfb6ac9b5a65cb1610b67d467e6c4ffc17e7d29dbea4bd8c447ff32`
171
+ https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-virt-6.18.58-r0.apk
172
+ SHA-256 `1eec55004cf7167c914c8839f46691d2bc82767e20466bff51eb45d06f8e90cc`
173
+ https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-lts-6.18.58-r0.apk
174
+ SHA-256 `af399fba75cafb2940fc2853eb73ba2289aa463228f33541cd3010334a30992b`
175
+ https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-virt-6.18.58-r0.apk
176
+ SHA-256 `b46c51ddf572d85b2ba7b9adfaa64f4c38fc490c93d97a20ffd2418d51284085`
177
+ https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-lts-6.18.58-r0.apk
178
+ SHA-256 `65ab581dd6773e2b1b6831dac50142518b2f2083668f164f68ebfcd00d1763c4`
162
179
 
163
180
  SHA-256 of files in the default x86_64 `linux-virt` image:
164
181
 
165
182
  ```text
166
- kernel/x86_64/vmlinuz-virt 3725536e1c015345d781430b728849c2f090cf2040af00d7fe825920a106a08e
167
- failover.ko f373917790e5e17b8c0c278efdd6fef7545ee8362510efaa80efb821e553f0b3
168
- net_failover.ko 78fce63b3625b11bc65d4f0eb8f844796cad472ef14302016458ac60f898ac95
169
- virtio_net.ko 18addca2d17e0b01b9adc64111b0409c08da6a196215e68bfda067309ff323a8
183
+ kernel/x86_64/vmlinuz-virt 17fbd3efd16f2e7cb1b945f06423b37399ba7d5ac8cdd3665e7f13f363500e85
184
+ failover.ko 4a9c64a0e9a8e7ea9899fe2a4958fedb71691e904e91a16109f944cae3647745
185
+ net_failover.ko 175984d70fd5bd11de5f184f729fd7aee8d50146b23f0e591670b175837c7010
186
+ virtio_net.ko 72bdeeb075dccbb8c67938d633662e890784f0c388fcdddfe72e9c4b509b987c
170
187
  ```
171
188
 
172
189
  SHA-256 of files in an x86_64 `--linux-lts` image:
173
190
 
174
191
  ```text
175
- kernel/x86_64/vmlinuz-lts 674c615f1f0887621e6609becd11a7db40cc71b7616644fcc260b4b226a52103
176
- failover.ko 00d409746a8033e5acf0d4d0b8db4589d48168f2965e4de0c05374bc4e3a4025
177
- net_failover.ko afbe1a6cd279381ade52943158c62931d79f38dcd293e31ef522878ff82c17ed
178
- virtio_net.ko 84b658a64416094f3bc793ac43ccd987e087898d0c0510ddf5f9e53e0f9b36ff
179
- virtio_ring.ko db497b3c23133f48b5a48800695b9f7068244dfa9d52cd1d10b5d4618e68fb60
180
- virtio.ko c867c11e61db4c9c4a7af54f29ba9d127759706854ba84bf42ca6f2ae8b4f71a
181
- virtio_pci_legacy_dev.ko 8825df8124c86800b3bf3d3403f6aba47d527d02565f91baddebe40ea0f66f88
182
- virtio_pci_modern_dev.ko 3ba582ad90247b04fe2afe289d2b51a39e3efc1cc40e58f55e7701062141e061
183
- virtio_pci.ko 5f6baef35e1536d735628e14fa3172c27228cd26f7c80b7465d2afbed8ee3876
192
+ kernel/x86_64/vmlinuz-lts 14ac8b1b0f92aacb815c46c2e6e9e70e9e80d9fd1391ebf48c0d4ba5059f6652
193
+ failover.ko 8154cc9a26e1a751fd0e29b35653679a22189dce9a35c1b78c42838d7f10e40c
194
+ net_failover.ko 3b45635fed29500db82ca400bfd4080f6129240f34f7b603e6f4d7612c019c94
195
+ virtio_net.ko 5a81ac1fbf786a33609d3f1f00f0b08f6da4e8ea9509690cd7fe59c30f81b596
196
+ virtio_ring.ko 529b4e5c64787a80af7c1a06e44ce8fc007b4e805d3b2a7b673acbcffad887ed
197
+ virtio.ko 87b99cefeb119f9a49c589cdd1ae732d34d9416bb92385c7022bc038bc0146e0
198
+ virtio_pci_legacy_dev.ko 10be513db7fdb8b2eec44347fbe74f482be83085aabe3b4abeb193f47fac0615
199
+ virtio_pci_modern_dev.ko fa2dd36e83a65202b4494765f6ef75634cf5e9fc21906ccaee71a0106427638f
200
+ virtio_pci.ko acb46043812dfc42fa0bd9d6bbebc7b61d313eb36236ba9bd4ace3cfaa89f902
184
201
  ```
185
202
 
186
203
  `--real` additionally includes the following modules from that same
187
204
  x86_64 `linux-lts` package for physical xHCI controllers and USB HID keyboards:
188
205
 
189
206
  ```text
190
- usb-common.ko eb9d7b52b5c8f74b062ea3efbd8112c1460e3d34c0338e538602c648b958a8ef
191
- usbcore.ko 30286b4e42c985e56903f41fd35233b3b35700b96ab99b088b1d91735c8e6e94
192
- xhci-hcd.ko f0988c511d5692265f8c5221d77c468c9650151f3d69b5b68988eba9d1fab7f1
193
- xhci-pci.ko a9145f467b6bf9b099e52eb5ac41b0c1164d9400e5b2f5f9d595ff58b4d776fb
194
- xhci-pci-renesas.ko 2d88a4e72512944b62a4394172702db8dc211ccc7b99a93778f2d42ed8a23caf
195
- hid.ko 7994f6b42f1df68a62312cf4de50a22b1a9756c3da91966a634630a62b18ae10
196
- hid-generic.ko ea2eb7491e30bef769d2c419a2ccc9d55db030edddfe531c0d4e4723e170a4c3
197
- usbhid.ko 899f357db5ba74182cf9161a577b080f8a6a9b0b015f6a322a5c31bf8754188b
207
+ usb-common.ko fea517ef78b4f39c2de5980bcff506b1b9a55561b35949f1f320bcd923b04b78
208
+ usbcore.ko 8229fce701d624d6ed9b436406eb35155d78a4f2af12e0ebaeff7c5f78f33d78
209
+ xhci-hcd.ko 36e62e85b9f312f5fffcf6d1c74bd86ddaf0d0253bb000376163360b04ed75d2
210
+ xhci-pci.ko 8132c975ee33dc50f213b20e4cb836f5bf9e46d14a93665781b6d171ead764c0
211
+ xhci-pci-renesas.ko 5e4cb38fce1668cb8780a4fadf4ce51bfbc0f586a129c6203f4b7e6e6ce24292
212
+ hid.ko bb08c478b6efc032f5e22e461c529e05fe811f28c63646d8a0e3a961020b5e9e
213
+ hid-generic.ko eb6f98948b7d82d750bf3320bb886e00fd03fa4683a35ec0ee28eff6b20a1ad5
214
+ usbhid.ko e479535c61bed7691f72ebd09a35ab3b5b53ed23dda3a07d5899049685b8a3b8
198
215
  ```
199
216
 
200
217
  SHA-256 of files in the default aarch64 `linux-virt` image:
201
218
 
202
219
  ```text
203
- kernel/aarch64/vmlinuz-virt 60603568b5589c730e9183e5d6d4f0b8575ddac31e9187222decc92416329b26
204
- failover.ko 792943de0975a4111d2040ab35cc214e5b1b4ec8c12dbc9725fd0602a56f1576
205
- net_failover.ko ba3ab71ef38aa3a957c5b0fe7ddd908e31635e408f5937bccb50f36bb78761ba
206
- virtio_net.ko 716e32b4425aa8dd4ebfeb6808e58c125e6b125c71b00ba8288851363f72fa60
220
+ kernel/aarch64/vmlinuz-virt 849394914e6a93cc9bb17e901f445ce21fcd7e4528541d9496a74d6a6ccee319
221
+ failover.ko 3c806423468d1ca1d2339125a958ef42ee2fc8f56d3ee3547ec5e848f997c4e7
222
+ net_failover.ko 04443fea2bec85ebc3634732c8b4023c66a86c11b7ad07ddcca57adbbd24a56c
223
+ virtio_net.ko 052a058c333d4d59e8b5b4f82822d3ccfb54cda03cc8cff2007cfc7145cf4520
207
224
  ```
208
225
 
209
226
  SHA-256 of files in an aarch64 `--linux-lts` image:
210
227
 
211
228
  ```text
212
- kernel/aarch64/vmlinuz-lts 19fc9f974bb3cb666b8a216f18ca9f9df8e1658da4e9e55ed464c3fcaf87a303
213
- failover.ko d243de2d9c2b2c34094c125719fa784b2e476986bfcd5766b96e7f7fbcb658ac
214
- net_failover.ko 675cdf971cbb2ab15f8db6295afadcfc852172f38d289e9935ed28386e3e38f6
215
- virtio_net.ko 34ea985ebf0bef82731f398aa3aca9030d6d7882d4bcb1542fd17d8637cad70e
216
- virtio_pci_legacy_dev.ko 17f1487bf62ac3b2961f5f959fb28a2e1135db565e8a77296372c5101e00aae1
217
- virtio_pci_modern_dev.ko e7a76945ae0b9c75af78a77950a4f22c95758fe507db2b77fbc168a4d6f842d8
218
- virtio_pci.ko 76efc4e0428eb0413727247f41972d72c3f2ed1373f7e94f88052357a097b6a8
229
+ kernel/aarch64/vmlinuz-lts 1a1c64908397369119a016b163b726741ec97a52e5405e5bbe3275e97f6a39cc
230
+ failover.ko b8d1e9ea95083cce714b8b045ac28799e08fa388b95062f4ac90335903ec6709
231
+ net_failover.ko be4271294cd959c86dab7e3498127f5194b67aeab63521755acd78ddfed15ff7
232
+ virtio_net.ko df090940866c21e0ae2af9c75ca2c8c0c2f4a732e346ddeab734befa801af64a
233
+ virtio_pci_legacy_dev.ko 0528589d3347a19bcfab93c860703f97e5636ccaeb6498a02257026abe9c8c2e
234
+ virtio_pci_modern_dev.ko facbbeb0324365aa90abd47496059855e0ebe4523c01dd531d0304ad01ccdb84
235
+ virtio_pci.ko 618ba972e7b26f7321a73652c9f1d036f78ea0add7aa58fd71472da3e4bb3248
219
236
  ```
220
237
 
221
238
  ### linuxx64.efi.stub and linuxaa64.efi.stub
@@ -356,6 +373,7 @@ its license text next to it inside the image.
356
373
  |---|---|---|
357
374
  | `initramfs/lib/canvaskit/canvaskit.js`, `canvaskit.wasm` | CanvasKit 0.41.1, Skia compiled to WebAssembly (npm `canvaskit-wasm`) | BSD-3-Clause, `LICENSES/BSD-3-Clause-Skia.txt` |
358
375
  | `initramfs/lib/xterm/xterm-headless.mjs`, `addon-unicode-graphemes.mjs` | xterm.js 6.0.0 (npm `@xterm/headless`, `@xterm/addon-unicode-graphemes`) | MIT, `LICENSES/MIT-xterm.js.txt` |
376
+ | `initramfs/lib/bunterm/kitty-keyboard.cjs` | Kitty keyboard encoder from jsgotty 1.2.0, `static/js/kitty-keyboard.js`, with provenance comments | MIT; `initramfs/buninu/apps/jsgotty/LICENSE` |
359
377
  | `initramfs/lib/bunterm/glyphs.js` | Box drawing / block / Powerline shape tables ported from xterm.js `addon-webgl/src/CustomGlyphs.ts` | MIT, as above |
360
378
  | `initramfs/usr/share/fonts/DejaVuSansMono.ttf`, `DejaVuSansMono-Bold.ttf` | DejaVu fonts 2.37 (Debian `fonts-dejavu-core`) | Bitstream Vera, `LICENSES/Bitstream-Vera.txt` |
361
379
  | `initramfs/usr/share/fonts/NotoSansCJK-Regular.ttc` | Noto Sans CJK 2.004 (variable, JP/KR/SC/TC/HK faces), from Android's `/system/fonts` | SIL OFL 1.1, `LICENSES/OFL-1.1.txt` |