penguins-eggs 25.8.6 → 25.8.28

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 (347) hide show
  1. package/.oclif.manifest.json +8 -1
  2. package/README.md +31 -30
  3. package/addons/eggs/theme/calamares/modules/users.yml +3 -3
  4. package/addons/eggs/theme/livecd/{grub.main.simple.cfg → grub.main.cfg} +2 -22
  5. package/assets/calamares/install-system.sh +2 -2
  6. package/conf/derivatives.yaml +7 -0
  7. package/conf/distros/buster/calamares/modules/bootloader.yml +45 -16
  8. package/conf/distros/buster/calamares/modules/mount.yml +103 -28
  9. package/dist/classes/distro.js +14 -6
  10. package/dist/classes/diversions.d.ts +1 -0
  11. package/dist/classes/diversions.js +7 -0
  12. package/dist/classes/incubation/incubator.d.ts +4 -0
  13. package/dist/classes/incubation/incubator.js +14 -0
  14. package/dist/classes/ovary.d/bind-live-fs.js +2 -2
  15. package/dist/classes/ovary.d/live-create-structure.js +1 -1
  16. package/dist/classes/ovary.d/make-dot-disk.js +16 -4
  17. package/dist/classes/ovary.d/make-efi.d.ts +0 -2
  18. package/dist/classes/ovary.d/make-efi.js +131 -70
  19. package/dist/classes/ovary.d/make-iso.js +1 -1
  20. package/dist/classes/ovary.d/produce.js +5 -1
  21. package/dist/classes/ovary.d/syslinux.js +12 -10
  22. package/dist/classes/ovary.d/xorriso-command.js +51 -47
  23. package/dist/classes/pacman.js +7 -0
  24. package/dist/classes/pxe.d.ts +1 -2
  25. package/dist/classes/pxe.js +35 -21
  26. package/dist/classes/utils.d/kernel.d.ts +6 -56
  27. package/dist/classes/utils.d/kernel.js +49 -280
  28. package/dist/classes/utils.js +11 -5
  29. package/dist/commands/cuckoo.d.ts +1 -0
  30. package/dist/commands/cuckoo.js +3 -2
  31. package/dist/lib/utils.js +1 -0
  32. package/dist/penguins-eggs_25.8.28-1_amd64.deb +0 -0
  33. package/dist/penguins-eggs_25.8.28-1_amd64.deb.sha256 +1 -0
  34. package/dist/{penguins-eggs_25.8.6-bionic-1_amd64.deb → penguins-eggs_25.8.28-1_arm64.deb} +0 -0
  35. package/dist/penguins-eggs_25.8.28-1_arm64.deb.sha256 +1 -0
  36. package/dist/penguins-eggs_25.8.28-1_i386.deb +0 -0
  37. package/dist/penguins-eggs_25.8.28-1_i386.deb.sha256 +1 -0
  38. package/manpages/doc/man/eggs.1.gz +0 -0
  39. package/manpages/doc/man/eggs.html +46 -18
  40. package/package.json +8 -9
  41. package/perrisbrewery/template/dependencies-bionic.yaml +1 -0
  42. package/perrisbrewery/template/dependencies.yaml +21 -4
  43. package/scripts/_eggs +7 -6
  44. package/scripts/eggs.bash +2 -2
  45. package/addons/eggs/theme/livecd/grub.main.full.cfg +0 -43
  46. package/bootloaders/README.md +0 -22
  47. package/bootloaders/grub/x86_64-efi/acpi.mod +0 -0
  48. package/bootloaders/grub/x86_64-efi/adler32.mod +0 -0
  49. package/bootloaders/grub/x86_64-efi/affs.mod +0 -0
  50. package/bootloaders/grub/x86_64-efi/afs.mod +0 -0
  51. package/bootloaders/grub/x86_64-efi/afsplitter.mod +0 -0
  52. package/bootloaders/grub/x86_64-efi/ahci.mod +0 -0
  53. package/bootloaders/grub/x86_64-efi/all_video.mod +0 -0
  54. package/bootloaders/grub/x86_64-efi/aout.mod +0 -0
  55. package/bootloaders/grub/x86_64-efi/appleldr.mod +0 -0
  56. package/bootloaders/grub/x86_64-efi/archelp.mod +0 -0
  57. package/bootloaders/grub/x86_64-efi/at_keyboard.mod +0 -0
  58. package/bootloaders/grub/x86_64-efi/ata.mod +0 -0
  59. package/bootloaders/grub/x86_64-efi/backtrace.mod +0 -0
  60. package/bootloaders/grub/x86_64-efi/bfs.mod +0 -0
  61. package/bootloaders/grub/x86_64-efi/bitmap.mod +0 -0
  62. package/bootloaders/grub/x86_64-efi/bitmap_scale.mod +0 -0
  63. package/bootloaders/grub/x86_64-efi/blocklist.mod +0 -0
  64. package/bootloaders/grub/x86_64-efi/boot.mod +0 -0
  65. package/bootloaders/grub/x86_64-efi/bsd.mod +0 -0
  66. package/bootloaders/grub/x86_64-efi/bswap_test.mod +0 -0
  67. package/bootloaders/grub/x86_64-efi/btrfs.mod +0 -0
  68. package/bootloaders/grub/x86_64-efi/bufio.mod +0 -0
  69. package/bootloaders/grub/x86_64-efi/cat.mod +0 -0
  70. package/bootloaders/grub/x86_64-efi/cbfs.mod +0 -0
  71. package/bootloaders/grub/x86_64-efi/cbls.mod +0 -0
  72. package/bootloaders/grub/x86_64-efi/cbmemc.mod +0 -0
  73. package/bootloaders/grub/x86_64-efi/cbtable.mod +0 -0
  74. package/bootloaders/grub/x86_64-efi/cbtime.mod +0 -0
  75. package/bootloaders/grub/x86_64-efi/chain.mod +0 -0
  76. package/bootloaders/grub/x86_64-efi/cmdline_cat_test.mod +0 -0
  77. package/bootloaders/grub/x86_64-efi/cmp.mod +0 -0
  78. package/bootloaders/grub/x86_64-efi/cmp_test.mod +0 -0
  79. package/bootloaders/grub/x86_64-efi/command.lst +0 -194
  80. package/bootloaders/grub/x86_64-efi/config.h +0 -69
  81. package/bootloaders/grub/x86_64-efi/configfile.mod +0 -0
  82. package/bootloaders/grub/x86_64-efi/cpio.mod +0 -0
  83. package/bootloaders/grub/x86_64-efi/cpio_be.mod +0 -0
  84. package/bootloaders/grub/x86_64-efi/cpuid.mod +0 -0
  85. package/bootloaders/grub/x86_64-efi/crc64.mod +0 -0
  86. package/bootloaders/grub/x86_64-efi/crypto.lst +0 -45
  87. package/bootloaders/grub/x86_64-efi/crypto.mod +0 -0
  88. package/bootloaders/grub/x86_64-efi/cryptodisk.mod +0 -0
  89. package/bootloaders/grub/x86_64-efi/cs5536.mod +0 -0
  90. package/bootloaders/grub/x86_64-efi/ctz_test.mod +0 -0
  91. package/bootloaders/grub/x86_64-efi/date.mod +0 -0
  92. package/bootloaders/grub/x86_64-efi/datehook.mod +0 -0
  93. package/bootloaders/grub/x86_64-efi/datetime.mod +0 -0
  94. package/bootloaders/grub/x86_64-efi/disk.mod +0 -0
  95. package/bootloaders/grub/x86_64-efi/diskfilter.mod +0 -0
  96. package/bootloaders/grub/x86_64-efi/div.mod +0 -0
  97. package/bootloaders/grub/x86_64-efi/div_test.mod +0 -0
  98. package/bootloaders/grub/x86_64-efi/dm_nv.mod +0 -0
  99. package/bootloaders/grub/x86_64-efi/echo.mod +0 -0
  100. package/bootloaders/grub/x86_64-efi/efi_gop.mod +0 -0
  101. package/bootloaders/grub/x86_64-efi/efi_uga.mod +0 -0
  102. package/bootloaders/grub/x86_64-efi/efifwsetup.mod +0 -0
  103. package/bootloaders/grub/x86_64-efi/efinet.mod +0 -0
  104. package/bootloaders/grub/x86_64-efi/ehci.mod +0 -0
  105. package/bootloaders/grub/x86_64-efi/elf.mod +0 -0
  106. package/bootloaders/grub/x86_64-efi/eval.mod +0 -0
  107. package/bootloaders/grub/x86_64-efi/exfat.mod +0 -0
  108. package/bootloaders/grub/x86_64-efi/exfctest.mod +0 -0
  109. package/bootloaders/grub/x86_64-efi/ext2.mod +0 -0
  110. package/bootloaders/grub/x86_64-efi/extcmd.mod +0 -0
  111. package/bootloaders/grub/x86_64-efi/f2fs.mod +0 -0
  112. package/bootloaders/grub/x86_64-efi/fat.mod +0 -0
  113. package/bootloaders/grub/x86_64-efi/fdt.lst +0 -0
  114. package/bootloaders/grub/x86_64-efi/file.mod +0 -0
  115. package/bootloaders/grub/x86_64-efi/fixvideo.mod +0 -0
  116. package/bootloaders/grub/x86_64-efi/font.mod +0 -0
  117. package/bootloaders/grub/x86_64-efi/fs.lst +0 -37
  118. package/bootloaders/grub/x86_64-efi/fshelp.mod +0 -0
  119. package/bootloaders/grub/x86_64-efi/functional_test.mod +0 -0
  120. package/bootloaders/grub/x86_64-efi/gcry_arcfour.mod +0 -0
  121. package/bootloaders/grub/x86_64-efi/gcry_blowfish.mod +0 -0
  122. package/bootloaders/grub/x86_64-efi/gcry_camellia.mod +0 -0
  123. package/bootloaders/grub/x86_64-efi/gcry_cast5.mod +0 -0
  124. package/bootloaders/grub/x86_64-efi/gcry_crc.mod +0 -0
  125. package/bootloaders/grub/x86_64-efi/gcry_des.mod +0 -0
  126. package/bootloaders/grub/x86_64-efi/gcry_dsa.mod +0 -0
  127. package/bootloaders/grub/x86_64-efi/gcry_idea.mod +0 -0
  128. package/bootloaders/grub/x86_64-efi/gcry_md4.mod +0 -0
  129. package/bootloaders/grub/x86_64-efi/gcry_md5.mod +0 -0
  130. package/bootloaders/grub/x86_64-efi/gcry_rfc2268.mod +0 -0
  131. package/bootloaders/grub/x86_64-efi/gcry_rijndael.mod +0 -0
  132. package/bootloaders/grub/x86_64-efi/gcry_rmd160.mod +0 -0
  133. package/bootloaders/grub/x86_64-efi/gcry_rsa.mod +0 -0
  134. package/bootloaders/grub/x86_64-efi/gcry_seed.mod +0 -0
  135. package/bootloaders/grub/x86_64-efi/gcry_serpent.mod +0 -0
  136. package/bootloaders/grub/x86_64-efi/gcry_sha1.mod +0 -0
  137. package/bootloaders/grub/x86_64-efi/gcry_sha256.mod +0 -0
  138. package/bootloaders/grub/x86_64-efi/gcry_sha512.mod +0 -0
  139. package/bootloaders/grub/x86_64-efi/gcry_tiger.mod +0 -0
  140. package/bootloaders/grub/x86_64-efi/gcry_twofish.mod +0 -0
  141. package/bootloaders/grub/x86_64-efi/gcry_whirlpool.mod +0 -0
  142. package/bootloaders/grub/x86_64-efi/geli.mod +0 -0
  143. package/bootloaders/grub/x86_64-efi/gettext.mod +0 -0
  144. package/bootloaders/grub/x86_64-efi/gfxmenu.mod +0 -0
  145. package/bootloaders/grub/x86_64-efi/gfxterm.mod +0 -0
  146. package/bootloaders/grub/x86_64-efi/gfxterm_background.mod +0 -0
  147. package/bootloaders/grub/x86_64-efi/gfxterm_menu.mod +0 -0
  148. package/bootloaders/grub/x86_64-efi/gptsync.mod +0 -0
  149. package/bootloaders/grub/x86_64-efi/gzio.mod +0 -0
  150. package/bootloaders/grub/x86_64-efi/halt.mod +0 -0
  151. package/bootloaders/grub/x86_64-efi/hashsum.mod +0 -0
  152. package/bootloaders/grub/x86_64-efi/hdparm.mod +0 -0
  153. package/bootloaders/grub/x86_64-efi/hello.mod +0 -0
  154. package/bootloaders/grub/x86_64-efi/help.mod +0 -0
  155. package/bootloaders/grub/x86_64-efi/hexdump.mod +0 -0
  156. package/bootloaders/grub/x86_64-efi/hfs.mod +0 -0
  157. package/bootloaders/grub/x86_64-efi/hfsplus.mod +0 -0
  158. package/bootloaders/grub/x86_64-efi/hfspluscomp.mod +0 -0
  159. package/bootloaders/grub/x86_64-efi/http.mod +0 -0
  160. package/bootloaders/grub/x86_64-efi/iorw.mod +0 -0
  161. package/bootloaders/grub/x86_64-efi/iso9660.mod +0 -0
  162. package/bootloaders/grub/x86_64-efi/jfs.mod +0 -0
  163. package/bootloaders/grub/x86_64-efi/jpeg.mod +0 -0
  164. package/bootloaders/grub/x86_64-efi/json.mod +0 -0
  165. package/bootloaders/grub/x86_64-efi/kernel.img +0 -0
  166. package/bootloaders/grub/x86_64-efi/keylayouts.mod +0 -0
  167. package/bootloaders/grub/x86_64-efi/keystatus.mod +0 -0
  168. package/bootloaders/grub/x86_64-efi/ldm.mod +0 -0
  169. package/bootloaders/grub/x86_64-efi/legacy_password_test.mod +0 -0
  170. package/bootloaders/grub/x86_64-efi/legacycfg.mod +0 -0
  171. package/bootloaders/grub/x86_64-efi/linux.mod +0 -0
  172. package/bootloaders/grub/x86_64-efi/linux16.mod +0 -0
  173. package/bootloaders/grub/x86_64-efi/linuxefi.mod +0 -0
  174. package/bootloaders/grub/x86_64-efi/loadbios.mod +0 -0
  175. package/bootloaders/grub/x86_64-efi/loadenv.mod +0 -0
  176. package/bootloaders/grub/x86_64-efi/loopback.mod +0 -0
  177. package/bootloaders/grub/x86_64-efi/ls.mod +0 -0
  178. package/bootloaders/grub/x86_64-efi/lsacpi.mod +0 -0
  179. package/bootloaders/grub/x86_64-efi/lsefi.mod +0 -0
  180. package/bootloaders/grub/x86_64-efi/lsefimmap.mod +0 -0
  181. package/bootloaders/grub/x86_64-efi/lsefisystab.mod +0 -0
  182. package/bootloaders/grub/x86_64-efi/lsmmap.mod +0 -0
  183. package/bootloaders/grub/x86_64-efi/lspci.mod +0 -0
  184. package/bootloaders/grub/x86_64-efi/lssal.mod +0 -0
  185. package/bootloaders/grub/x86_64-efi/luks.mod +0 -0
  186. package/bootloaders/grub/x86_64-efi/luks2.mod +0 -0
  187. package/bootloaders/grub/x86_64-efi/lvm.mod +0 -0
  188. package/bootloaders/grub/x86_64-efi/lzopio.mod +0 -0
  189. package/bootloaders/grub/x86_64-efi/macbless.mod +0 -0
  190. package/bootloaders/grub/x86_64-efi/macho.mod +0 -0
  191. package/bootloaders/grub/x86_64-efi/mdraid09.mod +0 -0
  192. package/bootloaders/grub/x86_64-efi/mdraid09_be.mod +0 -0
  193. package/bootloaders/grub/x86_64-efi/mdraid1x.mod +0 -0
  194. package/bootloaders/grub/x86_64-efi/memdisk.mod +0 -0
  195. package/bootloaders/grub/x86_64-efi/memrw.mod +0 -0
  196. package/bootloaders/grub/x86_64-efi/minicmd.mod +0 -0
  197. package/bootloaders/grub/x86_64-efi/minix.mod +0 -0
  198. package/bootloaders/grub/x86_64-efi/minix2.mod +0 -0
  199. package/bootloaders/grub/x86_64-efi/minix2_be.mod +0 -0
  200. package/bootloaders/grub/x86_64-efi/minix3.mod +0 -0
  201. package/bootloaders/grub/x86_64-efi/minix3_be.mod +0 -0
  202. package/bootloaders/grub/x86_64-efi/minix_be.mod +0 -0
  203. package/bootloaders/grub/x86_64-efi/mmap.mod +0 -0
  204. package/bootloaders/grub/x86_64-efi/moddep.lst +0 -267
  205. package/bootloaders/grub/x86_64-efi/modinfo.sh +0 -40
  206. package/bootloaders/grub/x86_64-efi/monolithic/gcdx64.efi +0 -0
  207. package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64-installer.efi +0 -0
  208. package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64.efi +0 -0
  209. package/bootloaders/grub/x86_64-efi/monolithic/grubx64.efi +0 -0
  210. package/bootloaders/grub/x86_64-efi/morse.mod +0 -0
  211. package/bootloaders/grub/x86_64-efi/mpi.mod +0 -0
  212. package/bootloaders/grub/x86_64-efi/msdospart.mod +0 -0
  213. package/bootloaders/grub/x86_64-efi/mul_test.mod +0 -0
  214. package/bootloaders/grub/x86_64-efi/multiboot.mod +0 -0
  215. package/bootloaders/grub/x86_64-efi/multiboot2.mod +0 -0
  216. package/bootloaders/grub/x86_64-efi/nativedisk.mod +0 -0
  217. package/bootloaders/grub/x86_64-efi/net.mod +0 -0
  218. package/bootloaders/grub/x86_64-efi/newc.mod +0 -0
  219. package/bootloaders/grub/x86_64-efi/nilfs2.mod +0 -0
  220. package/bootloaders/grub/x86_64-efi/normal.mod +0 -0
  221. package/bootloaders/grub/x86_64-efi/ntfs.mod +0 -0
  222. package/bootloaders/grub/x86_64-efi/ntfscomp.mod +0 -0
  223. package/bootloaders/grub/x86_64-efi/odc.mod +0 -0
  224. package/bootloaders/grub/x86_64-efi/offsetio.mod +0 -0
  225. package/bootloaders/grub/x86_64-efi/ohci.mod +0 -0
  226. package/bootloaders/grub/x86_64-efi/part_acorn.mod +0 -0
  227. package/bootloaders/grub/x86_64-efi/part_amiga.mod +0 -0
  228. package/bootloaders/grub/x86_64-efi/part_apple.mod +0 -0
  229. package/bootloaders/grub/x86_64-efi/part_bsd.mod +0 -0
  230. package/bootloaders/grub/x86_64-efi/part_dfly.mod +0 -0
  231. package/bootloaders/grub/x86_64-efi/part_dvh.mod +0 -0
  232. package/bootloaders/grub/x86_64-efi/part_gpt.mod +0 -0
  233. package/bootloaders/grub/x86_64-efi/part_msdos.mod +0 -0
  234. package/bootloaders/grub/x86_64-efi/part_plan.mod +0 -0
  235. package/bootloaders/grub/x86_64-efi/part_sun.mod +0 -0
  236. package/bootloaders/grub/x86_64-efi/part_sunpc.mod +0 -0
  237. package/bootloaders/grub/x86_64-efi/partmap.lst +0 -11
  238. package/bootloaders/grub/x86_64-efi/parttool.lst +0 -1
  239. package/bootloaders/grub/x86_64-efi/parttool.mod +0 -0
  240. package/bootloaders/grub/x86_64-efi/password.mod +0 -0
  241. package/bootloaders/grub/x86_64-efi/password_pbkdf2.mod +0 -0
  242. package/bootloaders/grub/x86_64-efi/pata.mod +0 -0
  243. package/bootloaders/grub/x86_64-efi/pbkdf2.mod +0 -0
  244. package/bootloaders/grub/x86_64-efi/pbkdf2_test.mod +0 -0
  245. package/bootloaders/grub/x86_64-efi/pcidump.mod +0 -0
  246. package/bootloaders/grub/x86_64-efi/pgp.mod +0 -0
  247. package/bootloaders/grub/x86_64-efi/play.mod +0 -0
  248. package/bootloaders/grub/x86_64-efi/png.mod +0 -0
  249. package/bootloaders/grub/x86_64-efi/priority_queue.mod +0 -0
  250. package/bootloaders/grub/x86_64-efi/probe.mod +0 -0
  251. package/bootloaders/grub/x86_64-efi/procfs.mod +0 -0
  252. package/bootloaders/grub/x86_64-efi/progress.mod +0 -0
  253. package/bootloaders/grub/x86_64-efi/raid5rec.mod +0 -0
  254. package/bootloaders/grub/x86_64-efi/raid6rec.mod +0 -0
  255. package/bootloaders/grub/x86_64-efi/random.mod +0 -0
  256. package/bootloaders/grub/x86_64-efi/rdmsr.mod +0 -0
  257. package/bootloaders/grub/x86_64-efi/read.mod +0 -0
  258. package/bootloaders/grub/x86_64-efi/reboot.mod +0 -0
  259. package/bootloaders/grub/x86_64-efi/regexp.mod +0 -0
  260. package/bootloaders/grub/x86_64-efi/reiserfs.mod +0 -0
  261. package/bootloaders/grub/x86_64-efi/relocator.mod +0 -0
  262. package/bootloaders/grub/x86_64-efi/romfs.mod +0 -0
  263. package/bootloaders/grub/x86_64-efi/scsi.mod +0 -0
  264. package/bootloaders/grub/x86_64-efi/search.mod +0 -0
  265. package/bootloaders/grub/x86_64-efi/search_fs_file.mod +0 -0
  266. package/bootloaders/grub/x86_64-efi/search_fs_uuid.mod +0 -0
  267. package/bootloaders/grub/x86_64-efi/search_label.mod +0 -0
  268. package/bootloaders/grub/x86_64-efi/serial.mod +0 -0
  269. package/bootloaders/grub/x86_64-efi/setjmp.mod +0 -0
  270. package/bootloaders/grub/x86_64-efi/setjmp_test.mod +0 -0
  271. package/bootloaders/grub/x86_64-efi/setpci.mod +0 -0
  272. package/bootloaders/grub/x86_64-efi/sfs.mod +0 -0
  273. package/bootloaders/grub/x86_64-efi/shift_test.mod +0 -0
  274. package/bootloaders/grub/x86_64-efi/signature_test.mod +0 -0
  275. package/bootloaders/grub/x86_64-efi/sleep.mod +0 -0
  276. package/bootloaders/grub/x86_64-efi/sleep_test.mod +0 -0
  277. package/bootloaders/grub/x86_64-efi/smbios.mod +0 -0
  278. package/bootloaders/grub/x86_64-efi/spkmodem.mod +0 -0
  279. package/bootloaders/grub/x86_64-efi/squash4.mod +0 -0
  280. package/bootloaders/grub/x86_64-efi/strtoull_test.mod +0 -0
  281. package/bootloaders/grub/x86_64-efi/syslinuxcfg.mod +0 -0
  282. package/bootloaders/grub/x86_64-efi/tar.mod +0 -0
  283. package/bootloaders/grub/x86_64-efi/terminal.lst +0 -9
  284. package/bootloaders/grub/x86_64-efi/terminal.mod +0 -0
  285. package/bootloaders/grub/x86_64-efi/terminfo.mod +0 -0
  286. package/bootloaders/grub/x86_64-efi/test.mod +0 -0
  287. package/bootloaders/grub/x86_64-efi/test_blockarg.mod +0 -0
  288. package/bootloaders/grub/x86_64-efi/testload.mod +0 -0
  289. package/bootloaders/grub/x86_64-efi/testspeed.mod +0 -0
  290. package/bootloaders/grub/x86_64-efi/tftp.mod +0 -0
  291. package/bootloaders/grub/x86_64-efi/tga.mod +0 -0
  292. package/bootloaders/grub/x86_64-efi/time.mod +0 -0
  293. package/bootloaders/grub/x86_64-efi/tpm.mod +0 -0
  294. package/bootloaders/grub/x86_64-efi/tr.mod +0 -0
  295. package/bootloaders/grub/x86_64-efi/trig.mod +0 -0
  296. package/bootloaders/grub/x86_64-efi/true.mod +0 -0
  297. package/bootloaders/grub/x86_64-efi/udf.mod +0 -0
  298. package/bootloaders/grub/x86_64-efi/ufs1.mod +0 -0
  299. package/bootloaders/grub/x86_64-efi/ufs1_be.mod +0 -0
  300. package/bootloaders/grub/x86_64-efi/ufs2.mod +0 -0
  301. package/bootloaders/grub/x86_64-efi/uhci.mod +0 -0
  302. package/bootloaders/grub/x86_64-efi/usb.mod +0 -0
  303. package/bootloaders/grub/x86_64-efi/usb_keyboard.mod +0 -0
  304. package/bootloaders/grub/x86_64-efi/usbms.mod +0 -0
  305. package/bootloaders/grub/x86_64-efi/usbserial_common.mod +0 -0
  306. package/bootloaders/grub/x86_64-efi/usbserial_ftdi.mod +0 -0
  307. package/bootloaders/grub/x86_64-efi/usbserial_pl2303.mod +0 -0
  308. package/bootloaders/grub/x86_64-efi/usbserial_usbdebug.mod +0 -0
  309. package/bootloaders/grub/x86_64-efi/usbtest.mod +0 -0
  310. package/bootloaders/grub/x86_64-efi/video.lst +0 -4
  311. package/bootloaders/grub/x86_64-efi/video.mod +0 -0
  312. package/bootloaders/grub/x86_64-efi/video_bochs.mod +0 -0
  313. package/bootloaders/grub/x86_64-efi/video_cirrus.mod +0 -0
  314. package/bootloaders/grub/x86_64-efi/video_colors.mod +0 -0
  315. package/bootloaders/grub/x86_64-efi/video_fb.mod +0 -0
  316. package/bootloaders/grub/x86_64-efi/videoinfo.mod +0 -0
  317. package/bootloaders/grub/x86_64-efi/videotest.mod +0 -0
  318. package/bootloaders/grub/x86_64-efi/videotest_checksum.mod +0 -0
  319. package/bootloaders/grub/x86_64-efi/wrmsr.mod +0 -0
  320. package/bootloaders/grub/x86_64-efi/xfs.mod +0 -0
  321. package/bootloaders/grub/x86_64-efi/xnu.mod +0 -0
  322. package/bootloaders/grub/x86_64-efi/xnu_uuid.mod +0 -0
  323. package/bootloaders/grub/x86_64-efi/xnu_uuid_test.mod +0 -0
  324. package/bootloaders/grub/x86_64-efi/xzio.mod +0 -0
  325. package/bootloaders/grub/x86_64-efi/zfs.mod +0 -0
  326. package/bootloaders/grub/x86_64-efi/zfscrypt.mod +0 -0
  327. package/bootloaders/grub/x86_64-efi/zfsinfo.mod +0 -0
  328. package/bootloaders/grub/x86_64-efi/zstd.mod +0 -0
  329. package/bootloaders/grubnetx64.efi.signed +0 -0
  330. package/bootloaders/grubx64.efi +0 -0
  331. package/bootloaders/grubx64.efi.signed +0 -0
  332. package/bootloaders/ipxe.pxe +0 -0
  333. package/bootloaders/shimx64.efi +0 -0
  334. package/bootloaders/shimx64.efi.signed +0 -0
  335. package/bootloaders/syslinux/README.md +0 -3
  336. package/bootloaders/syslinux/chain.c32 +0 -0
  337. package/bootloaders/syslinux/isohdpfx.bin +0 -0
  338. package/bootloaders/syslinux/isolinux.bin +0 -0
  339. package/bootloaders/syslinux/ldlinux.c32 +0 -0
  340. package/bootloaders/syslinux/libcom32.c32 +0 -0
  341. package/bootloaders/syslinux/libutil.c32 +0 -0
  342. package/bootloaders/syslinux/lpxelinux.0 +0 -0
  343. package/bootloaders/syslinux/memdisk +0 -0
  344. package/bootloaders/syslinux/pxelinux.0 +0 -0
  345. package/bootloaders/syslinux/vesamenu.c32 +0 -0
  346. package/bootloaders/undionly.kpxe +0 -0
  347. package/dist/penguins-eggs_25.8.6-bionic-1_amd64.deb.sha256 +0 -1
