penguins-eggs 25.8.6 → 25.9.2

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 (350) hide show
  1. package/.oclif.manifest.json +8 -1
  2. package/README.md +37 -33
  3. package/README.pdf +2720 -2021
  4. package/addons/eggs/theme/calamares/modules/users.yml +3 -3
  5. package/addons/eggs/theme/livecd/{grub.main.simple.cfg → grub.main.cfg} +2 -22
  6. package/assets/calamares/install-system.sh +2 -2
  7. package/conf/derivatives.yaml +7 -0
  8. package/conf/distros/buster/calamares/modules/bootloader.yml +45 -16
  9. package/conf/distros/buster/calamares/modules/mount.yml +103 -28
  10. package/dist/classes/distro.js +14 -6
  11. package/dist/classes/diversions.d.ts +1 -0
  12. package/dist/classes/diversions.js +7 -0
  13. package/dist/classes/incubation/incubator.d.ts +4 -0
  14. package/dist/classes/incubation/incubator.js +14 -0
  15. package/dist/classes/ovary.d/bind-live-fs.js +2 -2
  16. package/dist/classes/ovary.d/initrd.js +4 -4
  17. package/dist/classes/ovary.d/kernel-copy.js +1 -1
  18. package/dist/classes/ovary.d/live-create-structure.js +1 -1
  19. package/dist/classes/ovary.d/make-dot-disk.js +16 -4
  20. package/dist/classes/ovary.d/make-efi.d.ts +0 -2
  21. package/dist/classes/ovary.d/make-efi.js +132 -71
  22. package/dist/classes/ovary.d/make-iso.js +1 -1
  23. package/dist/classes/ovary.d/make-squashfs.js +1 -1
  24. package/dist/classes/ovary.d/produce.js +7 -3
  25. package/dist/classes/ovary.d/syslinux.js +12 -10
  26. package/dist/classes/ovary.d/xorriso-command.js +51 -47
  27. package/dist/classes/pacman.js +7 -0
  28. package/dist/classes/pxe.d.ts +1 -2
  29. package/dist/classes/pxe.js +36 -30
  30. package/dist/classes/utils.d/kernel.d.ts +6 -56
  31. package/dist/classes/utils.d/kernel.js +51 -281
  32. package/dist/classes/utils.js +16 -8
  33. package/dist/commands/cuckoo.d.ts +1 -0
  34. package/dist/commands/cuckoo.js +3 -2
  35. package/dist/commands/export/pkg.js +1 -1
  36. package/dist/krill/classes/sequence.d/add_user.js +6 -0
  37. package/dist/krill/classes/sequence.d/bootloader.js +9 -1
  38. package/dist/krill/classes/sequence.js +1 -1
  39. package/dist/lib/utils.js +1 -0
  40. package/manpages/doc/man/eggs.1.gz +0 -0
  41. package/manpages/doc/man/eggs.html +46 -18
  42. package/package.json +9 -10
  43. package/perrisbrewery/template/dependencies-bionic.yaml +25 -4
  44. package/perrisbrewery/template/dependencies.yaml +21 -4
  45. package/scripts/_eggs +7 -6
  46. package/scripts/eggs.bash +2 -2
  47. package/addons/eggs/theme/livecd/grub.main.full.cfg +0 -43
  48. package/bootloaders/README.md +0 -22
  49. package/bootloaders/grub/x86_64-efi/acpi.mod +0 -0
  50. package/bootloaders/grub/x86_64-efi/adler32.mod +0 -0
  51. package/bootloaders/grub/x86_64-efi/affs.mod +0 -0
  52. package/bootloaders/grub/x86_64-efi/afs.mod +0 -0
  53. package/bootloaders/grub/x86_64-efi/afsplitter.mod +0 -0
  54. package/bootloaders/grub/x86_64-efi/ahci.mod +0 -0
  55. package/bootloaders/grub/x86_64-efi/all_video.mod +0 -0
  56. package/bootloaders/grub/x86_64-efi/aout.mod +0 -0
  57. package/bootloaders/grub/x86_64-efi/appleldr.mod +0 -0
  58. package/bootloaders/grub/x86_64-efi/archelp.mod +0 -0
  59. package/bootloaders/grub/x86_64-efi/at_keyboard.mod +0 -0
  60. package/bootloaders/grub/x86_64-efi/ata.mod +0 -0
  61. package/bootloaders/grub/x86_64-efi/backtrace.mod +0 -0
  62. package/bootloaders/grub/x86_64-efi/bfs.mod +0 -0
  63. package/bootloaders/grub/x86_64-efi/bitmap.mod +0 -0
  64. package/bootloaders/grub/x86_64-efi/bitmap_scale.mod +0 -0
  65. package/bootloaders/grub/x86_64-efi/blocklist.mod +0 -0
  66. package/bootloaders/grub/x86_64-efi/boot.mod +0 -0
  67. package/bootloaders/grub/x86_64-efi/bsd.mod +0 -0
  68. package/bootloaders/grub/x86_64-efi/bswap_test.mod +0 -0
  69. package/bootloaders/grub/x86_64-efi/btrfs.mod +0 -0
  70. package/bootloaders/grub/x86_64-efi/bufio.mod +0 -0
  71. package/bootloaders/grub/x86_64-efi/cat.mod +0 -0
  72. package/bootloaders/grub/x86_64-efi/cbfs.mod +0 -0
  73. package/bootloaders/grub/x86_64-efi/cbls.mod +0 -0
  74. package/bootloaders/grub/x86_64-efi/cbmemc.mod +0 -0
  75. package/bootloaders/grub/x86_64-efi/cbtable.mod +0 -0
  76. package/bootloaders/grub/x86_64-efi/cbtime.mod +0 -0
  77. package/bootloaders/grub/x86_64-efi/chain.mod +0 -0
  78. package/bootloaders/grub/x86_64-efi/cmdline_cat_test.mod +0 -0
  79. package/bootloaders/grub/x86_64-efi/cmp.mod +0 -0
  80. package/bootloaders/grub/x86_64-efi/cmp_test.mod +0 -0
  81. package/bootloaders/grub/x86_64-efi/command.lst +0 -194
  82. package/bootloaders/grub/x86_64-efi/config.h +0 -69
  83. package/bootloaders/grub/x86_64-efi/configfile.mod +0 -0
  84. package/bootloaders/grub/x86_64-efi/cpio.mod +0 -0
  85. package/bootloaders/grub/x86_64-efi/cpio_be.mod +0 -0
  86. package/bootloaders/grub/x86_64-efi/cpuid.mod +0 -0
  87. package/bootloaders/grub/x86_64-efi/crc64.mod +0 -0
  88. package/bootloaders/grub/x86_64-efi/crypto.lst +0 -45
  89. package/bootloaders/grub/x86_64-efi/crypto.mod +0 -0
  90. package/bootloaders/grub/x86_64-efi/cryptodisk.mod +0 -0
  91. package/bootloaders/grub/x86_64-efi/cs5536.mod +0 -0
  92. package/bootloaders/grub/x86_64-efi/ctz_test.mod +0 -0
  93. package/bootloaders/grub/x86_64-efi/date.mod +0 -0
  94. package/bootloaders/grub/x86_64-efi/datehook.mod +0 -0
  95. package/bootloaders/grub/x86_64-efi/datetime.mod +0 -0
  96. package/bootloaders/grub/x86_64-efi/disk.mod +0 -0
  97. package/bootloaders/grub/x86_64-efi/diskfilter.mod +0 -0
  98. package/bootloaders/grub/x86_64-efi/div.mod +0 -0
  99. package/bootloaders/grub/x86_64-efi/div_test.mod +0 -0
  100. package/bootloaders/grub/x86_64-efi/dm_nv.mod +0 -0
  101. package/bootloaders/grub/x86_64-efi/echo.mod +0 -0
  102. package/bootloaders/grub/x86_64-efi/efi_gop.mod +0 -0
  103. package/bootloaders/grub/x86_64-efi/efi_uga.mod +0 -0
  104. package/bootloaders/grub/x86_64-efi/efifwsetup.mod +0 -0
  105. package/bootloaders/grub/x86_64-efi/efinet.mod +0 -0
  106. package/bootloaders/grub/x86_64-efi/ehci.mod +0 -0
  107. package/bootloaders/grub/x86_64-efi/elf.mod +0 -0
  108. package/bootloaders/grub/x86_64-efi/eval.mod +0 -0
  109. package/bootloaders/grub/x86_64-efi/exfat.mod +0 -0
  110. package/bootloaders/grub/x86_64-efi/exfctest.mod +0 -0
  111. package/bootloaders/grub/x86_64-efi/ext2.mod +0 -0
  112. package/bootloaders/grub/x86_64-efi/extcmd.mod +0 -0
  113. package/bootloaders/grub/x86_64-efi/f2fs.mod +0 -0
  114. package/bootloaders/grub/x86_64-efi/fat.mod +0 -0
  115. package/bootloaders/grub/x86_64-efi/fdt.lst +0 -0
  116. package/bootloaders/grub/x86_64-efi/file.mod +0 -0
  117. package/bootloaders/grub/x86_64-efi/fixvideo.mod +0 -0
  118. package/bootloaders/grub/x86_64-efi/font.mod +0 -0
  119. package/bootloaders/grub/x86_64-efi/fs.lst +0 -37
  120. package/bootloaders/grub/x86_64-efi/fshelp.mod +0 -0
  121. package/bootloaders/grub/x86_64-efi/functional_test.mod +0 -0
  122. package/bootloaders/grub/x86_64-efi/gcry_arcfour.mod +0 -0
  123. package/bootloaders/grub/x86_64-efi/gcry_blowfish.mod +0 -0
  124. package/bootloaders/grub/x86_64-efi/gcry_camellia.mod +0 -0
  125. package/bootloaders/grub/x86_64-efi/gcry_cast5.mod +0 -0
  126. package/bootloaders/grub/x86_64-efi/gcry_crc.mod +0 -0
  127. package/bootloaders/grub/x86_64-efi/gcry_des.mod +0 -0
  128. package/bootloaders/grub/x86_64-efi/gcry_dsa.mod +0 -0
  129. package/bootloaders/grub/x86_64-efi/gcry_idea.mod +0 -0
  130. package/bootloaders/grub/x86_64-efi/gcry_md4.mod +0 -0
  131. package/bootloaders/grub/x86_64-efi/gcry_md5.mod +0 -0
  132. package/bootloaders/grub/x86_64-efi/gcry_rfc2268.mod +0 -0
  133. package/bootloaders/grub/x86_64-efi/gcry_rijndael.mod +0 -0
  134. package/bootloaders/grub/x86_64-efi/gcry_rmd160.mod +0 -0
  135. package/bootloaders/grub/x86_64-efi/gcry_rsa.mod +0 -0
  136. package/bootloaders/grub/x86_64-efi/gcry_seed.mod +0 -0
  137. package/bootloaders/grub/x86_64-efi/gcry_serpent.mod +0 -0
  138. package/bootloaders/grub/x86_64-efi/gcry_sha1.mod +0 -0
  139. package/bootloaders/grub/x86_64-efi/gcry_sha256.mod +0 -0
  140. package/bootloaders/grub/x86_64-efi/gcry_sha512.mod +0 -0
  141. package/bootloaders/grub/x86_64-efi/gcry_tiger.mod +0 -0
  142. package/bootloaders/grub/x86_64-efi/gcry_twofish.mod +0 -0
  143. package/bootloaders/grub/x86_64-efi/gcry_whirlpool.mod +0 -0
  144. package/bootloaders/grub/x86_64-efi/geli.mod +0 -0
  145. package/bootloaders/grub/x86_64-efi/gettext.mod +0 -0
  146. package/bootloaders/grub/x86_64-efi/gfxmenu.mod +0 -0
  147. package/bootloaders/grub/x86_64-efi/gfxterm.mod +0 -0
  148. package/bootloaders/grub/x86_64-efi/gfxterm_background.mod +0 -0
  149. package/bootloaders/grub/x86_64-efi/gfxterm_menu.mod +0 -0
  150. package/bootloaders/grub/x86_64-efi/gptsync.mod +0 -0
  151. package/bootloaders/grub/x86_64-efi/gzio.mod +0 -0
  152. package/bootloaders/grub/x86_64-efi/halt.mod +0 -0
  153. package/bootloaders/grub/x86_64-efi/hashsum.mod +0 -0
  154. package/bootloaders/grub/x86_64-efi/hdparm.mod +0 -0
  155. package/bootloaders/grub/x86_64-efi/hello.mod +0 -0
  156. package/bootloaders/grub/x86_64-efi/help.mod +0 -0
  157. package/bootloaders/grub/x86_64-efi/hexdump.mod +0 -0
  158. package/bootloaders/grub/x86_64-efi/hfs.mod +0 -0
  159. package/bootloaders/grub/x86_64-efi/hfsplus.mod +0 -0
  160. package/bootloaders/grub/x86_64-efi/hfspluscomp.mod +0 -0
  161. package/bootloaders/grub/x86_64-efi/http.mod +0 -0
  162. package/bootloaders/grub/x86_64-efi/iorw.mod +0 -0
  163. package/bootloaders/grub/x86_64-efi/iso9660.mod +0 -0
  164. package/bootloaders/grub/x86_64-efi/jfs.mod +0 -0
  165. package/bootloaders/grub/x86_64-efi/jpeg.mod +0 -0
  166. package/bootloaders/grub/x86_64-efi/json.mod +0 -0
  167. package/bootloaders/grub/x86_64-efi/kernel.img +0 -0
  168. package/bootloaders/grub/x86_64-efi/keylayouts.mod +0 -0
  169. package/bootloaders/grub/x86_64-efi/keystatus.mod +0 -0
  170. package/bootloaders/grub/x86_64-efi/ldm.mod +0 -0
  171. package/bootloaders/grub/x86_64-efi/legacy_password_test.mod +0 -0
  172. package/bootloaders/grub/x86_64-efi/legacycfg.mod +0 -0
  173. package/bootloaders/grub/x86_64-efi/linux.mod +0 -0
  174. package/bootloaders/grub/x86_64-efi/linux16.mod +0 -0
  175. package/bootloaders/grub/x86_64-efi/linuxefi.mod +0 -0
  176. package/bootloaders/grub/x86_64-efi/loadbios.mod +0 -0
  177. package/bootloaders/grub/x86_64-efi/loadenv.mod +0 -0
  178. package/bootloaders/grub/x86_64-efi/loopback.mod +0 -0
  179. package/bootloaders/grub/x86_64-efi/ls.mod +0 -0
  180. package/bootloaders/grub/x86_64-efi/lsacpi.mod +0 -0
  181. package/bootloaders/grub/x86_64-efi/lsefi.mod +0 -0
  182. package/bootloaders/grub/x86_64-efi/lsefimmap.mod +0 -0
  183. package/bootloaders/grub/x86_64-efi/lsefisystab.mod +0 -0
  184. package/bootloaders/grub/x86_64-efi/lsmmap.mod +0 -0
  185. package/bootloaders/grub/x86_64-efi/lspci.mod +0 -0
  186. package/bootloaders/grub/x86_64-efi/lssal.mod +0 -0
  187. package/bootloaders/grub/x86_64-efi/luks.mod +0 -0
  188. package/bootloaders/grub/x86_64-efi/luks2.mod +0 -0
  189. package/bootloaders/grub/x86_64-efi/lvm.mod +0 -0
  190. package/bootloaders/grub/x86_64-efi/lzopio.mod +0 -0
  191. package/bootloaders/grub/x86_64-efi/macbless.mod +0 -0
  192. package/bootloaders/grub/x86_64-efi/macho.mod +0 -0
  193. package/bootloaders/grub/x86_64-efi/mdraid09.mod +0 -0
  194. package/bootloaders/grub/x86_64-efi/mdraid09_be.mod +0 -0
  195. package/bootloaders/grub/x86_64-efi/mdraid1x.mod +0 -0
  196. package/bootloaders/grub/x86_64-efi/memdisk.mod +0 -0
  197. package/bootloaders/grub/x86_64-efi/memrw.mod +0 -0
  198. package/bootloaders/grub/x86_64-efi/minicmd.mod +0 -0
  199. package/bootloaders/grub/x86_64-efi/minix.mod +0 -0
  200. package/bootloaders/grub/x86_64-efi/minix2.mod +0 -0
  201. package/bootloaders/grub/x86_64-efi/minix2_be.mod +0 -0
  202. package/bootloaders/grub/x86_64-efi/minix3.mod +0 -0
  203. package/bootloaders/grub/x86_64-efi/minix3_be.mod +0 -0
  204. package/bootloaders/grub/x86_64-efi/minix_be.mod +0 -0
  205. package/bootloaders/grub/x86_64-efi/mmap.mod +0 -0
  206. package/bootloaders/grub/x86_64-efi/moddep.lst +0 -267
  207. package/bootloaders/grub/x86_64-efi/modinfo.sh +0 -40
  208. package/bootloaders/grub/x86_64-efi/monolithic/gcdx64.efi +0 -0
  209. package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64-installer.efi +0 -0
  210. package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64.efi +0 -0
  211. package/bootloaders/grub/x86_64-efi/monolithic/grubx64.efi +0 -0
  212. package/bootloaders/grub/x86_64-efi/morse.mod +0 -0
  213. package/bootloaders/grub/x86_64-efi/mpi.mod +0 -0
  214. package/bootloaders/grub/x86_64-efi/msdospart.mod +0 -0
  215. package/bootloaders/grub/x86_64-efi/mul_test.mod +0 -0
  216. package/bootloaders/grub/x86_64-efi/multiboot.mod +0 -0
  217. package/bootloaders/grub/x86_64-efi/multiboot2.mod +0 -0
  218. package/bootloaders/grub/x86_64-efi/nativedisk.mod +0 -0
  219. package/bootloaders/grub/x86_64-efi/net.mod +0 -0
  220. package/bootloaders/grub/x86_64-efi/newc.mod +0 -0
  221. package/bootloaders/grub/x86_64-efi/nilfs2.mod +0 -0
  222. package/bootloaders/grub/x86_64-efi/normal.mod +0 -0
  223. package/bootloaders/grub/x86_64-efi/ntfs.mod +0 -0
  224. package/bootloaders/grub/x86_64-efi/ntfscomp.mod +0 -0
  225. package/bootloaders/grub/x86_64-efi/odc.mod +0 -0
  226. package/bootloaders/grub/x86_64-efi/offsetio.mod +0 -0
  227. package/bootloaders/grub/x86_64-efi/ohci.mod +0 -0
  228. package/bootloaders/grub/x86_64-efi/part_acorn.mod +0 -0
  229. package/bootloaders/grub/x86_64-efi/part_amiga.mod +0 -0
  230. package/bootloaders/grub/x86_64-efi/part_apple.mod +0 -0
  231. package/bootloaders/grub/x86_64-efi/part_bsd.mod +0 -0
  232. package/bootloaders/grub/x86_64-efi/part_dfly.mod +0 -0
  233. package/bootloaders/grub/x86_64-efi/part_dvh.mod +0 -0
  234. package/bootloaders/grub/x86_64-efi/part_gpt.mod +0 -0
  235. package/bootloaders/grub/x86_64-efi/part_msdos.mod +0 -0
  236. package/bootloaders/grub/x86_64-efi/part_plan.mod +0 -0
  237. package/bootloaders/grub/x86_64-efi/part_sun.mod +0 -0
  238. package/bootloaders/grub/x86_64-efi/part_sunpc.mod +0 -0
  239. package/bootloaders/grub/x86_64-efi/partmap.lst +0 -11
  240. package/bootloaders/grub/x86_64-efi/parttool.lst +0 -1
  241. package/bootloaders/grub/x86_64-efi/parttool.mod +0 -0
  242. package/bootloaders/grub/x86_64-efi/password.mod +0 -0
  243. package/bootloaders/grub/x86_64-efi/password_pbkdf2.mod +0 -0
  244. package/bootloaders/grub/x86_64-efi/pata.mod +0 -0
  245. package/bootloaders/grub/x86_64-efi/pbkdf2.mod +0 -0
  246. package/bootloaders/grub/x86_64-efi/pbkdf2_test.mod +0 -0
  247. package/bootloaders/grub/x86_64-efi/pcidump.mod +0 -0
  248. package/bootloaders/grub/x86_64-efi/pgp.mod +0 -0
  249. package/bootloaders/grub/x86_64-efi/play.mod +0 -0
  250. package/bootloaders/grub/x86_64-efi/png.mod +0 -0
  251. package/bootloaders/grub/x86_64-efi/priority_queue.mod +0 -0
  252. package/bootloaders/grub/x86_64-efi/probe.mod +0 -0
  253. package/bootloaders/grub/x86_64-efi/procfs.mod +0 -0
  254. package/bootloaders/grub/x86_64-efi/progress.mod +0 -0
  255. package/bootloaders/grub/x86_64-efi/raid5rec.mod +0 -0
  256. package/bootloaders/grub/x86_64-efi/raid6rec.mod +0 -0
  257. package/bootloaders/grub/x86_64-efi/random.mod +0 -0
  258. package/bootloaders/grub/x86_64-efi/rdmsr.mod +0 -0
  259. package/bootloaders/grub/x86_64-efi/read.mod +0 -0
  260. package/bootloaders/grub/x86_64-efi/reboot.mod +0 -0
  261. package/bootloaders/grub/x86_64-efi/regexp.mod +0 -0
  262. package/bootloaders/grub/x86_64-efi/reiserfs.mod +0 -0
  263. package/bootloaders/grub/x86_64-efi/relocator.mod +0 -0
  264. package/bootloaders/grub/x86_64-efi/romfs.mod +0 -0
  265. package/bootloaders/grub/x86_64-efi/scsi.mod +0 -0
  266. package/bootloaders/grub/x86_64-efi/search.mod +0 -0
  267. package/bootloaders/grub/x86_64-efi/search_fs_file.mod +0 -0
  268. package/bootloaders/grub/x86_64-efi/search_fs_uuid.mod +0 -0
  269. package/bootloaders/grub/x86_64-efi/search_label.mod +0 -0
  270. package/bootloaders/grub/x86_64-efi/serial.mod +0 -0
  271. package/bootloaders/grub/x86_64-efi/setjmp.mod +0 -0
  272. package/bootloaders/grub/x86_64-efi/setjmp_test.mod +0 -0
  273. package/bootloaders/grub/x86_64-efi/setpci.mod +0 -0
  274. package/bootloaders/grub/x86_64-efi/sfs.mod +0 -0
  275. package/bootloaders/grub/x86_64-efi/shift_test.mod +0 -0
  276. package/bootloaders/grub/x86_64-efi/signature_test.mod +0 -0
  277. package/bootloaders/grub/x86_64-efi/sleep.mod +0 -0
  278. package/bootloaders/grub/x86_64-efi/sleep_test.mod +0 -0
  279. package/bootloaders/grub/x86_64-efi/smbios.mod +0 -0
  280. package/bootloaders/grub/x86_64-efi/spkmodem.mod +0 -0
  281. package/bootloaders/grub/x86_64-efi/squash4.mod +0 -0
  282. package/bootloaders/grub/x86_64-efi/strtoull_test.mod +0 -0
  283. package/bootloaders/grub/x86_64-efi/syslinuxcfg.mod +0 -0
  284. package/bootloaders/grub/x86_64-efi/tar.mod +0 -0
  285. package/bootloaders/grub/x86_64-efi/terminal.lst +0 -9
  286. package/bootloaders/grub/x86_64-efi/terminal.mod +0 -0
  287. package/bootloaders/grub/x86_64-efi/terminfo.mod +0 -0
  288. package/bootloaders/grub/x86_64-efi/test.mod +0 -0
  289. package/bootloaders/grub/x86_64-efi/test_blockarg.mod +0 -0
  290. package/bootloaders/grub/x86_64-efi/testload.mod +0 -0
  291. package/bootloaders/grub/x86_64-efi/testspeed.mod +0 -0
  292. package/bootloaders/grub/x86_64-efi/tftp.mod +0 -0
  293. package/bootloaders/grub/x86_64-efi/tga.mod +0 -0
  294. package/bootloaders/grub/x86_64-efi/time.mod +0 -0
  295. package/bootloaders/grub/x86_64-efi/tpm.mod +0 -0
  296. package/bootloaders/grub/x86_64-efi/tr.mod +0 -0
  297. package/bootloaders/grub/x86_64-efi/trig.mod +0 -0
  298. package/bootloaders/grub/x86_64-efi/true.mod +0 -0
  299. package/bootloaders/grub/x86_64-efi/udf.mod +0 -0
  300. package/bootloaders/grub/x86_64-efi/ufs1.mod +0 -0
  301. package/bootloaders/grub/x86_64-efi/ufs1_be.mod +0 -0
  302. package/bootloaders/grub/x86_64-efi/ufs2.mod +0 -0
  303. package/bootloaders/grub/x86_64-efi/uhci.mod +0 -0
  304. package/bootloaders/grub/x86_64-efi/usb.mod +0 -0
  305. package/bootloaders/grub/x86_64-efi/usb_keyboard.mod +0 -0
  306. package/bootloaders/grub/x86_64-efi/usbms.mod +0 -0
  307. package/bootloaders/grub/x86_64-efi/usbserial_common.mod +0 -0
  308. package/bootloaders/grub/x86_64-efi/usbserial_ftdi.mod +0 -0
  309. package/bootloaders/grub/x86_64-efi/usbserial_pl2303.mod +0 -0
  310. package/bootloaders/grub/x86_64-efi/usbserial_usbdebug.mod +0 -0
  311. package/bootloaders/grub/x86_64-efi/usbtest.mod +0 -0
  312. package/bootloaders/grub/x86_64-efi/video.lst +0 -4
  313. package/bootloaders/grub/x86_64-efi/video.mod +0 -0
  314. package/bootloaders/grub/x86_64-efi/video_bochs.mod +0 -0
  315. package/bootloaders/grub/x86_64-efi/video_cirrus.mod +0 -0
  316. package/bootloaders/grub/x86_64-efi/video_colors.mod +0 -0
  317. package/bootloaders/grub/x86_64-efi/video_fb.mod +0 -0
  318. package/bootloaders/grub/x86_64-efi/videoinfo.mod +0 -0
  319. package/bootloaders/grub/x86_64-efi/videotest.mod +0 -0
  320. package/bootloaders/grub/x86_64-efi/videotest_checksum.mod +0 -0
  321. package/bootloaders/grub/x86_64-efi/wrmsr.mod +0 -0
  322. package/bootloaders/grub/x86_64-efi/xfs.mod +0 -0
  323. package/bootloaders/grub/x86_64-efi/xnu.mod +0 -0
  324. package/bootloaders/grub/x86_64-efi/xnu_uuid.mod +0 -0
  325. package/bootloaders/grub/x86_64-efi/xnu_uuid_test.mod +0 -0
  326. package/bootloaders/grub/x86_64-efi/xzio.mod +0 -0
  327. package/bootloaders/grub/x86_64-efi/zfs.mod +0 -0
  328. package/bootloaders/grub/x86_64-efi/zfscrypt.mod +0 -0
  329. package/bootloaders/grub/x86_64-efi/zfsinfo.mod +0 -0
  330. package/bootloaders/grub/x86_64-efi/zstd.mod +0 -0
  331. package/bootloaders/grubnetx64.efi.signed +0 -0
  332. package/bootloaders/grubx64.efi +0 -0
  333. package/bootloaders/grubx64.efi.signed +0 -0
  334. package/bootloaders/ipxe.pxe +0 -0
  335. package/bootloaders/shimx64.efi +0 -0
  336. package/bootloaders/shimx64.efi.signed +0 -0
  337. package/bootloaders/syslinux/README.md +0 -3
  338. package/bootloaders/syslinux/chain.c32 +0 -0
  339. package/bootloaders/syslinux/isohdpfx.bin +0 -0
  340. package/bootloaders/syslinux/isolinux.bin +0 -0
  341. package/bootloaders/syslinux/ldlinux.c32 +0 -0
  342. package/bootloaders/syslinux/libcom32.c32 +0 -0
  343. package/bootloaders/syslinux/libutil.c32 +0 -0
  344. package/bootloaders/syslinux/lpxelinux.0 +0 -0
  345. package/bootloaders/syslinux/memdisk +0 -0
  346. package/bootloaders/syslinux/pxelinux.0 +0 -0
  347. package/bootloaders/syslinux/vesamenu.c32 +0 -0
  348. package/bootloaders/undionly.kpxe +0 -0
  349. package/dist/penguins-eggs_25.8.6-bionic-1_amd64.deb +0 -0
  350. package/dist/penguins-eggs_25.8.6-bionic-1_amd64.deb.sha256 +0 -1
