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.
- package/.oclif.manifest.json +1 -1
- package/README.md +55 -60
- package/assets/calamares/install-system.sh +2 -1
- package/conf/derivatives.yaml +5 -1
- package/conf/distros/alpine/calamares/modules/packages.yml +1 -1
- package/conf/distros/alpine/calamares/settings.yml +16 -29
- package/conf/distros/buster/calamares/modules/fstab.yml +1 -1
- package/conf/distros/buster/calamares/modules/mount.yml +4 -12
- package/conf/distros/fedora/calamares/modules/bootloader.yml +46 -17
- package/conf/distros/fedora/calamares/modules/fstab.yml +36 -11
- package/conf/distros/fedora/calamares/modules/mount.yml +101 -39
- package/conf/distros/fedora/calamares/modules/partition.yml +173 -23
- package/conf/distros/fedora/calamares/modules/users.yml +7 -9
- package/conf/distros/openmamba/calamares/settings.yml +0 -2
- package/conf/distros/opensuse/calamares/modules/bootloader.yml +46 -17
- package/conf/distros/opensuse/calamares/modules/displaymanager.yml +9 -5
- package/conf/distros/opensuse/calamares/modules/finished.yml +1 -1
- package/conf/distros/opensuse/calamares/modules/fstab.yml +36 -11
- package/conf/distros/opensuse/calamares/modules/grubcfg.yml +51 -0
- package/conf/distros/opensuse/calamares/modules/mount.yml +104 -39
- package/conf/distros/opensuse/calamares/modules/packages.yml +3 -3
- package/conf/distros/opensuse/calamares/modules/partition.yml +30 -237
- package/conf/distros/opensuse/calamares/modules/removeuser.yml +1 -14
- package/conf/distros/opensuse/calamares/modules/unpackfs.yml +0 -1
- package/conf/distros/opensuse/calamares/modules/users.yml +296 -16
- package/conf/distros/opensuse/calamares/modules/welcome.yml +91 -16
- package/conf/distros/opensuse/calamares/settings.yml +34 -120
- package/conf/distros/opensuse/calamares/zstd2lzo.sh +2 -0
- package/conf/distros/rolling/calamares/modules/shellprocess_sync.yml +5 -0
- package/conf/distros/rolling/calamares/settings.yml +4 -5
- package/dist/classes/bleach.d.ts +5 -0
- package/dist/classes/bleach.js +13 -0
- package/dist/classes/cli-autologin.js +14 -9
- package/dist/classes/daddy.js +9 -1
- package/dist/classes/distro.js +0 -9
- package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/fedora.js +79 -0
- package/dist/classes/incubation/incubator.d/opensuse.js +4 -6
- package/dist/classes/incubation/incubator.d/rolling.js +1 -3
- package/dist/classes/incubation/incubator.js +6 -11
- package/dist/classes/ovary.d/initrd.js +40 -11
- package/dist/classes/ovary.d/make-dot-disk.js +21 -11
- package/dist/classes/ovary.d/make-efi.js +13 -11
- package/dist/classes/ovary.d/merged.d.ts +1 -1
- package/dist/classes/ovary.d/merged.js +3 -2
- package/dist/classes/ovary.d/produce.js +7 -6
- package/dist/classes/ovary.d/user-create-live.js +15 -11
- package/dist/classes/ovary.d.ts +1 -1
- package/dist/classes/ovary.js +1 -1
- package/dist/classes/pacman.d/alpine.js +12 -7
- package/dist/classes/pacman.d/opensuse.js +4 -3
- package/dist/classes/pacman.js +3 -12
- package/dist/classes/pxe.d.ts +21 -18
- package/dist/classes/pxe.js +192 -259
- package/dist/classes/tailor.js +69 -33
- package/dist/classes/utils.d/filesystem.js +2 -0
- package/dist/classes/utils.d/kernel.js +12 -2
- package/dist/classes/utils.d/snapshot.js +1 -1
- package/dist/classes/utils.d/system.js +2 -2
- package/dist/commands/cuckoo.js +4 -6
- package/dist/commands/export/pkg.js +28 -12
- package/dist/commands/wardrobe/wear.js +1 -1
- package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
- package/dist/dhcpd-proxy/classes/packet.js +124 -0
- package/dist/dhcpd-proxy/index.d.ts +4 -0
- package/dist/dhcpd-proxy/index.js +4 -0
- package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
- package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
- package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
- package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
- package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
- package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
- package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
- package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
- package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
- package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
- package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
- package/dist/dhcpd-proxy/lib/utils.js +255 -0
- package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
- package/dist/dhcpd-proxy/simple-proxy.js +118 -0
- package/dist/interfaces/i-pxe.d.ts +16 -16
- package/dist/krill/classes/sequence.d/add_user.d.ts +3 -3
- package/dist/krill/classes/sequence.d/add_user.js +34 -29
- package/dist/krill/classes/sequence.d/bootloader_config.js +3 -26
- package/dist/krill/classes/sequence.d/fstab.js +10 -22
- package/dist/krill/classes/sequence.d/grubcfg.js +5 -3
- package/dist/krill/classes/sequence.d/mkfs.d.ts +1 -1
- package/dist/krill/classes/sequence.d/mkfs.js +10 -11
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +3 -4
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +31 -16
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -1
- package/dist/krill/lib/select_filesystem_type.js +2 -1
- package/dist/lib/utils.d.ts +2 -25
- package/dist/lib/utils.js +4 -27
- package/dist/{penguins-eggs_10.1.1-0_amd64.deb → penguins-eggs_25.7.7-1_amd64.deb} +0 -0
- package/dist/penguins-eggs_25.7.7-1_amd64.deb.sha256 +1 -0
- package/dracut/README.md +14 -0
- package/dracut/dracut.conf +3 -3
- package/dracut/dracut.conf.d/10-persistent_policy.conf +1 -0
- package/dracut/dracut.conf.d/{01-live.conf → 50-live.conf} +3 -2
- package/ipxe/grub/acpi.mod +0 -0
- package/ipxe/grub/adler32.mod +0 -0
- package/ipxe/grub/affs.mod +0 -0
- package/ipxe/grub/afs.mod +0 -0
- package/ipxe/grub/afsplitter.mod +0 -0
- package/ipxe/grub/ahci.mod +0 -0
- package/ipxe/grub/all_video.mod +0 -0
- package/ipxe/grub/aout.mod +0 -0
- package/ipxe/grub/appleldr.mod +0 -0
- package/ipxe/grub/archelp.mod +0 -0
- package/ipxe/grub/at_keyboard.mod +0 -0
- package/ipxe/grub/ata.mod +0 -0
- package/ipxe/grub/backtrace.mod +0 -0
- package/ipxe/grub/bfs.mod +0 -0
- package/ipxe/grub/bitmap.mod +0 -0
- package/ipxe/grub/bitmap_scale.mod +0 -0
- package/ipxe/grub/blocklist.mod +0 -0
- package/ipxe/grub/boot.mod +0 -0
- package/ipxe/grub/bsd.mod +0 -0
- package/ipxe/grub/bswap_test.mod +0 -0
- package/ipxe/grub/btrfs.mod +0 -0
- package/ipxe/grub/bufio.mod +0 -0
- package/ipxe/grub/cat.mod +0 -0
- package/ipxe/grub/cbfs.mod +0 -0
- package/ipxe/grub/cbls.mod +0 -0
- package/ipxe/grub/cbmemc.mod +0 -0
- package/ipxe/grub/cbtable.mod +0 -0
- package/ipxe/grub/cbtime.mod +0 -0
- package/ipxe/grub/chain.mod +0 -0
- package/ipxe/grub/cmdline_cat_test.mod +0 -0
- package/ipxe/grub/cmp.mod +0 -0
- package/ipxe/grub/cmp_test.mod +0 -0
- package/ipxe/grub/command.lst +194 -0
- package/ipxe/grub/config.h +69 -0
- package/ipxe/grub/configfile.mod +0 -0
- package/ipxe/grub/cpio.mod +0 -0
- package/ipxe/grub/cpio_be.mod +0 -0
- package/ipxe/grub/cpuid.mod +0 -0
- package/ipxe/grub/crc64.mod +0 -0
- package/ipxe/grub/crypto.lst +45 -0
- package/ipxe/grub/crypto.mod +0 -0
- package/ipxe/grub/cryptodisk.mod +0 -0
- package/ipxe/grub/cs5536.mod +0 -0
- package/ipxe/grub/ctz_test.mod +0 -0
- package/ipxe/grub/date.mod +0 -0
- package/ipxe/grub/datehook.mod +0 -0
- package/ipxe/grub/datetime.mod +0 -0
- package/ipxe/grub/disk.mod +0 -0
- package/ipxe/grub/diskfilter.mod +0 -0
- package/ipxe/grub/div.mod +0 -0
- package/ipxe/grub/div_test.mod +0 -0
- package/ipxe/grub/dm_nv.mod +0 -0
- package/ipxe/grub/echo.mod +0 -0
- package/ipxe/grub/efi_gop.mod +0 -0
- package/ipxe/grub/efi_uga.mod +0 -0
- package/ipxe/grub/efifwsetup.mod +0 -0
- package/ipxe/grub/efinet.mod +0 -0
- package/ipxe/grub/ehci.mod +0 -0
- package/ipxe/grub/elf.mod +0 -0
- package/ipxe/grub/eval.mod +0 -0
- package/ipxe/grub/exfat.mod +0 -0
- package/ipxe/grub/exfctest.mod +0 -0
- package/ipxe/grub/ext2.mod +0 -0
- package/ipxe/grub/extcmd.mod +0 -0
- package/ipxe/grub/f2fs.mod +0 -0
- package/ipxe/grub/fat.mod +0 -0
- package/ipxe/grub/fdt.lst +0 -0
- package/ipxe/grub/file.mod +0 -0
- package/ipxe/grub/fixvideo.mod +0 -0
- package/ipxe/grub/font.mod +0 -0
- package/ipxe/grub/fs.lst +37 -0
- package/ipxe/grub/fshelp.mod +0 -0
- package/ipxe/grub/functional_test.mod +0 -0
- package/ipxe/grub/gcry_arcfour.mod +0 -0
- package/ipxe/grub/gcry_blowfish.mod +0 -0
- package/ipxe/grub/gcry_camellia.mod +0 -0
- package/ipxe/grub/gcry_cast5.mod +0 -0
- package/ipxe/grub/gcry_crc.mod +0 -0
- package/ipxe/grub/gcry_des.mod +0 -0
- package/ipxe/grub/gcry_dsa.mod +0 -0
- package/ipxe/grub/gcry_idea.mod +0 -0
- package/ipxe/grub/gcry_md4.mod +0 -0
- package/ipxe/grub/gcry_md5.mod +0 -0
- package/ipxe/grub/gcry_rfc2268.mod +0 -0
- package/ipxe/grub/gcry_rijndael.mod +0 -0
- package/ipxe/grub/gcry_rmd160.mod +0 -0
- package/ipxe/grub/gcry_rsa.mod +0 -0
- package/ipxe/grub/gcry_seed.mod +0 -0
- package/ipxe/grub/gcry_serpent.mod +0 -0
- package/ipxe/grub/gcry_sha1.mod +0 -0
- package/ipxe/grub/gcry_sha256.mod +0 -0
- package/ipxe/grub/gcry_sha512.mod +0 -0
- package/ipxe/grub/gcry_tiger.mod +0 -0
- package/ipxe/grub/gcry_twofish.mod +0 -0
- package/ipxe/grub/gcry_whirlpool.mod +0 -0
- package/ipxe/grub/geli.mod +0 -0
- package/ipxe/grub/gettext.mod +0 -0
- package/ipxe/grub/gfxmenu.mod +0 -0
- package/ipxe/grub/gfxterm.mod +0 -0
- package/ipxe/grub/gfxterm_background.mod +0 -0
- package/ipxe/grub/gfxterm_menu.mod +0 -0
- package/ipxe/grub/gptsync.mod +0 -0
- package/ipxe/grub/gzio.mod +0 -0
- package/ipxe/grub/halt.mod +0 -0
- package/ipxe/grub/hashsum.mod +0 -0
- package/ipxe/grub/hdparm.mod +0 -0
- package/ipxe/grub/hello.mod +0 -0
- package/ipxe/grub/help.mod +0 -0
- package/ipxe/grub/hexdump.mod +0 -0
- package/ipxe/grub/hfs.mod +0 -0
- package/ipxe/grub/hfsplus.mod +0 -0
- package/ipxe/grub/hfspluscomp.mod +0 -0
- package/ipxe/grub/http.mod +0 -0
- package/ipxe/grub/iorw.mod +0 -0
- package/ipxe/grub/iso9660.mod +0 -0
- package/ipxe/grub/jfs.mod +0 -0
- package/ipxe/grub/jpeg.mod +0 -0
- package/ipxe/grub/json.mod +0 -0
- package/ipxe/grub/kernel.img +0 -0
- package/ipxe/grub/keylayouts.mod +0 -0
- package/ipxe/grub/keystatus.mod +0 -0
- package/ipxe/grub/ldm.mod +0 -0
- package/ipxe/grub/legacy_password_test.mod +0 -0
- package/ipxe/grub/legacycfg.mod +0 -0
- package/ipxe/grub/linux.mod +0 -0
- package/ipxe/grub/linux16.mod +0 -0
- package/ipxe/grub/linuxefi.mod +0 -0
- package/ipxe/grub/loadbios.mod +0 -0
- package/ipxe/grub/loadenv.mod +0 -0
- package/ipxe/grub/loopback.mod +0 -0
- package/ipxe/grub/ls.mod +0 -0
- package/ipxe/grub/lsacpi.mod +0 -0
- package/ipxe/grub/lsefi.mod +0 -0
- package/ipxe/grub/lsefimmap.mod +0 -0
- package/ipxe/grub/lsefisystab.mod +0 -0
- package/ipxe/grub/lsmmap.mod +0 -0
- package/ipxe/grub/lspci.mod +0 -0
- package/ipxe/grub/lssal.mod +0 -0
- package/ipxe/grub/luks.mod +0 -0
- package/ipxe/grub/luks2.mod +0 -0
- package/ipxe/grub/lvm.mod +0 -0
- package/ipxe/grub/lzopio.mod +0 -0
- package/ipxe/grub/macbless.mod +0 -0
- package/ipxe/grub/macho.mod +0 -0
- package/ipxe/grub/mdraid09.mod +0 -0
- package/ipxe/grub/mdraid09_be.mod +0 -0
- package/ipxe/grub/mdraid1x.mod +0 -0
- package/ipxe/grub/memdisk.mod +0 -0
- package/ipxe/grub/memrw.mod +0 -0
- package/ipxe/grub/minicmd.mod +0 -0
- package/ipxe/grub/minix.mod +0 -0
- package/ipxe/grub/minix2.mod +0 -0
- package/ipxe/grub/minix2_be.mod +0 -0
- package/ipxe/grub/minix3.mod +0 -0
- package/ipxe/grub/minix3_be.mod +0 -0
- package/ipxe/grub/minix_be.mod +0 -0
- package/ipxe/grub/mmap.mod +0 -0
- package/ipxe/grub/moddep.lst +267 -0
- package/ipxe/grub/modinfo.sh +40 -0
- package/ipxe/grub/monolithic/gcdx64.efi +0 -0
- package/ipxe/grub/monolithic/grubnetx64-installer.efi +0 -0
- package/ipxe/grub/monolithic/grubnetx64.efi +0 -0
- package/ipxe/grub/monolithic/grubx64.efi +0 -0
- package/ipxe/grub/morse.mod +0 -0
- package/ipxe/grub/mpi.mod +0 -0
- package/ipxe/grub/msdospart.mod +0 -0
- package/ipxe/grub/mul_test.mod +0 -0
- package/ipxe/grub/multiboot.mod +0 -0
- package/ipxe/grub/multiboot2.mod +0 -0
- package/ipxe/grub/nativedisk.mod +0 -0
- package/ipxe/grub/net.mod +0 -0
- package/ipxe/grub/newc.mod +0 -0
- package/ipxe/grub/nilfs2.mod +0 -0
- package/ipxe/grub/normal.mod +0 -0
- package/ipxe/grub/ntfs.mod +0 -0
- package/ipxe/grub/ntfscomp.mod +0 -0
- package/ipxe/grub/odc.mod +0 -0
- package/ipxe/grub/offsetio.mod +0 -0
- package/ipxe/grub/ohci.mod +0 -0
- package/ipxe/grub/part_acorn.mod +0 -0
- package/ipxe/grub/part_amiga.mod +0 -0
- package/ipxe/grub/part_apple.mod +0 -0
- package/ipxe/grub/part_bsd.mod +0 -0
- package/ipxe/grub/part_dfly.mod +0 -0
- package/ipxe/grub/part_dvh.mod +0 -0
- package/ipxe/grub/part_gpt.mod +0 -0
- package/ipxe/grub/part_msdos.mod +0 -0
- package/ipxe/grub/part_plan.mod +0 -0
- package/ipxe/grub/part_sun.mod +0 -0
- package/ipxe/grub/part_sunpc.mod +0 -0
- package/ipxe/grub/partmap.lst +11 -0
- package/ipxe/grub/parttool.lst +1 -0
- package/ipxe/grub/parttool.mod +0 -0
- package/ipxe/grub/password.mod +0 -0
- package/ipxe/grub/password_pbkdf2.mod +0 -0
- package/ipxe/grub/pata.mod +0 -0
- package/ipxe/grub/pbkdf2.mod +0 -0
- package/ipxe/grub/pbkdf2_test.mod +0 -0
- package/ipxe/grub/pcidump.mod +0 -0
- package/ipxe/grub/pgp.mod +0 -0
- package/ipxe/grub/play.mod +0 -0
- package/ipxe/grub/png.mod +0 -0
- package/ipxe/grub/priority_queue.mod +0 -0
- package/ipxe/grub/probe.mod +0 -0
- package/ipxe/grub/procfs.mod +0 -0
- package/ipxe/grub/progress.mod +0 -0
- package/ipxe/grub/raid5rec.mod +0 -0
- package/ipxe/grub/raid6rec.mod +0 -0
- package/ipxe/grub/random.mod +0 -0
- package/ipxe/grub/rdmsr.mod +0 -0
- package/ipxe/grub/read.mod +0 -0
- package/ipxe/grub/reboot.mod +0 -0
- package/ipxe/grub/regexp.mod +0 -0
- package/ipxe/grub/reiserfs.mod +0 -0
- package/ipxe/grub/relocator.mod +0 -0
- package/ipxe/grub/romfs.mod +0 -0
- package/ipxe/grub/scsi.mod +0 -0
- package/ipxe/grub/search.mod +0 -0
- package/ipxe/grub/search_fs_file.mod +0 -0
- package/ipxe/grub/search_fs_uuid.mod +0 -0
- package/ipxe/grub/search_label.mod +0 -0
- package/ipxe/grub/serial.mod +0 -0
- package/ipxe/grub/setjmp.mod +0 -0
- package/ipxe/grub/setjmp_test.mod +0 -0
- package/ipxe/grub/setpci.mod +0 -0
- package/ipxe/grub/sfs.mod +0 -0
- package/ipxe/grub/shift_test.mod +0 -0
- package/ipxe/grub/signature_test.mod +0 -0
- package/ipxe/grub/sleep.mod +0 -0
- package/ipxe/grub/sleep_test.mod +0 -0
- package/ipxe/grub/smbios.mod +0 -0
- package/ipxe/grub/spkmodem.mod +0 -0
- package/ipxe/grub/squash4.mod +0 -0
- package/ipxe/grub/strtoull_test.mod +0 -0
- package/ipxe/grub/syslinuxcfg.mod +0 -0
- package/ipxe/grub/tar.mod +0 -0
- package/ipxe/grub/terminal.lst +9 -0
- package/ipxe/grub/terminal.mod +0 -0
- package/ipxe/grub/terminfo.mod +0 -0
- package/ipxe/grub/test.mod +0 -0
- package/ipxe/grub/test_blockarg.mod +0 -0
- package/ipxe/grub/testload.mod +0 -0
- package/ipxe/grub/testspeed.mod +0 -0
- package/ipxe/grub/tftp.mod +0 -0
- package/ipxe/grub/tga.mod +0 -0
- package/ipxe/grub/time.mod +0 -0
- package/ipxe/grub/tpm.mod +0 -0
- package/ipxe/grub/tr.mod +0 -0
- package/ipxe/grub/trig.mod +0 -0
- package/ipxe/grub/true.mod +0 -0
- package/ipxe/grub/udf.mod +0 -0
- package/ipxe/grub/ufs1.mod +0 -0
- package/ipxe/grub/ufs1_be.mod +0 -0
- package/ipxe/grub/ufs2.mod +0 -0
- package/ipxe/grub/uhci.mod +0 -0
- package/ipxe/grub/usb.mod +0 -0
- package/ipxe/grub/usb_keyboard.mod +0 -0
- package/ipxe/grub/usbms.mod +0 -0
- package/ipxe/grub/usbserial_common.mod +0 -0
- package/ipxe/grub/usbserial_ftdi.mod +0 -0
- package/ipxe/grub/usbserial_pl2303.mod +0 -0
- package/ipxe/grub/usbserial_usbdebug.mod +0 -0
- package/ipxe/grub/usbtest.mod +0 -0
- package/ipxe/grub/video.lst +4 -0
- package/ipxe/grub/video.mod +0 -0
- package/ipxe/grub/video_bochs.mod +0 -0
- package/ipxe/grub/video_cirrus.mod +0 -0
- package/ipxe/grub/video_colors.mod +0 -0
- package/ipxe/grub/video_fb.mod +0 -0
- package/ipxe/grub/videoinfo.mod +0 -0
- package/ipxe/grub/videotest.mod +0 -0
- package/ipxe/grub/videotest_checksum.mod +0 -0
- package/ipxe/grub/wrmsr.mod +0 -0
- package/ipxe/grub/xfs.mod +0 -0
- package/ipxe/grub/xnu.mod +0 -0
- package/ipxe/grub/xnu_uuid.mod +0 -0
- package/ipxe/grub/xnu_uuid_test.mod +0 -0
- package/ipxe/grub/xzio.mod +0 -0
- package/ipxe/grub/zfs.mod +0 -0
- package/ipxe/grub/zfscrypt.mod +0 -0
- package/ipxe/grub/zfsinfo.mod +0 -0
- package/ipxe/grub/zstd.mod +0 -0
- package/ipxe/grubnetx64.efi.signed +0 -0
- package/ipxe/ipxe.pxe +0 -0
- package/ipxe/undionly.kpxe +0 -0
- package/mkinitcpio/arch/live.conf +3 -2
- package/mkinitcpio/manjaro/live.conf +1 -1
- package/mkinitfs/README.md +10 -49
- package/mkinitfs/live.conf +2 -0
- package/package.json +27 -24
- package/pods/ci/minimal/opensuse-container2host.sh +1 -1
- package/scripts/99clean +42 -0
- package/conf/distros/aldos/calamares/modules/bootloader.yml +0 -85
- package/conf/distros/aldos/calamares/modules/displaymanager.yml +0 -22
- package/conf/distros/aldos/calamares/modules/finished.yml +0 -5
- package/conf/distros/aldos/calamares/modules/fstab.yml +0 -12
- package/conf/distros/aldos/calamares/modules/locale.yml +0 -97
- package/conf/distros/aldos/calamares/modules/luksopenswaphookcfg.yml +0 -5
- package/conf/distros/aldos/calamares/modules/machineid.yml +0 -17
- package/conf/distros/aldos/calamares/modules/mount.yml +0 -56
- package/conf/distros/aldos/calamares/modules/packages.yml +0 -6
- package/conf/distros/aldos/calamares/modules/partition.yml +0 -242
- package/conf/distros/aldos/calamares/modules/removeuser.yml +0 -15
- package/conf/distros/aldos/calamares/modules/unpackfs.yml +0 -6
- package/conf/distros/aldos/calamares/modules/users.yml +0 -19
- package/conf/distros/aldos/calamares/modules/welcome.yml +0 -19
- package/conf/distros/aldos/calamares/settings.yml +0 -124
- package/conf/distros/fedora/calamares/modules/bootloader.conf +0 -85
- package/conf/distros/opensuse/calamares/modules/bootloader.conf +0 -86
- package/conf/distros/opensuse/calamares/modules/locale.yml +0 -98
- package/conf/distros/opensuse/calamares/modules/luksopenswaphookcfg.yml +0 -5
- package/conf/distros/opensuse/calamares/modules/machineid.yml +0 -17
- package/conf/distros/rolling/calamares/modules/shellprocess_removelink.yml +0 -8
- package/dist/index_old.d.ts +0 -8
- package/dist/index_old.js +0 -8
- package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +0 -1
- package/dracut/sidecar.sh +0 -19
- package/ipxe/ipxe.efi +0 -0
- package/mkinitfs/initramfs-init.in +0 -1051
- package/mkinitfs/sidecar.sh +0 -52
- /package/dist/classes/ovary.d/{xorriso-commend.d.ts → xorriso-command.d.ts} +0 -0
- /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
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
|
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
|
|
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);
|
package/dist/classes/daddy.js
CHANGED
|
@@ -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
|
-
|
|
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
|
}
|
package/dist/classes/distro.js
CHANGED
|
@@ -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
|
-
|
|
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('
|
|
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
|
-
*
|
|
74
|
+
* Alpine
|
|
74
75
|
*/
|
|
75
|
-
if (codenameLikeId === '
|
|
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
|
|
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,
|
|
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
|
|
43
|
-
|
|
44
|
-
|
|
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
|
|
67
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
fs.writeFileSync(path.join(dotDisk, '
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
fs.writeFileSync(dotDisk
|
|
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
|
-
|
|
48
|
-
|
|
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(
|
|
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.
|
|
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.
|
|
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 = '
|
|
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
|
|
247
|
+
let gn = 'grubia32.efi'; // Per l'architettura i686 EFI è: grubia32.efi
|
|
246
248
|
if (process.arch === 'x64') {
|
|
247
|
-
|
|
249
|
+
gn = 'grubx64.efi';
|
|
248
250
|
}
|
|
249
251
|
else if (process.arch === 'arm64') {
|
|
250
|
-
|
|
252
|
+
gn = 'grubaa64.efi';
|
|
251
253
|
}
|
|
252
|
-
return
|
|
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(`
|
|
265
|
+
Utils.warning(`warning: ${signedGrub} does not exist`);
|
|
264
266
|
}
|
|
265
267
|
return signedGrub;
|
|
266
268
|
}
|
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
|
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
|
-
|
|
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}${
|
|
289
|
-
|
|
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.
|
|
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
|
-
|
|
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 {
|