buninu-linux 0.13.56 → 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 (109) 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 +410 -96
  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 +15 -1
  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/dhclient +8 -0
  22. package/initramfs/bin/mount +4 -0
  23. package/initramfs/bin/ping +8 -0
  24. package/initramfs/bin/umount +6 -0
  25. package/initramfs/bin/xdg-open +33 -0
  26. package/initramfs/buninu/CHANGELOG.md +19 -0
  27. package/initramfs/buninu/apps/bunmsh/CHANGELOG.md +4 -0
  28. package/initramfs/buninu/apps/bunmsh/package.json +1 -1
  29. package/initramfs/buninu/apps/bunmsh/src/main.js +1 -1
  30. package/initramfs/buninu/apps/jsgotty/README.en.md +40 -0
  31. package/initramfs/buninu/apps/jsgotty/README.md +40 -0
  32. package/initramfs/buninu/apps/jsgotty/package-lock.json +2 -2
  33. package/initramfs/buninu/apps/jsgotty/package.json +1 -1
  34. package/initramfs/buninu/apps/jsgotty/static/index.html +1 -0
  35. package/initramfs/buninu/apps/jsgotty/static/js/gotty.js +82 -17
  36. package/initramfs/buninu/apps/jsgotty/static/js/kitty-keyboard.js +193 -0
  37. package/initramfs/buninu/apps/jsgotty/tests/android-alt.test.js +115 -0
  38. package/initramfs/buninu/apps/jsgotty/tests/arrow-modifiers.test.js +80 -0
  39. package/initramfs/buninu/apps/jsgotty/tests/kitty-keyboard-browser.test.js +53 -0
  40. package/initramfs/buninu/apps/jsgotty/tests/kitty-keyboard.test.js +102 -0
  41. package/initramfs/buninu/apps/jsgotty/tests/manual/README.md +20 -0
  42. package/initramfs/buninu/apps/jsgotty/tests/manual/keyboard-collector.cjs +55 -0
  43. package/initramfs/buninu/apps/jsgotty/tests/manual/keyboard-debug.js +74 -0
  44. package/initramfs/buninu/apps/jsgotty/tests/manual/kitty-keyboard.js +80 -0
  45. package/initramfs/buninu/package.json +1 -1
  46. package/initramfs/init.js +27 -10
  47. package/initramfs/lib/bunterm/clipboard.js +14 -0
  48. package/initramfs/lib/bunterm/commands.js +37 -0
  49. package/initramfs/lib/bunterm/fps.js +38 -0
  50. package/initramfs/lib/bunterm/images.js +9 -5
  51. package/initramfs/lib/bunterm/input.js +58 -15
  52. package/initramfs/lib/bunterm/keyboard.js +62 -0
  53. package/initramfs/lib/bunterm/keycodes.js +104 -0
  54. package/initramfs/lib/bunterm/kitty-keyboard.cjs +195 -0
  55. package/initramfs/lib/bunterm/raw-protocol.js +33 -0
  56. package/initramfs/lib/bunterm/renderer.js +90 -21
  57. package/initramfs/lib/bunterm/selection.js +60 -0
  58. package/initramfs/lib/bunterm/terminal.js +147 -12
  59. package/initramfs/lib/bunterm/vt-menu.js +181 -0
  60. package/initramfs/lib/bunterm/vt.js +27 -1
  61. package/initramfs/lib/canvas.js +99 -0
  62. package/initramfs/lib/chvt.js +31 -0
  63. package/initramfs/lib/dhclient.js +135 -0
  64. package/initramfs/lib/dhcp-start.js +85 -0
  65. package/initramfs/lib/dhcp-transport.js +44 -0
  66. package/initramfs/lib/dhcp.js +124 -0
  67. package/initramfs/lib/dlopen.js +58 -11
  68. package/initramfs/lib/fbdev.js +21 -3
  69. package/initramfs/lib/gpu.js +77 -0
  70. package/initramfs/lib/ping.js +110 -0
  71. package/initramfs/lib/raw-image.js +47 -0
  72. package/initramfs/lib/xdg-open.js +42 -0
  73. package/initramfs/usr/share/doc/buninu-linux/bunterm.md +86 -12
  74. package/initramfs/usr/share/doc/buninu-linux/chvt.md +34 -0
  75. package/initramfs/usr/share/doc/buninu-linux/dhclient.md +82 -0
  76. package/initramfs/usr/share/doc/buninu-linux/ping.md +91 -0
  77. package/initramfs/usr/share/doc/buninu-linux/xdg-open.md +43 -0
  78. package/package.json +2 -2
  79. package/scripts/arch.js +7 -5
  80. package/scripts/arch.sh +5 -5
  81. package/scripts/build.js +16 -3
  82. package/scripts/fetch-gpu.js +105 -0
  83. package/scripts/fetch.js +11 -1
  84. package/scripts/gpu-firmware.json +22 -0
  85. package/scripts/modules.js +5 -1
  86. package/scripts/npm-packages.md +17 -17
  87. package/test/bunterm-fps.test.js +17 -0
  88. package/test/bunterm-keyboard.test.js +116 -0
  89. package/test/bunterm-next-vt.test.js +9 -0
  90. package/test/bunterm-raw-protocol.test.js +19 -0
  91. package/test/bunterm-renderer.test.js +158 -0
  92. package/test/bunterm-selection.test.js +38 -0
  93. package/test/bunterm-vt-menu.test.js +178 -0
  94. package/test/chroot-bind.test.js +40 -2
  95. package/test/chvt.test.js +46 -0
  96. package/test/dhcp-start.test.js +67 -0
  97. package/test/dhcp.test.js +99 -0
  98. package/test/fbdev-sync.test.js +33 -0
  99. package/test/fetch-npm.test.js +1 -1
  100. package/test/gpu.test.js +155 -0
  101. package/test/image-size.test.js +17 -0
  102. package/test/libc.test.js +41 -0
  103. package/test/manual-bunterm-image-paths.js +31 -0
  104. package/test/mount-libc-lifetime.test.js +50 -0
  105. package/test/no-gpu.test.js +43 -0
  106. package/test/ping.test.js +80 -0
  107. package/test/readme-cli.test.js +29 -0
  108. package/test/stage-npm.test.js +11 -4
  109. 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.56 as packaged by Alpine Linux 3.24 from the `linux-lts` aport.