@@ -19,54 +19,117 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
19
19
  *
20
20
  * @param this
21
21
  * @param theme
22
- * cp /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed ./bootloaders/
23
- * cp /usr/lib/shim/shimx64.efi.signed ./bootloaders/
24
22
  */
25
23
  export async function makeEfi(theme = 'eggs') {
26
- const bootloaders = path.resolve(__dirname, `../../../bootloaders`);
27
- const grubEfi = path.resolve(bootloaders, `grubx64.efi`);
28
- const shimEfi = path.resolve(bootloaders, `shimx64.efi`);
29
- let signed = '';
30
- if (this.distroLike === 'Debian') {
31
- Utils.warning(`Secure boot enabled on ${this.distroLike}`);
32
- signed = '.signed';
24
+ const bootloaders = Diversions.bootloaders(this.familyId);
25
+ /**
26
+ * except Debian/Devuan/Ubuntu all distros will use: not signed
27
+ * paths here for Ubuntu and Debian are the same, here checked!
28
+ */
29
+ let signed = false;
30
+ let grubEfi = path.resolve(bootloaders, `grub/x86_64-efi/monolithic/grubx64.efi`);
31
+ let shimEfi = path.resolve(bootloaders, `shim/shimx64.efi`);
32
+ if (this.familyId === "debian") {
33
+ signed = true;
34
+ if (process.arch === 'x64') {
35
+ grubEfi = path.resolve(bootloaders, `grub/x86_64-efi-signed/grubx64.efi.signed`);
36
+ shimEfi = path.resolve(bootloaders, `shim/shimx64.efi.signed`);
37
+ }
38
+ else if (process.arch === 'ia32') {
39
+ grubEfi = path.resolve(bootloaders, `grub/i386-efi-signed/grubia32.efi.signed`);
40
+ shimEfi = path.resolve(bootloaders, `shim/shimia32.efi.signed`);
41
+ }
42
+ else if (process.arch === 'arm64') {
43
+ grubEfi = path.resolve(bootloaders, `grub/arm64-efi-signed/grubaa64.efi.signed`);
44
+ shimEfi = path.resolve(bootloaders, `shim/shimaa64.efi.signed`);
45
+ }
46
+ }
47
+ if (signed) {
48
+ Utils.warning(`Your live system ${this.distroId}/${process.arch} can boot with Secure Boot enabled`);
49
+ }
50
+ else {
51
+ Utils.warning(`You must disable Secure Boot to boot live system ${this.distroId}/${process.arch}`);
33
52
  }
53
+ // 2 secondi per leggere...
54
+ await new Promise(resolve => setTimeout(resolve, 2000));
34
55
  const efiPath = path.join(this.settings.config.snapshot_mnt, '/efi/');
35
56
  const efiWorkDir = path.join(efiPath, '/work/');
36
57
  const efiMemdiskDir = path.join(efiPath, '/memdisk/');
37
- const efiMnt = path.join(efiPath, 'mnt');
58
+ const efiImgMnt = path.join(efiPath, 'mnt');
38
59
  const isoDir = this.settings.iso_work;
39
- // creo e copio direttamente in ${isdDir} il folder ${bootloaders}/grub/x86_64-efi
40
- await exec(`mkdir ${isoDir}/boot/grub/ -p`, this.echo);
41
- await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${isoDir}/boot/grub/`, this.echo);
60
+ // create (ISO)/boot/grub
61
+ await exec(`mkdir ${isoDir}/boot/grub/${Utils.uefiFormat()} -p`, this.echo);
62
+ // create (ISO)/EFI
42
63
  await exec(`mkdir ${isoDir}/EFI/boot -p`, this.echo);
43
- await exec(`cp ${shimEfi}${signed} ${isoDir}/EFI/boot/${bootEFI()}`, this.echo);
44
- await exec(`cp ${grubEfi}${signed} ${isoDir}/EFI/boot/${grubEFI()}`, this.echo);
64
+ await exec(`cp ${shimEfi} ${isoDir}/EFI/boot/${bootEfiName()}`, this.echo);
65
+ await exec(`cp ${grubEfi} ${isoDir}/EFI/boot/${grubEfiName()}`, this.echo);
45
66
  // clean/create all in efiPath
46
67
  if (fs.existsSync(efiPath)) {
47
68
  await exec(`rm -rf ${efiPath}`);
48
69
  }
49
70
  await exec(`mkdir ${efiPath}`, this.echo);
50
71
  await exec(`mkdir ${efiMemdiskDir}`, this.echo);
51
- await exec(`mkdir ${efiMnt}`, this.echo);
72
+ await exec(`mkdir ${efiImgMnt}`, this.echo);
52
73
  await exec(`mkdir ${efiWorkDir}`, this.echo);
53
74
  /**
54
75
  * create efi.img
55
76
  */
56
- Utils.warning("creating grub.cfg (1) on efi.img");
77
+ let seeker = '';
78
+ seeker += `search --file --set=root /.disk/id/${this.uuid}\n`;
79
+ seeker += "set prefix=($root)/boot/grub\n";
80
+ seeker += "source $prefix/${grub_cpu}-efi/grub.cfg\n";
81
+ /**
82
+ * creating grub.cfg (1) seeker for usb on (efi.img)/boot/grub/grub.cfg
83
+ */
84
+ Utils.warning("creating grub.cfg seeker USB on (efi.img)/boot/grub");
57
85
  await exec(`mkdir ${path.join(efiMemdiskDir, "/boot/grub -p")}`, this.echo);
58
- const grubCfg1 = `${efiMemdiskDir}/boot/grub/grub.cfg`;
59
- let grubText1 = `# grub.cfg 1\n`;
60
- grubText1 += `# created on ${efiMemdiskDir}\n`;
61
- grubText1 += `\n`;
62
- grubText1 += `search --set=root --file /.disk/id/${this.uuid}\n`;
63
- grubText1 += 'set prefix=($root)/boot/grub\n';
64
- grubText1 += `configfile ($root)/boot/grub/grub.cfg\n`;
65
- Utils.write(grubCfg1, grubText1);
86
+ const cfgSeekerUsb = `${efiMemdiskDir}/boot/grub/grub.cfg`;
87
+ let cfgSeekerUsbText = '';
88
+ cfgSeekerUsbText += `# grub.cfg seeker\n`;
89
+ cfgSeekerUsbText += `# created on ${efiMemdiskDir}, path ${cfgSeekerUsb}\n`;
90
+ cfgSeekerUsbText += `\n`;
91
+ cfgSeekerUsbText += seeker;
92
+ Utils.write(cfgSeekerUsb, cfgSeekerUsbText);
93
+ /**
94
+ * create grub.cfg (bridge) on (ISO)/boot/grub/x86_64-efi/grub.cfg
95
+ */
96
+ Utils.warning(`creating grub.cfg bridge to main. (ISO)/boot/grub/${Utils.uefiFormat()}`);
97
+ let cfgBridge = `${isoDir}/boot/grub/${Utils.uefiFormat()}/grub.cfg`;
98
+ let cfgBridgeText = `# grub.cfg bridge\n`;
99
+ cfgBridgeText += `# created on ${cfgBridge}\n`;
100
+ cfgBridgeText += `\n`;
101
+ cfgBridgeText += `source /boot/grub/grub.cfg\n`;
102
+ fs.writeFileSync(cfgBridge, cfgBridgeText);
103
+ /**
104
+ * grub bait: si applica a tutte le distro:
105
+ * /EFI/debian per tutti, tranne ubuntu
106
+ */
107
+ let pathBait = path.join(isoDir, '/EFI/debian');
108
+ if (this.distroLike === 'Ubuntu') {
109
+ pathBait = path.join(isoDir, '/EFI/ubuntu');
110
+ }
111
+ await exec(`mkdir ${pathBait} -p`, this.echo);
112
+ Utils.warning(`creating grub.cfg seeker ISO/DVD on (ISO)/EFI/${path.basename(pathBait)}`);
113
+ let cfgBait = path.join(pathBait, '/grub.cfg');
114
+ let cfgBaitText = '';
115
+ cfgBaitText += `\n`;
116
+ cfgBaitText += seeker;
117
+ Utils.write(cfgBait, cfgBaitText);
118
+ /**
119
+ * README.md, per tutti tranne distrolike Debian ed Ubuntu
120
+ */
121
+ let baitReadme = path.join(pathBait, '/README.md');
122
+ let baitReadmeText = ``;
123
+ if (this.distroLike !== 'Debian' && this.distroLike !== 'Ubuntu') {
124
+ baitReadmeText += `# penguins-eggs\n`;
125
+ baitReadmeText += '\n';
126
+ baitReadmeText += `This is just an hack, to let ${this.distroId} boot using Debian trixie bootloaders\n`;
127
+ fs.writeFileSync(baitReadme, baitReadmeText);
128
+ }
66
129
  /**
67
130
  * creating structure efiWordDir
68
131
  */
69
- await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo);
132
+ await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo); // qua va grub.cfg 2
70
133
  await exec(`mkdir -p ${efiWorkDir}/EFI/boot`);
