penguins-eggs 10.0.24 → 10.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +8 -8
- package/README.md +27 -27
- package/conf/distros/noble/calamares/modules/users.yml +1 -0
- package/conf/distros/rolling/calamares/modules/finished.yml +1 -1
- package/dist/classes/bleach.js +22 -15
- package/dist/{lib → classes}/cli-autologin.d.ts +15 -6
- package/dist/{lib → classes}/cli-autologin.js +82 -36
- package/dist/classes/compressors.d.ts +1 -1
- package/dist/classes/compressors.js +10 -10
- package/dist/classes/daddy.d.ts +6 -6
- package/dist/classes/daddy.js +67 -67
- package/dist/classes/distro.js +206 -202
- package/dist/classes/families/alpine.js +2 -2
- package/dist/classes/incubation/incubator.js +1 -1
- package/dist/classes/keyboards.d.ts +1 -1
- package/dist/classes/keyboards.js +16 -1
- package/dist/classes/locales.js +20 -9
- package/dist/classes/ovary.d.ts +11 -11
- package/dist/classes/ovary.js +109 -93
- package/dist/classes/pacman.js +3 -5
- package/dist/classes/pxe.d.ts +6 -6
- package/dist/classes/pxe.js +42 -42
- package/dist/classes/utils.d.ts +5 -1
- package/dist/classes/utils.js +20 -17
- package/dist/classes/xdg.js +15 -14
- package/dist/classes/yolk.js +1 -1
- package/dist/commands/cuckoo.js +1 -1
- package/dist/commands/dad.d.ts +1 -1
- package/dist/commands/dad.js +5 -7
- package/dist/commands/produce.js +1 -1
- package/dist/commands/syncfrom.d.ts +1 -1
- package/dist/commands/syncfrom.js +1 -1
- package/dist/components/information.js +5 -10
- package/dist/components/summary.js +2 -1
- package/dist/interfaces/i-excludes.d.ts +2 -2
- package/dist/interfaces/i-pxe.d.ts +15 -15
- package/dist/krill/modules/machine-id.js +1 -1
- package/dist/krill/modules/network-cfg.js +1 -1
- package/dist/krill/modules/packages.js +22 -0
- package/dist/krill/sequence.d.ts +1 -1
- package/dist/krill/sequence.js +3 -3
- package/dracut/README.md +84 -0
- package/dracut/dracut.conf +3 -0
- package/dracut/dracut.conf.d/90overlayfs.conf +5 -0
- package/dracut/dracut.conf.d/99custom.conf +4 -0
- package/dracut/install-dracut-99custom +1 -0
- package/dracut/usr/lib/dracut/modules.d/99custom/init-live.sh +4 -0
- package/dracut/usr/lib/dracut/modules.d/99custom/module-setup.sh +15 -0
- package/dracut/usr/lib/dracut/modules.d/99custom/mount-live.sh +25 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +22 -28
- package/mkinitfs/README.md +46 -0
- package/mkinitfs/live.conf +2 -0
- package/mkinitfs/machine-id-gen.sh +3 -0
- package/mkinitfs/sidecar.sh +40 -0
- package/package.json +7 -5
package/dist/classes/daddy.js
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import chalk from 'chalk';
|
|
9
9
|
import inquirer from 'inquirer';
|
|
10
|
+
import yaml from 'js-yaml';
|
|
11
|
+
import fs from 'node:fs';
|
|
10
12
|
// _dirname
|
|
11
13
|
import path from 'node:path';
|
|
12
|
-
import fs from 'fs';
|
|
13
|
-
import yaml from 'js-yaml';
|
|
14
14
|
// We need to remove .js extension from import
|
|
15
15
|
import Pacman from '../classes/pacman.js';
|
|
16
16
|
import Settings from '../classes/settings.js';
|
|
@@ -18,6 +18,70 @@ import Utils from '../classes/utils.js';
|
|
|
18
18
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
19
19
|
export default class Daddy {
|
|
20
20
|
settings = {};
|
|
21
|
+
/**
|
|
22
|
+
* editConfif
|
|
23
|
+
* @param c
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
async editConfig(c) {
|
|
27
|
+
// Utils.titles('dad')
|
|
28
|
+
console.log(chalk.cyan('Edit and save Live system parameters'));
|
|
29
|
+
console.log();
|
|
30
|
+
let compressionOpt = 0;
|
|
31
|
+
if (c.compression === 'xz') {
|
|
32
|
+
compressionOpt = 1;
|
|
33
|
+
}
|
|
34
|
+
else if (c.compression === 'xz -Xbcj x86') {
|
|
35
|
+
compressionOpt = 2;
|
|
36
|
+
}
|
|
37
|
+
if (c.snapshot_prefix === '') {
|
|
38
|
+
c.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
|
|
39
|
+
}
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
const questions = [
|
|
42
|
+
{
|
|
43
|
+
default: c.snapshot_prefix,
|
|
44
|
+
message: 'LiveCD iso prefix: ',
|
|
45
|
+
name: 'snapshot_prefix',
|
|
46
|
+
type: 'input'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
default: c.snapshot_basename,
|
|
50
|
+
message: 'LiveCD iso basename: ',
|
|
51
|
+
name: 'snapshot_basename',
|
|
52
|
+
type: 'input'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
default: c.user_opt,
|
|
56
|
+
message: 'LiveCD user:',
|
|
57
|
+
name: 'user_opt',
|
|
58
|
+
type: 'input'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
default: c.user_opt_passwd,
|
|
62
|
+
message: 'LiveCD user password: ',
|
|
63
|
+
name: 'user_opt_passwd',
|
|
64
|
+
type: 'input'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
default: c.root_passwd,
|
|
68
|
+
message: 'LiveCD root password: ',
|
|
69
|
+
name: 'root_passwd',
|
|
70
|
+
type: 'input'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
choices: ['fast', 'max'],
|
|
74
|
+
default: compressionOpt,
|
|
75
|
+
message: 'LiveCD compression: ',
|
|
76
|
+
name: 'compression',
|
|
77
|
+
type: 'list'
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
inquirer.prompt(questions).then((options) => {
|
|
81
|
+
resolve(JSON.stringify(options));
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
21
85
|
/**
|
|
22
86
|
*
|
|
23
87
|
* @param reset
|
|
@@ -27,7 +91,7 @@ export default class Daddy {
|
|
|
27
91
|
*/
|
|
28
92
|
async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
|
|
29
93
|
if (isCustom) {
|
|
30
|
-
console.log("using custom file:
|
|
94
|
+
console.log("using custom file:", fileCustom);
|
|
31
95
|
}
|
|
32
96
|
// Controllo configurazione
|
|
33
97
|
if (!Pacman.configurationCheck()) {
|
|
@@ -94,68 +158,4 @@ export default class Daddy {
|
|
|
94
158
|
console.log();
|
|
95
159
|
console.log(chalk.cyan('More help? ') + chalk.white('eggs mom'));
|
|
96
160
|
}
|
|
97
|
-
/**
|
|
98
|
-
* editConfif
|
|
99
|
-
* @param c
|
|
100
|
-
* @returns
|
|
101
|
-
*/
|
|
102
|
-
async editConfig(c) {
|
|
103
|
-
// Utils.titles('dad')
|
|
104
|
-
console.log(chalk.cyan('Edit and save Live system parameters'));
|
|
105
|
-
console.log();
|
|
106
|
-
let compressionOpt = 0;
|
|
107
|
-
if (c.compression === 'xz') {
|
|
108
|
-
compressionOpt = 1;
|
|
109
|
-
}
|
|
110
|
-
else if (c.compression === 'xz -Xbcj x86') {
|
|
111
|
-
compressionOpt = 2;
|
|
112
|
-
}
|
|
113
|
-
if (c.snapshot_prefix === '') {
|
|
114
|
-
c.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
|
|
115
|
-
}
|
|
116
|
-
return new Promise((resolve) => {
|
|
117
|
-
const questions = [
|
|
118
|
-
{
|
|
119
|
-
default: c.snapshot_prefix,
|
|
120
|
-
message: 'LiveCD iso prefix: ',
|
|
121
|
-
name: 'snapshot_prefix',
|
|
122
|
-
type: 'input'
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
default: c.snapshot_basename,
|
|
126
|
-
message: 'LiveCD iso basename: ',
|
|
127
|
-
name: 'snapshot_basename',
|
|
128
|
-
type: 'input'
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
default: c.user_opt,
|
|
132
|
-
message: 'LiveCD user:',
|
|
133
|
-
name: 'user_opt',
|
|
134
|
-
type: 'input'
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
default: c.user_opt_passwd,
|
|
138
|
-
message: 'LiveCD user password: ',
|
|
139
|
-
name: 'user_opt_passwd',
|
|
140
|
-
type: 'input'
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
default: c.root_passwd,
|
|
144
|
-
message: 'LiveCD root password: ',
|
|
145
|
-
name: 'root_passwd',
|
|
146
|
-
type: 'input'
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
choices: ['fast', 'max'],
|
|
150
|
-
default: compressionOpt,
|
|
151
|
-
message: 'LiveCD compression: ',
|
|
152
|
-
name: 'compression',
|
|
153
|
-
type: 'list'
|
|
154
|
-
}
|
|
155
|
-
];
|
|
156
|
-
inquirer.prompt(questions).then((options) => {
|
|
157
|
-
resolve(JSON.stringify(options));
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
161
|
}
|
package/dist/classes/distro.js
CHANGED
|
@@ -104,219 +104,223 @@ class Distro {
|
|
|
104
104
|
/**
|
|
105
105
|
* Analize distroId
|
|
106
106
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
switch (this.codenameId) {
|
|
158
|
-
case 'jessie': {
|
|
159
|
-
// Debian 8 jessie
|
|
160
|
-
this.distroLike = 'Debian';
|
|
161
|
-
this.codenameLikeId = 'jessie';
|
|
162
|
-
this.liveMediumPath = '/lib/live/mount/medium/';
|
|
163
|
-
this.isCalamaresAvailable = false;
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
case 'stretch': {
|
|
167
|
-
// Debian 9 stretch
|
|
168
|
-
this.distroLike = 'Debian';
|
|
169
|
-
this.codenameLikeId = 'stretch';
|
|
170
|
-
this.liveMediumPath = '/lib/live/mount/medium/';
|
|
171
|
-
this.isCalamaresAvailable = false;
|
|
172
|
-
break;
|
|
173
|
-
}
|
|
174
|
-
case 'buster': {
|
|
175
|
-
// Debian 10 buster
|
|
176
|
-
this.distroLike = 'Debian';
|
|
177
|
-
this.codenameLikeId = 'buster';
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
case 'bullseye': {
|
|
181
|
-
// Debian 11 bullseye
|
|
182
|
-
this.distroLike = 'Debian';
|
|
183
|
-
this.codenameLikeId = 'bullseye';
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
case 'bookworm': {
|
|
187
|
-
// Debian 12 bookworm
|
|
188
|
-
this.distroLike = 'Debian';
|
|
189
|
-
this.codenameLikeId = 'bookworm';
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
case 'trixie': {
|
|
193
|
-
// Debian 13 trixie
|
|
194
|
-
this.distroLike = 'Debian';
|
|
195
|
-
this.codenameLikeId = 'trixie';
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
case 'beowulf': {
|
|
199
|
-
// Devuab 3 beowulf
|
|
200
|
-
this.distroLike = 'Devuan';
|
|
201
|
-
this.codenameLikeId = 'beowulf';
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
case 'chimaera': {
|
|
205
|
-
// Devuab 4 chimaera
|
|
206
|
-
this.distroLike = 'Devuan';
|
|
207
|
-
this.codenameLikeId = 'chimaera';
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
case 'daedalus': {
|
|
211
|
-
// Devuan 5 daedalus
|
|
212
|
-
this.distroLike = 'Devuan';
|
|
213
|
-
this.codenameLikeId = 'daedalus';
|
|
214
|
-
break;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Ubuntu LTS + actual
|
|
218
|
-
*/
|
|
219
|
-
case 'bionic': {
|
|
220
|
-
// Ubuntu 18.04 bionic LTS eol aprile 2023
|
|
221
|
-
this.distroLike = 'Ubuntu';
|
|
222
|
-
this.codenameLikeId = 'bionic';
|
|
223
|
-
this.liveMediumPath = '/lib/live/mount/medium/';
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
case 'focal': {
|
|
227
|
-
// Ubuntu 20.04 focal LTS
|
|
228
|
-
this.distroLike = 'Ubuntu';
|
|
229
|
-
this.codenameLikeId = 'focal';
|
|
230
|
-
break;
|
|
231
|
-
}
|
|
232
|
-
case 'jammy': {
|
|
233
|
-
// Ubuntu 22.04 jammy LTS
|
|
234
|
-
this.distroLike = 'Ubuntu';
|
|
235
|
-
this.codenameLikeId = 'jammy';
|
|
236
|
-
break;
|
|
237
|
-
}
|
|
238
|
-
case 'noble': {
|
|
239
|
-
// Ubuntu 24.04 noble LTS
|
|
240
|
-
this.distroLike = 'Ubuntu';
|
|
241
|
-
this.codenameLikeId = 'noble';
|
|
242
|
-
break;
|
|
243
|
-
}
|
|
244
|
-
case 'devel': {
|
|
245
|
-
// Ubuntu rhino
|
|
246
|
-
this.distroLike = 'Ubuntu';
|
|
247
|
-
this.codenameLikeId = 'devel';
|
|
248
|
-
break;
|
|
249
|
-
}
|
|
107
|
+
switch (this.distroId) {
|
|
108
|
+
case 'Alpine': {
|
|
109
|
+
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.squashfs = `live/filesystem.squashfs`;
|
|
115
|
+
this.syslinuxPath = '/usr/share/syslinux/'; // correct
|
|
116
|
+
this.pxelinuxPath = this.syslinuxPath;
|
|
117
|
+
this.usrLibPath = '/usr/lib/';
|
|
118
|
+
this.memdiskPath = this.syslinuxPath;
|
|
119
|
+
this.isolinuxPath = this.syslinuxPath;
|
|
120
|
+
// At the moment
|
|
121
|
+
this.isCalamaresAvailable = false;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case 'Fedora': {
|
|
125
|
+
this.familyId = 'fedora';
|
|
126
|
+
this.distroLike = 'Fedora';
|
|
127
|
+
this.codenameId = 'rolling';
|
|
128
|
+
this.codenameLikeId = '40';
|
|
129
|
+
this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
|
|
130
|
+
this.squashfs = `live/filesystem.squashfs`;
|
|
131
|
+
this.syslinuxPath = '/usr/share/syslinux/';
|
|
132
|
+
this.pxelinuxPath = this.syslinuxPath;
|
|
133
|
+
this.usrLibPath = '/usr/lib/';
|
|
134
|
+
this.memdiskPath = this.syslinuxPath;
|
|
135
|
+
this.isolinuxPath = this.syslinuxPath;
|
|
136
|
+
// At the moment
|
|
137
|
+
this.isCalamaresAvailable = false;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case 'openSUSE': {
|
|
141
|
+
this.familyId = 'suse';
|
|
142
|
+
this.distroLike = 'openSUSE';
|
|
143
|
+
this.codenameId = 'rolling';
|
|
144
|
+
this.codenameLikeId = 'Tumbleweed';
|
|
145
|
+
this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
|
|
146
|
+
this.squashfs = `live/filesystem.squashfs`;
|
|
147
|
+
this.syslinuxPath = '/usr/share/syslinux/';
|
|
148
|
+
this.pxelinuxPath = this.syslinuxPath;
|
|
149
|
+
this.usrLibPath = '/usr/lib/';
|
|
150
|
+
this.memdiskPath = this.syslinuxPath;
|
|
151
|
+
this.isolinuxPath = this.syslinuxPath;
|
|
152
|
+
// At the moment
|
|
153
|
+
this.isCalamaresAvailable = false;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
default: {
|
|
250
157
|
/**
|
|
251
|
-
* Arch
|
|
158
|
+
* Arch/Debian/Devuan/Manjaro and Ubuntu
|
|
252
159
|
*/
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
160
|
+
switch (this.codenameId) {
|
|
161
|
+
case 'jessie': {
|
|
162
|
+
// Debian 8 jessie
|
|
163
|
+
this.distroLike = 'Debian';
|
|
164
|
+
this.codenameLikeId = 'jessie';
|
|
165
|
+
this.liveMediumPath = '/lib/live/mount/medium/';
|
|
166
|
+
this.isCalamaresAvailable = false;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case 'stretch': {
|
|
170
|
+
// Debian 9 stretch
|
|
171
|
+
this.distroLike = 'Debian';
|
|
172
|
+
this.codenameLikeId = 'stretch';
|
|
173
|
+
this.liveMediumPath = '/lib/live/mount/medium/';
|
|
174
|
+
this.isCalamaresAvailable = false;
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case 'buster': {
|
|
178
|
+
// Debian 10 buster
|
|
179
|
+
this.distroLike = 'Debian';
|
|
180
|
+
this.codenameLikeId = 'buster';
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case 'bullseye': {
|
|
184
|
+
// Debian 11 bullseye
|
|
185
|
+
this.distroLike = 'Debian';
|
|
186
|
+
this.codenameLikeId = 'bullseye';
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case 'bookworm': {
|
|
190
|
+
// Debian 12 bookworm
|
|
191
|
+
this.distroLike = 'Debian';
|
|
192
|
+
this.codenameLikeId = 'bookworm';
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case 'trixie': {
|
|
196
|
+
// Debian 13 trixie
|
|
197
|
+
this.distroLike = 'Debian';
|
|
198
|
+
this.codenameLikeId = 'trixie';
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
case 'beowulf': {
|
|
202
|
+
// Devuab 3 beowulf
|
|
203
|
+
this.distroLike = 'Devuan';
|
|
204
|
+
this.codenameLikeId = 'beowulf';
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case 'chimaera': {
|
|
208
|
+
// Devuab 4 chimaera
|
|
209
|
+
this.distroLike = 'Devuan';
|
|
210
|
+
this.codenameLikeId = 'chimaera';
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
case 'daedalus': {
|
|
214
|
+
// Devuan 5 daedalus
|
|
215
|
+
this.distroLike = 'Devuan';
|
|
216
|
+
this.codenameLikeId = 'daedalus';
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Ubuntu LTS + actual
|
|
221
|
+
*/
|
|
222
|
+
case 'bionic': {
|
|
223
|
+
// Ubuntu 18.04 bionic LTS eol aprile 2023
|
|
224
|
+
this.distroLike = 'Ubuntu';
|
|
225
|
+
this.codenameLikeId = 'bionic';
|
|
226
|
+
this.liveMediumPath = '/lib/live/mount/medium/';
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case 'focal': {
|
|
230
|
+
// Ubuntu 20.04 focal LTS
|
|
231
|
+
this.distroLike = 'Ubuntu';
|
|
232
|
+
this.codenameLikeId = 'focal';
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
case 'jammy': {
|
|
236
|
+
// Ubuntu 22.04 jammy LTS
|
|
237
|
+
this.distroLike = 'Ubuntu';
|
|
238
|
+
this.codenameLikeId = 'jammy';
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
case 'noble': {
|
|
242
|
+
// Ubuntu 24.04 noble LTS
|
|
243
|
+
this.distroLike = 'Ubuntu';
|
|
244
|
+
this.codenameLikeId = 'noble';
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case 'devel': {
|
|
248
|
+
// Ubuntu rhino
|
|
249
|
+
this.distroLike = 'Ubuntu';
|
|
250
|
+
this.codenameLikeId = 'devel';
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
265
253
|
/**
|
|
266
|
-
*
|
|
254
|
+
* Arch Linux/Garuda
|
|
267
255
|
*/
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
256
|
+
case 'Spizaetus':
|
|
257
|
+
case 'n/a':
|
|
258
|
+
case 'rolling': {
|
|
259
|
+
this.familyId = 'archlinux';
|
|
260
|
+
this.distroLike = 'Arch';
|
|
261
|
+
this.codenameId = 'rolling';
|
|
262
|
+
this.codenameLikeId = 'rolling';
|
|
263
|
+
this.liveMediumPath = '/run/archiso/bootmnt/';
|
|
264
|
+
this.squashfs = `arch/x86_64/airootfs.sfs`;
|
|
265
|
+
break;
|
|
272
266
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
267
|
+
default: {
|
|
268
|
+
/**
|
|
269
|
+
* patch per Roy VERIFICARE
|
|
270
|
+
*/
|
|
271
|
+
let found = false;
|
|
272
|
+
let file = path.resolve(__dirname, '../../conf/derivatives.yaml');
|
|
273
|
+
if (fs.existsSync('/etc/penguins-eggs.d/derivatives.yaml')) {
|
|
274
|
+
file = '/etc/penguins-eggs.d/derivatives.yaml';
|
|
275
|
+
}
|
|
276
|
+
const content = fs.readFileSync(file, 'utf8');
|
|
277
|
+
const distros = yaml.load(content);
|
|
278
|
+
for (const distro of distros) {
|
|
279
|
+
if (distro.ids !== undefined) {
|
|
280
|
+
for (let n = 0; n < distro.ids.length; n++) {
|
|
281
|
+
if (this.codenameId === distro.ids[n]) {
|
|
282
|
+
found = true;
|
|
283
|
+
this.distroLike = distro.distroLike;
|
|
284
|
+
this.codenameLikeId = distro.id;
|
|
285
|
+
this.familyId = distro.family;
|
|
286
|
+
}
|
|
283
287
|
}
|
|
284
288
|
}
|
|
285
289
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
290
|
+
if (!found) {
|
|
291
|
+
console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
|
|
292
|
+
console.log('');
|
|
293
|
+
console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
|
|
294
|
+
console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
|
|
295
|
+
console.log('If you can create your new iso, you can contribute to the project');
|
|
296
|
+
console.log('by suggesting your modification.');
|
|
297
|
+
process.exit(0);
|
|
298
|
+
}
|
|
295
299
|
}
|
|
296
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* setting paths: syslinux, isolinux, usrLibPath
|
|
303
|
+
*/
|
|
304
|
+
switch (this.familyId) {
|
|
305
|
+
case 'debian': {
|
|
306
|
+
this.isolinuxPath = '/usr/lib/ISOLINUX/';
|
|
307
|
+
this.syslinuxPath = '/usr/lib/syslinux/modules/bios/';
|
|
308
|
+
this.pxelinuxPath = '/usr/lib/PXELINUX/';
|
|
309
|
+
this.memdiskPath = '/usr/lib/syslinux/';
|
|
310
|
+
this.usrLibPath = '/usr/lib/' + Utils.usrLibPath();
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
case 'archlinux': {
|
|
314
|
+
this.syslinuxPath = '/usr/lib/syslinux/bios/';
|
|
315
|
+
this.pxelinuxPath = this.syslinuxPath;
|
|
316
|
+
this.usrLibPath = '/usr/lib/';
|
|
317
|
+
this.memdiskPath = this.syslinuxPath;
|
|
318
|
+
this.isolinuxPath = this.syslinuxPath;
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
// No default
|
|
322
|
+
} // Fine analisi codenameId
|
|
297
323
|
}
|
|
298
|
-
/**
|
|
299
|
-
* setting paths: syslinux, isolinux, usrLibPath
|
|
300
|
-
*/
|
|
301
|
-
switch (this.familyId) {
|
|
302
|
-
case 'debian': {
|
|
303
|
-
this.isolinuxPath = '/usr/lib/ISOLINUX/';
|
|
304
|
-
this.syslinuxPath = '/usr/lib/syslinux/modules/bios/';
|
|
305
|
-
this.pxelinuxPath = '/usr/lib/PXELINUX/';
|
|
306
|
-
this.memdiskPath = '/usr/lib/syslinux/';
|
|
307
|
-
this.usrLibPath = '/usr/lib/' + Utils.usrLibPath();
|
|
308
|
-
break;
|
|
309
|
-
}
|
|
310
|
-
case 'archlinux': {
|
|
311
|
-
this.syslinuxPath = '/usr/lib/syslinux/bios/';
|
|
312
|
-
this.pxelinuxPath = this.syslinuxPath;
|
|
313
|
-
this.usrLibPath = '/usr/lib/';
|
|
314
|
-
this.memdiskPath = this.syslinuxPath;
|
|
315
|
-
this.isolinuxPath = this.syslinuxPath;
|
|
316
|
-
break;
|
|
317
|
-
}
|
|
318
|
-
// No default
|
|
319
|
-
} // Fine analisi codenameId
|
|
320
324
|
}
|
|
321
325
|
/**
|
|
322
326
|
* if lsb-release exists
|
|
@@ -20,7 +20,7 @@ export default class Alpine {
|
|
|
20
20
|
static async calamaresInstall(verbose = false) {
|
|
21
21
|
const echo = Utils.setEcho(verbose);
|
|
22
22
|
try {
|
|
23
|
-
|
|
23
|
+
const cmd = `apk add ${this.packs4calamares}`;
|
|
24
24
|
try {
|
|
25
25
|
await exec(cmd, echo);
|
|
26
26
|
}
|
|
@@ -44,7 +44,7 @@ export default class Alpine {
|
|
|
44
44
|
*/
|
|
45
45
|
static async calamaresRemove(verbose = true) {
|
|
46
46
|
verbose = true; // serve per pacman
|
|
47
|
-
|
|
47
|
+
const removed = true;
|
|
48
48
|
const echo = Utils.setEcho(verbose);
|
|
49
49
|
await exec(`apk del ${this.packs4calamares}`);
|
|
50
50
|
await exec('rm /etc/calamares -rf', echo);
|
|
@@ -14,8 +14,8 @@ import Pacman from '../pacman.js';
|
|
|
14
14
|
import Utils from '../utils.js';
|
|
15
15
|
import { Bionic } from './distros/bionic.js';
|
|
16
16
|
import { Buster } from './distros/buster.js';
|
|
17
|
-
import { Noble } from './distros/noble.js';
|
|
18
17
|
import { Jessie } from './distros/jessie.js';
|
|
18
|
+
import { Noble } from './distros/noble.js';
|
|
19
19
|
import { Rolling } from './distros/rolling.js';
|
|
20
20
|
import { installer } from './installer.js';
|
|
21
21
|
// _dirname
|
|
@@ -77,9 +77,24 @@ export default class Keyboard {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
+
else {
|
|
81
|
+
this.models.push('pc105');
|
|
82
|
+
this.layouts = [
|
|
83
|
+
'af', 'al', 'am', 'ara', 'at', 'az', 'ba', 'bd', 'be', 'bg', 'br',
|
|
84
|
+
'brai', 'by', 'ca', 'ch', 'cm', 'cn', 'cz', 'de', 'dk', 'dz', 'ee',
|
|
85
|
+
'epo', 'fr', 'gb', 'ge', 'gh', 'gr', 'hr', 'hu', 'id', 'ie', 'il',
|
|
86
|
+
'in', 'iq', 'ir', 'is', 'it', 'jp', 'ke', 'kg', 'kr', 'kz', 'la',
|
|
87
|
+
'latam', 'lk', 'lt', 'lv', 'ma', 'md', 'me', 'mk', 'ml', 'mm',
|
|
88
|
+
'mt', 'my', 'ng', 'nl', 'no', 'nz', 'ph', 'pk', 'pl', 'pt', 'ro',
|
|
89
|
+
'rs', 'ru', 'se', 'si', 'sk', 'sy', 'th', 'tj', 'tw', 'ua',
|
|
90
|
+
'us', 'uz', 'vn'
|
|
91
|
+
];
|
|
92
|
+
this.variants.push('none');
|
|
93
|
+
this.options.push('none');
|
|
94
|
+
}
|
|
80
95
|
}
|
|
81
96
|
/**
|
|
82
|
-
* XKBLAYOUT='us'
|
|
97
|
+
* XKBLAYOUT='us'
|
|
83
98
|
*/
|
|
84
99
|
async getLayout() {
|
|
85
100
|
const file = '/etc/default/keyboard';
|