penguins-eggs 10.1.1 → 25.7.10

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 (441) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +55 -60
  3. package/assets/calamares/install-system.sh +2 -1
  4. package/bootloaders/README.md +22 -0
  5. package/bootloaders/grub/x86_64-efi/acpi.mod +0 -0
  6. package/bootloaders/grub/x86_64-efi/adler32.mod +0 -0
  7. package/bootloaders/grub/x86_64-efi/affs.mod +0 -0
  8. package/bootloaders/grub/x86_64-efi/afs.mod +0 -0
  9. package/bootloaders/grub/x86_64-efi/afsplitter.mod +0 -0
  10. package/bootloaders/grub/x86_64-efi/ahci.mod +0 -0
  11. package/bootloaders/grub/x86_64-efi/all_video.mod +0 -0
  12. package/bootloaders/grub/x86_64-efi/aout.mod +0 -0
  13. package/bootloaders/grub/x86_64-efi/appleldr.mod +0 -0
  14. package/bootloaders/grub/x86_64-efi/archelp.mod +0 -0
  15. package/bootloaders/grub/x86_64-efi/at_keyboard.mod +0 -0
  16. package/bootloaders/grub/x86_64-efi/ata.mod +0 -0
  17. package/bootloaders/grub/x86_64-efi/backtrace.mod +0 -0
  18. package/bootloaders/grub/x86_64-efi/bfs.mod +0 -0
  19. package/bootloaders/grub/x86_64-efi/bitmap.mod +0 -0
  20. package/bootloaders/grub/x86_64-efi/bitmap_scale.mod +0 -0
  21. package/bootloaders/grub/x86_64-efi/blocklist.mod +0 -0
  22. package/bootloaders/grub/x86_64-efi/boot.mod +0 -0
  23. package/bootloaders/grub/x86_64-efi/bsd.mod +0 -0
  24. package/bootloaders/grub/x86_64-efi/bswap_test.mod +0 -0
  25. package/bootloaders/grub/x86_64-efi/btrfs.mod +0 -0
  26. package/bootloaders/grub/x86_64-efi/bufio.mod +0 -0
  27. package/bootloaders/grub/x86_64-efi/cat.mod +0 -0
  28. package/bootloaders/grub/x86_64-efi/cbfs.mod +0 -0
  29. package/bootloaders/grub/x86_64-efi/cbls.mod +0 -0
  30. package/bootloaders/grub/x86_64-efi/cbmemc.mod +0 -0
  31. package/bootloaders/grub/x86_64-efi/cbtable.mod +0 -0
  32. package/bootloaders/grub/x86_64-efi/cbtime.mod +0 -0
  33. package/bootloaders/grub/x86_64-efi/chain.mod +0 -0
  34. package/bootloaders/grub/x86_64-efi/cmdline_cat_test.mod +0 -0
  35. package/bootloaders/grub/x86_64-efi/cmp.mod +0 -0
  36. package/bootloaders/grub/x86_64-efi/cmp_test.mod +0 -0
  37. package/bootloaders/grub/x86_64-efi/command.lst +194 -0
  38. package/bootloaders/grub/x86_64-efi/config.h +69 -0
  39. package/bootloaders/grub/x86_64-efi/configfile.mod +0 -0
  40. package/bootloaders/grub/x86_64-efi/cpio.mod +0 -0
  41. package/bootloaders/grub/x86_64-efi/cpio_be.mod +0 -0
  42. package/bootloaders/grub/x86_64-efi/cpuid.mod +0 -0
  43. package/bootloaders/grub/x86_64-efi/crc64.mod +0 -0
  44. package/bootloaders/grub/x86_64-efi/crypto.lst +45 -0
  45. package/bootloaders/grub/x86_64-efi/crypto.mod +0 -0
  46. package/bootloaders/grub/x86_64-efi/cryptodisk.mod +0 -0
  47. package/bootloaders/grub/x86_64-efi/cs5536.mod +0 -0
  48. package/bootloaders/grub/x86_64-efi/ctz_test.mod +0 -0
  49. package/bootloaders/grub/x86_64-efi/date.mod +0 -0
  50. package/bootloaders/grub/x86_64-efi/datehook.mod +0 -0
  51. package/bootloaders/grub/x86_64-efi/datetime.mod +0 -0
  52. package/bootloaders/grub/x86_64-efi/disk.mod +0 -0
  53. package/bootloaders/grub/x86_64-efi/diskfilter.mod +0 -0
  54. package/bootloaders/grub/x86_64-efi/div.mod +0 -0
  55. package/bootloaders/grub/x86_64-efi/div_test.mod +0 -0
  56. package/bootloaders/grub/x86_64-efi/dm_nv.mod +0 -0
  57. package/bootloaders/grub/x86_64-efi/echo.mod +0 -0
  58. package/bootloaders/grub/x86_64-efi/efi_gop.mod +0 -0
  59. package/bootloaders/grub/x86_64-efi/efi_uga.mod +0 -0
  60. package/bootloaders/grub/x86_64-efi/efifwsetup.mod +0 -0
  61. package/bootloaders/grub/x86_64-efi/efinet.mod +0 -0
  62. package/bootloaders/grub/x86_64-efi/ehci.mod +0 -0
  63. package/bootloaders/grub/x86_64-efi/elf.mod +0 -0
  64. package/bootloaders/grub/x86_64-efi/eval.mod +0 -0
  65. package/bootloaders/grub/x86_64-efi/exfat.mod +0 -0
  66. package/bootloaders/grub/x86_64-efi/exfctest.mod +0 -0
  67. package/bootloaders/grub/x86_64-efi/ext2.mod +0 -0
  68. package/bootloaders/grub/x86_64-efi/extcmd.mod +0 -0
  69. package/bootloaders/grub/x86_64-efi/f2fs.mod +0 -0
  70. package/bootloaders/grub/x86_64-efi/fat.mod +0 -0
  71. package/bootloaders/grub/x86_64-efi/fdt.lst +0 -0
  72. package/bootloaders/grub/x86_64-efi/file.mod +0 -0
  73. package/bootloaders/grub/x86_64-efi/fixvideo.mod +0 -0
  74. package/bootloaders/grub/x86_64-efi/font.mod +0 -0
  75. package/bootloaders/grub/x86_64-efi/fs.lst +37 -0
  76. package/bootloaders/grub/x86_64-efi/fshelp.mod +0 -0
  77. package/bootloaders/grub/x86_64-efi/functional_test.mod +0 -0
  78. package/bootloaders/grub/x86_64-efi/gcry_arcfour.mod +0 -0
  79. package/bootloaders/grub/x86_64-efi/gcry_blowfish.mod +0 -0
  80. package/bootloaders/grub/x86_64-efi/gcry_camellia.mod +0 -0
  81. package/bootloaders/grub/x86_64-efi/gcry_cast5.mod +0 -0
  82. package/bootloaders/grub/x86_64-efi/gcry_crc.mod +0 -0
  83. package/bootloaders/grub/x86_64-efi/gcry_des.mod +0 -0
  84. package/bootloaders/grub/x86_64-efi/gcry_dsa.mod +0 -0
  85. package/bootloaders/grub/x86_64-efi/gcry_idea.mod +0 -0
  86. package/bootloaders/grub/x86_64-efi/gcry_md4.mod +0 -0
  87. package/bootloaders/grub/x86_64-efi/gcry_md5.mod +0 -0
  88. package/bootloaders/grub/x86_64-efi/gcry_rfc2268.mod +0 -0
  89. package/bootloaders/grub/x86_64-efi/gcry_rijndael.mod +0 -0
  90. package/bootloaders/grub/x86_64-efi/gcry_rmd160.mod +0 -0
  91. package/bootloaders/grub/x86_64-efi/gcry_rsa.mod +0 -0
  92. package/bootloaders/grub/x86_64-efi/gcry_seed.mod +0 -0
  93. package/bootloaders/grub/x86_64-efi/gcry_serpent.mod +0 -0
  94. package/bootloaders/grub/x86_64-efi/gcry_sha1.mod +0 -0
  95. package/bootloaders/grub/x86_64-efi/gcry_sha256.mod +0 -0
  96. package/bootloaders/grub/x86_64-efi/gcry_sha512.mod +0 -0
  97. package/bootloaders/grub/x86_64-efi/gcry_tiger.mod +0 -0
  98. package/bootloaders/grub/x86_64-efi/gcry_twofish.mod +0 -0
  99. package/bootloaders/grub/x86_64-efi/gcry_whirlpool.mod +0 -0
  100. package/bootloaders/grub/x86_64-efi/geli.mod +0 -0
  101. package/bootloaders/grub/x86_64-efi/gettext.mod +0 -0
  102. package/bootloaders/grub/x86_64-efi/gfxmenu.mod +0 -0
  103. package/bootloaders/grub/x86_64-efi/gfxterm.mod +0 -0
  104. package/bootloaders/grub/x86_64-efi/gfxterm_background.mod +0 -0
  105. package/bootloaders/grub/x86_64-efi/gfxterm_menu.mod +0 -0
  106. package/bootloaders/grub/x86_64-efi/gptsync.mod +0 -0
  107. package/bootloaders/grub/x86_64-efi/gzio.mod +0 -0
  108. package/bootloaders/grub/x86_64-efi/halt.mod +0 -0
  109. package/bootloaders/grub/x86_64-efi/hashsum.mod +0 -0
  110. package/bootloaders/grub/x86_64-efi/hdparm.mod +0 -0
  111. package/bootloaders/grub/x86_64-efi/hello.mod +0 -0
  112. package/bootloaders/grub/x86_64-efi/help.mod +0 -0
  113. package/bootloaders/grub/x86_64-efi/hexdump.mod +0 -0
  114. package/bootloaders/grub/x86_64-efi/hfs.mod +0 -0
  115. package/bootloaders/grub/x86_64-efi/hfsplus.mod +0 -0
  116. package/bootloaders/grub/x86_64-efi/hfspluscomp.mod +0 -0
  117. package/bootloaders/grub/x86_64-efi/http.mod +0 -0
  118. package/bootloaders/grub/x86_64-efi/iorw.mod +0 -0
  119. package/bootloaders/grub/x86_64-efi/iso9660.mod +0 -0
  120. package/bootloaders/grub/x86_64-efi/jfs.mod +0 -0
  121. package/bootloaders/grub/x86_64-efi/jpeg.mod +0 -0
  122. package/bootloaders/grub/x86_64-efi/json.mod +0 -0
  123. package/bootloaders/grub/x86_64-efi/kernel.img +0 -0
  124. package/bootloaders/grub/x86_64-efi/keylayouts.mod +0 -0
  125. package/bootloaders/grub/x86_64-efi/keystatus.mod +0 -0
  126. package/bootloaders/grub/x86_64-efi/ldm.mod +0 -0
  127. package/bootloaders/grub/x86_64-efi/legacy_password_test.mod +0 -0
  128. package/bootloaders/grub/x86_64-efi/legacycfg.mod +0 -0
  129. package/bootloaders/grub/x86_64-efi/linux.mod +0 -0
  130. package/bootloaders/grub/x86_64-efi/linux16.mod +0 -0
  131. package/bootloaders/grub/x86_64-efi/linuxefi.mod +0 -0
  132. package/bootloaders/grub/x86_64-efi/loadbios.mod +0 -0
  133. package/bootloaders/grub/x86_64-efi/loadenv.mod +0 -0
  134. package/bootloaders/grub/x86_64-efi/loopback.mod +0 -0
  135. package/bootloaders/grub/x86_64-efi/ls.mod +0 -0
  136. package/bootloaders/grub/x86_64-efi/lsacpi.mod +0 -0
  137. package/bootloaders/grub/x86_64-efi/lsefi.mod +0 -0
  138. package/bootloaders/grub/x86_64-efi/lsefimmap.mod +0 -0
  139. package/bootloaders/grub/x86_64-efi/lsefisystab.mod +0 -0
  140. package/bootloaders/grub/x86_64-efi/lsmmap.mod +0 -0
  141. package/bootloaders/grub/x86_64-efi/lspci.mod +0 -0
  142. package/bootloaders/grub/x86_64-efi/lssal.mod +0 -0
  143. package/bootloaders/grub/x86_64-efi/luks.mod +0 -0
  144. package/bootloaders/grub/x86_64-efi/luks2.mod +0 -0
  145. package/bootloaders/grub/x86_64-efi/lvm.mod +0 -0
  146. package/bootloaders/grub/x86_64-efi/lzopio.mod +0 -0
  147. package/bootloaders/grub/x86_64-efi/macbless.mod +0 -0
  148. package/bootloaders/grub/x86_64-efi/macho.mod +0 -0
  149. package/bootloaders/grub/x86_64-efi/mdraid09.mod +0 -0
  150. package/bootloaders/grub/x86_64-efi/mdraid09_be.mod +0 -0
  151. package/bootloaders/grub/x86_64-efi/mdraid1x.mod +0 -0
  152. package/bootloaders/grub/x86_64-efi/memdisk.mod +0 -0
  153. package/bootloaders/grub/x86_64-efi/memrw.mod +0 -0
  154. package/bootloaders/grub/x86_64-efi/minicmd.mod +0 -0
  155. package/bootloaders/grub/x86_64-efi/minix.mod +0 -0
  156. package/bootloaders/grub/x86_64-efi/minix2.mod +0 -0
  157. package/bootloaders/grub/x86_64-efi/minix2_be.mod +0 -0
  158. package/bootloaders/grub/x86_64-efi/minix3.mod +0 -0
  159. package/bootloaders/grub/x86_64-efi/minix3_be.mod +0 -0
  160. package/bootloaders/grub/x86_64-efi/minix_be.mod +0 -0
  161. package/bootloaders/grub/x86_64-efi/mmap.mod +0 -0
  162. package/bootloaders/grub/x86_64-efi/moddep.lst +267 -0
  163. package/bootloaders/grub/x86_64-efi/modinfo.sh +40 -0
  164. package/bootloaders/grub/x86_64-efi/monolithic/gcdx64.efi +0 -0
  165. package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64-installer.efi +0 -0
  166. package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64.efi +0 -0
  167. package/bootloaders/grub/x86_64-efi/monolithic/grubx64.efi +0 -0
  168. package/bootloaders/grub/x86_64-efi/morse.mod +0 -0
  169. package/bootloaders/grub/x86_64-efi/mpi.mod +0 -0
  170. package/bootloaders/grub/x86_64-efi/msdospart.mod +0 -0
  171. package/bootloaders/grub/x86_64-efi/mul_test.mod +0 -0
  172. package/bootloaders/grub/x86_64-efi/multiboot.mod +0 -0
  173. package/bootloaders/grub/x86_64-efi/multiboot2.mod +0 -0
  174. package/bootloaders/grub/x86_64-efi/nativedisk.mod +0 -0
  175. package/bootloaders/grub/x86_64-efi/net.mod +0 -0
  176. package/bootloaders/grub/x86_64-efi/newc.mod +0 -0
  177. package/bootloaders/grub/x86_64-efi/nilfs2.mod +0 -0
  178. package/bootloaders/grub/x86_64-efi/normal.mod +0 -0
  179. package/bootloaders/grub/x86_64-efi/ntfs.mod +0 -0
  180. package/bootloaders/grub/x86_64-efi/ntfscomp.mod +0 -0
  181. package/bootloaders/grub/x86_64-efi/odc.mod +0 -0
  182. package/bootloaders/grub/x86_64-efi/offsetio.mod +0 -0
  183. package/bootloaders/grub/x86_64-efi/ohci.mod +0 -0
  184. package/bootloaders/grub/x86_64-efi/part_acorn.mod +0 -0
  185. package/bootloaders/grub/x86_64-efi/part_amiga.mod +0 -0
  186. package/bootloaders/grub/x86_64-efi/part_apple.mod +0 -0
  187. package/bootloaders/grub/x86_64-efi/part_bsd.mod +0 -0
  188. package/bootloaders/grub/x86_64-efi/part_dfly.mod +0 -0
  189. package/bootloaders/grub/x86_64-efi/part_dvh.mod +0 -0
  190. package/bootloaders/grub/x86_64-efi/part_gpt.mod +0 -0
  191. package/bootloaders/grub/x86_64-efi/part_msdos.mod +0 -0
  192. package/bootloaders/grub/x86_64-efi/part_plan.mod +0 -0
  193. package/bootloaders/grub/x86_64-efi/part_sun.mod +0 -0
  194. package/bootloaders/grub/x86_64-efi/part_sunpc.mod +0 -0
  195. package/bootloaders/grub/x86_64-efi/partmap.lst +11 -0
  196. package/bootloaders/grub/x86_64-efi/parttool.lst +1 -0
  197. package/bootloaders/grub/x86_64-efi/parttool.mod +0 -0
  198. package/bootloaders/grub/x86_64-efi/password.mod +0 -0
  199. package/bootloaders/grub/x86_64-efi/password_pbkdf2.mod +0 -0
  200. package/bootloaders/grub/x86_64-efi/pata.mod +0 -0
  201. package/bootloaders/grub/x86_64-efi/pbkdf2.mod +0 -0
  202. package/bootloaders/grub/x86_64-efi/pbkdf2_test.mod +0 -0
  203. package/bootloaders/grub/x86_64-efi/pcidump.mod +0 -0
  204. package/bootloaders/grub/x86_64-efi/pgp.mod +0 -0
  205. package/bootloaders/grub/x86_64-efi/play.mod +0 -0
  206. package/bootloaders/grub/x86_64-efi/png.mod +0 -0
  207. package/bootloaders/grub/x86_64-efi/priority_queue.mod +0 -0
  208. package/bootloaders/grub/x86_64-efi/probe.mod +0 -0
  209. package/bootloaders/grub/x86_64-efi/procfs.mod +0 -0
  210. package/bootloaders/grub/x86_64-efi/progress.mod +0 -0
  211. package/bootloaders/grub/x86_64-efi/raid5rec.mod +0 -0
  212. package/bootloaders/grub/x86_64-efi/raid6rec.mod +0 -0
  213. package/bootloaders/grub/x86_64-efi/random.mod +0 -0
  214. package/bootloaders/grub/x86_64-efi/rdmsr.mod +0 -0
  215. package/bootloaders/grub/x86_64-efi/read.mod +0 -0
  216. package/bootloaders/grub/x86_64-efi/reboot.mod +0 -0
  217. package/bootloaders/grub/x86_64-efi/regexp.mod +0 -0
  218. package/bootloaders/grub/x86_64-efi/reiserfs.mod +0 -0
  219. package/bootloaders/grub/x86_64-efi/relocator.mod +0 -0
  220. package/bootloaders/grub/x86_64-efi/romfs.mod +0 -0
  221. package/bootloaders/grub/x86_64-efi/scsi.mod +0 -0
  222. package/bootloaders/grub/x86_64-efi/search.mod +0 -0
  223. package/bootloaders/grub/x86_64-efi/search_fs_file.mod +0 -0
  224. package/bootloaders/grub/x86_64-efi/search_fs_uuid.mod +0 -0
  225. package/bootloaders/grub/x86_64-efi/search_label.mod +0 -0
  226. package/bootloaders/grub/x86_64-efi/serial.mod +0 -0
  227. package/bootloaders/grub/x86_64-efi/setjmp.mod +0 -0
  228. package/bootloaders/grub/x86_64-efi/setjmp_test.mod +0 -0
  229. package/bootloaders/grub/x86_64-efi/setpci.mod +0 -0
  230. package/bootloaders/grub/x86_64-efi/sfs.mod +0 -0
  231. package/bootloaders/grub/x86_64-efi/shift_test.mod +0 -0
  232. package/bootloaders/grub/x86_64-efi/signature_test.mod +0 -0
  233. package/bootloaders/grub/x86_64-efi/sleep.mod +0 -0
  234. package/bootloaders/grub/x86_64-efi/sleep_test.mod +0 -0
  235. package/bootloaders/grub/x86_64-efi/smbios.mod +0 -0
  236. package/bootloaders/grub/x86_64-efi/spkmodem.mod +0 -0
  237. package/bootloaders/grub/x86_64-efi/squash4.mod +0 -0
  238. package/bootloaders/grub/x86_64-efi/strtoull_test.mod +0 -0
  239. package/bootloaders/grub/x86_64-efi/syslinuxcfg.mod +0 -0
  240. package/bootloaders/grub/x86_64-efi/tar.mod +0 -0
  241. package/bootloaders/grub/x86_64-efi/terminal.lst +9 -0
  242. package/bootloaders/grub/x86_64-efi/terminal.mod +0 -0
  243. package/bootloaders/grub/x86_64-efi/terminfo.mod +0 -0
  244. package/bootloaders/grub/x86_64-efi/test.mod +0 -0
  245. package/bootloaders/grub/x86_64-efi/test_blockarg.mod +0 -0
  246. package/bootloaders/grub/x86_64-efi/testload.mod +0 -0
  247. package/bootloaders/grub/x86_64-efi/testspeed.mod +0 -0
  248. package/bootloaders/grub/x86_64-efi/tftp.mod +0 -0
  249. package/bootloaders/grub/x86_64-efi/tga.mod +0 -0
  250. package/bootloaders/grub/x86_64-efi/time.mod +0 -0
  251. package/bootloaders/grub/x86_64-efi/tpm.mod +0 -0
  252. package/bootloaders/grub/x86_64-efi/tr.mod +0 -0
  253. package/bootloaders/grub/x86_64-efi/trig.mod +0 -0
  254. package/bootloaders/grub/x86_64-efi/true.mod +0 -0
  255. package/bootloaders/grub/x86_64-efi/udf.mod +0 -0
  256. package/bootloaders/grub/x86_64-efi/ufs1.mod +0 -0
  257. package/bootloaders/grub/x86_64-efi/ufs1_be.mod +0 -0
  258. package/bootloaders/grub/x86_64-efi/ufs2.mod +0 -0
  259. package/bootloaders/grub/x86_64-efi/uhci.mod +0 -0
  260. package/bootloaders/grub/x86_64-efi/usb.mod +0 -0
  261. package/bootloaders/grub/x86_64-efi/usb_keyboard.mod +0 -0
  262. package/bootloaders/grub/x86_64-efi/usbms.mod +0 -0
  263. package/bootloaders/grub/x86_64-efi/usbserial_common.mod +0 -0
  264. package/bootloaders/grub/x86_64-efi/usbserial_ftdi.mod +0 -0
  265. package/bootloaders/grub/x86_64-efi/usbserial_pl2303.mod +0 -0
  266. package/bootloaders/grub/x86_64-efi/usbserial_usbdebug.mod +0 -0
  267. package/bootloaders/grub/x86_64-efi/usbtest.mod +0 -0
  268. package/bootloaders/grub/x86_64-efi/video.lst +4 -0
  269. package/bootloaders/grub/x86_64-efi/video.mod +0 -0
  270. package/bootloaders/grub/x86_64-efi/video_bochs.mod +0 -0
  271. package/bootloaders/grub/x86_64-efi/video_cirrus.mod +0 -0
  272. package/bootloaders/grub/x86_64-efi/video_colors.mod +0 -0
  273. package/bootloaders/grub/x86_64-efi/video_fb.mod +0 -0
  274. package/bootloaders/grub/x86_64-efi/videoinfo.mod +0 -0
  275. package/bootloaders/grub/x86_64-efi/videotest.mod +0 -0
  276. package/bootloaders/grub/x86_64-efi/videotest_checksum.mod +0 -0
  277. package/bootloaders/grub/x86_64-efi/wrmsr.mod +0 -0
  278. package/bootloaders/grub/x86_64-efi/xfs.mod +0 -0
  279. package/bootloaders/grub/x86_64-efi/xnu.mod +0 -0
  280. package/bootloaders/grub/x86_64-efi/xnu_uuid.mod +0 -0
  281. package/bootloaders/grub/x86_64-efi/xnu_uuid_test.mod +0 -0
  282. package/bootloaders/grub/x86_64-efi/xzio.mod +0 -0
  283. package/bootloaders/grub/x86_64-efi/zfs.mod +0 -0
  284. package/bootloaders/grub/x86_64-efi/zfscrypt.mod +0 -0
  285. package/bootloaders/grub/x86_64-efi/zfsinfo.mod +0 -0
  286. package/bootloaders/grub/x86_64-efi/zstd.mod +0 -0
  287. package/bootloaders/grubnetx64.efi.signed +0 -0
  288. package/bootloaders/grubx64.efi +0 -0
  289. package/bootloaders/grubx64.efi.signed +0 -0
  290. package/bootloaders/ipxe.pxe +0 -0
  291. package/bootloaders/shimx64.efi +0 -0
  292. package/bootloaders/shimx64.efi.signed +0 -0
  293. package/bootloaders/undionly.kpxe +0 -0
  294. package/conf/derivatives.yaml +5 -1
  295. package/conf/distros/alpine/calamares/modules/packages.yml +1 -1
  296. package/conf/distros/alpine/calamares/settings.yml +16 -29
  297. package/conf/distros/buster/calamares/modules/fstab.yml +1 -1
  298. package/conf/distros/buster/calamares/modules/mount.yml +4 -12
  299. package/conf/distros/fedora/calamares/modules/bootloader.yml +46 -17
  300. package/conf/distros/fedora/calamares/modules/fstab.yml +36 -11
  301. package/conf/distros/fedora/calamares/modules/mount.yml +101 -39
  302. package/conf/distros/fedora/calamares/modules/partition.yml +173 -23
  303. package/conf/distros/fedora/calamares/modules/users.yml +7 -9
  304. package/conf/distros/openmamba/calamares/settings.yml +0 -2
  305. package/conf/distros/opensuse/calamares/modules/bootloader.yml +46 -17
  306. package/conf/distros/opensuse/calamares/modules/displaymanager.yml +9 -5
  307. package/conf/distros/opensuse/calamares/modules/finished.yml +1 -1
  308. package/conf/distros/opensuse/calamares/modules/fstab.yml +36 -11
  309. package/conf/distros/opensuse/calamares/modules/grubcfg.yml +51 -0
  310. package/conf/distros/opensuse/calamares/modules/mount.yml +104 -39
  311. package/conf/distros/opensuse/calamares/modules/packages.yml +3 -3
  312. package/conf/distros/opensuse/calamares/modules/partition.yml +30 -237
  313. package/conf/distros/opensuse/calamares/modules/removeuser.yml +1 -14
  314. package/conf/distros/opensuse/calamares/modules/unpackfs.yml +0 -1
  315. package/conf/distros/opensuse/calamares/modules/users.yml +296 -16
  316. package/conf/distros/opensuse/calamares/modules/welcome.yml +91 -16
  317. package/conf/distros/opensuse/calamares/settings.yml +34 -120
  318. package/conf/distros/opensuse/calamares/zstd2lzo.sh +2 -0
  319. package/conf/distros/rolling/calamares/modules/shellprocess_sync.yml +5 -0
  320. package/conf/distros/rolling/calamares/settings.yml +4 -5
  321. package/dist/classes/bleach.d.ts +5 -0
  322. package/dist/classes/bleach.js +13 -0
  323. package/dist/classes/cli-autologin.js +14 -9
  324. package/dist/classes/daddy.js +9 -1
  325. package/dist/classes/distro.js +0 -9
  326. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  327. package/dist/classes/incubation/incubator.d/fedora.js +79 -0
  328. package/dist/classes/incubation/incubator.d/opensuse.js +4 -6
  329. package/dist/classes/incubation/incubator.d/rolling.js +1 -3
  330. package/dist/classes/incubation/incubator.js +6 -11
  331. package/dist/classes/ovary.d/fertilization.js +1 -0
  332. package/dist/classes/ovary.d/initrd.js +39 -10
  333. package/dist/classes/ovary.d/make-dot-disk.js +21 -11
  334. package/dist/classes/ovary.d/make-efi.d.ts +5 -1
  335. package/dist/classes/ovary.d/make-efi.js +60 -118
  336. package/dist/classes/ovary.d/merged.d.ts +1 -1
  337. package/dist/classes/ovary.d/merged.js +3 -2
  338. package/dist/classes/ovary.d/produce.js +7 -6
  339. package/dist/classes/ovary.d/syslinux.js +2 -1
  340. package/dist/classes/ovary.d/user-create-live.js +15 -11
  341. package/dist/classes/ovary.d.ts +2 -1
  342. package/dist/classes/ovary.js +2 -1
  343. package/dist/classes/pacman.d/alpine.js +12 -7
  344. package/dist/classes/pacman.d/opensuse.js +4 -3
  345. package/dist/classes/pacman.js +3 -12
  346. package/dist/classes/pxe.d.ts +21 -18
  347. package/dist/classes/pxe.js +194 -257
  348. package/dist/classes/tailor.js +69 -33
  349. package/dist/classes/utils.d/filesystem.js +2 -0
  350. package/dist/classes/utils.d/kernel.js +12 -2
  351. package/dist/classes/utils.d/snapshot.js +1 -1
  352. package/dist/classes/utils.d/system.js +2 -2
  353. package/dist/commands/cuckoo.js +4 -6
  354. package/dist/commands/export/pkg.js +28 -12
  355. package/dist/commands/wardrobe/wear.js +1 -1
  356. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  357. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  358. package/dist/dhcpd-proxy/index.d.ts +4 -0
  359. package/dist/dhcpd-proxy/index.js +4 -0
  360. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  361. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  362. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  363. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  364. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  365. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  366. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  367. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  368. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  369. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  370. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  371. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  372. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  373. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  374. package/dist/interfaces/i-pxe.d.ts +16 -16
  375. package/dist/krill/classes/sequence.d/add_user.d.ts +3 -3
  376. package/dist/krill/classes/sequence.d/add_user.js +34 -29
  377. package/dist/krill/classes/sequence.d/bootloader_config.js +3 -26
  378. package/dist/krill/classes/sequence.d/fstab.js +10 -22
  379. package/dist/krill/classes/sequence.d/grubcfg.js +5 -3
  380. package/dist/krill/classes/sequence.d/mkfs.d.ts +1 -1
  381. package/dist/krill/classes/sequence.d/mkfs.js +10 -11
  382. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +3 -4
  383. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +31 -16
  384. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -1
  385. package/dist/krill/lib/select_filesystem_type.js +2 -1
  386. package/dist/lib/utils.d.ts +2 -25
  387. package/dist/lib/utils.js +4 -27
  388. package/dist/penguins-eggs_25.7.10-1-linux-x64.tar.gz +0 -0
  389. package/dracut/README.md +14 -0
  390. package/dracut/dracut.conf +3 -3
  391. package/dracut/dracut.conf.d/10-persistent_policy.conf +1 -0
  392. package/dracut/dracut.conf.d/{01-live.conf → 50-live.conf} +3 -2
  393. package/mkinitcpio/arch/live.conf +3 -2
  394. package/mkinitcpio/manjaro/live.conf +1 -1
  395. package/mkinitfs/README.md +10 -49
  396. package/mkinitfs/live.conf +2 -0
  397. package/package.json +30 -28
  398. package/pods/ci/minimal/opensuse-container2host.sh +1 -1
  399. package/scripts/99clean +42 -0
  400. package/conf/distros/aldos/calamares/modules/bootloader.yml +0 -85
  401. package/conf/distros/aldos/calamares/modules/displaymanager.yml +0 -22
  402. package/conf/distros/aldos/calamares/modules/finished.yml +0 -5
  403. package/conf/distros/aldos/calamares/modules/fstab.yml +0 -12
  404. package/conf/distros/aldos/calamares/modules/locale.yml +0 -97
  405. package/conf/distros/aldos/calamares/modules/luksopenswaphookcfg.yml +0 -5
  406. package/conf/distros/aldos/calamares/modules/machineid.yml +0 -17
  407. package/conf/distros/aldos/calamares/modules/mount.yml +0 -56
  408. package/conf/distros/aldos/calamares/modules/packages.yml +0 -6
  409. package/conf/distros/aldos/calamares/modules/partition.yml +0 -242
  410. package/conf/distros/aldos/calamares/modules/removeuser.yml +0 -15
  411. package/conf/distros/aldos/calamares/modules/unpackfs.yml +0 -6
  412. package/conf/distros/aldos/calamares/modules/users.yml +0 -19
  413. package/conf/distros/aldos/calamares/modules/welcome.yml +0 -19
  414. package/conf/distros/aldos/calamares/settings.yml +0 -124
  415. package/conf/distros/fedora/calamares/modules/bootloader.conf +0 -85
  416. package/conf/distros/opensuse/calamares/modules/bootloader.conf +0 -86
  417. package/conf/distros/opensuse/calamares/modules/locale.yml +0 -98
  418. package/conf/distros/opensuse/calamares/modules/luksopenswaphookcfg.yml +0 -5
  419. package/conf/distros/opensuse/calamares/modules/machineid.yml +0 -17
  420. package/conf/distros/rolling/calamares/modules/shellprocess_removelink.yml +0 -8
  421. package/dist/index_old.d.ts +0 -8
  422. package/dist/index_old.js +0 -8
  423. package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
  424. package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +0 -1
  425. package/dracut/sidecar.sh +0 -19
  426. package/ipxe/ipxe.efi +0 -0
  427. package/mkinitfs/initramfs-init.in +0 -1051
  428. package/mkinitfs/sidecar.sh +0 -52
  429. /package/{syslinux → bootloaders/syslinux}/README.md +0 -0
  430. /package/{syslinux → bootloaders/syslinux}/chain.c32 +0 -0
  431. /package/{syslinux → bootloaders/syslinux}/isohdpfx.bin +0 -0
  432. /package/{syslinux → bootloaders/syslinux}/isolinux.bin +0 -0
  433. /package/{syslinux → bootloaders/syslinux}/ldlinux.c32 +0 -0
  434. /package/{syslinux → bootloaders/syslinux}/libcom32.c32 +0 -0
  435. /package/{syslinux → bootloaders/syslinux}/libutil.c32 +0 -0
  436. /package/{syslinux → bootloaders/syslinux}/lpxelinux.0 +0 -0
  437. /package/{syslinux → bootloaders/syslinux}/memdisk +0 -0
  438. /package/{syslinux → bootloaders/syslinux}/pxelinux.0 +0 -0
  439. /package/{syslinux → bootloaders/syslinux}/vesamenu.c32 +0 -0
  440. /package/dist/classes/ovary.d/{xorriso-commend.d.ts → xorriso-command.d.ts} +0 -0
  441. /package/dist/classes/ovary.d/{xorriso-commend.js → xorriso-command.js} +0 -0