71
134
  /**
72
135
  * create tarred efiMemdiskDir
@@ -78,31 +141,37 @@ export async function makeEfi(theme = 'eggs') {
78
141
  /**
79
142
  * Create boot image "boot/grub/efi.img"
80
143
  */
81
- const efiImg = `${efiWorkDir}boot/grub/efi.img`;
144
+ const efiImg = path.join(efiWorkDir, `boot/grub/efi.img`);
82
145
  await exec(`dd if=/dev/zero of=${efiImg} bs=1M count=16`, this.echo);
83
146
  await exec(`/sbin/mkdosfs -F 12 ${efiImg}`, this.echo);
84
- // await new Promise(resolve => setTimeout(resolve, 2000))
147
+ await new Promise(resolve => setTimeout(resolve, 500));
85
148
  // mount efi.img on mountpoint mnt-img
86
- await exec(`mount --make-shared -o loop ${efiImg} ${efiMnt}`, this.echo);
87
- // await new Promise(resolve => setTimeout(resolve, 2000))
149
+ await exec(`mount --make-shared -o loop ${efiImg} ${efiImgMnt}`, this.echo);
150
+ await new Promise(resolve => setTimeout(resolve, 1000));
88
151
  // create structure inside (efi.img)
89
- await exec(`mkdir -p ${efiMnt}/boot/grub`, this.echo);
90
- await exec(`mkdir -p ${efiMnt}/EFI/boot`, this.echo);
152
+ await exec(`mkdir -p ${efiImgMnt}/boot`, this.echo);
153
+ await exec(`mkdir -p ${efiImgMnt}/EFI/boot`, this.echo);
91
154
  /**
92
155
  * copy grubCfg1 (grub.cfg) to (efi.img)/boot/grub
93
156
  */
