penguins-eggs 10.1.1 → 25.7.7

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 (422) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +55 -60
  3. package/assets/calamares/install-system.sh +2 -1
  4. package/conf/derivatives.yaml +5 -1
  5. package/conf/distros/alpine/calamares/modules/packages.yml +1 -1
  6. package/conf/distros/alpine/calamares/settings.yml +16 -29
  7. package/conf/distros/buster/calamares/modules/fstab.yml +1 -1
  8. package/conf/distros/buster/calamares/modules/mount.yml +4 -12
  9. package/conf/distros/fedora/calamares/modules/bootloader.yml +46 -17
  10. package/conf/distros/fedora/calamares/modules/fstab.yml +36 -11
  11. package/conf/distros/fedora/calamares/modules/mount.yml +101 -39
  12. package/conf/distros/fedora/calamares/modules/partition.yml +173 -23
  13. package/conf/distros/fedora/calamares/modules/users.yml +7 -9
  14. package/conf/distros/openmamba/calamares/settings.yml +0 -2
  15. package/conf/distros/opensuse/calamares/modules/bootloader.yml +46 -17
  16. package/conf/distros/opensuse/calamares/modules/displaymanager.yml +9 -5
  17. package/conf/distros/opensuse/calamares/modules/finished.yml +1 -1
  18. package/conf/distros/opensuse/calamares/modules/fstab.yml +36 -11
  19. package/conf/distros/opensuse/calamares/modules/grubcfg.yml +51 -0
  20. package/conf/distros/opensuse/calamares/modules/mount.yml +104 -39
  21. package/conf/distros/opensuse/calamares/modules/packages.yml +3 -3
  22. package/conf/distros/opensuse/calamares/modules/partition.yml +30 -237
  23. package/conf/distros/opensuse/calamares/modules/removeuser.yml +1 -14
  24. package/conf/distros/opensuse/calamares/modules/unpackfs.yml +0 -1
  25. package/conf/distros/opensuse/calamares/modules/users.yml +296 -16
  26. package/conf/distros/opensuse/calamares/modules/welcome.yml +91 -16
  27. package/conf/distros/opensuse/calamares/settings.yml +34 -120
  28. package/conf/distros/opensuse/calamares/zstd2lzo.sh +2 -0
  29. package/conf/distros/rolling/calamares/modules/shellprocess_sync.yml +5 -0
  30. package/conf/distros/rolling/calamares/settings.yml +4 -5
  31. package/dist/classes/bleach.d.ts +5 -0
  32. package/dist/classes/bleach.js +13 -0
  33. package/dist/classes/cli-autologin.js +14 -9
  34. package/dist/classes/daddy.js +9 -1
  35. package/dist/classes/distro.js +0 -9
  36. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/fedora.js +79 -0
  38. package/dist/classes/incubation/incubator.d/opensuse.js +4 -6
  39. package/dist/classes/incubation/incubator.d/rolling.js +1 -3
  40. package/dist/classes/incubation/incubator.js +6 -11
  41. package/dist/classes/ovary.d/initrd.js +40 -11
  42. package/dist/classes/ovary.d/make-dot-disk.js +21 -11
  43. package/dist/classes/ovary.d/make-efi.js +13 -11
  44. package/dist/classes/ovary.d/merged.d.ts +1 -1
  45. package/dist/classes/ovary.d/merged.js +3 -2
  46. package/dist/classes/ovary.d/produce.js +7 -6
  47. package/dist/classes/ovary.d/user-create-live.js +15 -11
  48. package/dist/classes/ovary.d.ts +1 -1
  49. package/dist/classes/ovary.js +1 -1
  50. package/dist/classes/pacman.d/alpine.js +12 -7
  51. package/dist/classes/pacman.d/opensuse.js +4 -3
  52. package/dist/classes/pacman.js +3 -12
  53. package/dist/classes/pxe.d.ts +21 -18
  54. package/dist/classes/pxe.js +192 -259
  55. package/dist/classes/tailor.js +69 -33
  56. package/dist/classes/utils.d/filesystem.js +2 -0
  57. package/dist/classes/utils.d/kernel.js +12 -2
  58. package/dist/classes/utils.d/snapshot.js +1 -1
  59. package/dist/classes/utils.d/system.js +2 -2
  60. package/dist/commands/cuckoo.js +4 -6
  61. package/dist/commands/export/pkg.js +28 -12
  62. package/dist/commands/wardrobe/wear.js +1 -1
  63. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  64. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  65. package/dist/dhcpd-proxy/index.d.ts +4 -0
  66. package/dist/dhcpd-proxy/index.js +4 -0
  67. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  68. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  69. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  70. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  71. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  72. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  73. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  74. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  75. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  76. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  77. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  78. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  79. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  80. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  81. package/dist/interfaces/i-pxe.d.ts +16 -16
  82. package/dist/krill/classes/sequence.d/add_user.d.ts +3 -3
  83. package/dist/krill/classes/sequence.d/add_user.js +34 -29
  84. package/dist/krill/classes/sequence.d/bootloader_config.js +3 -26
  85. package/dist/krill/classes/sequence.d/fstab.js +10 -22
  86. package/dist/krill/classes/sequence.d/grubcfg.js +5 -3
  87. package/dist/krill/classes/sequence.d/mkfs.d.ts +1 -1
  88. package/dist/krill/classes/sequence.d/mkfs.js +10 -11
  89. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +3 -4
  90. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +31 -16
  91. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -1
  92. package/dist/krill/lib/select_filesystem_type.js +2 -1
  93. package/dist/lib/utils.d.ts +2 -25
  94. package/dist/lib/utils.js +4 -27
  95. package/dist/{penguins-eggs_10.1.1-0_amd64.deb → penguins-eggs_25.7.7-1_amd64.deb} +0 -0
  96. package/dist/penguins-eggs_25.7.7-1_amd64.deb.sha256 +1 -0
  97. package/dracut/README.md +14 -0
  98. package/dracut/dracut.conf +3 -3
  99. package/dracut/dracut.conf.d/10-persistent_policy.conf +1 -0
  100. package/dracut/dracut.conf.d/{01-live.conf → 50-live.conf} +3 -2
  101. package/ipxe/grub/acpi.mod +0 -0
  102. package/ipxe/grub/adler32.mod +0 -0
  103. package/ipxe/grub/affs.mod +0 -0
  104. package/ipxe/grub/afs.mod +0 -0
  105. package/ipxe/grub/afsplitter.mod +0 -0
  106. package/ipxe/grub/ahci.mod +0 -0
  107. package/ipxe/grub/all_video.mod +0 -0
  108. package/ipxe/grub/aout.mod +0 -0
  109. package/ipxe/grub/appleldr.mod +0 -0
  110. package/ipxe/grub/archelp.mod +0 -0
  111. package/ipxe/grub/at_keyboard.mod +0 -0
  112. package/ipxe/grub/ata.mod +0 -0
  113. package/ipxe/grub/backtrace.mod +0 -0
  114. package/ipxe/grub/bfs.mod +0 -0
  115. package/ipxe/grub/bitmap.mod +0 -0
  116. package/ipxe/grub/bitmap_scale.mod +0 -0
  117. package/ipxe/grub/blocklist.mod +0 -0
  118. package/ipxe/grub/boot.mod +0 -0
  119. package/ipxe/grub/bsd.mod +0 -0
  120. package/ipxe/grub/bswap_test.mod +0 -0
  121. package/ipxe/grub/btrfs.mod +0 -0
  122. package/ipxe/grub/bufio.mod +0 -0
  123. package/ipxe/grub/cat.mod +0 -0
  124. package/ipxe/grub/cbfs.mod +0 -0
  125. package/ipxe/grub/cbls.mod +0 -0
  126. package/ipxe/grub/cbmemc.mod +0 -0
  127. package/ipxe/grub/cbtable.mod +0 -0
  128. package/ipxe/grub/cbtime.mod +0 -0
  129. package/ipxe/grub/chain.mod +0 -0
  130. package/ipxe/grub/cmdline_cat_test.mod +0 -0
  131. package/ipxe/grub/cmp.mod +0 -0
  132. package/ipxe/grub/cmp_test.mod +0 -0
  133. package/ipxe/grub/command.lst +194 -0
  134. package/ipxe/grub/config.h +69 -0
  135. package/ipxe/grub/configfile.mod +0 -0
  136. package/ipxe/grub/cpio.mod +0 -0
  137. package/ipxe/grub/cpio_be.mod +0 -0
  138. package/ipxe/grub/cpuid.mod +0 -0
  139. package/ipxe/grub/crc64.mod +0 -0
  140. package/ipxe/grub/crypto.lst +45 -0
  141. package/ipxe/grub/crypto.mod +0 -0
  142. package/ipxe/grub/cryptodisk.mod +0 -0
  143. package/ipxe/grub/cs5536.mod +0 -0
  144. package/ipxe/grub/ctz_test.mod +0 -0
  145. package/ipxe/grub/date.mod +0 -0
  146. package/ipxe/grub/datehook.mod +0 -0
  147. package/ipxe/grub/datetime.mod +0 -0
  148. package/ipxe/grub/disk.mod +0 -0
  149. package/ipxe/grub/diskfilter.mod +0 -0
  150. package/ipxe/grub/div.mod +0 -0
  151. package/ipxe/grub/div_test.mod +0 -0
  152. package/ipxe/grub/dm_nv.mod +0 -0
  153. package/ipxe/grub/echo.mod +0 -0
  154. package/ipxe/grub/efi_gop.mod +0 -0
  155. package/ipxe/grub/efi_uga.mod +0 -0
  156. package/ipxe/grub/efifwsetup.mod +0 -0
  157. package/ipxe/grub/efinet.mod +0 -0
  158. package/ipxe/grub/ehci.mod +0 -0
  159. package/ipxe/grub/elf.mod +0 -0
  160. package/ipxe/grub/eval.mod +0 -0
  161. package/ipxe/grub/exfat.mod +0 -0
  162. package/ipxe/grub/exfctest.mod +0 -0
  163. package/ipxe/grub/ext2.mod +0 -0
  164. package/ipxe/grub/extcmd.mod +0 -0
  165. package/ipxe/grub/f2fs.mod +0 -0
  166. package/ipxe/grub/fat.mod +0 -0
  167. package/ipxe/grub/fdt.lst +0 -0
  168. package/ipxe/grub/file.mod +0 -0
  169. package/ipxe/grub/fixvideo.mod +0 -0
  170. package/ipxe/grub/font.mod +0 -0
  171. package/ipxe/grub/fs.lst +37 -0
  172. package/ipxe/grub/fshelp.mod +0 -0
  173. package/ipxe/grub/functional_test.mod +0 -0
  174. package/ipxe/grub/gcry_arcfour.mod +0 -0
  175. package/ipxe/grub/gcry_blowfish.mod +0 -0
  176. package/ipxe/grub/gcry_camellia.mod +0 -0
  177. package/ipxe/grub/gcry_cast5.mod +0 -0
  178. package/ipxe/grub/gcry_crc.mod +0 -0
  179. package/ipxe/grub/gcry_des.mod +0 -0
  180. package/ipxe/grub/gcry_dsa.mod +0 -0
  181. package/ipxe/grub/gcry_idea.mod +0 -0
  182. package/ipxe/grub/gcry_md4.mod +0 -0
  183. package/ipxe/grub/gcry_md5.mod +0 -0
  184. package/ipxe/grub/gcry_rfc2268.mod +0 -0
  185. package/ipxe/grub/gcry_rijndael.mod +0 -0
  186. package/ipxe/grub/gcry_rmd160.mod +0 -0
  187. package/ipxe/grub/gcry_rsa.mod +0 -0
  188. package/ipxe/grub/gcry_seed.mod +0 -0
  189. package/ipxe/grub/gcry_serpent.mod +0 -0
  190. package/ipxe/grub/gcry_sha1.mod +0 -0
  191. package/ipxe/grub/gcry_sha256.mod +0 -0
  192. package/ipxe/grub/gcry_sha512.mod +0 -0
  193. package/ipxe/grub/gcry_tiger.mod +0 -0
  194. package/ipxe/grub/gcry_twofish.mod +0 -0
  195. package/ipxe/grub/gcry_whirlpool.mod +0 -0
  196. package/ipxe/grub/geli.mod +0 -0
  197. package/ipxe/grub/gettext.mod +0 -0
  198. package/ipxe/grub/gfxmenu.mod +0 -0
  199. package/ipxe/grub/gfxterm.mod +0 -0
  200. package/ipxe/grub/gfxterm_background.mod +0 -0
  201. package/ipxe/grub/gfxterm_menu.mod +0 -0
  202. package/ipxe/grub/gptsync.mod +0 -0
  203. package/ipxe/grub/gzio.mod +0 -0
  204. package/ipxe/grub/halt.mod +0 -0
  205. package/ipxe/grub/hashsum.mod +0 -0
  206. package/ipxe/grub/hdparm.mod +0 -0
  207. package/ipxe/grub/hello.mod +0 -0
  208. package/ipxe/grub/help.mod +0 -0
  209. package/ipxe/grub/hexdump.mod +0 -0
  210. package/ipxe/grub/hfs.mod +0 -0
  211. package/ipxe/grub/hfsplus.mod +0 -0
  212. package/ipxe/grub/hfspluscomp.mod +0 -0
  213. package/ipxe/grub/http.mod +0 -0
  214. package/ipxe/grub/iorw.mod +0 -0
  215. package/ipxe/grub/iso9660.mod +0 -0
  216. package/ipxe/grub/jfs.mod +0 -0
  217. package/ipxe/grub/jpeg.mod +0 -0
  218. package/ipxe/grub/json.mod +0 -0
  219. package/ipxe/grub/kernel.img +0 -0
  220. package/ipxe/grub/keylayouts.mod +0 -0
  221. package/ipxe/grub/keystatus.mod +0 -0
  222. package/ipxe/grub/ldm.mod +0 -0
  223. package/ipxe/grub/legacy_password_test.mod +0 -0
  224. package/ipxe/grub/legacycfg.mod +0 -0
  225. package/ipxe/grub/linux.mod +0 -0
  226. package/ipxe/grub/linux16.mod +0 -0
  227. package/ipxe/grub/linuxefi.mod +0 -0
  228. package/ipxe/grub/loadbios.mod +0 -0
  229. package/ipxe/grub/loadenv.mod +0 -0
  230. package/ipxe/grub/loopback.mod +0 -0
  231. package/ipxe/grub/ls.mod +0 -0
  232. package/ipxe/grub/lsacpi.mod +0 -0
  233. package/ipxe/grub/lsefi.mod +0 -0
  234. package/ipxe/grub/lsefimmap.mod +0 -0
  235. package/ipxe/grub/lsefisystab.mod +0 -0
  236. package/ipxe/grub/lsmmap.mod +0 -0
  237. package/ipxe/grub/lspci.mod +0 -0
  238. package/ipxe/grub/lssal.mod +0 -0
  239. package/ipxe/grub/luks.mod +0 -0
  240. package/ipxe/grub/luks2.mod +0 -0
  241. package/ipxe/grub/lvm.mod +0 -0
  242. package/ipxe/grub/lzopio.mod +0 -0
  243. package/ipxe/grub/macbless.mod +0 -0
  244. package/ipxe/grub/macho.mod +0 -0
  245. package/ipxe/grub/mdraid09.mod +0 -0
  246. package/ipxe/grub/mdraid09_be.mod +0 -0
  247. package/ipxe/grub/mdraid1x.mod +0 -0
  248. package/ipxe/grub/memdisk.mod +0 -0
  249. package/ipxe/grub/memrw.mod +0 -0
  250. package/ipxe/grub/minicmd.mod +0 -0
  251. package/ipxe/grub/minix.mod +0 -0
  252. package/ipxe/grub/minix2.mod +0 -0
  253. package/ipxe/grub/minix2_be.mod +0 -0
  254. package/ipxe/grub/minix3.mod +0 -0
  255. package/ipxe/grub/minix3_be.mod +0 -0
  256. package/ipxe/grub/minix_be.mod +0 -0
  257. package/ipxe/grub/mmap.mod +0 -0
  258. package/ipxe/grub/moddep.lst +267 -0
  259. package/ipxe/grub/modinfo.sh +40 -0
  260. package/ipxe/grub/monolithic/gcdx64.efi +0 -0
  261. package/ipxe/grub/monolithic/grubnetx64-installer.efi +0 -0
  262. package/ipxe/grub/monolithic/grubnetx64.efi +0 -0
  263. package/ipxe/grub/monolithic/grubx64.efi +0 -0
  264. package/ipxe/grub/morse.mod +0 -0
  265. package/ipxe/grub/mpi.mod +0 -0
  266. package/ipxe/grub/msdospart.mod +0 -0
  267. package/ipxe/grub/mul_test.mod +0 -0
  268. package/ipxe/grub/multiboot.mod +0 -0
  269. package/ipxe/grub/multiboot2.mod +0 -0
  270. package/ipxe/grub/nativedisk.mod +0 -0
  271. package/ipxe/grub/net.mod +0 -0
  272. package/ipxe/grub/newc.mod +0 -0
  273. package/ipxe/grub/nilfs2.mod +0 -0
  274. package/ipxe/grub/normal.mod +0 -0
  275. package/ipxe/grub/ntfs.mod +0 -0
  276. package/ipxe/grub/ntfscomp.mod +0 -0
  277. package/ipxe/grub/odc.mod +0 -0
  278. package/ipxe/grub/offsetio.mod +0 -0
  279. package/ipxe/grub/ohci.mod +0 -0
  280. package/ipxe/grub/part_acorn.mod +0 -0
  281. package/ipxe/grub/part_amiga.mod +0 -0
  282. package/ipxe/grub/part_apple.mod +0 -0
  283. package/ipxe/grub/part_bsd.mod +0 -0
  284. package/ipxe/grub/part_dfly.mod +0 -0
  285. package/ipxe/grub/part_dvh.mod +0 -0
  286. package/ipxe/grub/part_gpt.mod +0 -0
  287. package/ipxe/grub/part_msdos.mod +0 -0
  288. package/ipxe/grub/part_plan.mod +0 -0
  289. package/ipxe/grub/part_sun.mod +0 -0
  290. package/ipxe/grub/part_sunpc.mod +0 -0
  291. package/ipxe/grub/partmap.lst +11 -0
  292. package/ipxe/grub/parttool.lst +1 -0
  293. package/ipxe/grub/parttool.mod +0 -0
  294. package/ipxe/grub/password.mod +0 -0
  295. package/ipxe/grub/password_pbkdf2.mod +0 -0
  296. package/ipxe/grub/pata.mod +0 -0
  297. package/ipxe/grub/pbkdf2.mod +0 -0
  298. package/ipxe/grub/pbkdf2_test.mod +0 -0
  299. package/ipxe/grub/pcidump.mod +0 -0
  300. package/ipxe/grub/pgp.mod +0 -0
  301. package/ipxe/grub/play.mod +0 -0
  302. package/ipxe/grub/png.mod +0 -0
  303. package/ipxe/grub/priority_queue.mod +0 -0
  304. package/ipxe/grub/probe.mod +0 -0
  305. package/ipxe/grub/procfs.mod +0 -0
  306. package/ipxe/grub/progress.mod +0 -0
  307. package/ipxe/grub/raid5rec.mod +0 -0
  308. package/ipxe/grub/raid6rec.mod +0 -0
  309. package/ipxe/grub/random.mod +0 -0
  310. package/ipxe/grub/rdmsr.mod +0 -0
  311. package/ipxe/grub/read.mod +0 -0
  312. package/ipxe/grub/reboot.mod +0 -0
  313. package/ipxe/grub/regexp.mod +0 -0
  314. package/ipxe/grub/reiserfs.mod +0 -0
  315. package/ipxe/grub/relocator.mod +0 -0
  316. package/ipxe/grub/romfs.mod +0 -0
  317. package/ipxe/grub/scsi.mod +0 -0
  318. package/ipxe/grub/search.mod +0 -0
  319. package/ipxe/grub/search_fs_file.mod +0 -0
  320. package/ipxe/grub/search_fs_uuid.mod +0 -0
  321. package/ipxe/grub/search_label.mod +0 -0
  322. package/ipxe/grub/serial.mod +0 -0
  323. package/ipxe/grub/setjmp.mod +0 -0
  324. package/ipxe/grub/setjmp_test.mod +0 -0
  325. package/ipxe/grub/setpci.mod +0 -0
  326. package/ipxe/grub/sfs.mod +0 -0
  327. package/ipxe/grub/shift_test.mod +0 -0
  328. package/ipxe/grub/signature_test.mod +0 -0
  329. package/ipxe/grub/sleep.mod +0 -0
  330. package/ipxe/grub/sleep_test.mod +0 -0
  331. package/ipxe/grub/smbios.mod +0 -0
  332. package/ipxe/grub/spkmodem.mod +0 -0
  333. package/ipxe/grub/squash4.mod +0 -0
  334. package/ipxe/grub/strtoull_test.mod +0 -0
  335. package/ipxe/grub/syslinuxcfg.mod +0 -0
  336. package/ipxe/grub/tar.mod +0 -0
  337. package/ipxe/grub/terminal.lst +9 -0
  338. package/ipxe/grub/terminal.mod +0 -0
  339. package/ipxe/grub/terminfo.mod +0 -0
  340. package/ipxe/grub/test.mod +0 -0
  341. package/ipxe/grub/test_blockarg.mod +0 -0
  342. package/ipxe/grub/testload.mod +0 -0
  343. package/ipxe/grub/testspeed.mod +0 -0
  344. package/ipxe/grub/tftp.mod +0 -0
  345. package/ipxe/grub/tga.mod +0 -0
  346. package/ipxe/grub/time.mod +0 -0
  347. package/ipxe/grub/tpm.mod +0 -0
  348. package/ipxe/grub/tr.mod +0 -0
  349. package/ipxe/grub/trig.mod +0 -0
  350. package/ipxe/grub/true.mod +0 -0
  351. package/ipxe/grub/udf.mod +0 -0
  352. package/ipxe/grub/ufs1.mod +0 -0
  353. package/ipxe/grub/ufs1_be.mod +0 -0
  354. package/ipxe/grub/ufs2.mod +0 -0
  355. package/ipxe/grub/uhci.mod +0 -0
  356. package/ipxe/grub/usb.mod +0 -0
  357. package/ipxe/grub/usb_keyboard.mod +0 -0
  358. package/ipxe/grub/usbms.mod +0 -0
  359. package/ipxe/grub/usbserial_common.mod +0 -0
  360. package/ipxe/grub/usbserial_ftdi.mod +0 -0
  361. package/ipxe/grub/usbserial_pl2303.mod +0 -0
  362. package/ipxe/grub/usbserial_usbdebug.mod +0 -0
  363. package/ipxe/grub/usbtest.mod +0 -0
  364. package/ipxe/grub/video.lst +4 -0
  365. package/ipxe/grub/video.mod +0 -0
  366. package/ipxe/grub/video_bochs.mod +0 -0
  367. package/ipxe/grub/video_cirrus.mod +0 -0
  368. package/ipxe/grub/video_colors.mod +0 -0
  369. package/ipxe/grub/video_fb.mod +0 -0
  370. package/ipxe/grub/videoinfo.mod +0 -0
  371. package/ipxe/grub/videotest.mod +0 -0
  372. package/ipxe/grub/videotest_checksum.mod +0 -0
  373. package/ipxe/grub/wrmsr.mod +0 -0
  374. package/ipxe/grub/xfs.mod +0 -0
  375. package/ipxe/grub/xnu.mod +0 -0
  376. package/ipxe/grub/xnu_uuid.mod +0 -0
  377. package/ipxe/grub/xnu_uuid_test.mod +0 -0
  378. package/ipxe/grub/xzio.mod +0 -0
  379. package/ipxe/grub/zfs.mod +0 -0
  380. package/ipxe/grub/zfscrypt.mod +0 -0
  381. package/ipxe/grub/zfsinfo.mod +0 -0
  382. package/ipxe/grub/zstd.mod +0 -0
  383. package/ipxe/grubnetx64.efi.signed +0 -0
  384. package/ipxe/ipxe.pxe +0 -0
  385. package/ipxe/undionly.kpxe +0 -0
  386. package/mkinitcpio/arch/live.conf +3 -2
  387. package/mkinitcpio/manjaro/live.conf +1 -1
  388. package/mkinitfs/README.md +10 -49
  389. package/mkinitfs/live.conf +2 -0
  390. package/package.json +27 -24
  391. package/pods/ci/minimal/opensuse-container2host.sh +1 -1
  392. package/scripts/99clean +42 -0
  393. package/conf/distros/aldos/calamares/modules/bootloader.yml +0 -85
  394. package/conf/distros/aldos/calamares/modules/displaymanager.yml +0 -22
  395. package/conf/distros/aldos/calamares/modules/finished.yml +0 -5
  396. package/conf/distros/aldos/calamares/modules/fstab.yml +0 -12
  397. package/conf/distros/aldos/calamares/modules/locale.yml +0 -97
  398. package/conf/distros/aldos/calamares/modules/luksopenswaphookcfg.yml +0 -5
  399. package/conf/distros/aldos/calamares/modules/machineid.yml +0 -17
  400. package/conf/distros/aldos/calamares/modules/mount.yml +0 -56
  401. package/conf/distros/aldos/calamares/modules/packages.yml +0 -6
  402. package/conf/distros/aldos/calamares/modules/partition.yml +0 -242
  403. package/conf/distros/aldos/calamares/modules/removeuser.yml +0 -15
  404. package/conf/distros/aldos/calamares/modules/unpackfs.yml +0 -6
  405. package/conf/distros/aldos/calamares/modules/users.yml +0 -19
  406. package/conf/distros/aldos/calamares/modules/welcome.yml +0 -19
  407. package/conf/distros/aldos/calamares/settings.yml +0 -124
  408. package/conf/distros/fedora/calamares/modules/bootloader.conf +0 -85
  409. package/conf/distros/opensuse/calamares/modules/bootloader.conf +0 -86
  410. package/conf/distros/opensuse/calamares/modules/locale.yml +0 -98
  411. package/conf/distros/opensuse/calamares/modules/luksopenswaphookcfg.yml +0 -5
  412. package/conf/distros/opensuse/calamares/modules/machineid.yml +0 -17
  413. package/conf/distros/rolling/calamares/modules/shellprocess_removelink.yml +0 -8
  414. package/dist/index_old.d.ts +0 -8
  415. package/dist/index_old.js +0 -8
  416. package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +0 -1
  417. package/dracut/sidecar.sh +0 -19
  418. package/ipxe/ipxe.efi +0 -0
  419. package/mkinitfs/initramfs-init.in +0 -1051
  420. package/mkinitfs/sidecar.sh +0 -52
  421. /package/dist/classes/ovary.d/{xorriso-commend.d.ts → xorriso-command.d.ts} +0 -0
  422. /package/dist/classes/ovary.d/{xorriso-commend.js → xorriso-command.js} +0 -0
