penguins-eggs 25.8.6 → 25.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +8 -1
- package/README.md +37 -33
- package/README.pdf +2720 -2021
- package/addons/eggs/theme/calamares/modules/users.yml +3 -3
- package/addons/eggs/theme/livecd/{grub.main.simple.cfg → grub.main.cfg} +2 -22
- package/assets/calamares/install-system.sh +2 -2
- package/conf/derivatives.yaml +7 -0
- package/conf/distros/buster/calamares/modules/bootloader.yml +45 -16
- package/conf/distros/buster/calamares/modules/mount.yml +103 -28
- package/dist/classes/distro.js +14 -6
- package/dist/classes/diversions.d.ts +1 -0
- package/dist/classes/diversions.js +7 -0
- package/dist/classes/incubation/incubator.d.ts +4 -0
- package/dist/classes/incubation/incubator.js +14 -0
- package/dist/classes/ovary.d/bind-live-fs.js +2 -2
- package/dist/classes/ovary.d/initrd.js +4 -4
- package/dist/classes/ovary.d/kernel-copy.js +1 -1
- package/dist/classes/ovary.d/live-create-structure.js +1 -1
- package/dist/classes/ovary.d/make-dot-disk.js +16 -4
- package/dist/classes/ovary.d/make-efi.d.ts +0 -2
- package/dist/classes/ovary.d/make-efi.js +132 -71
- package/dist/classes/ovary.d/make-iso.js +1 -1
- package/dist/classes/ovary.d/make-squashfs.js +1 -1
- package/dist/classes/ovary.d/produce.js +7 -3
- package/dist/classes/ovary.d/syslinux.js +12 -10
- package/dist/classes/ovary.d/xorriso-command.js +51 -47
- package/dist/classes/pacman.js +7 -0
- package/dist/classes/pxe.d.ts +1 -2
- package/dist/classes/pxe.js +36 -30
- package/dist/classes/utils.d/kernel.d.ts +6 -56
- package/dist/classes/utils.d/kernel.js +51 -281
- package/dist/classes/utils.js +16 -8
- package/dist/commands/cuckoo.d.ts +1 -0
- package/dist/commands/cuckoo.js +3 -2
- package/dist/commands/export/pkg.js +1 -1
- package/dist/krill/classes/sequence.d/add_user.js +6 -0
- package/dist/krill/classes/sequence.d/bootloader.js +9 -1
- package/dist/krill/classes/sequence.js +1 -1
- package/dist/lib/utils.js +1 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +46 -18
- package/package.json +9 -10
- package/perrisbrewery/template/dependencies-bionic.yaml +25 -4
- package/perrisbrewery/template/dependencies.yaml +21 -4
- package/scripts/_eggs +7 -6
- package/scripts/eggs.bash +2 -2
- package/addons/eggs/theme/livecd/grub.main.full.cfg +0 -43
- package/bootloaders/README.md +0 -22
- package/bootloaders/grub/x86_64-efi/acpi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/adler32.mod +0 -0
- package/bootloaders/grub/x86_64-efi/affs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/afs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/afsplitter.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ahci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/all_video.mod +0 -0
- package/bootloaders/grub/x86_64-efi/aout.mod +0 -0
- package/bootloaders/grub/x86_64-efi/appleldr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/archelp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/at_keyboard.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ata.mod +0 -0
- package/bootloaders/grub/x86_64-efi/backtrace.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bitmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bitmap_scale.mod +0 -0
- package/bootloaders/grub/x86_64-efi/blocklist.mod +0 -0
- package/bootloaders/grub/x86_64-efi/boot.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bsd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bswap_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/btrfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bufio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cat.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbls.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbmemc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbtable.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbtime.mod +0 -0
- package/bootloaders/grub/x86_64-efi/chain.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cmdline_cat_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cmp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cmp_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/command.lst +0 -194
- package/bootloaders/grub/x86_64-efi/config.h +0 -69
- package/bootloaders/grub/x86_64-efi/configfile.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cpio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cpio_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cpuid.mod +0 -0
- package/bootloaders/grub/x86_64-efi/crc64.mod +0 -0
- package/bootloaders/grub/x86_64-efi/crypto.lst +0 -45
- package/bootloaders/grub/x86_64-efi/crypto.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cryptodisk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cs5536.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ctz_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/date.mod +0 -0
- package/bootloaders/grub/x86_64-efi/datehook.mod +0 -0
- package/bootloaders/grub/x86_64-efi/datetime.mod +0 -0
- package/bootloaders/grub/x86_64-efi/disk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/diskfilter.mod +0 -0
- package/bootloaders/grub/x86_64-efi/div.mod +0 -0
- package/bootloaders/grub/x86_64-efi/div_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/dm_nv.mod +0 -0
- package/bootloaders/grub/x86_64-efi/echo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efi_gop.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efi_uga.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efifwsetup.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efinet.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ehci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/elf.mod +0 -0
- package/bootloaders/grub/x86_64-efi/eval.mod +0 -0
- package/bootloaders/grub/x86_64-efi/exfat.mod +0 -0
- package/bootloaders/grub/x86_64-efi/exfctest.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ext2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/extcmd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/f2fs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fat.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fdt.lst +0 -0
- package/bootloaders/grub/x86_64-efi/file.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fixvideo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/font.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fs.lst +0 -37
- package/bootloaders/grub/x86_64-efi/fshelp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/functional_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_arcfour.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_blowfish.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_camellia.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_cast5.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_crc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_des.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_dsa.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_idea.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_md4.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_md5.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rfc2268.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rijndael.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rmd160.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rsa.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_seed.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_serpent.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_sha1.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_sha256.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_sha512.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_tiger.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_twofish.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_whirlpool.mod +0 -0
- package/bootloaders/grub/x86_64-efi/geli.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gettext.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxmenu.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxterm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxterm_background.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxterm_menu.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gptsync.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gzio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/halt.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hashsum.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hdparm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hello.mod +0 -0
- package/bootloaders/grub/x86_64-efi/help.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hexdump.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hfsplus.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hfspluscomp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/http.mod +0 -0
- package/bootloaders/grub/x86_64-efi/iorw.mod +0 -0
- package/bootloaders/grub/x86_64-efi/iso9660.mod +0 -0
- package/bootloaders/grub/x86_64-efi/jfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/jpeg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/json.mod +0 -0
- package/bootloaders/grub/x86_64-efi/kernel.img +0 -0
- package/bootloaders/grub/x86_64-efi/keylayouts.mod +0 -0
- package/bootloaders/grub/x86_64-efi/keystatus.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ldm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/legacy_password_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/legacycfg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/linux.mod +0 -0
- package/bootloaders/grub/x86_64-efi/linux16.mod +0 -0
- package/bootloaders/grub/x86_64-efi/linuxefi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/loadbios.mod +0 -0
- package/bootloaders/grub/x86_64-efi/loadenv.mod +0 -0
- package/bootloaders/grub/x86_64-efi/loopback.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ls.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsacpi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsefi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsefimmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsefisystab.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsmmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lspci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lssal.mod +0 -0
- package/bootloaders/grub/x86_64-efi/luks.mod +0 -0
- package/bootloaders/grub/x86_64-efi/luks2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lvm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lzopio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/macbless.mod +0 -0
- package/bootloaders/grub/x86_64-efi/macho.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mdraid09.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mdraid09_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mdraid1x.mod +0 -0
- package/bootloaders/grub/x86_64-efi/memdisk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/memrw.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minicmd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix2_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix3.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix3_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/moddep.lst +0 -267
- package/bootloaders/grub/x86_64-efi/modinfo.sh +0 -40
- package/bootloaders/grub/x86_64-efi/monolithic/gcdx64.efi +0 -0
- package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64-installer.efi +0 -0
- package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64.efi +0 -0
- package/bootloaders/grub/x86_64-efi/monolithic/grubx64.efi +0 -0
- package/bootloaders/grub/x86_64-efi/morse.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mpi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/msdospart.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mul_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/multiboot.mod +0 -0
- package/bootloaders/grub/x86_64-efi/multiboot2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/nativedisk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/net.mod +0 -0
- package/bootloaders/grub/x86_64-efi/newc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/nilfs2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/normal.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ntfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ntfscomp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/odc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/offsetio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ohci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_acorn.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_amiga.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_apple.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_bsd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_dfly.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_dvh.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_gpt.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_msdos.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_plan.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_sun.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_sunpc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/partmap.lst +0 -11
- package/bootloaders/grub/x86_64-efi/parttool.lst +0 -1
- package/bootloaders/grub/x86_64-efi/parttool.mod +0 -0
- package/bootloaders/grub/x86_64-efi/password.mod +0 -0
- package/bootloaders/grub/x86_64-efi/password_pbkdf2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pata.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pbkdf2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pbkdf2_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pcidump.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pgp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/play.mod +0 -0
- package/bootloaders/grub/x86_64-efi/png.mod +0 -0
- package/bootloaders/grub/x86_64-efi/priority_queue.mod +0 -0
- package/bootloaders/grub/x86_64-efi/probe.mod +0 -0
- package/bootloaders/grub/x86_64-efi/procfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/progress.mod +0 -0
- package/bootloaders/grub/x86_64-efi/raid5rec.mod +0 -0
- package/bootloaders/grub/x86_64-efi/raid6rec.mod +0 -0
- package/bootloaders/grub/x86_64-efi/random.mod +0 -0
- package/bootloaders/grub/x86_64-efi/rdmsr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/read.mod +0 -0
- package/bootloaders/grub/x86_64-efi/reboot.mod +0 -0
- package/bootloaders/grub/x86_64-efi/regexp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/reiserfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/relocator.mod +0 -0
- package/bootloaders/grub/x86_64-efi/romfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/scsi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search_fs_file.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search_fs_uuid.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search_label.mod +0 -0
- package/bootloaders/grub/x86_64-efi/serial.mod +0 -0
- package/bootloaders/grub/x86_64-efi/setjmp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/setjmp_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/setpci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/sfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/shift_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/signature_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/sleep.mod +0 -0
- package/bootloaders/grub/x86_64-efi/sleep_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/smbios.mod +0 -0
- package/bootloaders/grub/x86_64-efi/spkmodem.mod +0 -0
- package/bootloaders/grub/x86_64-efi/squash4.mod +0 -0
- package/bootloaders/grub/x86_64-efi/strtoull_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/syslinuxcfg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tar.mod +0 -0
- package/bootloaders/grub/x86_64-efi/terminal.lst +0 -9
- package/bootloaders/grub/x86_64-efi/terminal.mod +0 -0
- package/bootloaders/grub/x86_64-efi/terminfo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/test_blockarg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/testload.mod +0 -0
- package/bootloaders/grub/x86_64-efi/testspeed.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tftp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tga.mod +0 -0
- package/bootloaders/grub/x86_64-efi/time.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tpm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/trig.mod +0 -0
- package/bootloaders/grub/x86_64-efi/true.mod +0 -0
- package/bootloaders/grub/x86_64-efi/udf.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ufs1.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ufs1_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ufs2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/uhci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usb.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usb_keyboard.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbms.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_common.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_ftdi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_pl2303.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_usbdebug.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbtest.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video.lst +0 -4
- package/bootloaders/grub/x86_64-efi/video.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_bochs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_cirrus.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_colors.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_fb.mod +0 -0
- package/bootloaders/grub/x86_64-efi/videoinfo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/videotest.mod +0 -0
- package/bootloaders/grub/x86_64-efi/videotest_checksum.mod +0 -0
- package/bootloaders/grub/x86_64-efi/wrmsr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xnu.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xnu_uuid.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xnu_uuid_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xzio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zfscrypt.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zfsinfo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zstd.mod +0 -0
- package/bootloaders/grubnetx64.efi.signed +0 -0
- package/bootloaders/grubx64.efi +0 -0
- package/bootloaders/grubx64.efi.signed +0 -0
- package/bootloaders/ipxe.pxe +0 -0
- package/bootloaders/shimx64.efi +0 -0
- package/bootloaders/shimx64.efi.signed +0 -0
- package/bootloaders/syslinux/README.md +0 -3
- package/bootloaders/syslinux/chain.c32 +0 -0
- package/bootloaders/syslinux/isohdpfx.bin +0 -0
- package/bootloaders/syslinux/isolinux.bin +0 -0
- package/bootloaders/syslinux/ldlinux.c32 +0 -0
- package/bootloaders/syslinux/libcom32.c32 +0 -0
- package/bootloaders/syslinux/libutil.c32 +0 -0
- package/bootloaders/syslinux/lpxelinux.0 +0 -0
- package/bootloaders/syslinux/memdisk +0 -0
- package/bootloaders/syslinux/pxelinux.0 +0 -0
- package/bootloaders/syslinux/vesamenu.c32 +0 -0
- package/bootloaders/undionly.kpxe +0 -0
- package/dist/penguins-eggs_25.8.6-bionic-1_amd64.deb +0 -0
- package/dist/penguins-eggs_25.8.6-bionic-1_amd64.deb.sha256 +0 -1
|
@@ -19,54 +19,117 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
|
19
19
|
*
|
|
20
20
|
* @param this
|
|
21
21
|
* @param theme
|
|
22
|
-
* cp /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed ./bootloaders/
|
|
23
|
-
* cp /usr/lib/shim/shimx64.efi.signed ./bootloaders/
|
|
24
22
|
*/
|
|
25
23
|
export async function makeEfi(theme = 'eggs') {
|
|
26
|
-
const bootloaders =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
58
|
+
const efiImgMnt = path.join(efiPath, 'mnt');
|
|
38
59
|
const isoDir = this.settings.iso_work;
|
|
39
|
-
//
|
|
40
|
-
await exec(`mkdir ${isoDir}/boot/grub
|
|
41
|
-
|
|
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}
|
|
44
|
-
await exec(`cp ${grubEfi}
|
|
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 ${
|
|
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
|
-
|
|
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
|
|
59
|
-
let
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
const cfgSeekerUsb = `${efiMemdiskDir}/boot/grub/grub.cfg`;
|
|
87
|
+
let cfgSeekerUsbText = '';
|
|
88
|
+
cfgSeekerUsbText += `# grub.cfg seeker\n`;
|
|
89
|
+
cfgSeekerUsbText += `# created on ${efiMemdiskDir}, path ${cfgSeekerUsb}\n`;
|
|
90
|
+
cfgSeekerUsbText += `\n`;
|
|
91
|
+
cfgSeekerUsbText += seeker;
|
|
92
|
+
Utils.write(cfgSeekerUsb, cfgSeekerUsbText);
|
|
93
|
+
/**
|
|
94
|
+
* create grub.cfg (bridge) on (ISO)/boot/grub/x86_64-efi/grub.cfg
|
|
95
|
+
*/
|
|
96
|
+
Utils.warning(`creating grub.cfg bridge to main. (ISO)/boot/grub/${Utils.uefiFormat()}`);
|
|
97
|
+
let cfgBridge = `${isoDir}/boot/grub/${Utils.uefiFormat()}/grub.cfg`;
|
|
98
|
+
let cfgBridgeText = `# grub.cfg bridge\n`;
|
|
99
|
+
cfgBridgeText += `# created on ${cfgBridge}\n`;
|
|
100
|
+
cfgBridgeText += `\n`;
|
|
101
|
+
cfgBridgeText += `source /boot/grub/grub.cfg\n`;
|
|
102
|
+
fs.writeFileSync(cfgBridge, cfgBridgeText);
|
|
103
|
+
/**
|
|
104
|
+
* grub bait: si applica a tutte le distro:
|
|
105
|
+
* /EFI/debian per tutti, tranne ubuntu
|
|
106
|
+
*/
|
|
107
|
+
let pathBait = path.join(isoDir, '/EFI/debian');
|
|
108
|
+
if (this.distroLike === 'Ubuntu') {
|
|
109
|
+
pathBait = path.join(isoDir, '/EFI/ubuntu');
|
|
110
|
+
}
|
|
111
|
+
await exec(`mkdir ${pathBait} -p`, this.echo);
|
|
112
|
+
Utils.warning(`creating grub.cfg seeker ISO/DVD on (ISO)/EFI/${path.basename(pathBait)}`);
|
|
113
|
+
let cfgBait = path.join(pathBait, '/grub.cfg');
|
|
114
|
+
let cfgBaitText = '';
|
|
115
|
+
cfgBaitText += `\n`;
|
|
116
|
+
cfgBaitText += seeker;
|
|
117
|
+
Utils.write(cfgBait, cfgBaitText);
|
|
118
|
+
/**
|
|
119
|
+
* README.md, per tutti tranne distrolike Debian ed Ubuntu
|
|
120
|
+
*/
|
|
121
|
+
let baitReadme = path.join(pathBait, '/README.md');
|
|
122
|
+
let baitReadmeText = ``;
|
|
123
|
+
if (this.distroLike !== 'Debian' && this.distroLike !== 'Ubuntu') {
|
|
124
|
+
baitReadmeText += `# penguins-eggs\n`;
|
|
125
|
+
baitReadmeText += '\n';
|
|
126
|
+
baitReadmeText += `This is just an hack, to let ${this.distroId} boot using Debian trixie bootloaders\n`;
|
|
127
|
+
fs.writeFileSync(baitReadme, baitReadmeText);
|
|
128
|
+
}
|
|
66
129
|
/**
|
|
67
130
|
* creating structure efiWordDir
|
|
68
131
|
*/
|
|
69
|
-
await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo);
|
|
132
|
+
await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo); // qua va grub.cfg 2
|
|
70
133
|
await exec(`mkdir -p ${efiWorkDir}/EFI/boot`);
|
|
71
134
|
/**
|
|
72
135
|
* create tarred efiMemdiskDir
|
|
@@ -78,31 +141,37 @@ export async function makeEfi(theme = 'eggs') {
|
|
|
78
141
|
/**
|
|
79
142
|
* Create boot image "boot/grub/efi.img"
|
|
80
143
|
*/
|
|
81
|
-
const efiImg =
|
|
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
|
-
|
|
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} ${
|
|
87
|
-
|
|
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 ${
|
|
90
|
-
await exec(`mkdir -p ${
|
|
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 ${
|
|
95
|
-
await exec(`cp ${shimEfi}
|
|
96
|
-
await exec(`cp ${grubEfi}
|
|
97
|
-
|
|
98
|
-
|
|
157
|
+
await exec(`cp ${cfgSeekerUsb} ${efiImgMnt}/boot/grub.cfg`, this.echo);
|
|
158
|
+
await exec(`cp ${shimEfi} ${efiImgMnt}/EFI/boot/${bootEfiName()}`, this.echo);
|
|
159
|
+
await exec(`cp ${grubEfi} ${efiImgMnt}/EFI/boot/${grubEfiName()}`, this.echo);
|
|
160
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
161
|
+
if (!fs.existsSync(`${efiImgMnt}/boot/grub.cfg`)) {
|
|
162
|
+
console.log(`error copyng ${cfgSeekerUsb} seeker for USB on (efi.img)/boot/grub.cfg`);
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
166
|
+
await exec(`umount ${efiImgMnt}`, this.echo);
|
|
167
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
99
168
|
// Copy isoImg in ${${isoDir}/boot/grub
|
|
100
|
-
Utils.warning("copyng efi.img on (
|
|
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 (
|
|
172
|
+
* creating grub.cfg (4) on (ISO)/boot/grub
|
|
104
173
|
*/
|
|
105
|
-
Utils.warning("creating grub.cfg
|
|
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
|
|
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
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
|
188
|
-
let
|
|
245
|
+
function bootEfiName() {
|
|
246
|
+
let ben = '';
|
|
189
247
|
if (process.arch === 'x64') {
|
|
190
|
-
|
|
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
|
-
|
|
254
|
+
ben = 'bootaa64.efi';
|
|
194
255
|
}
|
|
195
|
-
return
|
|
256
|
+
return ben;
|
|
196
257
|
}
|
|
197
258
|
/**
|
|
198
259
|
*
|
|
199
260
|
* @returns
|
|
200
261
|
*/
|
|
201
|
-
function
|
|
202
|
-
let
|
|
262
|
+
function grubEfiName() {
|
|
263
|
+
let gen = '';
|
|
203
264
|
if (process.arch === 'x64') {
|
|
204
|
-
|
|
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
|
-
|
|
271
|
+
gen = 'grubaa64.efi';
|
|
208
272
|
}
|
|
209
|
-
return
|
|
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
|
|
25
|
+
// Create link to iso ALLWAYS
|
|
26
26
|
const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
|
|
27
27
|
const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
|
|
28
28
|
await exec(`ln -s ${src} ${dest}`);
|
|
@@ -85,7 +85,7 @@ export async function makeSquashfs(scriptOnly = false, unsecure = false) {
|
|
|
85
85
|
cmd = cmd.replaceAll(/\s\s+/g, ' ');
|
|
86
86
|
Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
|
|
87
87
|
if (!scriptOnly) {
|
|
88
|
-
Utils.warning('creating filesystem.squashfs on ISO/live');
|
|
88
|
+
Utils.warning('creating filesystem.squashfs on (ISO)/live');
|
|
89
89
|
// Utils.warning(`compression: ` + compression)
|
|
90
90
|
const test = (await exec(cmd, Utils.setEcho(true))).code;
|
|
91
91
|
if (test !== 0) {
|
|
@@ -187,7 +187,11 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
|
|
|
187
187
|
*/
|
|
188
188
|
this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, this.theme, this.clone, verbose);
|
|
189
189
|
await this.incubator.config(release);
|
|
190
|
-
|
|
190
|
+
// need syslinux?
|
|
191
|
+
const arch = process.arch;
|
|
192
|
+
if (arch === 'ia32' || arch === 'x64') {
|
|
193
|
+
await this.syslinux(this.theme);
|
|
194
|
+
}
|
|
191
195
|
await this.kernelCopy();
|
|
192
196
|
/**
|
|
193
197
|
* spostare alla fine per dracut
|
|
@@ -244,8 +248,8 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
|
|
|
244
248
|
synctoCmd += ' --excludes'; // from Marco, usa home.list
|
|
245
249
|
}
|
|
246
250
|
await exec(synctoCmd, Utils.setEcho(true));
|
|
247
|
-
Utils.warning(`moving ${luksFile} in ${this.nest}
|
|
248
|
-
await exec(`mv ${luksFile} ${this.nest}
|
|
251
|
+
Utils.warning(`moving ${luksFile} in ${this.nest}(ISO)/live`);
|
|
252
|
+
await exec(`mv ${luksFile} ${this.nest}(ISO)/live`, this.echo);
|
|
249
253
|
}
|
|
250
254
|
const mkIsofsCmd = (await this.xorrisoCommand(clone, cryptedclone)).replaceAll(/\s\s+/g, ' ');
|
|
251
255
|
this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
|
|
@@ -17,20 +17,22 @@ import Diversions from './../diversions.js';
|
|
|
17
17
|
import Utils from './../utils.js';
|
|
18
18
|
// _dirname
|
|
19
19
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
20
|
-
|
|
20
|
+
let bootloaders = '/usr/lib/';
|
|
21
21
|
/**
|
|
22
22
|
* syslinux: da syspath
|
|
23
23
|
*/
|
|
24
24
|
export async function syslinux(theme = 'eggs') {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
await exec(`cp ${
|
|
30
|
-
|
|
31
|
-
await exec(`cp ${
|
|
32
|
-
await exec(`cp ${
|
|
33
|
-
await exec(`cp ${
|
|
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
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
55
|
+
Utils.warning(`Can't create isohybrid image, file: ${isohybridFile} not found!`);
|
|
56
|
+
process.exit();
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
|
-
|
|
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
|
}
|
package/dist/classes/pacman.js
CHANGED
|
@@ -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
|
**********************************************************************************/
|
package/dist/classes/pxe.d.ts
CHANGED
|
@@ -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
|
*
|
package/dist/classes/pxe.js
CHANGED
|
@@ -18,7 +18,6 @@ import Utils from './utils.js';
|
|
|
18
18
|
import Diversions from './diversions.js';
|
|
19
19
|
// _dirname
|
|
20
20
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
21
|
-
const bootloaders = path.resolve(__dirname, `../../bootloaders`);
|
|
22
21
|
/**
|
|
23
22
|
* Pxe:
|
|
24
23
|
*/
|
|
@@ -32,16 +31,16 @@ export default class Pxe {
|
|
|
32
31
|
pxeRoot = '';
|
|
33
32
|
distro = {};
|
|
34
33
|
settings = {};
|
|
35
|
-
verbose = false;
|
|
36
34
|
vmlinuz = '';
|
|
37
35
|
/**
|
|
38
36
|
* constructor
|
|
39
37
|
* @param nest
|
|
40
38
|
* @param pxeRoot
|
|
41
39
|
*/
|
|
42
|
-
constructor(nest = '', pxeRoot = '') {
|
|
40
|
+
constructor(nest = '', pxeRoot = '', verbose = false) {
|
|
43
41
|
this.nest = nest;
|
|
44
42
|
this.pxeRoot = pxeRoot;
|
|
43
|
+
this.echo = Utils.setEcho(verbose);
|
|
45
44
|
}
|
|
46
45
|
/**
|
|
47
46
|
* fertilization()
|
|
@@ -206,19 +205,22 @@ export default class Pxe {
|
|
|
206
205
|
* configure PXE bios
|
|
207
206
|
*/
|
|
208
207
|
async bios() {
|
|
208
|
+
const bootloaders = Diversions.bootloaders(this.distro.familyId);
|
|
209
209
|
await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/isolinux.theme.cfg ${this.pxeRoot}/isolinux.theme.cfg`, this.echo);
|
|
210
210
|
await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/splash.png ${this.pxeRoot}/splash.png`, this.echo);
|
|
211
211
|
// ipxe.pxe
|
|
212
|
-
await exec(`ln -s ${bootloaders}ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
|
|
212
|
+
await exec(`ln -s ${bootloaders}ipxe/ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
|
|
213
|
+
// snponly.efi
|
|
214
|
+
await exec(`ln -s ${bootloaders}ipxe/snponly.efi ${this.pxeRoot}/snponly.efi`, this.echo);
|
|
213
215
|
// pxe
|
|
214
|
-
await exec(`cp ${bootloaders}/
|
|
215
|
-
await exec(`cp ${bootloaders}/
|
|
216
|
+
await exec(`cp ${bootloaders}PXELINUX/pxelinux.0 ${this.pxeRoot}/pxelinux.0`, this.echo);
|
|
217
|
+
await exec(`cp ${bootloaders}PXELINUX/lpxelinux.0 ${this.pxeRoot}/lpxelinux.0`, this.echo);
|
|
216
218
|
// syslinux
|
|
217
|
-
await exec(`ln -s ${bootloaders}
|
|
218
|
-
await exec(`ln -s ${bootloaders}
|
|
219
|
-
await exec(`ln -s ${bootloaders}
|
|
220
|
-
await exec(`ln -s ${bootloaders}
|
|
221
|
-
await exec(`ln -s ${bootloaders}
|
|
219
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/ldlinux.c32 ${this.pxeRoot}/ldlinux.c32`, this.echo);
|
|
220
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/vesamenu.c32 ${this.pxeRoot}/vesamenu.c32`, this.echo);
|
|
221
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/libcom32.c32 ${this.pxeRoot}/libcom32.c32`, this.echo);
|
|
222
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/libutil.c32 ${this.pxeRoot}/libutil.c32`, this.echo);
|
|
223
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/memdisk ${this.pxeRoot}/memdisk`, this.echo);
|
|
222
224
|
await exec(`mkdir ${this.pxeRoot}/pxelinux.cfg`, this.echo);
|
|
223
225
|
let content = '';
|
|
224
226
|
content += '# eggs: pxelinux.cfg/default\n';
|
|
@@ -254,21 +256,33 @@ export default class Pxe {
|
|
|
254
256
|
* @param familyId
|
|
255
257
|
*/
|
|
256
258
|
async grubCfg() {
|
|
259
|
+
const bootloaders = Diversions.bootloaders(this.distro.familyId);
|
|
257
260
|
const echoYes = Utils.setEcho(true);
|
|
258
261
|
/**
|
|
259
262
|
* On Debian bookworm:
|
|
260
|
-
* cd ~/penguins-eggs
|
|
261
|
-
* cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed ./bootloaders/
|
|
262
|
-
* cp -r /usr/lib/grub/x86_64-efi/ ./bootloaders/grub/x86_64-efi/
|
|
263
263
|
*/
|
|
264
264
|
await exec(`mkdir -p ${this.pxeRoot}/grub`, this.echo);
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
265
|
+
if (this.distro.familyId === 'debian') {
|
|
266
|
+
if (process.arch === 'x64') {
|
|
267
|
+
await exec(`cp ${bootloaders}/grub/x86_64-efi-signed/grubnetx64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
|
|
268
|
+
await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
|
|
269
|
+
}
|
|
270
|
+
else if (process.arch === 'ia32') {
|
|
271
|
+
await exec(`cp ${bootloaders}/grub/i386-efi-signed/grubnetia32.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
|
|
272
|
+
await exec(`cp -r ${bootloaders}/grub/i386-efi ${this.pxeRoot}/grub`, this.echo);
|
|
273
|
+
}
|
|
274
|
+
else if (process.arch === 'arm64') {
|
|
275
|
+
await exec(`cp ${bootloaders}/grub/arm64-efi-signed/grubnetaa64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
|
|
276
|
+
await exec(`cp -r ${bootloaders}/grub/arm64-efi ${this.pxeRoot}/grub`, this.echo);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
/**
|
|
281
|
+
* le altre distribuzione not signed
|
|
282
|
+
*/
|
|
283
|
+
await exec(`cp ${bootloaders}grub/x86_64-efi/monolithic/grubnetx64.efi ${this.pxeRoot}/grub.efi`, this.echo);
|
|
284
|
+
await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
|
|
285
|
+
}
|
|
272
286
|
// Genera il file grub.cfg
|
|
273
287
|
const grubName = `${this.pxeRoot}/grub/grub.cfg`; // Il file deve chiamarsi grub.cfg
|
|
274
288
|
let grubContent = '';
|
|
@@ -320,15 +334,7 @@ export default class Pxe {
|
|
|
320
334
|
ip=dhcp`;
|
|
321
335
|
break;
|
|
322
336
|
case 'fedora':
|
|
323
|
-
|
|
324
|
-
root=live:http://${Utils.address()}/live/filesystem.squashfs \
|
|
325
|
-
rootfstype=auto \
|
|
326
|
-
ro \
|
|
327
|
-
rd.live.image \
|
|
328
|
-
rd.luks=0 \
|
|
329
|
-
rd.md=0 \
|
|
330
|
-
rd.dm=0\n`;
|
|
331
|
-
break;
|
|
337
|
+
case 'openmamba':
|
|
332
338
|
case 'opensuse':
|
|
333
339
|
lp = `initrd=http://${Utils.address()}/live/${path.basename(this.initrdImg)} \
|
|
334
340
|
root=live:http://${Utils.address()}/live/filesystem.squashfs \
|