143
- The default build uses package `linux-virt`, version 6.18.56-r0.
144
- `--linux-lts` and `--real` use package `linux-lts`, version 6.18.56-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.56.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.56-r0 (the same for both architectures):
152
- https://gitlab.alpinelinux.org/alpine/aports/-/blob/efc8ddbb20c827d2bd8223c19a2625e754e5cb3c/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.56-r0.apk
155
- SHA-256 `755deb045cfeb8c2bcaa2b2febe01ab2101d747921e64d4cd54d0312321e8d5d`
156
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/x86_64/linux-lts-6.18.56-r0.apk
157
- SHA-256 `b0d8cc4d7e031b5619221e7978920d051bf1dd1e335f6d05d03964b2285fc3b4`
158
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-virt-6.18.56-r0.apk
159
- SHA-256 `e3839bfd751ff0a4421484f712b9b29efb514024523736a0ef62521521571b12`
160
- https://dl-cdn.alpinelinux.org/alpine/v3.24/main/aarch64/linux-lts-6.18.56-r0.apk
161
- SHA-256 `795bcd49840be7f4ff9566f5f669201bd41202376a455b720a98eb814f0e72f8`
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 dc99c86bb8e58cb4eda5f01eac44c4d972105945a46dfe76a9e86e8529915c72
167
- failover.ko ddf94fe8a89b24e839f21866f828adc3eb91e62fa46dd977c74d7c2b6f92fe21
168
- net_failover.ko fb710ef0450417dea2f6dede919d14f5a4a94b1be73f338cfe2ed05e32f0cc30
169
- virtio_net.ko 2fb98ab7d06cfb7a1e1a07dcc5098da44316360097d75e288a30ad4855c449f7
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 e893ce0f7aecbdf2dcf012659ec5a0b35740780ae5c3af5ad188029f5cd4aa8f
176
- failover.ko 59e4e4808dca2d18d849c2da850e4ea659485007b09a690c7e57fb0e623cd1df
177
- net_failover.ko 20dd06a6f6f1528079a438630d741f125d11cc9bae58d618e0e6381f8bff6f5c
178
- virtio_net.ko 39bcd12bfc3149351fa226dabdbb1f82137c53f3b1ccbacbf30661bf8ff99ad4
179
- virtio_ring.ko e8fdebd89345ef39a54d3b23e6f2a57c6c4b201708b35113705b56d0fa373596
180
- virtio.ko d4ab148e31f5d4d5a1dd3c3f30bb52ba9a13e670929c9f7f1668396edf8049b7
181
- virtio_pci_legacy_dev.ko 15c35c8875b68dcaed3ac58d463d1b3f2c3e52dcf9a3840366d3fa6da7cd4dd7
182
- virtio_pci_modern_dev.ko 59bd6e34e6cf3c0ce54bab1eca1d7ac0325112280a6718613460002d2cde70d0
183
- virtio_pci.ko cc3ad8eaffa321bd58dbd663afba074dee81a5ad6f283d50cd5b1b340672430e
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 37feaa14670d4bbd3dca77d701344d2fb02e2cb139d21c5af8b2c140aab5c6fe
191
- usbcore.ko 75efddfd7d1bf996ad99f0d9be790be767ca72ebdb53a00194b449c3588faa16
192
- xhci-hcd.ko bd5772b2ba908dff16c74ae10211a1e5cfd72910d861dbdf30b8f71c5995066a
193
- xhci-pci.ko 6c688038c9b45297fce752c8f0443cd0f398f31e0b4efffd7f869325ce9884fa
194
- xhci-pci-renesas.ko aa08808c9e609fe570a1c5b90d0f0ba33f2ca2e7d84e8ccbb3a2856fe65a7b3f
195
- hid.ko 161160bf12d18a24c25aef6355e265142fc4fb2122b09923a6e184fabedf6246
196
- hid-generic.ko 6d5ae3cfd8f8b034cbe444869485ac9012376c4ca604a3cd039f0cae442005f9
197
- usbhid.ko 6ed1e4891b242f64520621d689a24828dfc24a96236c71b86d9af9361248aa5a
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 039c532c2fa8f49896a679065d79a03b8a444c9d54fa80ac9bc4d0ce1ecd0ca6
204
- failover.ko ce65a98acce98720753c4a9a7e339f6c70d22eae70b65cc1b4211543a7c6c3a3
205
- net_failover.ko 39c9222d800ae95d8a82ff797e408187411ac2ff47bec2c9d7ddbfe99537dbe3
206
- virtio_net.ko 762f8e362ae2e2bbf200ab9bc742524999e8bce12c72671bf8560fd9bb7907d5
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 de5ff95fd663a30e53765cb0794707656bb80749d77f16bbf94225d17c512447
213
- failover.ko 7f3d40067603c9916d22e9d85fea1512bd95c087aaae774e5ea70f8bacb7ae04
214
- net_failover.ko 085e4fd53a40704408b6bf914ee464d16007296fa3615940fa54688afe84466c
215
- virtio_net.ko 4ea86521819063df91cfd18191e8bc2bd2551392e8f7a33126df0aba675ee409
216
- virtio_pci_legacy_dev.ko baf8033c183819a8bccacf36677247740a5cff9eec9b403b94840af258b60b6e
217
- virtio_pci_modern_dev.ko 2905133de7c9baceff9fc6a27dba9b8469744019545c19cf1456e64f7e50f062
218
- virtio_pci.ko 3b506947c25866e08a311f124cd143bd0f501179f0b556aed7ca4d6632143d8d
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` |