penguins-eggs 10.0.36 → 10.0.38

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 (57) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +26 -26
  3. package/addons/eggs/theme/livecd/{isolinux.main.alpine.cfg → isolinux.main.simple.cfg} +1 -1
  4. package/conf/distros/opensuse/README.md +3 -0
  5. package/conf/distros/opensuse/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
  6. package/conf/distros/opensuse/calamares/calamares-modules/bootloader-config/module.yml +9 -0
  7. package/conf/distros/opensuse/calamares/calamares-modules/cleanup/cleanup.sh +13 -0
  8. package/conf/distros/opensuse/calamares/calamares-modules/cleanup/module.yml +9 -0
  9. package/conf/distros/opensuse/calamares/modules/bootloader.yml +57 -0
  10. package/conf/distros/opensuse/calamares/modules/displaymanager.yml +23 -0
  11. package/conf/distros/opensuse/calamares/modules/finished.yml +5 -0
  12. package/conf/distros/opensuse/calamares/modules/fstab.yml +12 -0
  13. package/conf/distros/opensuse/calamares/modules/locale.yml +98 -0
  14. package/conf/distros/opensuse/calamares/modules/luksopenswaphookcfg.yml +5 -0
  15. package/conf/distros/opensuse/calamares/modules/machineid.yml +17 -0
  16. package/conf/distros/opensuse/calamares/modules/mount.yml +56 -0
  17. package/conf/distros/opensuse/calamares/modules/packages.yml +6 -0
  18. package/conf/distros/opensuse/calamares/modules/partition.yml +242 -0
  19. package/conf/distros/opensuse/calamares/modules/removeuser.yml +15 -0
  20. package/conf/distros/opensuse/calamares/modules/unpackfs.yml +6 -0
  21. package/conf/distros/opensuse/calamares/modules/users.yml +18 -0
  22. package/conf/distros/opensuse/calamares/modules/welcome.yml +19 -0
  23. package/conf/distros/opensuse/calamares/settings.yml +57 -0
  24. package/dist/classes/bleach.js +1 -1
  25. package/dist/classes/distro.js +84 -65
  26. package/dist/classes/families/opensuse.js +3 -3
  27. package/dist/classes/incubation/fisherman.d.ts +1 -1
  28. package/dist/classes/incubation/fisherman.js +1 -1
  29. package/dist/classes/incubation/incubator.js +8 -0
  30. package/dist/classes/locales.d.ts +4 -4
  31. package/dist/classes/locales.js +33 -36
  32. package/dist/classes/ovary.d.ts +5 -9
  33. package/dist/classes/ovary.js +32 -62
  34. package/dist/classes/pacman.js +37 -0
  35. package/dist/classes/utils.js +18 -9
  36. package/dist/components/finished.js +5 -4
  37. package/dist/components/install.js +12 -8
  38. package/dist/krill/modules/del-live-user.js +3 -2
  39. package/dist/krill/modules/locale.js +5 -5
  40. package/dist/krill/modules/m-keyboard.js +4 -17
  41. package/dist/krill/modules/machine-id.js +4 -4
  42. package/dist/krill/modules/mkfs.d.ts +2 -0
  43. package/dist/krill/modules/mkfs.js +2 -0
  44. package/dist/krill/modules/unpackfs.js +3 -2
  45. package/dist/krill/sequence.d.ts +9 -6
  46. package/dist/krill/sequence.js +162 -258
  47. package/dracut/README.md +8 -0
  48. package/manpages/doc/man/eggs.1.gz +0 -0
  49. package/manpages/doc/man/eggs.html +4 -4
  50. package/package.json +8 -5
  51. package/syslinux/chain.c32 +0 -0
  52. package/syslinux/isolinux.bin +0 -0
  53. package/syslinux/ldlinux.c32 +0 -0
  54. package/syslinux/libcom32.c32 +0 -0
  55. package/syslinux/libutil.c32 +0 -0
  56. package/syslinux/vesamenu.c32 +0 -0
  57. /package/addons/eggs/theme/livecd/{isolinux.main.original.cfg → isolinux.main.full.cfg} +0 -0
