penguins-eggs 25.10.26 → 25.10.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +1 -768
  3. package/addons/eggs/theme/applications/install-system.desktop +8 -6
  4. package/addons/eggs/theme/livecd/generic.grub.theme.cfg +1 -3
  5. package/addons/eggs/theme/livecd/generic.isolinux.theme.cfg +1 -2
  6. package/assets/calamares/io.calamares.calamares.policy +25 -0
  7. package/dist/classes/daddy.js +7 -3
  8. package/dist/classes/incubation/customize/customize-partitions.d.ts +9 -1
  9. package/dist/classes/incubation/customize/customize-partitions.js +10 -2
  10. package/dist/classes/incubation/incubator.d.ts +1 -0
  11. package/dist/classes/incubation/incubator.js +16 -11
  12. package/dist/classes/ovary.d/create-xdg-autostart.js +6 -7
  13. package/dist/classes/ovary.d/luks-get-password.d.ts +1 -1
  14. package/dist/classes/ovary.d/luks-get-password.js +1 -1
  15. package/dist/classes/ovary.d/luks-helpers.d.ts +19 -0
  16. package/dist/classes/ovary.d/luks-helpers.js +73 -0
  17. package/dist/classes/ovary.d/luks-home-support.js +1 -6
  18. package/dist/classes/ovary.d/luks-home.js +7 -34
  19. package/dist/classes/ovary.d/luks-interactive-crypto-config.js +5 -1
  20. package/dist/classes/ovary.d/luks-root-initrd.d.ts +1 -1
  21. package/dist/classes/ovary.d/luks-root-initrd.js +1 -1
  22. package/dist/classes/ovary.d/luks-root.d.ts +1 -1
  23. package/dist/classes/ovary.d/luks-root.js +8 -70
  24. package/dist/classes/ovary.d/make-efi.js +9 -3
  25. package/dist/classes/ovary.d/produce.js +1 -6
  26. package/dist/classes/ovary.d/syslinux.js +5 -1
  27. package/dist/classes/ovary.d/xorriso-command.js +5 -0
  28. package/dist/classes/ovary.d.ts +3 -0
  29. package/dist/classes/ovary.js +3 -0
  30. package/dist/classes/pacman.d/alpine.js +1 -1
  31. package/dist/classes/pacman.d/debian.js +1 -1
  32. package/dist/commands/produce.js +2 -2
  33. package/dist/krill/lib/select_filesystem_type.js +1 -1
  34. package/dracut/dracut.conf.d/50-live.conf +12 -13
  35. package/package.json +5 -5
  36. package/perrisbrewery/template/dependencies.yaml +1 -0
@@ -63,12 +63,7 @@ export async function produce(kernel = '', clone = false, homecrypt = false, ful
63
63
  this.luksMountpoint = `/tmp/mnt/${this.luksMappedName}`;
64
64
  this.luksDevice = `/dev/mapper/${this.luksMappedName}`;
65
65
  this.luksPassword = '0'; // USARE UNA PASSWORD SICURA IN PRODUZIONE!
66
- /**
67
- * Al momento homecrypt resta con default
68
- */
69
- if (fullcrypt) {
70
- this.luksConfig = await this.interactiveCryptoConfig();
71
- }
66
+ this.luksConfig = await this.interactiveCryptoConfig();
72
67
  Utils.warning("You choose an encrypted eggs");
73
68
  await this.luksGetPassword();
74
69
  }
@@ -84,8 +84,12 @@ export async function syslinux(theme = 'eggs') {
84
84
  // isolinux.main.cfg
85
85
  const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid, this.fullcrypt);
86
86
  let template = fs.readFileSync(isolinuxTemplate, 'utf8');