@@ -0,0 +1,255 @@
1
+ /**
2
+ * util.ts
3
+ *
4
+ * used in dhcpd
5
+ *
6
+ */
7
+ import sprintf from "./sprintf.js";
8
+ /**
9
+ *
10
+ * @param _buffer
11
+ * @param byteArray
12
+ * @param offset
13
+ * @returns
14
+ */
15
+ export const writeBytes = (_buffer, byteArray, offset) => {
16
+ let _bytesWritten = 0;
17
+ let i = 0;
18
+ while (i < byteArray.length) {
19
+ _buffer[offset++] = byteArray[i];
20
+ i++;
21
+ }
22
+ if (offset > _bytesWritten) {
23
+ _bytesWritten = offset;
24
+ }
25
+ return this;
26
+ };
27
+ /**
28
+ *
29
+ * @param _buffer
30
+ * @param integer
31
+ * @param offset
32
+ * @returns
33
+ */
34
+ export function writeInt32(_buffer, integer, offset) {
35
+ _buffer[offset++] = integer >>> 24;
36
+ _buffer[offset++] = integer >>> 16;
37
+ _buffer[offset++] = integer >>> 8;
38
+ _buffer[offset++] = integer;
39
+ return offset;
40
+ }
41
+ /**
42
+ *
43
+ * @param _buffer
44
+ * @param integer
45
+ * @param offset
46
+ * @returns
47
+ */
48
+ export function writeInt16(_buffer, integer, offset) {
49
+ _buffer[offset++] = integer >>> 8;
50
+ _buffer[offset++] = integer;
51
+ return offset;
52
+ }
53
+ /**
54
+ *
55
+ * @param _buffer
56
+ * @param integer
57
+ * @param offset
58
+ * @returns
59
+ */
60
+ export function writeInt8(_buffer, integer, offset) {
61
+ _buffer[offset++] = integer;
62
+ return offset;
63
+ }
64
+ /**
65
+ *
66
+ * @param _buffer
67
+ * @param length
68
+ * @param copy
69
+ * @param offset
70
+ * @returns
71
+ */
72
+ export function readBytes(_buffer, length, copy, offset) {
73
+ let bufCopy;
74
+ if (copy) {
75
+ bufCopy = new Buffer(length);
76
+ _buffer.copy(bufCopy, 0, offset, (offset += length));
77
+ return bufCopy;
78
+ }
79
+ else {
80
+ return _buffer.slice(offset, (offset += length));
81
+ }
82
+ }
83
+ /**
84
+ *
85
+ * @param _buffer
86
+ * @param offset
87
+ * @returns
88
+ */
89
+ export function readInt32(_buffer, offset) {
90
+ return ((_buffer[offset++] << 24) |
91
+ (_buffer[offset++] << 16) |
92
+ (_buffer[offset++] << 8) |
93
+ _buffer[offset++]);
94
+ }
95
+ /**
96
+ *
97
+ * @param _buffer
98
+ * @param offset
99
+ * @returns
100
+ */
101
+ export function readInt16(_buffer, offset) {
102
+ return (_buffer[offset++] << 8) | _buffer[offset++];
103
+ }
104
+ /**
105
+ *
106
+ * @param _buffer
107
+ * @param offset
108
+ * @returns
109
+ */
110
+ export function readInt8(_buffer, offset) {
111
+ return _buffer[offset++];
112
+ }
113
+ /**
114
+ *
115
+ * @param buf
116
+ * @returns
117
+ */
118
+ export function readString(buf) {
119
+ let j, s;
120
+ s = "";
121
+ j = 0;
122
+ while (j < buf.length) {
123
+ s += String.fromCharCode(buf[j]);
124
+ j++;
125
+ }
126
+ return s;
127
+ }
128
+ /**
129
+ *
130
+ * @param buf
131
+ * @returns
132
+ */
133
+ export function readHex(buf) {
134
+ let j, s;
135
+ s = "";
136
+ j = 0;
137
+ while (j < buf.length) {
138
+ // check was b not buf
139
+ s += sprintf("%02x", buf[j]);
140
+ j++;
141
+ }
142
+ return s;
143
+ }
144
+ /**
145
+ *
146
+ * @param buf
147
+ * @returns
148
+ */
149
+ export function readHexAddress(buf) {
150
+ let j, s;
151
+ s = [];
152
+ j = 0;
153
+ while (j < buf.length) {
154
+ s.push(sprintf("%02d", buf[j]));
155
+ j++;
156
+ }
157
+ return s.join(":");
158
+ }
159
+ /**
160
+ *
161
+ * @param buffer
162
+ * @param offset
163
+ * @returns
164
+ */
165
+ export function readIp(buffer, offset) {
166
+ let stop;
167
+ if (offset === null) {
168
+ offset = 0;
169
+ }
170
+ if (offset > buffer.length) {
171
+ return undefined;
172
+ }
173
+ if (0 === buffer.readUInt8(offset)) {
174
+ return undefined;
175
+ }
176
+ else {
177
+ stop = offset + 4;
178
+ return (function () {
179
+ const _results = [];
180
+ while (offset < stop) {
181
+ _results.push(buffer.readUInt8(offset++));
182
+ }
183
+ return _results;
184
+ })().join(".");
185
+ }
186
+ }
187
+ /**
188
+ *
189
+ * @param buffer
190
+ * @returns
191
+ */
192
+ export function readMacAddress(buffer) {
193
+ let byte;
194
+ return (function () {
195
+ let _i, _len;
196
+ const _results = [];
197
+ for (_i = 0, _len = buffer.length; _i < _len; _i++) {
198
+ byte = buffer[_i];
199
+ _results.push((byte + 0x100).toString(16).substr(-2));
200
+ }
201
+ return _results;
202
+ })().join(":");
203
+ }
204
+ /**
205
+ *
206
+ * @param buf
207
+ * @param num
208
+ * @param offsetHours
209
+ * @param offset
210
+ * @returns
211
+ */
212
+ export function writeTimeOffset(buf, num, offsetHours, offset) {
213
+ buf[offset++] = 0;
214
+ return offset;
215
+ }
216
+ /**
217
+ *
218
+ * @param buf
219
+ * @param num
220
+ * @param ip
221
+ * @param offset
222
+ * @returns
223
+ */
224
+ export function writeIp(buf, num, ip, offset) {
225
+ buf[offset++] = num;
226
+ buf[offset++] = 4;
227
+ if ((typeof ip !== "string" && !(ip instanceof String)) ||
228
+ ip.indexOf(".") === -1) {
229
+ ip = "0.0.0.0";
230
+ }
231
+ ip.split(".").forEach(function (item) {
232
+ buf[offset++] = item;
233
+ });
234
+ return offset;
235
+ }
236
+ /**
237
+ *
238
+ * @param buf
239
+ * @param num
240
+ * @param hostname
241
+ * @param offset
242
+ * @returns
243
+ */
244
+ export function writeString(buf, num, hostname, offset) {
245
+ let charArr;
246
+ charArr = hostname.split("");
247
+ buf[offset++] = num;
248
+ buf[offset++] = charArr.length;
249
+ charArr.forEach(function (chr) {
250
+ // charCodeAt(index: number): number
251
+ //buf[offset++] = chr.charCodeAt() original
252
+ buf[offset++] = chr.charCodeAt(0);
253
+ });
254
+ return offset;
255
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * simple-proxy.ts
3
+ * Un proxy DHCP minimale che agisce come un mini-server DHCP completo
4
+ * solo per i client PXE, per aggirare le protezioni di rete.
5
+ */
6
+ import type { IDhcpOptions } from '../dhcpd-proxy//interfaces/i-pxe.js';
7
+ /**
8
+ * La nostra unica funzione. Prende le opzioni e avvia il proxy.
9
+ * @param options Le opzioni di configurazione PXE
10
+ */
11
+ export declare function startSimpleProxy(options: IDhcpOptions): void;
@@ -0,0 +1,118 @@
1
+ /**
2
+ * simple-proxy.ts
3
+ * Un proxy DHCP minimale che agisce come un mini-server DHCP completo
4
+ * solo per i client PXE, per aggirare le protezioni di rete.
5
+ */
6
+ import { createSocket } from 'dgram';
7
+ import ansis from 'ansis';
8
+ import { Packet } from '../dhcpd-proxy/classes/packet.js';
9
+ import { DhcpMessageType } from '../dhcpd-proxy//lib/packet/message-types.js';
10
+ // Un semplice Map in memoria per tracciare gli IP offerti
11
+ const offeredIPs = new Map();
12
+ /**
13
+ * La nostra unica funzione. Prende le opzioni e avvia il proxy.
14
+ * @param options Le opzioni di configurazione PXE
15
+ */
16
+ export function startSimpleProxy(options) {
17
+ const socket = createSocket({ type: 'udp4', reuseAddr: true });
18
+ socket.on('error', (err) => {
19
+ console.error(ansis.red.bold(`ERRORE SOCKET: ${err.stack}`));
20
+ socket.close();
21
+ });
22
+ socket.on('listening', () => {
23
+ const address = socket.address();
24
+ socket.setBroadcast(true);
25
+ console.log(ansis.green.inverse(`\n Proxy DHCP listening su ${address.address}:${address.port}. CTRL-C to end!\n`));
26
+ });
27
+ socket.on('message', (buffer, rinfo) => {
28
+ try {
29
+ const packet = Packet.fromBuffer(buffer);
30
+ packet.remote = rinfo;
31
+ const messageType = packet.options[53] || 0;
32
+ if (packet.op === 1 && messageType === DhcpMessageType.DHCPDISCOVER) {
33
+ handleDiscover(packet, options);
34
+ }
35
+ else if (packet.op === 1 && messageType === DhcpMessageType.DHCPREQUEST) {
36
+ handleRequest(packet, options);
37
+ }
38
+ }
39
+ catch (err) {
40
+ // Ignoriamo errori di parsing
41
+ }
42
+ });
43
+ socket.bind(67, '0.0.0.0');
44
+ // --- Funzioni Helper Interne ---
45
+ function setBootFilename(packet, opts) {
46
+ const isIpxe = packet.options[77] && packet.options[77].toString().includes('iPXE');
47
+ const arch = packet.options[93] || packet.options[60];
48
+ const isUefi64 = arch && (String(arch).includes('00007') || String(arch).includes('00009'));
49
+ // LOGICA DI ASSEGNAZIONE PRECISA
50
+ if (isIpxe && isUefi64) {
51
+ // CASO 1: Il client è iPXE e anche UEFI. Offriamo lo script!
52
+ console.log(ansis.magenta.bold(`<- Rilevato client iPXE su UEFI! Offro script autoexec...`));
53
+ return `http://${opts.host}/autoexec.ipxe`;
54
+ }
55
+ else if (isUefi64) {
56
+ // CASO 2: Il client è UEFI ma non è ancora iPXE. Offriamo il bootloader iPXE per UEFI.
57
+ return opts.efi64_filename;
58
+ }
59
+ else {
60
+ // CASO 3: Il client è BIOS. Offriamo il bootloader iPXE per BIOS.
61
+ // (Aggiunta logica per altri tipi di architettura se necessario)
62
+ return opts.bios_filename;
63
+ }
64
+ }
65
+ function handleDiscover(packet, opts) {
66
+ console.log(ansis.blue.bold(`\n-> DISCOVER Ricevuto`));
67
+ console.log(ansis.dim(` └─ Da MAC: ${ansis.white(packet.chaddr)}`));
68
+ if (packet.options[60]?.includes('PXEClient')) {
69
+ console.log(ansis.cyan.bold(`<- Rilevato PXEClient! Preparo un'offerta completa...`));
70
+ const offerPacket = new Packet(packet);
71
+ offerPacket.op = 2; // BOOTREPLY
72
+ const ipParts = opts.host.split('.');
73
+ ipParts[3] = (parseInt(ipParts[3]) + 10).toString();
74
+ const offeredIp = ipParts.join('.');
75
+ offeredIPs.set(packet.chaddr, offeredIp);
76
+ offerPacket.yiaddr = offeredIp;
77
+ offerPacket.siaddr = opts.tftpserver;
78
+ offerPacket.options[53] = DhcpMessageType.DHCPOFFER;
79
+ offerPacket.options[54] = opts.host;
80
+ // Imposta il filename usando la nuova funzione logica
81
+ offerPacket.fname = setBootFilename(packet, opts);
82
+ console.log(ansis.dim(` ├─ Offro IP: ${ansis.green(offeredIp)}`));
83
+ console.log(ansis.dim(` ├─ Next-Server: ${ansis.white(offerPacket.siaddr)}`));
84
+ console.log(ansis.dim(` └─ Filename: ${ansis.white(offerPacket.fname)}`));
85
+ send(offerPacket, opts.broadcast, 68);
86
+ }
87
+ }
88
+ function handleRequest(packet, opts) {
89
+ const offeredIp = offeredIPs.get(packet.chaddr);
90
+ if (!offeredIp || (packet.options[50] && packet.options[50] !== offeredIp)) {
91
+ return;
92
+ }
93
+ console.log(ansis.yellow.bold(`-> REQUEST per la nostra offerta ricevuto!`));
94
+ console.log(ansis.dim(` └─ Da MAC: ${ansis.white(packet.chaddr)}`));
95
+ const ackPacket = new Packet(packet);
96
+ ackPacket.op = 2;
97
+ ackPacket.yiaddr = offeredIp;
98
+ ackPacket.siaddr = opts.tftpserver;
99
+ ackPacket.options[53] = DhcpMessageType.DHCPACK;
100
+ ackPacket.options[54] = opts.host;
101
+ // Imposta il filename usando la stessa logica
102
+ ackPacket.fname = setBootFilename(packet, opts);
103
+ console.log(ansis.cyan.bold(`<- Invio ACK finale...`));
104
+ send(ackPacket, opts.broadcast, 68);
105
+ }
106
+ function send(packet, ip, port) {
107
+ const buffer = packet.toBuffer();
108
+ const typeName = DhcpMessageType[packet.options[53]] || 'UNKNOWN';
109
+ socket.send(buffer, 0, buffer.length, port, ip, (err, bytes) => {
110
+ if (err) {
111
+ console.error(ansis.red.bold(`[PROXY-ERROR] Errore invio ${typeName}:`), err);
112
+ }
113
+ else {
114
+ console.log(ansis.green(` ✔︎ ${typeName} inviata a ${ip}:${port} (${bytes} bytes)`));
115
+ }
116
+ });
117
+ }
118
+ }
@@ -1,24 +1,24 @@
1
1
  export interface ITftpOptions {
2
- denyPUT: boolean;
3
2
  host: string;
4
3
  port: number;
5
4
  root: string;
5
+ denyPUT: boolean;
6
6
  }
7
7
  export interface IDhcpOptions {
8
+ subnet: string;
9
+ host: string;
10
+ tftpserver: string;
8
11
  bios_filename: string;
9
12
  efi32_filename: string;
10
13
  efi64_filename: string;
11
- host: string;
12
- subnet: string;
13
- tftpserver: string;
14
+ broadcast: string;
14
15
  }
15
16
  export interface IDhcpd {
16
- constructor(opts: IDhcpOptions): void;
17
+ pre_init: (pkt: IPacket) => void;
17
18
  discover: (pkt: IPacket) => void;
19
+ request: (pkt: IPacket) => void;
18
20
  inform: (pkt: IPacket) => void;
19
- pre_init: (pkt: IPacket) => void;
20
21
  proxy_request: (pkt: IPacket) => IPacket;
21
- request: (pkt: IPacket) => void;
22
22
  }
23
23
  export interface IProxy {
24
24
  bind: (port: number, addr: string, cb: any) => IPacket;
@@ -27,19 +27,19 @@ export interface IServer {
27
27
  bind: (port: number, addr: string, cb: any) => IPacket;
28
28
  }
29
29
  export interface IPacket {
30
- chaddr: (chaddr: any) => IPacket;
31
- ciaddr: (ciaddr: string) => IPacket;
32
- flags: (flags: any) => IPacket;
33
- fname: (fname: any) => IPacket;
34
30
  getRequestedIPAddress: () => string;
35
- giaddr: (giaddr: string) => IPacket;
31
+ op: (op: any) => IPacket;
32
+ htype: (htype: any) => IPacket;
36
33
  hlen: (hlen: any) => IPacket;
37
34
  hops: (hops: any) => IPacket;
38
- htype: (htype: any) => IPacket;
39
- op: (op: any) => IPacket;
40
- options: (options: any) => IPacket;
35
+ xid: (xid: any) => IPacket;
41
36
  secs: (secs: any) => IPacket;
37
+ flags: (flags: any) => IPacket;
38
+ ciaddr: (ciaddr: string) => IPacket;
42
39
  siaddr: (siaddr: string) => IPacket;
40
+ giaddr: (giaddr: string) => IPacket;
41
+ chaddr: (chaddr: any) => IPacket;
43
42
  sname: (sname: any) => IPacket;
44
- xid: (xid: any) => IPacket;
43
+ fname: (fname: any) => IPacket;
44
+ options: (options: any) => IPacket;
45
45
  }
@@ -10,11 +10,11 @@ import Sequence from '../sequence.js';
10
10
  /**
11
11
  *
12
12
  * @param this
13
- * @param name
13
+ * @param username
14
14
  * @param password
15
- * @param fullName
15
+ * @param fullusername
16
16
  * @param roomNumber
17
17
  * @param workPhone
18
18
  * @param homePhone
19
19
  */
20
- export default function addUser(this: Sequence, name?: string, password?: string, fullName?: string, roomNumber?: string, workPhone?: string, homePhone?: string): Promise<void>;
20
+ export default function addUser(this: Sequence, username?: string, password?: string, fullusername?: string, roomNumber?: string, workPhone?: string, homePhone?: string): Promise<void>;
@@ -6,61 +6,66 @@
6
6
  * license: MIT
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
+ import Utils from '../../../classes/utils.js';
9
10
  import fs from 'fs';
10
11
  import yaml from 'js-yaml';
11
12
  import { exec } from '../../../lib/utils.js';
12
13
  /**
13
14
  *
14
15
  * @param this
15
- * @param name
16
+ * @param username
16
17
  * @param password
17
- * @param fullName
18
+ * @param fullusername
18
19
  * @param roomNumber
19
20
  * @param workPhone
20
21
  * @param homePhone
21
22
  */
22
- export default async function addUser(name = 'live', password = 'evolution', fullName = '', roomNumber = '', workPhone = '', homePhone = '') {
23
+ export default async function addUser(username = 'live', password = 'evolution', fullusername = '', roomNumber = '', workPhone = '', homePhone = '') {
23
24
  // adduser user
24
- let cmd = `chroot ${this.installTarget} adduser ${name} --home /home/${name} --shell /bin/bash --disabled-password --gecos "${fullName},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
25
+ let cmd = `chroot ${this.installTarget} adduser ${username} --home /home/${username} --shell /bin/bash --disabled-password --gecos "${fullusername},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
25
26
  if (this.distro.familyId === 'archlinux') {
26
- cmd = `chroot ${this.installTarget} useradd --create-home --shell /bin/bash ${name} ${this.toNull}`;
27
+ cmd = `chroot ${this.installTarget} useradd --create-home --shell /bin/bash ${username} ${this.toNull}`;
27
28
  }
28
29
  else if (this.distro.familyId === 'fedora') {
29
- cmd = `chroot ${this.installTarget} adduser ${name} --create-home --shell /bin/bash --comment "${fullName},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
30
+ cmd = `chroot ${this.installTarget} adduser ${username} --create-home --shell /bin/bash --comment "${fullusername},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
30
31
  }
31
32
  else if (this.distro.familyId === 'opensuse') {
32
- cmd = `chroot ${this.installTarget} useradd ${name} --create-home --shell /bin/bash --comment "${fullName},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
33
+ cmd = `chroot ${this.installTarget} useradd ${username} --create-home --shell /bin/bash --comment "${fullusername},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
33
34
  }
34
35
  await exec(cmd, this.echo);
35
- // chpasswd user
36
- cmd = `echo ${name}:${password} | chroot ${this.installTarget} chpasswd ${this.toNull}`;
36
+ cmd = `echo ${username}:${password} | chroot ${this.installTarget} chpasswd ${this.toNull}`;
37
37
  await exec(cmd, this.echo);
38
38
  let group = 'wheel';
39
39
  if (this.distro.familyId === 'debian') {
40
- /**
41
- * look to calamares/modules/users.yml for groups
42
- */
43
- let usersConf = '/etc/calamares/modules/users.conf';
44
- if (!fs.existsSync(usersConf)) {
45
- usersConf = '/etc/penguins-eggs.d/krill/modules/users.conf';
46
- }
47
- if (fs.existsSync(usersConf)) {
48
- const o = yaml.load(fs.readFileSync(usersConf, 'utf8'));
49
- for (const group of o.defaultGroups) {
50
- cmd = `chroot ${this.installTarget} usermod -aG ${group} ${name} ${this.toNull}`;
51
- await exec(cmd, this.echo);
52
- }
53
- }
54
- else {
55
- group = 'sudo';
56
- }
57
- cmd = `chroot ${this.installTarget} usermod -aG ${group} ${name} ${this.toNull}`;
58
- await exec(cmd, this.echo);
40
+ group = 'sudo';
59
41
  }
42
+ cmd = `chroot ${this.installTarget} usermod -aG ${group} ${username} ${this.toNull}`;
43
+ await exec(cmd, this.echo);
60
44
  // add autologin group in archlinux
61
45
  await exec(cmd, this.echo);
62
46
  if (this.distro.familyId === 'archlinux') {
63
47
  await exec(`chroot ${this.installTarget} getent group autologin || groupadd autologin`);
64
- await exec(`chroot ${this.installTarget} gpasswd -a ${this.settings.config.user_opt} autologin`);
48
+ await exec(`chroot ${this.installTarget} usermod -aG autologin ${username}`);
49
+ }
50
+ /**
51
+ * look to calamares/modules/users.conf for groups
52
+ */
53
+ let usersConf = '/etc/calamares/modules/users.conf';
54
+ if (!fs.existsSync(usersConf)) {
55
+ usersConf = '/etc/penguins-eggs.d/krill/modules/users.conf';
56
+ }
57
+ if (fs.existsSync(usersConf)) {
58
+ const o = yaml.load(fs.readFileSync(usersConf, 'utf8'));
59
+ for (const group of o.defaultGroups) {
60
+ const groupExists = await exec(`getent group ${group}`);
61
+ if (groupExists.code == 0) {
62
+ let addGroup = `chroot ${this.installTarget} usermod -aG ${group} ${username}`;
63
+ await exec(addGroup);
64
+ }
65
+ }
66
+ }
67
+ else {
68
+ console.log(`cannot find: ${usersConf}!`);
69
+ await Utils.pressKeyToExit();
65
70
  }
66
71
  }
@@ -15,32 +15,9 @@ import { exec } from '../../../lib/utils.js';
15
15
  export default async function bootloaderConfig() {
16
16
  let cmd = '';
17
17
  /**
18
- * aldos
19
- */
20
- if (this.distro.familyId === 'aldos') {
21
- if (this.efi) {
22
- try {
23
- cmd = `chroot ${this.installTarget} yum install grub2 grub2-efi-x64 efibootmgr} ${this.toNull}`;
24
- await exec(cmd, this.echo);
25
- }
26
- catch (error) {
27
- await showError(cmd, error);
28
- }
29
- }
30
- else {
31
- try {
32
- cmd = `chroot ${this.installTarget} yum install grub2 grub2-pc ${this.toNull}`;
33
- await exec(cmd, this.echo);
34
- }
35
- catch (error) {
36
- await showError(cmd, error);
37
- }
38
- }
39
- /**
40
- * alpine
41
- */
42
- }
43
- else if (this.distro.familyId === 'alpine') {
18
+ * alpine
19
+ */
20
+ if (this.distro.familyId === 'alpine') {
44
21
  if (this.efi) {
45
22
  try {
46
23
  cmd = `chroot ${this.installTarget} apk add grub grub-efi efibootmgr} ${this.toNull}`;
@@ -8,7 +8,6 @@
8
8
  */
9
9
  import shx from 'shelljs';
10
10
  import { InstallationMode } from '../krill_enums.js';
11
- import Pacman from '../../../classes/pacman.js';
12
11
  import Utils from '../../../classes/utils.js';
13
12
  import { SwapChoice } from '../krill_enums.js';
14
13
  /**
@@ -42,9 +41,6 @@ export default async function fstab(installDevice, crypted = false) {
42
41
  /**
43
42
  * fstab
44
43
  */
45
- if (!Pacman.packageIsInstalled('btrfs-progs')) {
46
- this.partitions.filesystemType === 'ext4';
47
- }
48
44
  const fstab = this.installTarget + '/etc/fstab';
49
45
  /**
50
46
  boot: IDevice
@@ -144,27 +140,19 @@ export default async function fstab(installDevice, crypted = false) {
144
140
  text += `# swap undefined\n`;
145
141
  }
146
142
  /**
147
- * brtfs: TUTTO da rivedere!
143
+ * btrfs
148
144
  */
149
145
  }
150
146
  else if (this.partitions.filesystemType === 'btrfs') {
151
- const base = '/ btrfs subvol=/@,defaults 0 0';
152
- const snapshots = '/.snapshots btrfs subvol=/@snapshots,defaults 0 0';
153
- const home = '/home btrfs subvol=/@home,defaults 0 0';
154
- const root = '/root btrfs subvol=/@root,defaults 0 0';
155
- const var_log = '/var/log btrfs subvol=/@var@log,defaults 0 0';
156
- const var_lib_AccountsService = '/var/lib/AccountsService btrfs subvol=/@var@lib@AccountsService,defaults 0 0';
157
- const var_lib_blueman = '/var/lib/blueman btrfs subvol=/@var@lib@blueman,defaults 0 0';
158
- const tmp = '/tmp btrfs subvol=/@tmp,defaults 0 0';
159
- text += `# ${this.devices.root.name} btrfs ${this.devices.root.mountPoint} subvol\n`;
160
- text += `UUID=${Utils.uuid(this.devices.root.name)} ${base}\n`;
161
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${snapshots}\n`;
162
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${home}\n`;
163
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${root}\n`;
164
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_log}\n`;
165
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_lib_AccountsService}\n`;
166
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_lib_blueman}\n`;
167
- text += `# UUID=${Utils.uuid(this.devices.root.name)} ${tmp}\n`;
147
+ const rootMountPoint = this.devices.root.mountPoint;
148
+ const rootUuid = Utils.uuid(this.devices.root.name);
149
+ text += `# ${this.devices.root.name} btrfs ${rootMountPoint} subvol\n`;
150
+ text += `UUID=${rootUuid} / btrfs subvol=/@,defaults 0 0\n`;
151
+ text += `UUID=${rootUuid} /home btrfs /@home,defaults 0 0\n`;
152
+ text += `UUID=${rootUuid} /var/cache btrfs /@cache,defaults 0 0\n`;
153
+ text += `UUID=${rootUuid} /var/log btrfs /@log,defaults 0 0\n`;
154
+ text += `# swapfile\n`;
155
+ text += `/swapfile none swap sw 0 0`;
168
156
  }
169
157
  Utils.write(fstab, text);
170
158
  }
@@ -8,7 +8,6 @@
8
8
  */
9
9
  import fs from 'node:fs';
10
10
  import Utils from '../../../classes/utils.js';
11
- import { SwapChoice } from '../krill_enums.js';
12
11
  import { InstallationMode } from '../krill_enums.js';
13
12
  /**
14
13
  * grubcfg
@@ -22,9 +21,12 @@ export default async function grubcfg() {
22
21
  let content = '';
23
22
  const grubs = fs.readFileSync(file, 'utf8').split('\n');
24
23
  for (let i = 0; i < grubs.length; i++) {
24
+ // RESUME
25
25
  if (grubs[i].includes('GRUB_CMDLINE_LINUX_DEFAULT=')) {
26
- if (this.partitions.userSwapChoice != SwapChoice.File) {
27
- grubs[i] = this.partitions.installationMode === InstallationMode.Luks ? `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=${Utils.uuid(this.devices.swap.name)}"` : `GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=${Utils.uuid(this.devices.swap.name)}"`;
26
+ if (this.partitions.filesystemType === 'btrfs') {
27
+ // userSwapChoice != SwapChoice.File) {
28
+ // grubs[i] = this.partitions.installationMode === InstallationMode.Luks ? `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=${Utils.uuid(this.devices.swap.name)}"` : `GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=${Utils.uuid(this.devices.swap.name)}"`
29
+ grubs[i] = this.partitions.installationMode === InstallationMode.Luks ? `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=${Utils.uuid(this.devices.swap.name)}"` : `GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rootflags=subvol=@"`;
28
30
  }
29
31
  }
30
32
  content += grubs[i] + '\n';
@@ -10,6 +10,6 @@ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * mkfs
12
12
  *
13
- * mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
13
+ * mkfs - create an ext2/ext3/ext4/btrfs
14
14
  */
15
15
  export default function mkfs(this: Sequence): Promise<boolean>;