@@ -38,18 +38,21 @@ export default class CliAutologin {
38
38
  /**
39
39
  * systemd
40
40
  */
41
- Utils.warning("creating CLI autologin systemd");
41
+ Utils.warning("systemd: creating CLI autologin");
42
42
  const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
43
43
  const dirOverride = path.dirname(fileOverride);
44
44
  if (fs.existsSync(dirOverride)) {
45
45
  shx.exec(`rm ${dirOverride} -rf`);
46
46
  }
47
- shx.exec(`mkdir ${dirOverride}`);
48
- let content = '';
49
- content += '[Service]' + '\n';
50
- content += 'ExecStart=' + '\n';
51
- content += 'ExecStart=-/sbin/agetty --noclear --autologin ' + user + ' %I $TERM' + '\n';
52
- fs.writeFileSync(fileOverride, content);
47
+ // ecludo Opensuse ha un'altro sistema
48
+ if (distro !== 'Opensuse') {
49
+ shx.exec(`mkdir ${dirOverride}`);
50
+ let content = '';
51
+ content += '[Service]' + '\n';
52
+ content += 'ExecStart=' + '\n';
53
+ content += 'ExecStart=-/sbin/agetty --noclear --autologin ' + user + ' %I $TERM' + '\n';
54
+ fs.writeFileSync(fileOverride, content);
55
+ }
53
56
  shx.exec(`chmod +x ${fileOverride}`);
54
57
  await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
55
58
  await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
@@ -58,7 +61,7 @@ export default class CliAutologin {
58
61
  /**
59
62
  * openrc
60
63
  */
61
- Utils.warning("creating CLI autologin openrc");
64
+ Utils.warning("openrc: creating CLI autologin");
62
65
  const inittab = chroot + '/etc/inittab';
63
66
  let content = '';
64
67
  const search = `tty1::respawn:/sbin/getty 38400 tty1`;
@@ -70,6 +73,7 @@ export default class CliAutologin {
70
73
  }
71
74
  content += lines[i] + '\n';
72
75
  }
76
+ console.log(`Writing ${inittab}`);
73
77
  fs.writeFileSync(inittab, content, 'utf-8');
74
78
  const autologin = chroot + '/bin/autologin';
75
79
  content = '#!/bin/sh' + '\n';
@@ -83,7 +87,7 @@ export default class CliAutologin {
83
87
  /**
84
88
  * sysvinit
85
89
  */
86
- Utils.warning("creating CLI autologin sysvinit");
90
+ Utils.warning("sysvinit: creating CLI autologin");
87
91
  const inittab = chroot + '/etc/inittab';
88
92
  const search = '1:2345:respawn:/sbin/getty';
89
93
  const replace = `1:2345:respawn:/sbin/getty --autologin ${user} 38400 tty1`;
@@ -95,6 +99,7 @@ export default class CliAutologin {
95
99
  }
96
100
  content += lines[i] + '\n';
97
101
  }
102
+ console.log(`Writing ${inittab}`);
98
103
  fs.writeFileSync(inittab, content, 'utf-8');
99
104
  await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
100
105
  await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
@@ -11,6 +11,7 @@ import yaml from 'js-yaml';
11
11
  import fs from 'node:fs';
12
12
  // _dirname
13
13
  import path from 'node:path';
14
+ import { exec } from '../lib/utils.js';
14
15
  // We need to remove .js extension from import
15
16
  import Pacman from '../classes/pacman.js';
16
17
  import Settings from '../classes/settings.js';
@@ -118,7 +119,14 @@ export default class Daddy {
118
119
  config.compression = 'fast';
119
120
  if (reset || isCustom) {
120
121
  if (config.snapshot_prefix === '') {
121
- config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
122
+ let fstype = ((await exec(`findmnt -n -o FSTYPE /`, { capture: true })).data.trim());
123
+ if (fstype !== 'ext4') {
124
+ fstype += '-';
125
+ }
126
+ else {
127
+ fstype = '';
128
+ }
129
+ config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId) + fstype;
122
130
  }
123
131
  jsonConf = JSON.stringify(config);
124
132
  }
@@ -62,13 +62,6 @@ const FAMILY_CONFIGS = {
62
62
  codenameLikeId: 'openmamba',
63
63
  liveMediumPath: '/run/initramfs/live/'
64
64
  },
65
- aldus: {
66
- familyId: 'aldus',
67
- distroLike: 'Aldus',
68
- codenameId: 'rolling',
69
- codenameLikeId: 'aldus',
70
- liveMediumPath: '/run/initramfs/live/'
71
- },
72
65
  voidlinux: {
73
66
  familyId: 'voidlinux',
74
67
  distroLike: 'Voidlinux',
@@ -116,8 +109,6 @@ class DistroDetector {
116
109
  return 'opensuse';
117
110
  if (distroId === 'Voidlinux')
118
111
  return 'voidlinux';
119
- if (distroId === 'Aldus')
120
- return 'aldus';
121
112
  return null;
122
113
  }
123
114
  static detectByCodename(codenameId) {
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ./src/classes/incubation/distros/opensuse.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import { IDistro, IInstaller, IRemix } from '../../../interfaces/index.js';
9
+ /**
10
+ *
11
+ */
12
+ export declare class Fedora {
13
+ distro: IDistro;
14
+ installer: IInstaller;
15
+ isClone: boolean;
16
+ release: boolean;
17
+ remix: IRemix;
18
+ theme: string;
19
+ user_opt: string;
20
+ verbose: boolean;
21
+ /**
22
+ * @param remix
23
+ * @param distro
24
+ * @param displaymanager
25
+ * @param verbose
26
+ */
27
+ constructor(installer: IInstaller, remix: IRemix, distro: IDistro, user_opt: string, release?: boolean, theme?: string, isClone?: boolean, verbose?: boolean);
28
+ /**
29
+ * locale, partitions, users can come from themes
30
+ */
31
+ create(): Promise<void>;
32
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * ./src/classes/incubation/distros/opensuse.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import CFS from '../../../krill/classes/cfs.js';
9
+ import Fisherman from '../fisherman.js';
10
+ /**
11
+ *
12
+ */
13
+ export class Fedora {
14
+ distro;
15
+ installer = {};
16
+ isClone = false;
17
+ release = false;
18
+ remix;
19
+ theme;
20
+ user_opt;
21
+ verbose = false;
22
+ /**
23
+ * @param remix
24
+ * @param distro
25
+ * @param displaymanager
26
+ * @param verbose
27
+ */
28
+ constructor(installer, remix, distro, user_opt, release = false, theme = 'eggs', isClone = false, verbose = false) {
29
+ this.installer = installer;
30
+ this.remix = remix;
31
+ this.distro = distro;
32
+ this.user_opt = user_opt;
33
+ this.verbose = verbose;
34
+ this.release = release;
35
+ this.theme = theme;
36
+ this.isClone = isClone;
37
+ }
38
+ /**
39
+ * locale, partitions, users can come from themes
40
+ */
41
+ async create() {
42
+ const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
43
+ await fisherman.createCalamaresSettings(this.theme, this.isClone);
44
+ await fisherman.buildModule('welcome');
45
+ await fisherman.buildModule('partition', this.theme);
46
+ await fisherman.buildModule('mount');
47
+ await fisherman.moduleUnpackfs();
48
+ await fisherman.buildModule('machineid');
49
+ await fisherman.buildModule('fstab');
50
+ await fisherman.buildModule('services-systemd');
51
+ await fisherman.buildModule('locale', this.theme);
52
+ await fisherman.buildModule('keyboard');
53
+ await fisherman.buildModule('localecfg');
54
+ await fisherman.buildModule('plymouthcfg');
55
+ // await fisherman.buildModule('luksbootkeyfile')
56
+ await fisherman.buildModule('dracutcfg');
57
+ await fisherman.buildModule('users', this.theme);
58
+ await fisherman.moduleDisplaymanager();
59
+ await fisherman.buildModule('networkcfg');
60
+ await fisherman.buildModule('hwclock');
61
+ await fisherman.buildModule('dracut');
62
+ await fisherman.buildModule('grubcf');
63
+ await fisherman.buildModule('bootloader');
64
+ await fisherman.moduleRemoveuser(this.user_opt);
65
+ await fisherman.modulePackages(this.distro, this.release);
66
+ /**
67
+ * cfs: custom final steps
68
+ */
69
+ const cfs = new CFS();
70
+ const steps = await cfs.steps();
71
+ if (steps.length > 0) {
72
+ for (const step of steps) {
73
+ await fisherman.buildCalamaresModule(step, true, this.theme);
74
+ }
75
+ }
76
+ await fisherman.buildModule('umount');
77
+ await fisherman.moduleFinished();
78
+ }
79
+ }
@@ -47,24 +47,22 @@ export class Opensuse {
47
47
  await fisherman.moduleUnpackfs();
48
48
  await fisherman.buildModule('machineid');
49
49
  await fisherman.buildModule('fstab');
50
+ await fisherman.buildModule('services-systemd');
50
51
  await fisherman.buildModule('locale', this.theme);
51
52
  await fisherman.buildModule('keyboard');
52
53
  await fisherman.buildModule('localecfg');
54
+ await fisherman.buildModule('plymouthcfg');
55
+ // await fisherman.buildModule('luksbootkeyfile')
53
56
  await fisherman.buildModule('dracutcfg');
54
57
  await fisherman.buildModule('users', this.theme);
55
58
  await fisherman.moduleDisplaymanager();
56
59
  await fisherman.buildModule('networkcfg');
57
60
  await fisherman.buildModule('hwclock');
58
- await fisherman.buildModule('services-systemd');
59
61
  await fisherman.buildModule('dracut');
60
62
  await fisherman.buildModule('grubcf');
61
63
  await fisherman.buildModule('bootloader');
62
- await fisherman.modulePackages(this.distro, this.release);
63
- //await fisherman.buildModule('luksbootkeyfile')
64
- await fisherman.buildModule('plymouthcfg');
65
- //await fisherman.buildModule('mkinitfs')
66
64
  await fisherman.moduleRemoveuser(this.user_opt);
67
- // await fisherman.buildCalamaresModule('cleanup', true)
65
+ await fisherman.modulePackages(this.distro, this.release);
68
66
  /**
69
67
  * cfs: custom final steps
70
68
  */
@@ -60,10 +60,8 @@ export class Rolling {
60
60
  await fisherman.modulePackages(this.distro, this.release);
61
61
  await fisherman.buildModule('luksbootkeyfile');
62
62
  await fisherman.buildModule('plymouthcfg');
63
- // await fisherman.buildModule('initramfscfg')
64
- // await fisherman.buildModule('initramfs')
65
63
  await fisherman.moduleRemoveuser(this.user_opt);
66
- await fisherman.shellprocess('removelink');
64
+ await fisherman.shellprocess('sync');
67
65
  /**
68
66
  * cfs: custom final steps
69
67
  */
@@ -24,6 +24,7 @@ import { Alpine } from './incubator.d/alpine.js';
24
24
  import { Bionic } from './incubator.d/bionic.js';
25
25
  import { Buster } from './incubator.d/buster.js';
26
26
  import { Jessie } from './incubator.d/jessie.js';
27
+ import { Fedora } from './incubator.d/fedora.js';
27
28
  import { Noble } from './incubator.d/noble.js';
28
29
  import { Openmamba } from './incubator.d/openmamba.js';
29
30
  import { Opensuse } from './incubator.d/opensuse.js';
@@ -70,16 +71,9 @@ export default class Incubator {
70
71
  this.createBranding();
71
72
  const codenameLikeId = this.distro.codenameLikeId;
72
73
  /**
73
- * aldos
74
+ * Alpine
74
75
  */
75
- if (codenameLikeId === 'aldos') {
76
- const aldos = new Openmamba(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
77
- await aldos.create();
78
- /**
79
- * Alpine
80
- */
81
- }
82
- else if (codenameLikeId === 'alpine') {
76
+ if (codenameLikeId === 'alpine') {
83
77
  const alpine = new Alpine(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
84
78
  await alpine.create();
85
79
  /**
@@ -140,7 +134,7 @@ export default class Incubator {
140
134
  */
141
135
  }
142
136
  else if (codenameLikeId === 'fedora') {
143
- const fedora = new Rolling(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
137
+ const fedora = new Fedora(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
144
138
  await fedora.create();
145
139
  /**
146
140
  * openmamba
@@ -369,7 +363,8 @@ async function partitionCustomize() {
369
363
  let test = await exec(`df -T / | awk 'NR==2 {print $2}'`, { capture: true, echo: false });
370
364
  partition.defaultFileSystemType = test.data.trim();
371
365
  partition.availableFileSystemTypes = ['ext4'];
372
- if (Pacman.packageIsInstalled('btrfs-progs')) {
366
+ if (Pacman.packageIsInstalled('btrfs-progs') ||
367
+ Pacman.packageIsInstalled('btrfsprogs')) {
373
368
  partition.availableFileSystemTypes.push('btrfs');
374
369
  }
375
370
  if (Pacman.packageIsInstalled('xfsprogs')) {
@@ -5,7 +5,6 @@
5
5
  * email: piero.proietti@gmail.com
6
6
  * license: MIT
7
7
  */
8
- // packages
9
8
  import fs from 'fs';
10
9
  import path from 'node:path';
11
10
  // classes
@@ -19,13 +18,10 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
19
18
  */
20
19
  export async function initrdAlpine() {
21
20
  Utils.warning(`creating ${path.basename(this.initrd)} Alpine on ISO/live`);
22
- const sidecar = path.resolve(__dirname, `../../../mkinitfs/initramfs-init.in`);
23
- Utils.warning(`Adding ${sidecar} to /usr/share/mkinitfs/initramfs-init`);
24
- await exec(`cp ${sidecar} /usr/share/mkinitfs/initramfs-init`);
25
21
  let initrdImg = Utils.initrdImg();
26
22
  initrdImg = initrdImg.slice(Math.max(0, initrdImg.lastIndexOf('/') + 1));
27
- const pathConf = path.resolve(__dirname, `../../mkinitfs/live.conf`);
28
- await exec(`mkinitfs -c ${pathConf} -o ${this.settings.iso_work}live/${initrdImg}`, Utils.setEcho(true));
23
+ const pathConf = path.resolve(__dirname, `../../../mkinitfs/live.conf`);
24
+ await exec(`mkinitfs -c ${pathConf} -o ${this.settings.iso_work}live/${initrdImg} ${this.kernel}`, Utils.setEcho(true));
29
25
  }
30
26
  /**
31
27
  * initrdArch
@@ -33,15 +29,36 @@ export async function initrdAlpine() {
33
29
  export async function initrdArch() {
34
30
  Utils.warning(`creating ${path.basename(this.initrd)} using mkinitcpio on ISO/live`);
35
31
  let dirConf = 'arch';
32
+ let tool = 'archiso';
33
+ let hookSrc = '/usr/lib/initcpio/hooks/archiso_pxe_http';
34
+ let hookDest = '/etc/initcpio/hooks/archiso_pxe_http';
35
+ let edit = `sed -i 's/export copytoram="y"/# export copytoram="y"/' ${hookDest}`;
36
36
  if (Diversions.isManjaroBased(this.distroId)) {
37
37
  dirConf = 'manjaro';
38
+ tool = 'miso';
39
+ hookSrc = `/etc/initcpio/hooks/miso_pxe_http`;
40
+ hookDest = hookSrc;
41
+ edit = `sed -i 's/copytoram="y"/# copytoram="y"/' ${hookDest}`;
38
42
  if (this.distroId === "Biglinux" || this.distroId === "Bigcommunity") {
39
43
  dirConf = 'biglinux';
40
44
  }
41
45
  }
42
- const pathConf = path.resolve(__dirname, `../../../mkinitcpio/${dirConf}/live.conf`);
43
- let cmd = `mkinitcpio -c ${pathConf} -g ${this.settings.iso_work}live/${path.basename(this.initrd)} -k ${this.kernel}`;
44
- await exec(cmd, this.echo);
46
+ const restore = fs.existsSync(hookDest);
47
+ const pathConf = path.resolve(__dirname, `../../../mkinitcpio/${dirConf}`);
48
+ const fileConf = pathConf + '/live.conf';
49
+ let hookSaved = `/tmp/${path.basename(hookSrc)}`;
50
+ if (hookSrc !== hookDest) {
51
+ await exec(`cp ${hookSrc} ${hookDest}`);
52
+ }
53
+ await exec(`cp ${hookSrc} ${hookSaved}`);
54
+ await exec(edit, Utils.setEcho(true));
55
+ let cmd = `mkinitcpio -c ${fileConf} -g ${this.settings.iso_work}live/${path.basename(this.initrd)} -k ${this.kernel}`;
56
+ await exec(cmd, Utils.setEcho(true));
57
+ await exec(`rm -f ${hookDest}`);
58
+ if (restore) {
59
+ await exec(`cp ${hookSaved} ${hookDest}`);
60
+ }
61
+ await exec(`rm -f ${hookSaved}`);
45
62
  }
46
63
  /**
47
64
  * initrdDebian
@@ -63,6 +80,18 @@ export async function initrdDebian(verbose = false) {
63
80
  */
64
81
  export async function initrdDracut() {
65
82
  Utils.warning(`creating ${path.basename(this.initrd)} using dracut on ISO/live`);
66
- const confdir = path.resolve(__dirname, `../../../dracut/dracut.conf.d`);
67
- await exec(`dracut --confdir ${confdir} ${this.settings.iso_work}live/${path.basename(this.initrd)} ${this.kernel}`, this.echo);
83
+ const prefix = this.settings.config.snapshot_prefix;
84
+ const confdir = '--confdir ' + path.resolve(__dirname, `../../../dracut/dracut.conf.d`);
85
+ // const dracutdir='--dracutdir /opt/penguins-eggs/dracut'
86
+ const dracutdir = '';
87
+ const dest = `${this.settings.iso_work}live/${path.basename(this.initrd)}`;
88
+ const log = `> ${this.settings.iso_work}${prefix}dracut.log.txt 2>&1`;
89
+ const kmoddir = `--kmoddir /lib/modules/${this.kernel}`;
90
+ const cmd = `dracut --force --debug --no-hostonly ${confdir} ${kmoddir} ${dest} ${this.kernel} ${log}`;
91
+ //const cmd=`ls -la /lib /lib/modules ${log}`
92
+ console.log(cmd);
93
+ await exec(cmd, this.echo);
94
+ // clean per btrfs
95
+ let clean = `../../../scripts/99clean ${this.kernel}`;
96
+ await exec(clean, this.echo);
68
97
  }
@@ -19,9 +19,6 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
19
19
  * makeDotDisk
20
20
  */
21
21
  export function makeDotDisk(info = '', mksquashfs = '', mkisofs = '') {
22
- if (this.verbose) {
23
- console.log('Ovary: makeDotDisk');
24
- }
25
22
  const dotDisk = this.settings.iso_work + '.disk';
26
23
  if (fs.existsSync(dotDisk)) {
27
24
  shx.rm('-rf', dotDisk);
@@ -29,12 +26,25 @@ export function makeDotDisk(info = '', mksquashfs = '', mkisofs = '') {
29
26
  shx.mkdir('-p', dotDisk);
30
27
  let text = `# Created at: ${Utils.formatDate(new Date())}\n`;
31
28
  text += `# penguins_eggs v. ${Utils.getPackageVersion()}\n`;
32
- // .disk/info
33
- fs.writeFileSync(dotDisk + '/info', text, 'utf-8');
34
- shx.mkdir('-p', path.join(dotDisk, 'id'));
35
- fs.writeFileSync(path.join(dotDisk, '/id', this.uuid), this.uuid, 'utf-8');
36
- // .disk/mksquashfs
37
- fs.writeFileSync(dotDisk + '/mksquashfs', text + mksquashfs, 'utf-8');
38
- // .disk/mkisofs
39
- fs.writeFileSync(dotDisk + '/mkisofs', text + mkisofs, 'utf-8');
29
+ /**
30
+ * write test as .disk/info
31
+ */
32
+ fs.writeFileSync(path.join(dotDisk, 'info'), text, 'utf-8');
33
+ /**
34
+ * write mksquashfs as .disk/mksquashfs
35
+ */
36
+ fs.writeFileSync(path.join(dotDisk, 'mksquashfs'), mksquashfs, 'utf-8');
37
+ /**
38
+ * write mkisofs as .disk/mkisofs
39
+ */
40
+ fs.writeFileSync(path.join(dotDisk, 'mkisofs'), mkisofs, 'utf-8');
41
+ /**
42
+ * touch uuid as file name on .disk/id
43
+ *
44
+ * This is a DEBIAN standard
45
+ */
46
+ if (this.uuid && this.uuid.trim() !== '') {
47
+ shx.mkdir(path.join(dotDisk, 'id'));
48
+ shx.touch(path.join(dotDisk, 'id', this.uuid));
49
+ }
40
50
  }
@@ -44,8 +44,10 @@ export async function makeEfi(theme = 'eggs') {
44
44
  }
45
45
  if (!fs.existsSync(GAE)) {
46
46
  if (this.familyId === 'debian') {
47
- console.log(`error: cannot find ${GAE}`);
48
- process.exit(1);
47
+ Utils.error(`error: ${GAE} does not exist`);
48
+ if (!Utils.isi686()) {
49
+ process.exit(1);
50
+ }
49
51
  }
50
52
  }
51
53
  // Create READMES on ISO
@@ -151,7 +153,7 @@ export async function makeEfi(theme = 'eggs') {
151
153
  splashSrc = `${theme}/theme/livecd/splash.png`;
152
154
  }
153
155
  if (!fs.existsSync(splashSrc)) {
154
- Utils.warning('Cannot find: ' + splashSrc);
156
+ Utils.warning(`warning: ${splashSrc} does not exists`);
155
157
  process.exit(1);
156
158
  }
157
159
  await exec(`cp ${splashSrc} ${splashDest}`, this.echo);
@@ -163,7 +165,7 @@ export async function makeEfi(theme = 'eggs') {
163
165
  // copy theme
164
166
  const themeDest = `${isoDir}/boot/grub/theme.cfg`;
165
167
  if (!fs.existsSync(themeSrc)) {
166
- Utils.warning('Cannot find: ' + themeSrc);
168
+ Utils.error(`error: ${themeSrc} does not exist`);
167
169
  process.exit(1);
168
170
  }
169
171
  fs.copyFileSync(themeSrc, themeDest);
@@ -190,7 +192,7 @@ export async function makeEfi(theme = 'eggs') {
190
192
  grubTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/grub.main.cfg');
191
193
  }
192
194
  if (!fs.existsSync(grubTemplate)) {
193
- Utils.warning('Cannot find: ' + grubTemplate);
195
+ Utils.error(`error: ${grubTemplate} does not exist`);
194
196
  process.exit(1);
195
197
  }
196
198
  const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid); // this.kernelParameters()
@@ -229,7 +231,7 @@ export async function makeEfi(theme = 'eggs') {
229
231
  * @returns
230
232
  */
231
233
  function bootArchEfi() {
232
- let bn = 'nothing.efi';
234
+ let bn = 'bootia32.efi'; // Per l'architettura i686 EFI è: bootia32.efi
233
235
  if (process.arch === 'x64') {
234
236
  bn = 'bootx64.efi';
235
237
  }
@@ -242,14 +244,14 @@ function bootArchEfi() {
242
244
  * FUNCTIONS
243
245
  */
244
246
  function nameGAE() {
245
- let bn = 'nothing.efi';
247
+ let gn = 'grubia32.efi'; // Per l'architettura i686 EFI è: grubia32.efi
246
248
  if (process.arch === 'x64') {
247
- bn = 'grubx64.efi';
249
+ gn = 'grubx64.efi';
248
250
  }
249
251
  else if (process.arch === 'arm64') {
250
- bn = 'grubaa64.efi';
252
+ gn = 'grubaa64.efi';
251
253
  }
252
- return bn;
254
+ return gn;
253
255
  }
254
256
  function nameGAES() {
255
257
  return nameGAE() + '.signed';
@@ -260,7 +262,7 @@ function srcGAE() {
260
262
  function srcGAES() {
261
263
  let signedGrub = `/usr/lib/grub/${Utils.uefiFormat()}-signed/${nameGAES()}`;
262
264
  if (!fs.existsSync(signedGrub)) {
263
- Utils.warning(`cannot find ${signedGrub}`);
265
+ Utils.warning(`warning: ${signedGrub} does not exist`);
264
266
  }
265
267
  return signedGrub;
266
268
  }
@@ -9,7 +9,7 @@ import Ovary from '../ovary.js';
9
9
  /**
10
10
  * Ritorna true se c'è bisogno del mount --bind
11
11
  *
12
- * Ci sono tre tipologie:
12
+ * Ci sono quattro tipologie:
13
13
  *
14
14
  * - copied
15
15
  * - mergedAndOverlay
@@ -12,7 +12,7 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
12
12
  /**
13
13
  * Ritorna true se c'è bisogno del mount --bind
14
14
  *
15
- * Ci sono tre tipologie:
15
+ * Ci sono quattro tipologie:
16
16
  *
17
17
  * - copied
18
18
  * - mergedAndOverlay
@@ -36,7 +36,8 @@ export function copied(dir) {
36
36
  *
37
37
  */
38
38
  export function mergedAndOverlay(dir) {
39
- const moDirs = ['usr', 'var'];
39
+ // per Alpine ho agginto bin
40
+ const moDirs = ['bin', 'usr', 'var'];
40
41
  let mergedOverlay = false;
41
42
  for (const moDir of moDirs) {
42
43
  if (moDir === dir) {
@@ -52,7 +52,8 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
52
52
  */
53
53
  if (this.kernel === '') {
54
54
  if (this.familyId === 'alpine') {
55
- // to do
55
+ const moduleDirs = fs.readdirSync('/lib/modules');
56
+ this.kernel = moduleDirs[0];
56
57
  }
57
58
  else if (this.familyId === 'archlinux') {
58
59
  const moduleDirs = fs.readdirSync('/usr/lib/modules');
@@ -189,7 +190,7 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
189
190
  await this.syslinux(this.theme);
190
191
  await this.kernelCopy();
191
192
  /**
192
- * differents initrd for different families
193
+ * spostare alla fine per dracut
193
194
  */
194
195
  if (this.familyId === 'alpine') {
195
196
  await this.initrdAlpine();
@@ -277,16 +278,16 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
277
278
  * patch to emulate miso/archiso on archilinux family
278
279
  */
279
280
  if (this.familyId === 'archlinux') {
280
- let pathName = `arch/x86_64/airootfs`;
281
+ let filesystemName = `arch/x86_64/airootfs.sfs`;
281
282
  let hashCmd = 'sha512sum';
282
283
  let hashExt = '.sha512';
283
284
  if (Diversions.isManjaroBased(this.settings.distro.distroId)) {
284
- pathName = `manjaro/x86_64/livefs`;
285
+ filesystemName = `manjaro/x86_64/livefs.sfs`;
285
286
  hashCmd = `md5sum`;
286
287
  hashExt = '.md5';
287
288
  }
288
- await exec(`mkdir ${this.settings.iso_work}${pathName}/x86_64 -p`, this.echo);
289
- fs.linkSync(`${this.settings.iso_work}live/filesystem.squashfs`, `${this.settings.iso_work}${pathName}.sfs`);
289
+ await exec(`mkdir ${this.settings.iso_work}${path.dirname(filesystemName)} -p`, this.echo);
290
+ await exec(`ln ${this.settings.iso_work}live/filesystem.squashfs ${this.settings.iso_work}${filesystemName}`, this.echo);
290
291
  }
291
292
  await this.makeIso(mkIsofsCmd, scriptOnly);
292
293
  }
@@ -10,6 +10,7 @@ import fs from 'fs';
10
10
  import path from 'node:path';
11
11
  import yaml from 'js-yaml';
12
12
  // functions
13
+ import { exec } from '../../lib/utils.js';
13
14
  import rexec from './rexec.js';
14
15
  import Utils from '../utils.js';
15
16
  // _dirname
@@ -42,16 +43,7 @@ export async function userCreateLive() {
42
43
  *
43
44
  */
44
45
  switch (this.familyId) {
45
- case 'debian': {
46
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG sudo ${this.settings.config.user_opt}`, this.verbose));
47
- break;
48
- }
49
46
  case 'alpine': {
50
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG cdrom ${this.settings.config.user_opt}`, this.verbose));
51
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG games ${this.settings.config.user_opt}`, this.verbose));
52
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG input ${this.settings.config.user_opt}`, this.verbose));
53
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG users ${this.settings.config.user_opt}`, this.verbose));
54
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG video ${this.settings.config.user_opt}`, this.verbose));
55
47
  cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG wheel ${this.settings.config.user_opt}`, this.verbose));
56
48
  break;
57
49
  }
@@ -62,6 +54,10 @@ export async function userCreateLive() {
62
54
  cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} gpasswd -a ${this.settings.config.user_opt} autologin`, this.verbose));
63
55
  break;
64
56
  }
57
+ case 'debian': {
58
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG sudo ${this.settings.config.user_opt}`, this.verbose));
59
+ break;
60
+ }
65
61
  case 'fedora': {
66
62
  cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG wheel ${this.settings.config.user_opt}`, this.verbose));
67
63
  break;
@@ -71,10 +67,14 @@ export async function userCreateLive() {
71
67
  cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG autologin ${this.settings.config.user_opt}`, this.verbose));
72
68
  break;
73
69
  }
70
+ case 'opensuse': {
71
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG wheel ${this.settings.config.user_opt}`, this.verbose));
72
+ break;
73
+ }
74
74
  // No default
75
75
  }
76
76
  /**
77
- * look to calamares/modules/users.yml for groups
77
+ * look to calamares/modules/users.conf for groups
78
78
  */
79
79
  let usersConf = '/etc/calamares/modules/users.conf';
80
80
  if (!fs.existsSync(usersConf)) {
@@ -83,7 +83,11 @@ export async function userCreateLive() {
83
83
  if (fs.existsSync(usersConf)) {
84
84
  const o = yaml.load(fs.readFileSync(usersConf, 'utf8'));
85
85
  for (const group of o.defaultGroups) {
86
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG ${group} ${this.settings.config.user_opt}`, this.verbose));
86
+ const groupExists = await exec(`chroot ${this.settings.work_dir.merged} getent group ${group}`, { ignore: true });
87
+ if (groupExists.code == 0) {
88
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG ${group} ${this.settings.config.user_opt} ${this.toNull}`, this.verbose));
89
+ Utils.warning(`added ${this.settings.config.user_opt} to group ${group}`);
90
+ }
87
91
  }
88
92
  }
89
93
  else {