penguins-eggs 9.5.2 → 9.5.4

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 (39) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +6 -6
  3. package/conf/distros/rolling/calamares/modules/bootloader.yml +75 -0
  4. package/conf/distros/rolling/calamares/modules/displaymanager.yml +2 -2
  5. package/conf/distros/rolling/calamares/modules/finished.yml +44 -4
  6. package/conf/distros/rolling/calamares/modules/fstab.yml +30 -12
  7. package/conf/distros/rolling/calamares/modules/locale.yml +55 -21
  8. package/conf/distros/rolling/calamares/modules/luksopenswaphookcfg.yml +3 -4
  9. package/conf/distros/rolling/calamares/modules/machineid.yml +37 -1
  10. package/conf/distros/rolling/calamares/modules/mount.yml +108 -31
  11. package/conf/distros/rolling/calamares/modules/packages.yml +2 -2
  12. package/conf/distros/rolling/calamares/modules/removeuser.yml +3 -2
  13. package/conf/distros/rolling/calamares/modules/shellprocess_removelink.yml +3 -1
  14. package/conf/distros/rolling/calamares/modules/unpackfs.yml +2 -2
  15. package/conf/distros/rolling/calamares/modules/users.yml +1 -1
  16. package/conf/distros/rolling/calamares-32/modules/displaymanager.yml +23 -0
  17. package/conf/distros/rolling/calamares-32/modules/finished.yml +6 -0
  18. package/conf/distros/rolling/calamares-32/modules/fstab.yml +14 -0
  19. package/conf/distros/rolling/calamares-32/modules/locale.yml +11 -0
  20. package/conf/distros/rolling/calamares-32/modules/mount.yml +39 -0
  21. package/conf/distros/rolling/calamares-32/modules/packages.yml +11 -0
  22. package/conf/distros/rolling/calamares-32/modules/partition.yml +283 -0
  23. package/conf/distros/rolling/calamares-32/modules/removeuser.yml +16 -0
  24. package/conf/distros/rolling/calamares-32/modules/shellprocess_removelink.yml +8 -0
  25. package/conf/distros/rolling/calamares-32/modules/unpackfs.yml +7 -0
  26. package/conf/distros/rolling/calamares-32/modules/users.yml +20 -0
  27. package/conf/distros/rolling/calamares-32/settings.yml +91 -0
  28. package/dist/classes/incubation/installer.js +3 -0
  29. package/dist/classes/ovary.js +4 -1
  30. package/dist/classes/pxe.js +4 -2
  31. package/dist/classes/tools.js +5 -1
  32. package/dist/commands/produce.js +8 -3
  33. package/dist/commands/tools/ppa.js +81 -25
  34. package/dist/commands/wardrobe/list.js +14 -3
  35. package/dist/krill/krill-prepare.js +6 -1
  36. package/dist/krill/krill-sequence.js +6 -1
  37. package/package.json +1 -1
  38. package/scripts/force-calamares.sh +9 -0
  39. package/conf/distros/rolling/README.md +0 -3