@@ -123,4 +123,11 @@ export default class Diversions {
123
123
  }
124
124
  return found;
125
125
  }
126
+ static bootloaders(familyId) {
127
+ let bootloaders = '/usr/lib/';
128
+ if (familyId !== 'debian') {
129
+ bootloaders = '/usr/lib/penguins-eggs/bootloaders/';
130
+ }
131
+ return bootloaders;
132
+ }
126
133
  }
@@ -41,4 +41,8 @@ export default class Incubator {
41
41
  *
42
42
  */
43
43
  private createInstallerDirs;
44
+ /**
45
+ * soluzione tampone from Glenn
46
+ */
47
+ private sudoers;
44
48
  }
@@ -69,6 +69,7 @@ export default class Incubator {
69
69
  Utils.warning(`creating ${installer().name} configuration files on ${installer().configRoot}`);
70
70
  this.createInstallerDirs();
71
71
  this.createBranding();
72
+ this.sudoers();
72
73
  const codenameLikeId = this.distro.codenameLikeId;
73
74
  try {
74
75
  /**
@@ -111,6 +112,10 @@ export default class Incubator {
111
112
  else if (codenameLikeId === 'trixie') {
112
113
  const trixie = new Buster(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
113
114
  await trixie.create();
115
+ }
116
+ else if (codenameLikeId === 'forky') {
117
+ const forky = new Buster(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
118
+ await forky.create();
114
119
  /**
115
120
  * Devuan
116
121
  */
@@ -349,6 +354,15 @@ export default class Incubator {
349
354
  shx.cp(path.resolve(__dirname, '../../../assets/calamares/install-system.sh'), '/usr/sbin/install-system.sh');
350
355
  shx.chmod('+x', '/usr/sbin/install-system.sh');
351
356
  }
357
+ /**
358
+ * soluzione tampone from Glenn
359
+ */
360
+ sudoers() {
361
+ let live = 'live';
362
+ let content = `${live} ALL=(ALL) NOPASSWD: /usr/bin/calamares`;
363
+ let fname = '/etc/sudoers.d/calamares';
364
+ fs.writeFileSync(fname, content, 'utf-8');
365
+ }
352
366
  }
353
367
  /**
354
368
  *
@@ -64,7 +64,7 @@ export async function bindLiveFs() {
64
64
  cmds.push(`# /${dir} is copied if not exists on filesystem.squashfs`);
65
65
  let chkDir = path.join(this.settings.config.snapshot_mnt, 'filesystem.squashfs', dir);
66
66
  cmds.push(`if ! [ -d "${chkDir}" ]; then`);
67
- cmds.push(await rexec(` cp -r /${dir} ${this.settings.config.snapshot_mnt}filesystem.squashfs`, this.verbose));
67
+ cmds.push(await rexec(` cp -a /${dir} ${this.settings.config.snapshot_mnt}filesystem.squashfs`, this.verbose));
68
68
  cmds.push(`fi`);
69
69
  continue;
70
70
  }
@@ -99,7 +99,7 @@ export async function bindLiveFs() {
99
99
  cmds.push('# file exist... skip');
100
100
  }
101
101
  else {
102
- cmds.push(await rexec(`cp /${dir} ${this.settings.work_dir.merged}`, this.verbose));
102
+ cmds.push(await rexec(`cp -p /${dir} ${this.settings.work_dir.merged}`, this.verbose));
103
103
  }
104
104
  }
105
105
  cmds.push(endLine);
@@ -29,7 +29,7 @@ export async function liveCreateStructure() {
29
29
  tryCatch(cmd, this.verbose);
30
30
  }
31
31
  if (!fs.existsSync(this.settings.config.snapshot_dir + '/README.md')) {
32
- cmd = `cp ${path.resolve(__dirname, '../../conf/README.md')} ${this.settings.config.snapshot_dir}README.md`;
32
+ cmd = `cp ${path.resolve(__dirname, '../../../conf/README.md')} ${this.settings.config.snapshot_dir}README.md`;
33
33
  tryCatch(cmd, this.verbose);
34
34
  }
35
35
  // Ovarium
@@ -24,12 +24,24 @@ export function makeDotDisk(info = '', mksquashfs = '', mkisofs = '') {
24
24
  shx.rm('-rf', dotDisk);
25
25
  }
26
26
  shx.mkdir('-p', dotDisk);
27
- let text = `# Created at: ${Utils.formatDate(new Date())}\n`;
28
- text += `# penguins_eggs v. ${Utils.getPackageVersion()}\n`;
29
27
  /**
30
- * write test as .disk/info
28
+ * write volid .disk/info
29
+ * Required
31
30
  */
32
- fs.writeFileSync(path.join(dotDisk, 'info'), text, 'utf-8');
31
+ let volidContent = this.settings.isoFilename;
32
+ fs.writeFileSync(path.join(dotDisk, 'info'), volidContent, 'utf-8');
33
+ /**
34
+ * A readme now replace the old .disk/info
35
+ */
36
+ let readme = ``;
37
+ readme += `# penguins_eggs\n`;
38
+ readme += `\n`;
39
+ readme += `Volinfo: ${this.volid}\n`;
40
+ readme += `Image created at: ${Utils.formatDate(new Date())} using penguins_eggs v. ${Utils.getPackageVersion()})\n`;
41
+ readme += `repo: [penguins-eggs](https://github.com/penguins-eggs)\n`;
42
+ readme += `blog: [penguins-eggs.net](https://penguins-eggs.net)\n`;
43
+ readme += `author: [Piero Proietti](mailto://piero.proietti@gmail.com)\n`;
44
+ fs.writeFileSync(path.join(dotDisk, 'README.md'), readme, 'utf-8');
33
45
  /**
34
46
  * write mksquashfs as .disk/mksquashfs
35
47
  */
@@ -10,7 +10,5 @@ import Ovary from '../ovary.js';
10
10
  *
11
11
  * @param this
12
12
  * @param theme
13
- * cp /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed ./bootloaders/
14
- * cp /usr/lib/shim/shimx64.efi.signed ./bootloaders/
15
13
  */
16
14
  export declare function makeEfi(this: Ovary, theme?: string): Promise<void>;
@@ -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)/${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
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}`);
@@ -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
@@ -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
  *