94
- await exec(`cp ${grubCfg1} ${efiMnt}/boot/grub`, this.echo);
95
- await exec(`cp ${shimEfi}${signed} ${efiMnt}/EFI/boot/${bootEFI()}`, this.echo);
96
- await exec(`cp ${grubEfi}${signed} ${efiMnt}/EFI/boot/${grubEFI()}`, this.echo);
97
- //await Utils.pressKeyToExit(`controlla ${efiMnt}`)
98
- await exec(`umount ${efiMnt}`, this.echo);
157
+ await exec(`cp ${cfgSeekerUsb} ${efiImgMnt}/boot/grub.cfg`, this.echo);
158
+ await exec(`cp ${shimEfi} ${efiImgMnt}/EFI/boot/${bootEfiName()}`, this.echo);
159
+ await exec(`cp ${grubEfi} ${efiImgMnt}/EFI/boot/${grubEfiName()}`, this.echo);
160
+ await new Promise(resolve => setTimeout(resolve, 1000));
161
+ if (!fs.existsSync(`${efiImgMnt}/boot/grub.cfg`)) {
162
+ console.log(`error copyng ${cfgSeekerUsb} seeker for USB on (efi.img)/boot/grub.cfg`);
163
+ process.exit(1);
164
+ }
165
+ await new Promise(resolve => setTimeout(resolve, 500));
166
+ await exec(`umount ${efiImgMnt}`, this.echo);
167
+ await new Promise(resolve => setTimeout(resolve, 500));
99
168
  // Copy isoImg in ${${isoDir}/boot/grub