@@ -0,0 +1,242 @@
1
+ # # Alpine 3.18
2
+ # partition.yaml
3
+ ---
4
+ # This setting specifies the mount point of the EFI system partition. Some
5
+ # distributions (Fedora, Debian, Manjaro, etc.) use /boot/efi, others (KaOS,
6
+ # etc.) use just /boot.
7
+ efiSystemPartition: "/boot/efi"
8
+
9
+ # This optional setting specifies the size of the EFI system partition.
10
+ # If nothing is specified, the default size of 300MiB will be used.
11
+ # efiSystemPartitionSize: 300M
12
+
13
+ # In autogenerated partitioning, allow the user to select a swap size?
14
+ # If there is exactly one choice, no UI is presented, and the user
15
+ # cannot make a choice -- this setting is used. If there is more than
16
+ # one choice, a UI is presented.
17
+ #
18
+ # Legacy settings *neverCreateSwap* and *ensureSuspendToDisk* correspond
19
+ # to values of *userSwapChoices* as follows:
20
+ # - *neverCreateSwap* is true, means [none]
21
+ # - *neverCreateSwap* is false, *ensureSuspendToDisk* is false, [small]
22
+ # - *neverCreateSwap* is false, *ensureSuspendToDisk* is true, [suspend]
23
+ #
24
+ # Autogenerated swap sizes are as follows:
25
+ # - *suspend*: Swap is always at least total memory size,
26
+ # and up to 4GiB RAM follows the rule-of-thumb 2 * memory;
27
+ # from 4GiB to 8 GiB it stays steady at 8GiB, and over 8 GiB memory
28
+ # swap is the size of main memory.
29
+ # - *small*: Follows the rules above, but Swap is at
30
+ # most 8GiB, and no more than 10% of available disk.
31
+ # In both cases, a fudge factor (usually 10% extra) is applied so that there
32
+ # is some space for administrative overhead (e.g. 8 GiB swap will allocate
33
+ # 8.8GiB on disk in the end).
34
+ #
35
+ # If *file* is enabled here, make sure to have the *fstab* module
36
+ # as well (later in the exec phase) so that the swap file is
37
+ # actually created.
38
+ userSwapChoices:
39
+ - none # Create no swap, use no swap
40
+ - small # Up to 4GB
41
+ - suspend # At least main memory size
42
+ # - reuse # Re-use existing swap, but don't create any (unsupported right now)
43
+ - file # To swap file instead of partition
44
+
45
+ # This optional setting specifies the name of the swap partition (see
46
+ # PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
47
+ # If nothing is specified, the partition name is left unset.
48
+ # swapPartitionName: swap
49
+
50
+ # LEGACY SETTINGS (these will generate a warning)
51
+ # ensureSuspendToDisk: true
52
+ # neverCreateSwap: false
53
+
54
+ # Correctly draw nested (e.g. logical) partitions as such.
55
+ drawNestedPartitions: false
56
+
57
+ # Show/hide partition labels on manual partitioning page.
58
+ alwaysShowPartitionLabels: true
59
+
60
+ # Allow manual partitioning.
61
+ #
62
+ # When set to false, this option hides the "Manual partitioning" button,
63
+ # limiting the user's choice to "Erase", "Replace" or "Alongside".
64
+ # This can be useful when using a custom partition layout we don't want
65
+ # the user to modify.
66
+ #
67
+ # If nothing is specified, manual partitioning is enabled.
68
+ #allowManualPartitioning: true
69
+
70
+ # Initial selection on the Choice page
71
+ #
72
+ # There are four radio buttons (in principle: erase, replace, alongside, manual),
73
+ # and you can pick which of them, if any, is initially selected. For most
74
+ # installers, "none" is the right choice: it makes the user pick something specific,
75
+ # rather than accidentally being able to click past an important choice (in particular,
76
+ # "erase" is a dangerous choice).
77
+ #
78
+ # The default is "none"
79
+ #
80
+ initialPartitioningChoice: none
81
+ #
82
+ # Similarly, some of the installation choices may offer a choice of swap;
83
+ # the available choices depend on *userSwapChoices*, above, and this
84
+ # setting can be used to pick a specific one.
85
+ #
86
+ # The default is "none" (no swap) if that is one of the enabled options, otherwise
87
+ # one of the items from the options.
88
+ initialSwapChoice: none
89
+
90
+ # Default partition table type, used when a "erase" disk is made.
91
+ #
92
+ # When erasing a disk, a new partition table is created on disk.
93
+ # In other cases, e.g. Replace and Alongside, as well as when using
94
+ # manual partitioning, this partition table exists already on disk
95
+ # and it is left unmodified.
96
+ #
97
+ # Suggested values: gpt, msdos
98
+ # If nothing is specified, Calamares defaults to "gpt" if system is
99
+ # efi or "msdos".
100
+ #
101
+ # Names are case-sensitive and defined by KPMCore.
102
+ # defaultPartitionTableType: msdos
103
+
104
+ # Requirement for partition table type
105
+ #
106
+ # Restrict the installation on disks that match the type of partition
107
+ # tables that are specified.
108
+ #
109
+ # Possible values: msdos, gpt. Names are case-sensitive and defined by KPMCore.
110
+ #
111
+ # If nothing is specified, Calamares defaults to both "msdos" and "gpt".
112
+ #
113
+ # requiredPartitionTableType: gpt
114
+ # requiredPartitionTableType:
115
+ # - msdos
116
+ # - gpt
117
+
118
+ # Default filesystem type, used when a "new" partition is made.
119
+ #
120
+ # When replacing a partition, the existing filesystem inside the
121
+ # partition is retained. In other cases, e.g. Erase and Alongside,
122
+ # as well as when using manual partitioning and creating a new
123
+ # partition, this filesystem type is pre-selected. Note that
124
+ # editing a partition in manual-creation mode will not automatically
125
+ # change the filesystem type to this default value -- it is not
126
+ # creating a new partition.
127
+ #
128
+ # Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs
129
+ # If nothing is specified, Calamares defaults to "ext4".
130
+ #
131
+ # Names are case-sensitive and defined by KPMCore.
132
+ defaultFileSystemType: "ext4"
133
+
134
+ # Selectable filesystem type, used when "erase" is done.
135
+ #
136
+ # When erasing the disk, the *defaultFileSystemType* is used (see
137
+ # above), but it is also possible to give users a choice:
138
+ # list suitable filesystems here. A drop-down is provided
139
+ # to pick which is the filesystems will be used.
140
+ #
141
+ # The value *defaultFileSystemType* is added to this list (with a warning)
142
+ # if not present; the default pick is the *defaultFileSystemType*.
143
+ #
144
+ # If not specified at all, uses *defaultFileSystemType* without a
145
+ # warning (this matches traditional no-choice-available behavior best).
146
+ availableFileSystemTypes: ["ext4"]
147
+
148
+ # Show/hide LUKS related functionality in automated partitioning modes.
149
+ # Disable this if you choose not to deploy early unlocking support in GRUB2
150
+ # and/or your distribution's initramfs solution.
151
+ #
152
+ # BIG FAT WARNING:
153
+ #
154
+ # This option is unsupported, as it cuts out a crucial security feature.
155
+ # Disabling LUKS and shipping Calamares without a correctly configured GRUB2
156
+ # and initramfs is considered suboptimal use of the Calamares software. The
157
+ # Calamares team will not provide user support for any potential issue that
158
+ # may arise as a consequence of setting this option to false.
159
+ # It is strongly recommended that system integrators put in the work to support
160
+ # LUKS unlocking support in GRUB2 and initramfs/dracut/mkinitcpio/etc.
161
+ # For more information on setting up GRUB2 for Calamares with LUKS, see
162
+ # https://github.com/calamares/calamares/wiki/Deploy-LUKS
163
+ #
164
+ # If nothing is specified, LUKS is enabled in automated modes.
165
+ #enableLuksAutomatedPartitioning: true
166
+
167
+ # Partition layout.
168
+ #
169
+ # This optional setting specifies a custom partition layout.
170
+ #
171
+ # If nothing is specified, the default partition layout is a single partition
172
+ # for root that uses 100% of the space and uses the filesystem defined by
173
+ # defaultFileSystemType.
174
+ #
175
+ # Note: the EFI system partition is prepend automatically to the layout if
176
+ # needed; the swap partition is appended to the layout if enabled (small of
177
+ # suspend).
178
+ #
179
+ # Otherwise, the partition layout is defined as follow:
180
+ #
181
+ # partitionLayout:
182
+ # - name: "rootfs"
183
+ # type: "4f68bce3-e8cd-4db1-96e7-fbcaf984b709"
184
+ # filesystem: "ext4"
185
+ # mountPoint: "/"
186
+ # size: 20%
187
+ # minSize: 500M
188
+ # maxSize: 10G
189
+ # attributes: 0xffff000000000003
190
+ # - name: "home"
191
+ # type = "933ac7e1-2eb4-4f13-b844-0e14e2aef915"
192
+ # filesystem: "ext4"
193
+ # mountPoint: "/home"
194
+ # size: 3G
195
+ # minSize: 1.5G
196
+ # features:
197
+ # 64bit: false
198
+ # casefold: true
199
+ # - name: "data"
200
+ # filesystem: "fat32"
201
+ # mountPoint: "/data"
202
+ # features:
203
+ # sector-size: 4096
204
+ # sectors-per-cluster: 128
205
+ # size: 100%
206
+ #
207
+ # There can be any number of partitions, each entry having the following attributes:
208
+ # - name: filesystem label
209
+ # and
210
+ # partition name (gpt only; since KPMCore 4.2.0)
211
+ # - uuid: partition uuid (optional parameter; gpt only; requires KPMCore >= 4.2.0)
212
+ # - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0)
213
+ # - attributes: partition attributes (optional parameter; gpt only; requires KPMCore >= 4.2.0)
214
+ # - filesystem: filesystem type (optional parameter)
215
+ # - if not set at all, treat as "unformatted"
216
+ # - if "unformatted", no filesystem will be created
217
+ # - if "unknown" (or an unknown FS name, like "elephant") then the
218
+ # default filesystem type, or the user's choice, will be applied instead
219
+ # of "unknown" (e.g. the user might pick ext4, or xfs).
220
+ # - mountPoint: partition mount point (optional parameter; not mounted if unset)
221
+ # - size: partition size in bytes (append 'K', 'M' or 'G' for KiB, MiB or GiB)
222
+ # or
223
+ # % of the available drive space if a '%' is appended to the value
224
+ # - minSize: minimum partition size (optional parameter)
225
+ # - maxSize: maximum partition size (optional parameter)
226
+ # - features: filesystem features (optional parameter; requires KPMCore >= 4.2.0)
227
+ # name: boolean or integer or string
228
+
229
+ # Checking for available storage
230
+ #
231
+ # This overlaps with the setting of the same name in the welcome module's
232
+ # requirements section. If nothing is set by the welcome module, this
233
+ # value is used instead. It is still a problem if there is no required
234
+ # size set at all, and the replace and resize options will not be offered
235
+ # if no required size is set.
236
+ #
237
+ # The value is in Gibibytes (GiB).
238
+ #
239
+ # BIG FAT WARNING: except for OEM-phase-0 use, you should be using
240
+ # the welcome module, **and** configure this value in
241
+ # `welcome.conf`, not here.
242
+ requiredStorage: 6.0
@@ -0,0 +1,15 @@
1
+ # # Alpine 3.18
2
+ # removeuser
3
+ # SPDX-FileCopyrightText: no
4
+ # SPDX-License-Identifier: CC0-1.0
5
+ #
6
+ # Removes a single user (with userdel) from the system.
7
+ # This is typically used in OEM setups or if the live user
8
+ # spills into the target system.
9
+ #
10
+ # The module never fails; if userdel fails, this is logged
11
+ # but the module still reports success and installation / setup
12
+ # continues as normal.
13
+ ---
14
+ # Username in the target system to be removed.
15
+ username: {{username}}
@@ -0,0 +1,6 @@
1
+ # # Alpine 3.18
2
+ ---
3
+ unpack:
4
+ - source: {{source}}
5
+ sourcefs: "squashfs"
6
+ destination: ""
@@ -0,0 +1,18 @@
1
+ ---
2
+ userGroup: users
3
+ defaultGroups:
4
+ - cdrom
5
+ - floppy
6
+ - sudo
7
+ - audio
8
+ - dip
9
+ - video
10
+ - plugdev
11
+ - netdev
12
+ - lpadmin
13
+ - scanner
14
+ - bluetooth
15
+ autologinGroup: autologin
16
+ sudoersGroup: sudo
17
+ setRootPassword: true
18
+ doReusePassword: false
@@ -0,0 +1,19 @@
1
+ # Alpine 3.18
2
+ # welcome
3
+ ---
4
+ showSupportUrl: true
5
+ showKnownIssuesUrl: true
6
+ showReleaseNotesUrl: true
7
+
8
+ requirements:
9
+ requiredStorage: 10
10
+ requiredRam: 1.0
11
+ check:
12
+ - storage
13
+ - ram
14
+ - power
15
+ - root
16
+ required:
17
+ - storage
18
+ - ram
19
+ - root
@@ -0,0 +1,57 @@
1
+ # Alpine 3.18
2
+ ---
3
+ # "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
4
+ modules-search: [ local, /usr/lib/calamares/modules ]
5
+
6
+ oem-setup: false
7
+ disable-cancel: false
8
+ disable-cancel-during-exec: false
9
+ quit-at-end: false
10
+
11
+ instances:
12
+ - id: cleanup
13
+ module: shellprocess
14
+ config: shellprocess_cleanup.conf
15
+
16
+ sequence:
17
+ # Phase 1 - prepare.
18
+ - show:
19
+ - welcome
20
+ - locale
21
+ - keyboard
22
+ - partition
23
+ - users
24
+ - summary
25
+
26
+ # Phase 2 - install.
27
+ - exec:
28
+ - partition
29
+ - mount
30
+ - unpackfs
31
+ - machineid
32
+ - fstab
33
+ - locale
34
+ - keyboard
35
+ - users
36
+ - displaymanager
37
+ - networkcfg
38
+ - hwclock
39
+ - services-openrc
40
+ - bootloader-config
41
+ - grubcfg
42
+ - bootloader
43
+ - packages
44
+ - luksbootkeyfile
45
+ - plymouthcfg
46
+ - mkinitfs
47
+ - removeuser
48
+ - umount
49
+
50
+ # Phase 3 - postinstall.
51
+ - show:
52
+ - finished
53
+
54
+ # branding
55
+ branding: {{branding}}
56
+ prompt-install: false
57
+ dont-chroot: false
@@ -42,7 +42,7 @@ export default class Bleach {
42
42
  await exec('apk cache purge', echo);
43
43
  break;
44
44
  }