87
+ let fullname = this.settings.remix.fullname.toUpperCase();
88
+ if (this.hidden) {
89
+ fullname = "LINUX";
90
+ }
87
91
  const view = {
88
- fullname: this.settings.remix.fullname.toUpperCase(),
92
+ fullname: fullname,
89
93
  initrdImg: `/live/${path.basename(this.initrd)}`,
90
94
  kernel: this.kernel,
91
95
  kernel_parameters,
@@ -38,6 +38,11 @@ export async function xorrisoCommand(clone = false, homecrypt = false, fullcrypt
38
38
  }
39
39
  // postfix (data)
40
40
  const postfix = Utils.getPostfix();
41
+ console.log('prefix:', prefix);
42
+ console.log('prefix:', this.volid);
43
+ console.log('arch:', Utils.uefiArch());
44
+ console.log('typology:', typology);
45
+ console.log('postfix:', postfix);
41
46
  this.settings.isoFilename = prefix + this.volid + '_' + Utils.uefiArch() + typology + postfix;
42
47
  // node della ISO
43
48
  const output = this.settings.config.snapshot_mnt + this.settings.isoFilename;
@@ -28,6 +28,7 @@ import { makeDotDisk } from './ovary.d/make-dot-disk.js';
28
28
  import { kernelCopy } from './ovary.d/kernel-copy.js';
29
29
  import { liveCreateStructure } from './ovary.d/live-create-structure.js';
30
30
  import { finished } from './ovary.d/finished.js';
31
+ import { luksExecuteCommand, buildLuksFormatArgs } from './ovary.d/luks-helpers.js';
31
32
  import { luksGetPassword } from './ovary.d/luks-get-password.js';
32
33
  import { interactiveCryptoConfig, CryptoConfig } from './ovary.d/luks-interactive-crypto-config.js';
33
34
  import { luksHome } from './ovary.d/luks-home.js';
@@ -80,6 +81,8 @@ export default class Ovary {
80
81
  copied: typeof copied;
81
82
  createXdgAutostart: typeof createXdgAutostart;
82
83
  editLiveFs: typeof editLiveFs;
84
+ luksExecuteCommand: typeof luksExecuteCommand;
85
+ buildLuksFormatArgs: typeof buildLuksFormatArgs;
83
86
  luksGetPassword: typeof luksGetPassword;
84
87
  interactiveCryptoConfig: typeof interactiveCryptoConfig;
85
88
  luksHome: typeof luksHome;
@@ -30,6 +30,7 @@ import { kernelCopy } from './ovary.d/kernel-copy.js';
30
30
  import { liveCreateStructure } from './ovary.d/live-create-structure.js';
31
31
  import { finished } from './ovary.d/finished.js';
32
32
  // crypt
33
+ import { luksExecuteCommand, buildLuksFormatArgs } from './ovary.d/luks-helpers.js';
33
34
  import { luksGetPassword } from './ovary.d/luks-get-password.js';
34
35
  import { interactiveCryptoConfig } from './ovary.d/luks-interactive-crypto-config.js';
35
36
  // homecrypt
@@ -89,6 +90,8 @@ export default class Ovary {
89
90
  createXdgAutostart = createXdgAutostart;
90
91
  editLiveFs = editLiveFs;
91
92
  // luks
93
+ luksExecuteCommand = luksExecuteCommand;
94
+ buildLuksFormatArgs = buildLuksFormatArgs;
92
95
  luksGetPassword = luksGetPassword;
93
96
  interactiveCryptoConfig = interactiveCryptoConfig;
94
97
  // luksHome
@@ -83,7 +83,7 @@ export default class Alpine {
83
83
  */
84
84
  static async calamaresPolicies(verbose = false) {
85
85
  const echo = Utils.setEcho(verbose);
86
- const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
86
+ const policyFile = '/usr/share/polkit-1/actions/io.calamares.calamares.policy';
87
87
  await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`, echo);
88
88
  }
89
89
  /**
@@ -43,7 +43,7 @@ export default class Debian {
43
43
  */
44
44
  static async calamaresPolicies(verbose = false) {
45
45
  const echo = Utils.setEcho(verbose);
46
- const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
46
+ const policyFile = '/usr/share/polkit-1/actions/io.calamares.calamares.policy';
47
47
  await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`, echo);
48
48
  }
49
49
  /**
@@ -212,11 +212,11 @@ export default class Produce extends Command {
212
212
  if (fullcrypt) {
213
213
  const distro = new Distro();
214
214
  if (distro.familyId === 'debian') {
215
- Utils.info("Use this option and penguins-eggs in general with extreme caution and ALWAYS test them first in test environments.");
215
+ Utils.info("Use penguins-eggs and this option in particular with extreme caution, and ALWAYS first try it out in a test environment.");
216
216
  Utils.sleep(3000);
217
217
  }
218
218
  else {
219
- Utils.warning("This option is still experimental and can only be tried on Debian.");
219
+ Utils.warning("This option is still in the experimental phase and can only be tested on Debian trixie");
220
220
  process.exit(9);
221
221
  }
222
222
  }
@@ -18,7 +18,7 @@ export default async function selectFileSystemType() {
18
18
  partitions.defaultFileSystemType = 'ext4';
19
19
  }
20
20
  const choices = ['ext4'];
21
- if (Pacman.packageIsInstalled('btrfs-progs') ||
21
+ if (Pacman.packageIsInstalled('progs') ||
22
22
  Pacman.packageIsInstalled('btrfsprogs')) {
23
23
  choices.push('btrfs');
24
24
  }
@@ -1,6 +1,6 @@
1
1
  # ==============================================================
2
- # 50-live.conf – Opzione A: Usa solo luks-loop
3
- # Più semplice, compatibile con dmsquash-live standard
2
+ # 50-live.conf – Configurazione per avvio LIVE "IN CHIARO"
3
+ # Avvia un filesystem.squashfs standard
4
4
  # ==============================================================
5
5
 
6
6
  compress="zstd"
@@ -10,19 +10,18 @@ lvmconf="no"
10
10
  mdadmconf="no"
11
11
  early_microcode="no"
12
12
 
13
- # Moduli (SENZA 95luks, usa SOLO luks-loop)
13
+ # Moduli per avvio "in chiaro"
14
14
  add_dracutmodules+=" dm kernel-modules "
15
- add_dracutmodules+=" block "
16
- add_dracutmodules+=" iso-scan pollcdrom "
17
- add_dracutmodules+=" luks-loop "
18
- add_dracutmodules+=" dmsquash-live dmsquash-live-autooverlay "
19
- add_dracutmodules+=" livenet qemu qemu-net "
20
- add_dracutmodules+=" debug-shell "
15
+ add_dracutmodules+=" pollcdrom " # 'iso-scan' è stato rimosso
16
+ add_dracutmodules+=" dmsquash-live "
17
+ add_dracutmodules+=" dmsquash-live-autooverlay "
18
+ add_dracutmodules+=" debug " # Rinominato da 'debug-shell'
21
19
 
22
- omit_dracutmodules+=" plymouth luks crypt systemd-cryptsetup fido2 pkcs11 "
20
+ # Omettere i moduli crypto non è più critico, ma possiamo lasciarlo
21
+ omit_dracutmodules+=" plymouth luks systemd-cryptsetup fido2 pkcs11 "
23
22
 
24
- # Parametri kernel per luks-loop + dmsquash-live
25
- # IMPORTANTE: rd.live.squashimg punta al LUKS decifrato
26
- kernel_cmdline="boot=live root=live:LABEL=colibri rd.luks.loop=/live/luks.img eggs.luks.uuid=fedb19f3-e117-4e94-a85c-debe41b18e5b rd.live.dir=/live rd.live.overlay.overlayfs=1 rd.shell rd.debug"
23
+ # I parametri kernel non servono qui, verranno da GRUB/ISOLINUX
24
+ # kernel_cmdline="..."
27
25
 
26
+ # OBBLIGATORI per trovare il disco/file squashfs
28
27
  install_items+=" /usr/bin/find /usr/bin/lsblk /bin/cat "
package/package.json CHANGED
@@ -2,20 +2,20 @@
2
2
  "name": "penguins-eggs",
3
3
  "shortName": "eggs",
4
4
  "description": "A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others",
5
- "version": "25.10.26",
5
+ "version": "25.10.30",
6
6
  "author": "Piero Proietti",
7
7
  "bin": {
8
8
  "eggs": "./bin/run.js"
9
9
  },
10
10
  "bugs": "https://github.com/pieroproietti/penguins-eggs/issues",
11
11
  "dependencies": {
12
- "@oclif/core": "^4.7.2",
12
+ "@oclif/core": "^4.8.0",
13
13
  "@oclif/plugin-autocomplete": "^3.2.38",
14
14
  "@oclif/plugin-help": "^6.2.34",
15
15
  "@oclif/plugin-version": "^2.2.35",
16
- "@types/express": "^5.0.4",
16
+ "@types/express": "^5.0.5",
17
17
  "ansis": "^4.2.0",
18
- "axios": "^1.12.2",
18
+ "axios": "^1.13.1",
19
19
  "chalk": "^5.6.2",
20
20
  "cli-cursor": "^5.0.0",
21
21
  "debug": "^4.4.3",
@@ -56,7 +56,7 @@
56
56
  "eslint-config-prettier": "^10.1.8",
57
57
  "glob": "^11.0.3",
58
58
  "mocha": "^11.7.4",
59
- "oclif": "^4.22.37",
59
+ "oclif": "^4.22.38",
60
60
  "perrisbrewery": "^25.9.16",
61
61
  "prettier": "^3.6.2",
62
62
  "shx": "^0.4.0",
@@ -22,6 +22,7 @@ common:
22
22
  - lvm2 # pvdisplay in krill
23
23
  - nodejs (>= 18)
24
24
  - parted
25
+ - pkexec # calamares
25
26
  - rsync
26
27
  - squashfs-tools
27
28
  - sshfs # eggs