100
- Utils.warning("copyng efi.img on (iso)/boot/grub");
169
+ Utils.warning("copyng (efi.img) on (ISO)/boot/grub");
101
170
  await exec(`cp ${efiImg} ${isoDir}/boot/grub`, this.echo);
102
171
  /**
103
- * creating grub.cfg (2) on (iso)/boot/grub
172
+ * creating grub.cfg (4) on (ISO)/boot/grub
104
173
  */
105
- Utils.warning("creating grub.cfg (2) on (iso)/boot/grub");
174
+ Utils.warning("creating grub.cfg main on (ISO)/boot/grub");
106
175
  // copy splash to efiWorkDir
107
176
  const splashDest = `${efiWorkDir}/boot/grub/splash.png`;
108
177
  let splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/splash.png`);
@@ -150,7 +219,7 @@ export async function makeEfi(theme = 'eggs') {
150
219
  process.exit(1);
151
220
  }
152
221
  const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid); // this.kernelParameters()
153
- const grubCfg2 = path.join(isoDir, '/boot/grub/grub.cfg');
222
+ const cfgMain = path.join(isoDir, '/boot/grub/grub.cfg');
154
223
  const template = fs.readFileSync(grubTemplate, 'utf8');
155
224
  const view = {
156
225
  fullname: this.settings.remix.fullname.toUpperCase(),
@@ -159,23 +228,12 @@ export async function makeEfi(theme = 'eggs') {
159
228
  kernel_parameters,
160
229
  vmlinuz: `/live/${path.basename(this.vmlinuz)}`
161
230
  };
162
- let grubText2 = `# grub.cfg 2\n`;
163
- grubText2 += ` # created on ${grubCfg2}`;
164
- grubText2 += `\n`;
165
- grubText2 += mustache.render(template, view);
166
- fs.writeFileSync(grubCfg2, grubText2);
167
- /**
168
- * create loopback.cfg
169
- */
170
- fs.writeFileSync(`${isoDir}/boot/grub/loopback.cfg`, 'source /boot/grub/grub.cfg\n');
171
- /**
172
- * create (iso)/boot/grub/x86_64-efi/grub.cfg
173
- */
174
- fs.writeFileSync(`${isoDir}/boot/grub/${Utils.uefiFormat()}/grub.cfg`, 'source /boot/grub/grub.cfg\n');
175
- /**
176
- * config.cfg
177
- */
178
- await exec(`cp ${path.resolve(__dirname, `../../../assets/config.cfg`)} ${isoDir}/boot/grub`);
231
+ let cfgMainText = '';
232
+ cfgMainText += `# grub.cfg (4) main\n`;
233
+ cfgMainText += `# created on ${cfgMain}`;
234
+ cfgMainText += `\n`;
235
+ cfgMainText += mustache.render(template, view);
236
+ fs.writeFileSync(cfgMain, cfgMainText);
179
237
  }