45
- case 'suse': {
45
+ case 'opensuse': {
46
46
  await exec(`zypper clean`, echo);
47
47
  break;
48
48
  }
@@ -38,6 +38,7 @@ class Distro {
38
38
  * Costruttore
39
39
  */
40
40
  constructor() {
41
+ let found = false;
41
42
  this.bugReportUrl = 'https://github.com-pieroproietti/penguins-eggs/issue';
42
43
  this.codenameId = '';
43
44
  this.codenameLikeId = '';
@@ -105,58 +106,34 @@ class Distro {
105
106
  * Analize distroId
106
107
  */
107
108
  switch (this.distroId) {
109
+ /**
110
+ * Alpine compatible
111
+ */
108
112
  case 'Alpine': {
109
113
  this.familyId = 'alpine';
110
- this.distroLike = 'Alpine';
111
- this.codenameId = 'rolling'; // questo viene rimosso dal nome
112
- this.codenameLikeId = 'alpine'; // prende alpine come codenaneLikeId
113
- this.liveMediumPath = '/mnt/'; // Qua è deciso da noi
114
- this.syslinuxPath = '/usr/share/syslinux/'; // correct
115
- this.pxelinuxPath = this.syslinuxPath;
116
- this.usrLibPath = '/usr/lib/';
117
- this.memdiskPath = this.syslinuxPath;
118
- this.isolinuxPath = this.syslinuxPath;
119
- // At the moment
120
- this.isCalamaresAvailable = true;
121
114
  break;
122
115
  }
116
+ /**
117
+ * Fedora compatible
118
+ */
119
+ case 'NobaraLinux':
123
120
  case 'Fedora': {
124
121
  this.familyId = 'fedora';
125
- this.distroLike = 'Fedora';
126
- this.codenameId = 'rolling'; // questo viene rimosso dal nome
127
- this.codenameLikeId = 'fedora';
128
- this.liveMediumPath = '/run/initramfs/live/';
129
- this.syslinuxPath = '/usr/share/syslinux/';
130
- this.pxelinuxPath = this.syslinuxPath;
131
- this.usrLibPath = '/usr/lib/';
132
- this.memdiskPath = this.syslinuxPath;
133
- this.isolinuxPath = this.syslinuxPath;
134
- // At the moment
135
- this.isCalamaresAvailable = true;
136
122
  break;
137
123
  }
124
+ /**
125
+ * opensuse compatible
126
+ */
138
127
  case 'openSUSE': {
139
- this.familyId = 'suse';
140
- this.distroLike = 'openSUSE';
141
- this.codenameId = 'rolling';
142
- this.codenameLikeId = 'Tumbleweed';
143
- this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
144
- this.syslinuxPath = '/usr/share/syslinux/';
145
- this.pxelinuxPath = this.syslinuxPath;
146
- this.usrLibPath = '/usr/lib/';
147
- this.memdiskPath = this.syslinuxPath;
148
- this.isolinuxPath = this.syslinuxPath;
149
- // At the moment
150
- this.isCalamaresAvailable = false;
128
+ this.familyId = 'opensuse';
151
129
  break;
152
130
  }
131
+ /**
132
+ * Arch/Debian/Devuan/Manjaro and Ubuntu
133
+ */
153
134
  default: {
154
- /**
155
- * Arch/Debian/Devuan/Manjaro and Ubuntu
156
- */
157
135
  switch (this.codenameId) {
158
136
  case 'jessie': {
159
- // Debian 8 jessie
160
137
  this.distroLike = 'Debian';
161
138
  this.codenameLikeId = 'jessie';
162
139
  this.liveMediumPath = '/lib/live/mount/medium/';
@@ -164,7 +141,6 @@ class Distro {
164
141
  break;
165
142
  }
166
143
  case 'stretch': {
167
- // Debian 9 stretch
168
144
  this.distroLike = 'Debian';
169
145
  this.codenameLikeId = 'stretch';
170
146
  this.liveMediumPath = '/lib/live/mount/medium/';
@@ -172,43 +148,39 @@ class Distro {
172
148
  break;
173
149
  }
174
150
  case 'buster': {
175
- // Debian 10 buster
176
151
  this.distroLike = 'Debian';
177
152
  this.codenameLikeId = 'buster';
178
153
  break;
179
154
  }
180
155
  case 'bullseye': {
181
- // Debian 11 bullseye
182
156
  this.distroLike = 'Debian';
183
157
  this.codenameLikeId = 'bullseye';
184
158
  break;
185
159
  }
186
160
  case 'bookworm': {
187
- // Debian 12 bookworm
188
161
  this.distroLike = 'Debian';
189
162
  this.codenameLikeId = 'bookworm';
190
163
  break;
191
164
  }
192
165
  case 'trixie': {
193
- // Debian 13 trixie
194
166
  this.distroLike = 'Debian';
195
167
  this.codenameLikeId = 'trixie';
196
168
  break;
197
169
  }
170
+ /**
171
+ * Devuan
172
+ */
198
173
  case 'beowulf': {
199
- // Devuab 3 beowulf
200
174
  this.distroLike = 'Devuan';
201
175
  this.codenameLikeId = 'beowulf';
202
176
  break;
203
177
  }
204
178
  case 'chimaera': {
205
- // Devuab 4 chimaera
206
179
  this.distroLike = 'Devuan';
207
180
  this.codenameLikeId = 'chimaera';
208
181
  break;
209
182
  }
210
183
  case 'daedalus': {
211
- // Devuan 5 daedalus
212
184
  this.distroLike = 'Devuan';
213
185
  this.codenameLikeId = 'daedalus';
214
186
  break;
@@ -217,40 +189,37 @@ class Distro {
217
189
  * Ubuntu LTS + actual
218
190
  */
219
191
  case 'bionic': {
220
- // Ubuntu 18.04 bionic LTS eol aprile 2023
221
192
  this.distroLike = 'Ubuntu';
222
193
  this.codenameLikeId = 'bionic';
223
194
  this.liveMediumPath = '/lib/live/mount/medium/';
224
195
  break;
225
196
  }
226
197
  case 'focal': {
227
- // Ubuntu 20.04 focal LTS
228
198
  this.distroLike = 'Ubuntu';
229
199
  this.codenameLikeId = 'focal';
230
200
  break;
231
201
  }
232
202
  case 'jammy': {
233
- // Ubuntu 22.04 jammy LTS
234
203
  this.distroLike = 'Ubuntu';
235
204
  this.codenameLikeId = 'jammy';
236
205
  break;
237
206
  }
238
207
  case 'noble': {
239
- // Ubuntu 24.04 noble LTS
240
208
  this.distroLike = 'Ubuntu';
241
209
  this.codenameLikeId = 'noble';
242
210
  break;
243
211
  }
212
+ /**
213
+ * Rhino
214
+ */
244
215
  case 'devel': {
245
- // Ubuntu rhino
246
216
  this.distroLike = 'Ubuntu';
247
217
  this.codenameLikeId = 'devel';
248
218
  break;
249
219
  }
250
220
  /**
251
- * Arch Linux/Garuda
221
+ * Arch
252
222
  */
253
- case 'Spizaetus':
254
223
  case 'n/a':
255
224
  case 'rolling': {
256
225
  this.familyId = 'archlinux';
@@ -261,11 +230,13 @@ class Distro {
261
230
  this.squashfs = `arch/x86_64/airootfs.sfs`;
262
231
  break;
263
232
  }
233
+ /**
234
+ * find in derivatives
235
+ */
264
236
  default: {
265
237
  /**
266
238
  * patch per Roy VERIFICARE
267
239
  */
268
- let found = false;
269
240
  let file = path.resolve(__dirname, '../../conf/derivatives.yaml');
270
241
  if (fs.existsSync('/etc/penguins-eggs.d/derivatives.yaml')) {
271
242
  file = '/etc/penguins-eggs.d/derivatives.yaml';
@@ -284,15 +255,6 @@ class Distro {
284
255
  }
285
256
  }
286
257
  }
287
- if (!found) {
288
- console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
289
- console.log('');
290
- console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
291
- console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
292
- console.log('If you can create your new iso, you can contribute to the project');
293
- console.log('by suggesting your modification.');
294
- process.exit(0);
295
- }
296
258
  }
297
259
  }
298
260
  /**
@@ -315,10 +277,9 @@ class Distro {
315
277
  this.isolinuxPath = this.syslinuxPath;
316
278
  break;
317
279
  }
318
- // No default
319
280
  } // Fine analisi codenameId
320
281
  }
321
- }
282
+ } // Fine analisi distroId
322
283
  /**
323
284
  * if lsb-release exists
324
285
  */
@@ -338,6 +299,64 @@ class Distro {
338
299
  this.liveMediumPath = '/run/miso/bootmnt/';
339
300
  this.squashfs = 'manjaro/x86_64/livefs.sfs';
340
301
  }
302
+ /**
303
+ * all the distros without codename: Alpine, fedora, opensuse
304
+ */
305
+ switch (this.familyId) {
306
+ case 'alpine': {
307
+ this.distroLike = 'Alpine';
308
+ this.codenameId = 'rolling'; // questo viene rimosso dal nome
309
+ this.codenameLikeId = 'alpine'; // prende alpine come codenaneLikeId
310
+ this.liveMediumPath = '/mnt/'; // Qua è deciso da noi
311
+ this.syslinuxPath = '/usr/share/syslinux/'; // correct
312
+ this.pxelinuxPath = this.syslinuxPath;
313
+ this.usrLibPath = '/usr/lib/';
314
+ this.memdiskPath = this.syslinuxPath;
315
+ this.isolinuxPath = this.syslinuxPath;
316
+ // At the moment
317
+ this.isCalamaresAvailable = true;
318
+ found = true;
319
+ break;
320
+ }
321
+ case 'fedora': {
322
+ this.distroLike = 'Fedora';
323
+ this.codenameId = 'rolling'; // questo viene rimosso dal nome
324
+ this.codenameLikeId = 'fedora';
325
+ this.liveMediumPath = '/run/initramfs/live/';
326
+ this.syslinuxPath = '/usr/share/syslinux/';
327
+ this.pxelinuxPath = this.syslinuxPath;
328
+ this.usrLibPath = '/usr/lib/';
329
+ this.memdiskPath = this.syslinuxPath;
330
+ this.isolinuxPath = this.syslinuxPath;
331
+ this.isCalamaresAvailable = true;
332
+ found = true;
333
+ break;
334
+ }
335
+ case 'opensuse':
336
+ {
337
+ this.distroLike = 'openSUSE';
338
+ this.codenameId = 'rolling';
339
+ this.codenameLikeId = 'opensuse';
340
+ this.liveMediumPath = '/run/initramfs/live/'; // è il mount della root su cd di installatione
341
+ this.syslinuxPath = '/usr/share/syslinux/';
342
+ this.pxelinuxPath = this.syslinuxPath;
343
+ this.usrLibPath = '/usr/lib/';
344
+ this.memdiskPath = this.syslinuxPath;
345
+ this.isolinuxPath = this.syslinuxPath;
346
+ this.isCalamaresAvailable = true;
347
+ found = true;
348
+ break;
349
+ }
350
+ if (!found) {
351
+ console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
352
+ console.log('');
353
+ console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
354
+ console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
355
+ console.log('If you can create your new iso, you can contribute to the project');
356
+ console.log('by suggesting your modification.');
357
+ process.exit(0);
358
+ }
359
+ }
341
360
  }
342
361
  }
343
362
  export default Distro;
@@ -19,9 +19,10 @@ export default class Opensuse {
19
19
  *
20
20
  */
21
21
  static async calamaresInstall(verbose = true) {
22
- const echo = Utils.setEcho(verbose);
22
+ const echo = Utils.setEcho(true);
23
+ console.log("installazione calamares SuSE");
23
24
  try {
24
- await exec(`zypper install ${this.packs4calamares.join(' ')}`, echo);
25
+ await exec(`zypper install calamares`, echo);
25
26
  }
26
27
  catch {
27
28
  Utils.error(`Opensuse.calamaresInstall()`);
@@ -84,7 +85,6 @@ export default class Opensuse {
84
85
  */
85
86
  static packageIsInstalled(packageName) {
86
87
  let installed = false;
87
- // rpm -qa | grep -i nano
88
88
  const cmd = `/usr/bin/zypper search --installed-only ${packageName}`;
89
89
  const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
90
90
  if (stdout.includes(packageName)) {