@@ -0,0 +1,91 @@
1
+ # Manjaro
2
+ # Calamares 3.2
3
+ # setiing
4
+ ---
5
+ # "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
6
+ modules-search: [local, /usr/lib/calamares/modules, /usr/share/calamares]
7
+
8
+ instances:
9
+ - id: cleanup
10
+ module: shellprocess
11
+ config: shellprocess_cleanup.conf
12
+
13
+ sequence:
14
+ # Phase 1 - prepare.
15
+ # View modules are shown as UI pages, jobs from job modules
16
+ # are executed immediately in the background.
17
+ # Jobs should be executed sparingly (if at all) in this phase.
18
+ - show:
19
+ - welcome
20
+ - locale
21
+ - keyboard
22
+ - partition
23
+ - users
24
+ - summary
25
+
26
+ # Phase 2 - install.
27
+ # View modules are not shown. Only the view modules shown
28
+ # in the previous phase are allowed, their names should be
29
+ # added here as placeholders to specify the order in which
30
+ # view module jobs should be enqueued. Job modules are
31
+ # also allowed.
32
+ - exec:
33
+ - partition
34
+ - mount
35
+ - unpackfs
36
+ - machineid
37
+ - fstab
38
+ - locale
39
+ - keyboard
40
+ - localecfg
41
+ - users
42
+ - displaymanager
43
+ - networkcfg
44
+ - hwclock
45
+ - grubcfg
46
+ - bootloader
47
+ - packages
48
+ - luksbootkeyfile
49
+ - plymouthcfg
50
+ - removeuser
51
+ # shellprocess removelink
52
+ - umount
53
+
54
+ # Phase 3 - postinstall.
55
+ # View modules are shown as UI pages, jobs from job modules are
56
+ # executed immediately in the background.
57
+ # Jobs should be executed sparingly (if at all) in this phase.
58
+ - show:
59
+ - finished
60
+
61
+ # A branding component is a directory, either in
62
+ # SHARE/calamares/branding or in /etc/calamares/branding
63
+ # (the latter takes precedence). The directory must contain a
64
+ # YAML file branding.desc which may reference additional resources
65
+ # (such as images) as paths relative to the current directory.
66
+ # Only the name of the branding component (directory) should be
67
+ # specified here, Calamares then takes care of finding it and
68
+ # loading the contents.
69
+ branding: eggs
70
+
71
+ # If this is set to true, Calamares will show an "Are you sure?" prompt right
72
+ # before each execution phase, i.e. at points of no return. If this is set to
73
+ # false, no prompt is shown. Default is false.
74
+ #
75
+ # YAML: boolean.
76
+ prompt-install: false
77
+
78
+ # If this is set to true, Calamares will execute all target environment
79
+ # commands in the current environment, without chroot. This setting should
80
+ # only be used when setting up Calamares as a post-install configuration tool,
81
+ # as opposed to a full operating system installer.
82
+ #
83
+ # Some official Calamares modules are not expected to function with this
84
+ # setting. (e.g. partitioning seems like a bad idea, since that is expected to
85
+ # have been done already)
86
+ #
87
+ # Default is false (for a normal installer).
88
+ #
89
+ # YAML: boolean.
90
+ dont-chroot: false
91
+
@@ -36,6 +36,9 @@ function installer() {
36
36
  const distro = new distro_1.default(remix);
37
37
  if (distro.isCalamaresAvailable) {
38
38
  installer.template = '/etc/penguins-eggs.d/distros/' + distro.codenameLikeId + '/calamares/';
39
+ if (distro.distroId === 'ManjaroLinux') {
40
+ installer.template = '/etc/penguins-eggs.d/distros/' + distro.codenameLikeId + '/calamares-32/';
41
+ }
39
42
  installer.templateModules = installer.template + 'modules/';
40
43
  installer.templateMultiarch = installer.template + 'calamares-modules/';
41
44
  }
@@ -1413,7 +1413,10 @@ class Ovary {
1413
1413
  */
1414
1414
  xorrisoCommand(clone = false, cryptedclone = false) {
1415
1415
  const volid = utils_2.default.getVolid(this.settings.remix.name);
1416
- const prefix = this.settings.config.snapshot_prefix;
1416
+ let prefix = this.settings.config.snapshot_prefix;
1417
+ if (prefix.endsWith('rolling-')) {
1418
+ prefix = prefix.substring(0, prefix.indexOf('rolling-'));
1419
+ }
1417
1420
  let typology = '';
1418
1421
  // typology is applied only with standard egg-of
1419
1422
  if (prefix.slice(0, 7) === 'egg-of-') {
@@ -205,7 +205,9 @@ class Pxe {
205
205
  * ARCH LINUX
206
206
  */
207
207
  let tool = 'archiso';
208
- if (distro.codenameId === 'Qonos' || distro.codenameId === 'Ruah' || distro.codenameId === 'Sikaris') {
208
+ if (distro.codenameId === 'Qonos' || distro.codenameId === 'Ruah' ||
209
+ distro.codenameId === 'Sikaris' || distro.codenameId === 'Talos' ||
210
+ distro.codenameId === 'UltimaThule') {
209
211
  tool = 'miso';
210
212
  }
211
213
  content += `kernel http://${utils_2.default.address()}/vmlinuz\n`;
@@ -275,7 +277,7 @@ class Pxe {
275
277
  * ARCH LINUX
276
278
  */
277
279
  let tool = 'archiso';
278
- if (this.settings.distro.codenameId === 'Qonos' || this.settings.distro.codenameId === 'Ruah' || this.settings.distro.codenameId === 'Sikaris') {
280
+ if (this.settings.distro.codenameId === 'Qonos' || this.settings.distro.codenameId === 'Ruah' || this.settings.distro.codenameId === 'Sikaris' || this.settings.distro.codenameId === 'UltimaThule') {
279
281
  tool = 'miso';
280
282
  }
281
283
  content += `imgargs vmlinuz ${tool}_http_srv=http://${utils_2.default.address()}/ boot=live dhcp initrd=initrd ro\n`;
@@ -47,7 +47,11 @@ class Tools {
47
47
  const settings = new settings_1.default();
48
48
  settings.load();
49
49
  this.snapshot_dir = settings.config.snapshot_dir;
50
- this.snapshot_name = settings.config.snapshot_prefix + settings.config.snapshot_basename + '_'; // + Utils.machineArch() + '_'
50
+ let prefix = settings.config.snapshot_prefix;
51
+ if (prefix.endsWith('rolling-')) {
52
+ prefix = prefix.substring(0, prefix.indexOf('rolling-'));
53
+ }
54
+ this.snapshot_name = prefix + settings.config.snapshot_basename + '_'; // + Utils.machineArch() + '_'
51
55
  }
52
56
  else {
53
57
  console.log(`Can't find: ${this.tools_yaml}`);
@@ -80,8 +80,14 @@ class Produce extends core_1.Command {
80
80
  let theme = 'eggs';
81
81
  if (flags.theme !== undefined) {
82
82
  theme = flags.theme;
83
- if (theme.endsWith('/')) {
84
- theme = theme.substring(0, theme.length - 1);
83
+ if (theme.includes('/')) {
84
+ if (theme.endsWith('/')) {
85
+ theme = theme.substring(0, theme.length - 1);
86
+ }
87
+ }
88
+ else {
89
+ const wpath = `/home/${await utils_1.default.getPrimaryUser()}/.wardrobe/vendors/`;
90
+ theme = wpath + flags.theme;
85
91
  }
86
92
  theme = node_path_1.default.resolve(theme);
87
93
  if (!node_fs_1.default.existsSync(theme + '/theme')) {
@@ -89,7 +95,6 @@ class Produce extends core_1.Command {
89
95
  process.exit();
90
96
  }
91
97
  }
92
- console.log(`theme: ${theme}`);
93
98
  const i = await config_1.default.thatWeNeed(nointeractive, verbose, cryptedclone);
94
99
  if ((i.needApt || i.configurationInstall || i.configurationRefresh || i.distroTemplate) && (await utils_1.default.customConfirm('Select yes to continue...'))) {
95
100
  await config_1.default.install(i, nointeractive, verbose);
@@ -20,6 +20,9 @@ const flist = '/etc/apt/sources.list.d/penguins-eggs-ppa.list';
20
20
  *
21
21
  */
22
22
  class Ppa extends core_1.Command {
23
+ /**
24
+ *
25
+ */
23
26
  async run() {
24
27
  const { flags } = await this.parse(Ppa);
25
28
  utils_1.default.titles(this.id + ' ' + this.argv);
@@ -28,26 +31,47 @@ class Ppa extends core_1.Command {
28
31
  verbose = true;
29
32
  }
30
33
  const nointeractive = flags.nointeractive;
31
- const distro = new distro_1.default();
32
- if (distro.familyId === 'debian') {
33
- if (utils_1.default.isRoot()) {
34
- if (flags.remove) {
34
+ if (utils_1.default.isRoot()) {
35
+ const distro = new distro_1.default();
36
+ /**
37
+ * Debian
38
+ */
39
+ if (distro.familyId === 'debian') {
40
+ if (flags.add) {
41
+ utils_1.default.warning(`Are you sure to add ${flist} to your repositories?`);
42
+ if (nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
43
+ await debianAdd();
44
+ }
45
+ }
46
+ else if (flags.remove) {
35
47
  utils_1.default.warning(`Are you sure to remove ${flist} to your repositories?`);
36
48
  if (nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
37
- await remove();
49
+ await debianRemove();
38
50
  }
39
51
  }
52
+ /**
53
+ * archlinux
54
+ */
55
+ }
56
+ if (distro.familyId === 'archlinux') {
40
57
  if (flags.add) {
41
- utils_1.default.warning(`Are you sure to add ${flist} to your repositories?`);
42
- if (nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
43
- await clean();
44
- await add();
58
+ if (distro.distroId !== 'ManjaroLinux') {
59
+ utils_1.default.warning(`Are you sure to add chaotic-aur to your repositories?`);
60
+ if (await utils_1.default.customConfirm('Select yes to continue...')) {
61
+ await archAdd();
62
+ }
45
63
  }
46
64
  }
65
+ else if (flags.remove) {
66
+ await archRemove();
67
+ }
68
+ }
69
+ else {
70
+ /**
71
+ * Others
72
+ */
73
+ utils_1.default.warning(`Distro> ${distro.distroId}/${distro.codenameId}, cannot use this command here!`);
47
74
  }
48
- }
49
- else {
50
- utils_1.default.warning('you can use ppa only for debian family');
51
75
  }
52
76
  }
53
77
  }
@@ -58,33 +82,65 @@ Ppa.flags = {
58
82
  remove: core_1.Flags.boolean({ char: 'r', description: 'remove penguins-eggs PPA repository' }),
59
83
  verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
60
84
  };
61
- Ppa.description = 'add/remove PPA repositories (Debian family)';
85
+ Ppa.description = 'add/remove repo';
62
86
  Ppa.examples = [
63
87
  'sudo eggs tools ppa --add',
64
88
  'sudo eggs tools ppa --remove',
65
89
  ];
66
90
  exports.default = Ppa;
67
91
  /**
68
- * add ppa
92
+ * archAdd
69
93
  */
70
- async function add() {
71
- await (0, utils_2.exec)(`curl -sS https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg| gpg --dearmor | sudo tee ${fkey} > /dev/null`);
72
- const content = `deb [signed-by=${fkey}] https://pieroproietti.github.io/penguins-eggs-ppa ./\n`;
73
- fs_1.default.writeFileSync(flist, content);
74
- await (0, utils_2.exec)('apt-get update');
94
+ async function archAdd() {
95
+ const path = "/var/cache/pacman/pkg/";
96
+ const keyring = "chaotic-keyring.pkg.tar.zst";
97
+ const mirrorlist = "chaotic-mirrorlist.pkg.tar.zst";
98
+ const echo = utils_1.default.setEcho(true);
99
+ if (fs_1.default.existsSync(path + keyring) && (fs_1.default.existsSync(path + mirrorlist))) {
100
+ console.log("repository chaotic-aur, already present!");
101
+ await archRemove();
102
+ process.exit();
103
+ }
104
+ await (0, utils_2.exec)('pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com', echo);
105
+ await (0, utils_2.exec)('pacman-key --lsign-key FBA220DFC880C036', echo);
106
+ await (0, utils_2.exec)("pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'", echo);
107
+ // Append to /etc/pacman.conf
108
+ const chaoticAppend = "\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n\n";
109
+ fs_1.default.appendFileSync('/etc/pacman.conf', chaoticAppend);
110
+ }
111
+ /**
112
+ * archRemove
113
+ */
114
+ async function archRemove() {
115
+ const path = "/var/cache/pacman/pkg/";
116
+ const keyring = "chaotic-keyring.pkg.tar.zst";
117
+ const mirrorlist = "chaotic-mirrorlist.pkg.tar.zst";
118
+ const echo = utils_1.default.setEcho(true);
119
+ if (fs_1.default.existsSync(path + keyring) && (fs_1.default.existsSync(path + mirrorlist))) {
120
+ console.log('to remove chaotic-aur:\n');
121
+ console.log(`sudo rm ${path}${keyring}`);
122
+ console.log(`sudo rm ${path}${mirrorlist}`);
123
+ console.log(`sudo nano /etc/pacman.conf`);
124
+ console.log(`remove at the end:`);
125
+ console.log(`[chaotic-aur]`);
126
+ console.log(`Include = /etc/pacman.d/chaotic-mirrorlist`);
127
+ }
75
128
  }
76
129
  /**
77
- * remove ppa
130
+ * debianAdd
78
131
  */
79
- async function remove() {
80
- await clean();
132
+ async function debianAdd() {
133
+ await (0, utils_2.exec)(`curl -sS https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg| gpg --dearmor | sudo tee ${fkey} > /dev/null`);
134
+ const content = `deb [signed-by=${fkey}] https://pieroproietti.github.io/penguins-eggs-ppa ./\n`;
135
+ fs_1.default.writeFileSync(flist, content);
81
136
  await (0, utils_2.exec)('apt-get update');
82
137
  }
83
138
  /**
84
- *
139
+ * debianRemove
85
140
  */
86
- async function clean() {
87
- await (0, utils_2.exec)('rm -f /etc/apt/trusted.gpg.d/penguins-eggs*');
141
+ async function debianRemove() {
142
+ await (0, utils_2.exec)('rm -f /etc/apt/trusted.gpg.d/penguins-eggs*');
88
143
  await (0, utils_2.exec)('rm -f /etc/apt/sources.list.d/penguins-eggs*');
89
144
  await (0, utils_2.exec)('rm -f /usr/share/keyrings/penguins-eggs*');
145
+ await (0, utils_2.exec)('apt-get update');
90
146
  }
@@ -71,7 +71,7 @@ class List extends core_1.Command {
71
71
  for (const costume of costumes) {
72
72
  if (fs_1.default.existsSync(`${wardrobe}costumes/${costume}/${index}`)) {
73
73
  const materials = js_yaml_1.default.load(fs_1.default.readFileSync(`${wardrobe}costumes/${costume}/${index}`, 'utf-8'));
74
- console.log(chalk_1.default.cyan(costume) + ': ' + materials.description);
74
+ console.log('- ' + chalk_1.default.cyan(costume) + ': ' + materials.description);
75
75
  }
76
76
  }
77
77
  console.log();
@@ -83,7 +83,7 @@ class List extends core_1.Command {
83
83
  for (const accessory of accessories) {
84
84
  if (fs_1.default.existsSync(`${wardrobe}/accessories/${accessory}/${index}`)) {
85
85
  const materials = js_yaml_1.default.load(fs_1.default.readFileSync(`${wardrobe}/accessories/${accessory}/${index}`, 'utf-8'));
86
- console.log(chalk_1.default.cyan(accessory) + ': ' + materials.description);
86
+ console.log('- ' + chalk_1.default.cyan(accessory) + ': ' + materials.description);
87
87
  }
88
88
  }
89
89
  console.log();
@@ -95,7 +95,18 @@ class List extends core_1.Command {
95
95
  for (const server of servers) {
96
96
  if (fs_1.default.existsSync(`${wardrobe}/servers/${server}/${index}`)) {
97
97
  const materials = js_yaml_1.default.load(fs_1.default.readFileSync(`${wardrobe}/servers/${server}/${index}`, 'utf-8'));
98
- console.log(chalk_1.default.cyan(server) + ': ' + materials.description);
98
+ console.log('- ' + chalk_1.default.cyan(server) + ': ' + materials.description);
99
+ }
100
+ }
101
+ console.log();
102
+ /**
103
+ * vendors
104
+ */
105
+ const vendors = fs_1.default.readdirSync(`${wardrobe}/vendors/`);
106
+ console.log(chalk_1.default.green('vendors/themes: '));
107
+ for (const vendor of vendors) {
108
+ if (fs_1.default.existsSync(`${wardrobe}/vendors/${vendor}/theme`)) {
109
+ console.log('- ' + chalk_1.default.cyan(vendor));
99
110
  }
100
111
  }
101
112
  console.log();
@@ -187,8 +187,12 @@ class Krill {
187
187
  drives.forEach((element) => {
188
188
  driveList.push('/dev/' + element);
189
189
  });
190
+ let installationDevice = driveList[0];
191
+ if (driveList.length > 1) {
192
+ installationDevice = await (0, select_installation_device_1.default)();
193
+ }
190
194
  oPartitions = {
191
- installationDevice: driveList[0],
195
+ installationDevice: installationDevice,
192
196
  installationMode: this.krillConfig.installationMode,
193
197
  filesystemType: this.krillConfig.filesystemType,
194
198
  userSwapChoice: this.krillConfig.userSwapChoice
@@ -363,6 +367,7 @@ class Krill {
363
367
  * PARTITIONS
364
368
  */
365
369
  async partitions(crypted = false, pve = false) {
370
+ // Calamares won't use any devices with iso9660 filesystem on it.
366
371
  const drives = shelljs_1.default.exec('lsblk |grep disk|cut -f 1 "-d "', { silent: true }).stdout.trim().split('\n');
367
372
  const driveList = [];
368
373
  drives.forEach((element) => {
@@ -168,7 +168,12 @@ class Sequence {
168
168
  * To let krill to work with Arch we need:
169
169
  */
170
170
  if (this.distro.familyId === 'archlinux') {
171
- await (0, utils_2.exec)(`sudo ln -s /run/archiso/bootmnt/live/ /live`);
171
+ if (this.distro.distroId === 'ManjaroLinux') {
172
+ await (0, utils_2.exec)(`sudo ln -s /run/miso/bootmnt/live/ /live`);
173
+ }
174
+ else {
175
+ await (0, utils_2.exec)(`sudo ln -s /run/archiso/bootmnt/live/ /live`);
176
+ }
172
177
  }
173
178
  this.unattended = unattended;
174
179
  this.nointeractive = nointeractive;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "penguins-eggs",
3
3
  "description": "Perri's Brewery edition: remaster your system and distribuite it",
4
- "version": "9.5.2",
4
+ "version": "9.5.4",
5
5
  "author": "Piero Proietti @pieroproietti",
6
6
  "bin": {
7
7
  "eggs": "bin/run"
@@ -0,0 +1,9 @@
1
+ echo SigLevel = Never
2
+ sudo rm /etc/calamares -rf
3
+ sudo rm /etc/ts.conf
4
+ sudo rm /etc/xdg/ui/ui_standards.rc
5
+ sudo rm /etc/xdg/menus/applications.menu
6
+ sudo rm /etc/xdg/accept-languages.codes
7
+ sudo rm /etc/xdg/kshorturifilterrc
8
+ sudo eggs calamares --install
9
+
@@ -1,3 +0,0 @@
1
- # Archlinux
2
-
3
- do to