180
238
  /**
181
239
  * FUNCTIONS
@@ -184,30 +242,33 @@ export async function makeEfi(theme = 'eggs') {
184
242
  *
185
243
  * @returns
186
244
  */
187
- function bootEFI() {
188
- let bn = 'bootia32.efi'; // Per l'architettura i686 EFI è: bootia32.efi
245
+ function bootEfiName() {
246
+ let ben = '';
189
247
  if (process.arch === 'x64') {
190
- bn = 'bootx64.efi';
248
+ ben = 'bootx64.efi';
249
+ }
250
+ else if (process.arch === 'ia32') {
251
+ ben = 'bootia32.efi';
191
252
  }
192
253
  else if (process.arch === 'arm64') {
193
- bn = 'bootaa64.efi';
254
+ ben = 'bootaa64.efi';
194
255
  }
195
- return bn;
256
+ return ben;
196
257
  }
197
258
  /**
198
259
  *
199
260
  * @returns
200
261
  */
201
- function grubEFI() {
202
- let gn = 'grubia32.efi'; // Per l'architettura i686 EFI è: grubia32.efi
262
+ function grubEfiName() {
263
+ let gen = '';
203
264
  if (process.arch === 'x64') {
204
- gn = 'grubx64.efi';
265
+ gen = 'grubx64.efi';
266
+ }
267
+ else if (process.arch === 'ia32') {
268
+ gen = 'grub ia32.efi';
205
269
  }
206
270
  else if (process.arch === 'arm64') {
207
- gn = 'grubaa64.efi';
271
+ gen = 'grubaa64.efi';
208
272
  }
209
- return gn;
210
- }
211
- function moduleEFI() {
212
- return `x86_64-efi`;
273
+ return gen;
213
274
  }
@@ -22,7 +22,7 @@ export async function makeIso(cmd, scriptOnly = false) {
22
22
  console.log('Ovary: makeIso');
23
23
  }
24
24
  Utils.writeX(`${this.settings.work_dir.ovarium}mkisofs`, cmd);
25
- // Create link to iso ALLWAYES
25
+ // Create link to iso ALLWAYS
26
26
  const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
27
27
  const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
28
28
  await exec(`ln -s ${src} ${dest}`);
@@ -85,7 +85,7 @@ export async function makeSquashfs(scriptOnly = false, unsecure = false) {
85
85
  cmd = cmd.replaceAll(/\s\s+/g, ' ');
86
86
  Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
87
87
  if (!scriptOnly) {
88
- Utils.warning('creating filesystem.squashfs on ISO/live');
88
+ Utils.warning('creating filesystem.squashfs on (ISO)/live');
89
89
  // Utils.warning(`compression: ` + compression)
90
90
  const test = (await exec(cmd, Utils.setEcho(true))).code;
91
91
  if (test !== 0) {
@@ -187,7 +187,11 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
187
187
  */
188
188
  this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, this.theme, this.clone, verbose);
189
189
  await this.incubator.config(release);
190
- await this.syslinux(this.theme);
190
+ // need syslinux?
191
+ const arch = process.arch;
192
+ if (arch === 'ia32' || arch === 'x64') {
193
+ await this.syslinux(this.theme);
194
+ }
191
195
  await this.kernelCopy();
192
196
  /**
193
197
  * spostare alla fine per dracut
@@ -244,8 +248,8 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
244
248
  synctoCmd += ' --excludes'; // from Marco, usa home.list
245
249
  }
246
250
  await exec(synctoCmd, Utils.setEcho(true));
247
- Utils.warning(`moving ${luksFile} in ${this.nest}iso/live`);
248
- await exec(`mv ${luksFile} ${this.nest}iso/live`, this.echo);
251
+ Utils.warning(`moving ${luksFile} in ${this.nest}(ISO)/live`);
252
+ await exec(`mv ${luksFile} ${this.nest}(ISO)/live`, this.echo);
249
253
  }
250
254
  const mkIsofsCmd = (await this.xorrisoCommand(clone, cryptedclone)).replaceAll(/\s\s+/g, ' ');
251
255
  this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
@@ -17,20 +17,22 @@ import Diversions from './../diversions.js';
17
17
  import Utils from './../utils.js';
18
18
  // _dirname
19
19
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
20
- const bootloaders = path.resolve(__dirname, `../../../bootloaders`);
20
+ let bootloaders = '/usr/lib/';
21
21
  /**
22
22
  * syslinux: da syspath
23
23
  */
24
24
  export async function syslinux(theme = 'eggs') {
25
- let syspath = path.join(bootloaders, 'syslinux');
26
- await exec(`cp ${syspath}/chain.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
27
- await exec(`cp ${syspath}/isohdpfx.bin ${this.settings.iso_work}/isolinux/`, this.echo);
28
- // just fo x64 arch
29
- await exec(`cp ${syspath}/isolinux.bin ${this.settings.iso_work}/isolinux/`, this.echo);
30
- await exec(`cp ${syspath}/ldlinux.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
31
- await exec(`cp ${syspath}/libcom32.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
32
- await exec(`cp ${syspath}/libutil.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
33
- await exec(`cp ${syspath}/vesamenu.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
25
+ const bootloaders = Diversions.bootloaders(this.familyId);
26
+ let sysPath = path.join(bootloaders, 'syslinux/modules/bios');
27
+ let isoPath = path.join(bootloaders, 'ISOLINUX');
28
+ await exec(`cp ${sysPath}/chain.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
29
+ await exec(`cp ${isoPath}/isohdpfx.bin ${this.settings.iso_work}/isolinux/`, this.echo);
30
+ // just for x64 arch
31
+ await exec(`cp ${isoPath}/isolinux.bin ${this.settings.iso_work}/isolinux/`, this.echo);
32
+ await exec(`cp ${sysPath}/ldlinux.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
33
+ await exec(`cp ${sysPath}/libcom32.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
34
+ await exec(`cp ${sysPath}/libutil.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
35
+ await exec(`cp ${sysPath}/vesamenu.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
34
36
  const isolinuxThemeDest = this.settings.iso_work + 'isolinux/isolinux.theme.cfg';
35
37
  let isolinuxThemeSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/isolinux.theme.cfg`);
36
38
  if (this.theme.includes('/')) {
@@ -10,6 +10,7 @@ import fs from 'node:fs';
10
10
  import path from 'node:path';
11
11
  import Pacman from '../pacman.js';
12
12
  import Utils from '../utils.js';
13
+ import Diversions from '../diversions.js';
13
14
  // _dirname
14
15
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
15
16
  /**
@@ -45,15 +46,60 @@ export async function xorrisoCommand(clone = false, cryptedclone = false) {
45
46
  // const preparer = '-preparer "prepared by eggs <https://penguins-eggs.net>" '
46
47
  let isoHybridMbr = '';
47
48
  if (this.settings.config.make_isohybrid) {
48
- const isolinuxFile = path.resolve(__dirname, `../../../bootloaders/syslinux/isohdpfx.bin`);
49
- if (fs.existsSync(isolinuxFile)) {
50
- isoHybridMbr = `-isohybrid-mbr ${isolinuxFile}`;
49
+ const bootloaders = Diversions.bootloaders(this.familyId);
50
+ const isohybridFile = path.resolve(bootloaders, `ISOLINUX/isohdpfx.bin`);
51
+ if (fs.existsSync(isohybridFile)) {
52
+ isoHybridMbr = `-isohybrid-mbr ${isohybridFile}`;
51
53
  }
52
54
  else {
53
- Utils.warning(`Can't create isohybrid image. File: ${isolinuxFile} not found. \nThe resulting image will be a standard iso file`);
55
+ Utils.warning(`Can't create isohybrid image, file: ${isohybridFile} not found!`);
56
+ process.exit();
54
57
  }
55
58
  }
56
- if (Pacman.packageIsInstalled('genisoimage')) {
59
+ // su arm no isolinux
60
+ let isolinuxBin = '';
61
+ let isolinuxCat = '';
62
+ let noemulboot = '';
63
+ let bootloadsize = '';
64
+ let bootinfotable = '';
65
+ if (process.arch !== 'arm64') {
66
+ isolinuxBin = `-b isolinux/isolinux.bin`;
67
+ isolinuxCat = `-c isolinux/boot.cat`;
68
+ noemulboot = '-no-emul-boot';
69
+ bootloadsize = '-boot-load-size 4';
70
+ bootinfotable = '-boot-info-table';
71
+ }
72
+ if (Pacman.packageIsInstalled('xorriso')) {
73
+ let uefi_elToritoAltBoot = '';
74
+ let uefi_e = '';
75
+ let uefi_isohybridGptBasdat = '';
76
+ let uefi_noEmulBoot = '';
77
+ if (this.settings.config.make_efi) {
78
+ uefi_elToritoAltBoot = '-eltorito-alt-boot';
79
+ uefi_e = '-e boot/grub/efi.img';
80
+ uefi_isohybridGptBasdat = '-isohybrid-gpt-basdat';
81
+ uefi_noEmulBoot = '-no-emul-boot';
82
+ }
83
+ command = `xorriso -as mkisofs \
84
+ -J \
85
+ -joliet-long \
86
+ -l \
87
+ -iso-level 3 \
88
+ ${isoHybridMbr} \
89
+ -partition_offset 16 \
90
+ -V ${this.volid} \
91
+ ${isolinuxBin} \
92
+ ${isolinuxCat} \
93
+ -no-emul-boot \
94
+ -boot-load-size 4 \
95
+ -boot-info-table \
96
+ ${uefi_elToritoAltBoot} \
97
+ ${uefi_e} \
98
+ ${uefi_isohybridGptBasdat} \
99
+ ${uefi_noEmulBoot} \
100
+ -o ${output} ${this.settings.iso_work}`;
101
+ }
102
+ else {
57
103
  this.genisoimage = true;
58
104
  command = `genisoimage \
59
105
  -iso-level 3 \
@@ -71,49 +117,7 @@ export async function xorrisoCommand(clone = false, cryptedclone = false) {
71
117
  -boot-info-table \
72
118
  -eltorito-alt-boot \
73
119
  -e boot/grub/efi.img \
74
- -no-emul-boot \
75
120
  -o ${output} ${this.settings.iso_work}`;
76
- return command;
77
- }
78
- /**
79
- * xorriso
80
- */
81
- // uefi_opt="-uefi_elToritoAltBoot-alt-boot -e boot/grub/efi.img -isohybrid-gpt-basdat -no-emul-boot"
82
- let uefi_elToritoAltBoot = '';
83
- let uefi_e = '';
84
- let uefi_isohybridGptBasdat = '';
85
- let uefi_noEmulBoot = '';
86
- if (this.settings.config.make_efi) {
87
- uefi_elToritoAltBoot = '-eltorito-alt-boot';
88
- uefi_e = '-e boot/grub/efi.img';
89
- uefi_isohybridGptBasdat = '-isohybrid-gpt-basdat';
90
- uefi_noEmulBoot = '-no-emul-boot';
91
121
  }
92
- /**
93
- * L'immagine efi è efi.img ed è
94
- * presente in boot/grub/efi.img
95
- * per cui:
96
- * -append_partition 2 0xef efi.img
97
- * --efi-boot efi.img
98
- * non sono necessari
99
- */
100
- command = `xorriso -as mkisofs \
101
- -J \
102
- -joliet-long \
103
- -l \
104
- -iso-level 3 \
105
- ${isoHybridMbr} \
106
- -partition_offset 16 \
107
- -V ${this.volid} \
108
- -b isolinux/isolinux.bin \
109
- -c isolinux/boot.cat \
110
- -no-emul-boot \
111
- -boot-load-size 4 \
112
- -boot-info-table \
113
- ${uefi_elToritoAltBoot} \
114
- ${uefi_e} \
115
- ${uefi_isohybridGptBasdat} \
116
- ${uefi_noEmulBoot} \
117
- -o ${output} ${this.settings.iso_work}`;
118
122
  return command;
119
123
  }
@@ -380,6 +380,13 @@ export default class Pacman {
380
380
  else if (codenameLikeId === 'trixie') {
381
381
  const dest = '/etc/penguins-eggs.d/distros/trixie';
382
382
  await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
383
+ /**
384
+ * Debian 14 forky eredita tutto da buster
385
+ */
386
+ }
387
+ else if (codenameLikeId === 'forky') {
388
+ const dest = '/etc/penguins-eggs.d/distros/forky';
389
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
383
390
  /***********************************************************************************
384
391
  * Devuan
385
392
  **********************************************************************************/
@@ -21,14 +21,13 @@ export default class Pxe {
21
21
  pxeRoot: string;
22
22
  distro: Distro;
23
23
  settings: Settings;
24
- verbose: boolean;
25
24
  vmlinuz: string;
26
25
  /**
27
26
  * constructor
28
27
  * @param nest
29
28
  * @param pxeRoot
30
29
  */
31
- constructor(nest?: string, pxeRoot?: string);
30
+ constructor(nest?: string, pxeRoot?: string, verbose?: boolean);
32
31
  /**
33
32
  * fertilization()
34
33
  *
@@ -18,7 +18,6 @@ import Utils from './utils.js';
18
18
  import Diversions from './diversions.js';
19
19
  // _dirname
20
20
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
21
- const bootloaders = path.resolve(__dirname, `../../bootloaders`);
22
21
  /**
23
22
  * Pxe:
24
23
  */
@@ -32,16 +31,16 @@ export default class Pxe {
32
31
  pxeRoot = '';
33
32
  distro = {};
34
33
  settings = {};
35
- verbose = false;
36
34
  vmlinuz = '';
37
35
  /**
38
36
  * constructor
39
37
  * @param nest
40
38
  * @param pxeRoot
41
39
  */
42
- constructor(nest = '', pxeRoot = '') {
40
+ constructor(nest = '', pxeRoot = '', verbose = false) {
43
41
  this.nest = nest;
44
42
  this.pxeRoot = pxeRoot;
43
+ this.echo = Utils.setEcho(verbose);
45
44
  }
46
45
  /**
47
46
  * fertilization()
@@ -206,19 +205,22 @@ export default class Pxe {
206
205
  * configure PXE bios
207
206
  */
208
207
  async bios() {
208
+ const bootloaders = Diversions.bootloaders(this.distro.familyId);
209
209
  await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/isolinux.theme.cfg ${this.pxeRoot}/isolinux.theme.cfg`, this.echo);
210
210
  await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/splash.png ${this.pxeRoot}/splash.png`, this.echo);
211
211
  // ipxe.pxe
212
- await exec(`ln -s ${bootloaders}ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
212
+ await exec(`ln -s ${bootloaders}ipxe/ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
213
+ // snponly.efi
214
+ await exec(`ln -s ${bootloaders}ipxe/snponly.efi ${this.pxeRoot}/snponly.efi`, this.echo);
213
215
  // pxe
214
- await exec(`cp ${bootloaders}/syslinux/pxelinux.0 ${this.pxeRoot}/pxelinux.0`, this.echo);
215
- await exec(`cp ${bootloaders}/syslinux/lpxelinux.0 ${this.pxeRoot}/lpxelinux.0`, this.echo);
216
+ await exec(`cp ${bootloaders}PXELINUX/pxelinux.0 ${this.pxeRoot}/pxelinux.0`, this.echo);
217
+ await exec(`cp ${bootloaders}PXELINUX/lpxelinux.0 ${this.pxeRoot}/lpxelinux.0`, this.echo);
216
218
  // syslinux
217
- await exec(`ln -s ${bootloaders}/syslinux/ldlinux.c32 ${this.pxeRoot}/ldlinux.c32`, this.echo);
218
- await exec(`ln -s ${bootloaders}/syslinux/vesamenu.c32 ${this.pxeRoot}/vesamenu.c32`, this.echo);
219
- await exec(`ln -s ${bootloaders}/syslinux/libcom32.c32 ${this.pxeRoot}/libcom32.c32`, this.echo);
220
- await exec(`ln -s ${bootloaders}/syslinux/libutil.c32 ${this.pxeRoot}/libutil.c32`, this.echo);
221
- await exec(`ln -s ${bootloaders}/syslinux/memdisk ${this.pxeRoot}/memdisk`, this.echo);
219
+ await exec(`ln -s ${bootloaders}syslinux/modules/bios/ldlinux.c32 ${this.pxeRoot}/ldlinux.c32`, this.echo);
220
+ await exec(`ln -s ${bootloaders}syslinux/modules/bios/vesamenu.c32 ${this.pxeRoot}/vesamenu.c32`, this.echo);
221
+ await exec(`ln -s ${bootloaders}syslinux/modules/bios/libcom32.c32 ${this.pxeRoot}/libcom32.c32`, this.echo);
222
+ await exec(`ln -s ${bootloaders}syslinux/modules/bios/libutil.c32 ${this.pxeRoot}/libutil.c32`, this.echo);
223
+ await exec(`ln -s ${bootloaders}syslinux/modules/bios/memdisk ${this.pxeRoot}/memdisk`, this.echo);
222
224
  await exec(`mkdir ${this.pxeRoot}/pxelinux.cfg`, this.echo);
223
225
  let content = '';
224
226
  content += '# eggs: pxelinux.cfg/default\n';
@@ -254,21 +256,33 @@ export default class Pxe {
254
256
  * @param familyId
255
257
  */
256
258
  async grubCfg() {
259
+ const bootloaders = Diversions.bootloaders(this.distro.familyId);
257
260
  const echoYes = Utils.setEcho(true);
258
261
  /**
259
262
  * On Debian bookworm:
260
- * cd ~/penguins-eggs
261
- * cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed ./bootloaders/
262
- * cp -r /usr/lib/grub/x86_64-efi/ ./bootloaders/grub/x86_64-efi/
263
263
  */
264
264
  await exec(`mkdir -p ${this.pxeRoot}/grub`, this.echo);
265
- /**
266
- * Si potrebbe usare:
267
- * ${bootloaders}/grub/x86_64-efi/monolithic/grubnetx64.efi
268
- * come alternativa per distroname!=="Debian"
269
- */
270
- await exec(`cp ${bootloaders}/grubnetx64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
271
- await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
265
+ if (this.distro.familyId === 'debian') {
266
+ if (process.arch === 'x64') {
267
+ await exec(`cp ${bootloaders}/grub/x86_64-efi-signed/grubnetx64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
268
+ await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
269
+ }
270
+ else if (process.arch === 'ia32') {
271
+ await exec(`cp ${bootloaders}/grub/i386-efi-signed/grubnetia32.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
272
+ await exec(`cp -r ${bootloaders}/grub/i386-efi ${this.pxeRoot}/grub`, this.echo);
273
+ }
274
+ else if (process.arch === 'arm64') {
275
+ await exec(`cp ${bootloaders}/grub/arm64-efi-signed/grubnetaa64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
276
+ await exec(`cp -r ${bootloaders}/grub/arm64-efi ${this.pxeRoot}/grub`, this.echo);
277
+ }
278
+ }
279
+ else {
280
+ /**
281
+ * le altre distribuzione not signed
282
+ */
283
+ await exec(`cp ${bootloaders}grub/x86_64-efi/monolithic/grubnetx64.efi ${this.pxeRoot}/grub.efi`, this.echo);
284
+ await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
285
+ }
272
286
  // Genera il file grub.cfg
273
287
  const grubName = `${this.pxeRoot}/grub/grub.cfg`; // Il file deve chiamarsi grub.cfg
274
288
  let grubContent = '';
@@ -320,15 +334,7 @@ export default class Pxe {
320
334
  ip=dhcp`;
321
335
  break;
322
336
  case 'fedora':
323
- lp = `initrd=http://${Utils.address()}/live/${path.basename(this.initrdImg)} \
324
- root=live:http://${Utils.address()}/live/filesystem.squashfs \
325
- rootfstype=auto \
326
- ro \
327
- rd.live.image \
328
- rd.luks=0 \
329
- rd.md=0 \
330
- rd.dm=0\n`;
331
- break;
337
+ case 'openmamba':
332
338
  case 'opensuse':
333
339
  lp = `initrd=http://${Utils.address()}/live/${path.basename(this.initrdImg)} \
334
340
  root=live:http://${Utils.address()}/live/filesystem.squashfs \