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.
- package/.oclif.manifest.json +1 -1
- package/README.md +26 -26
- package/addons/eggs/theme/livecd/{isolinux.main.alpine.cfg → isolinux.main.simple.cfg} +1 -1
- package/conf/distros/opensuse/README.md +3 -0
- package/conf/distros/opensuse/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
- package/conf/distros/opensuse/calamares/calamares-modules/bootloader-config/module.yml +9 -0
- package/conf/distros/opensuse/calamares/calamares-modules/cleanup/cleanup.sh +13 -0
- package/conf/distros/opensuse/calamares/calamares-modules/cleanup/module.yml +9 -0
- package/conf/distros/opensuse/calamares/modules/bootloader.yml +57 -0
- package/conf/distros/opensuse/calamares/modules/displaymanager.yml +23 -0
- package/conf/distros/opensuse/calamares/modules/finished.yml +5 -0
- package/conf/distros/opensuse/calamares/modules/fstab.yml +12 -0
- package/conf/distros/opensuse/calamares/modules/locale.yml +98 -0
- package/conf/distros/opensuse/calamares/modules/luksopenswaphookcfg.yml +5 -0
- package/conf/distros/opensuse/calamares/modules/machineid.yml +17 -0
- package/conf/distros/opensuse/calamares/modules/mount.yml +56 -0
- package/conf/distros/opensuse/calamares/modules/packages.yml +6 -0
- package/conf/distros/opensuse/calamares/modules/partition.yml +242 -0
- package/conf/distros/opensuse/calamares/modules/removeuser.yml +15 -0
- package/conf/distros/opensuse/calamares/modules/unpackfs.yml +6 -0
- package/conf/distros/opensuse/calamares/modules/users.yml +18 -0
- package/conf/distros/opensuse/calamares/modules/welcome.yml +19 -0
- package/conf/distros/opensuse/calamares/settings.yml +57 -0
- package/dist/classes/bleach.js +1 -1
- package/dist/classes/distro.js +84 -65
- package/dist/classes/families/opensuse.js +3 -3
- package/dist/classes/incubation/fisherman.d.ts +1 -1
- package/dist/classes/incubation/fisherman.js +1 -1
- package/dist/classes/incubation/incubator.js +8 -0
- package/dist/classes/locales.d.ts +4 -4
- package/dist/classes/locales.js +33 -36
- package/dist/classes/ovary.d.ts +5 -9
- package/dist/classes/ovary.js +32 -62
- package/dist/classes/pacman.js +37 -0
- package/dist/classes/utils.js +18 -9
- package/dist/components/finished.js +5 -4
- package/dist/components/install.js +12 -8
- package/dist/krill/modules/del-live-user.js +3 -2
- package/dist/krill/modules/locale.js +5 -5
- package/dist/krill/modules/m-keyboard.js +4 -17
- package/dist/krill/modules/machine-id.js +4 -4
- package/dist/krill/modules/mkfs.d.ts +2 -0
- package/dist/krill/modules/mkfs.js +2 -0
- package/dist/krill/modules/unpackfs.js +3 -2
- package/dist/krill/sequence.d.ts +9 -6
- package/dist/krill/sequence.js +162 -258
- package/dracut/README.md +8 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +4 -4
- package/package.json +8 -5
- package/syslinux/chain.c32 +0 -0
- package/syslinux/isolinux.bin +0 -0
- package/syslinux/ldlinux.c32 +0 -0
- package/syslinux/libcom32.c32 +0 -0
- package/syslinux/libutil.c32 +0 -0
- package/syslinux/vesamenu.c32 +0 -0
- /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,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
|
package/dist/classes/bleach.js
CHANGED
package/dist/classes/distro.js
CHANGED
|
@@ -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 = '
|
|
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
|
|
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(
|
|
22
|
+
const echo = Utils.setEcho(true);
|
|
23
|
+
console.log("installazione calamares SuSE");
|
|
23
24
|
try {
|
|
24
|
-
await exec(`zypper install
|
|
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)) {
|