penguins-eggs 9.1.26 → 9.1.29

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 (41) hide show
  1. package/README.md +35 -35
  2. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  3. package/addons/eggs/adapt/bin/{eggs-adapt.sh → adapt} +1 -0
  4. package/conf/distros/bionic/calamares/settings.yml +3 -3
  5. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +12 -0
  6. package/conf/distros/buster/calamares/calamares-modules/cleanup/module.yml +9 -0
  7. package/conf/distros/buster/calamares/modules/finished.yml +2 -2
  8. package/conf/distros/buster/calamares/settings.yml +3 -5
  9. package/conf/distros/focal/calamares/settings.yml +1 -1
  10. package/conf/distros/jessie/krill/settings.yml +1 -1
  11. package/conf/distros/rolling/calamares/modules/packages.yml +2 -2
  12. package/conf/distros/rolling/calamares/settings.yml +3 -3
  13. package/lib/classes/daddy.js +5 -2
  14. package/lib/classes/family/archlinux.js +1 -0
  15. package/lib/classes/family/debian.js +7 -7
  16. package/lib/classes/incubation/distros/bionic.js +1 -1
  17. package/lib/classes/incubation/distros/buster.js +1 -2
  18. package/lib/classes/incubation/distros/focal.js +1 -1
  19. package/lib/classes/incubation/distros/rolling.js +0 -1
  20. package/lib/classes/incubation/fisherman-helper/packages.js +3 -0
  21. package/lib/classes/incubation/incubator.js +1 -0
  22. package/lib/classes/krill_install.d.ts +0 -1
  23. package/lib/classes/krill_install.js +13 -13
  24. package/lib/classes/ovary.js +7 -9
  25. package/lib/classes/pacman.js +5 -38
  26. package/lib/classes/users.js +63 -60
  27. package/lib/classes/utils.js +1 -1
  28. package/lib/classes/xdg.js +6 -10
  29. package/lib/commands/config.d.ts +1 -1
  30. package/lib/commands/config.js +7 -5
  31. package/lib/commands/produce.js +2 -1
  32. package/lib/commands/syncto.js +8 -8
  33. package/oclif.manifest.json +1 -1
  34. package/package.json +3 -2
  35. package/scripts/_eggs +6 -15
  36. package/scripts/eggs-adapt.sh +5 -0
  37. package/scripts/eggs.bash +1 -2
  38. package/conf/distros/buster/calamares/calamares-modules/remove-link/module.yml +0 -9
  39. package/conf/distros/buster/calamares/calamares-modules/remove-link/remove-link.sh +0 -3
  40. package/conf/distros/buster/calamares/modules/shellprocess_eggs-cleanup.yml +0 -7
  41. package/conf/distros/focal/calamares/modules/displaymanager.yml +0 -11
package/README.md CHANGED
@@ -25,31 +25,33 @@ penguins-eggs
25
25
  <!-- tocstop -->
26
26
 
27
27
  # Presentation
28
- penguins-eggs is a console utility, in active development, who let you to remaster your system and redistribuite it as iso images or from the lan via PXE remote boot.
28
+ penguins-eggs is a console utility, under continuous development, that allows you to remaster your system and redistribute it as iso images or via remote boot PXE.
29
29
 
30
- The scope of this project is to implement the process of remastering your version of Linux, generate it as ISO image to burn on a CD/DVD or copy to a usb key to boot your system. You can also boot your egg - via remote boot - on your LAN. You can easily install your live system with gui calamares installer or eggs cli installer.
30
+ The purpose of this project is to implement the process of remastering your own version of Linux, generate it as an ISO image to burn to a CD/DVD or copy to a USB stick to boot your system. You can also boot your "egg" via remote booting-on your LAN. You can easily install your live system with the calamares installer or the eggs TUI installer.
31
31
 
32
- All it is written in pure typescript, so ideally can be used with differents Linux distros. Yes, there are big differences about package manager used, but not so much in the way to work of bash and in the various programs used to build the iso.
32
+ Also, thanks to the wardrobe, you can create or use scripts to switch from a "naked" version - with only a CLI interface - and "wear" it with a GUI or server configurations. See [penguins-wardrobe](https://github.com/pieroproietti/penguins-wardrobe), fork it and adapt it to yours needs.
33
33
 
34
- penguins-eggs, at the moment 2021 may is a mature tool and is extremely usefull, You can easily create your personal customized iso or your organization/school version of Linux and deploy it on your LAN, give it to your friends as usb key or publish yours eggs in the internet!
34
+ The whole thing is written in pure typescript, so ideally it can be used with different Linux distributions. Yes, there are major differences in terms of the package manager used, but not so much in the way bash works and the various programs used to build the isos.
35
35
 
36
- Try penguins-eggs, yes it is a console utility - no GUI - but don't be scared, penguins-eggs is a console command - really very simple - if you are able to open a terminal, you can use it and yours final users will enjoy of full gui and pratical installer to install your livecd.
36
+ penguins-eggs, as of May 2022, is a mature tool and is extremely powerful: you can easily create your own custom version of Linux for your organization/school and distribute it on your LAN, give it to your friends as a usb key, or post your images on the Internet!
37
+
38
+ Have no fear, yes eggs is a console utility - without a graphical user interface - but it is really simple - if you are able to open a terminal, you can use it and your end users will enjoy a complete help and fully graphical installation procedure.
37
39
 
38
40
  ### mom and dad
39
- I've added two lightweight assistants integrated with eggs: mom and dad. While mom is a bash script with whiptail - and guides the user to the various commands and documentation, dad started as a short way to create isos. All you have to do is type **sudo eggs dad** and follow simple instructions. You can also shortcut the way to reset the configuration **sudo dad -c** or - even faster - reset the configuration, load defaults, kill created isos. Simply type **sudo eggs dad -d** and you will immediately be able to produce the egg in the default /home/eggs nest.
41
+ I've added two lightweight assistants integrated with eggs: mom and dad. While mom is a bash script with whiptail - and guides the user to the various commands and documentation, dad started as a short way to create isos. All you have to do is type **sudo eggs dad** and follow simple instructions. You can also shortcut the way to reset the configuration **sudo dad -c** or - even faster - reset the configuration, load defaults, kill created isos: simply type **sudo eggs dad -d** and you will immediately be able to produce the egg in the default /home/eggs nest.
40
42
 
41
43
  ### yolk
42
- yolk so called - staying on the subject of eggs - is a local repository included in the livecd that contains a minimum of indispensable packages during installation. Thanks to yolk, you can safely install your system without the need of an active internet connection.
44
+ yolk - so called staying on the subject of eggs - is a local repository included in the livecd that contains a minimum of indispensable packages during installation. Thanks to yolk, you can safely install your system without the need of an active internet connection.
43
45
 
44
46
  ### wardrobe
45
47
  wardrobe was added to eggs on april 2022, it's is a way to guide and consolidate the process of creating a custom version of Linux, starting from a CLI system. All my personal editions are passed to use wardrobe for their convenience, in that way I can organize, consolidate and manage better my work. I used birds names for my customizations, we have: colibri, duck, eagle, owl, wagtail and warbier.
46
48
 
47
49
  I hope peoples will be interested in wardrobe and you will end to fork the main repository and add your customizations: together will be possibile to make great steps impossible for a single developer.
48
50
 
49
- You can read more in wardrobe on [penguin's eggs blog](https://penguins-eggs.net/2022/04/12/wardrobe-colibri-duck-eagle-and-owl/). The result of mine customizations are under [ISOs/Debian/bullseys](https://sourceforge.net/projects/penguins-eggs/files/iso/debian/bullseye/) on my sourgeforce page.
51
+ You can read more in wardrobe on [penguin's eggs blog](https://penguins-eggs.net/2022/04/12/wardrobe-colibri-duck-eagle-and-owl/). The results of mine customizations are mostly under [Debian bullseye](https://sourceforge.net/projects/penguins-eggs/files/iso/debian/bullseye/), [Devuan chimaera](https://sourceforge.net/projects/penguins-eggs/files/iso/devuan/chimaera/) and [Ubuntu jammy](https://sourceforge.net/projects/penguins-eggs/files/iso/ubuntu/jammy/) on my sourgeforce page.
50
52
 
51
53
  ### krill
52
- eggs include a CLI installer named krill, this ley you to produce and install servers configurations. krill use a nice TUI interface using the same, configuration created by eggs for [calamares](calamares.io). This lead to have "about the same" experience installing, from old distros to new one and for GUI and CLI. To force using krill in place of calamares in a GUI system just: **sudo eggs install --cli**
54
+ eggs include a CLI installer named krill, this let you to produce and install servers configurations. krill use a nice TUI interface using the same, configuration created by eggs for [calamares](calamares.io). This lead to have "about the same" experience installing, from old distros to new ones and for GUI and CLI. To force using krill in place of calamares in a GUI system just: **sudo eggs install --cli**
53
55
 
54
56
  ### addons and themes
55
57
  Addons are used mostly to let third parties to develop extensions. Note that currently we have an extension for the theme that includes both branding calamares, link and installer icon. In addition, also as an addon has been developed choose between GUI or CLI installation, adapt the video resolution, link to remote support, etc.
@@ -60,12 +62,11 @@ You can use the backup mode by simply adding --backup in the produce command. Th
60
62
  * ```eggs produce``` just remove users accounts and home. This let to have working servers examples;
61
63
  * ```eggs produce --backup``` remove servers and users data from live, and put them on a LUKS volume.
62
64
 
63
- Since version 9.0.16 we have two new commands: ```eggs syncfrom``` (alias restore) and ```eggs syncto``` (alias backup).
65
+ We have another two commands for backup/restore: ```eggs syncfrom``` and ```eggs syncto```. A working installation, can easily sync users and servers data to a luks-eggs-backup file:
64
66
 
65
- A working installation, can easily sync users and servers data to a luks-eggs-backup:
66
67
  * ```eggs syncto -f /tmp/luks-eggs-backup``` backup users and servers data to LUKS volume /tmp/luks-eggs-backup:
67
68
 
68
- A new installation, can easyly get users and servers data from a luks-eggs-backup:
69
+ Or a new installation, can easyly get users and servers data from a luks-eggs-backup:
69
70
  * ```eggs syncfrom from -f /tmp/luks-eggs-backup``` restore users and servers data from the LUKS volume /tmp/luks-eggs-backup.
70
71
 
71
72
  **NOTE:**
@@ -73,17 +74,16 @@ A new installation, can easyly get users and servers data from a luks-eggs-backu
73
74
  * installing with calamares: when installation is finished, you need to mount the rootdir of your installed system and, give the following command: ```sudo eggs syncfrom -f /path/to/luks-eggs-backup -r /path/to/rootdir```
74
75
  * it's possbile actually to change the nest directory, editing configuration file ```/etc/penguins-eggs.d/eggs.yaml```. Example: ```set snapshot_dir: '/opt/eggs/'```, but you can't use the following: /etc, /boot, /usr and /var.
75
76
 
76
- **DISCLAIM:** using this new feathures can be dangerous for your data:
77
- * ```syncfrom``` replace all users homes and all servers homes with data from the luck-eggs-backup, Force this data in not appropriate system can easily end in a long disaster recovery;
78
- * I want stress you again on the fact we are working with a **live filesystem** mounted binded to the **REAL filesystem**. This mean who removing a directory under the nest, usually ```/nest/ovarium/filesystem.squashfs```, mean remove it from the REAL filesystem. So, if something went wrong during the iso production and You remain with live filesystem again binded, the shortest way to solve the problem is simply reboot.
77
+ **DISCLAIM:** using this feathures in non appropriate way can be dangerous for your data:
78
+ * ```syncfrom``` replace all users homes and all servers homes with data from the luck-eggs-backup file, Force this data in a not appropriate system can easily end in a long disaster recovery.
79
79
 
80
80
  ## What distributions can I use?
81
- eggs was born on Debian strecth/buster, but actually full support Debian from jessie to bookworm/sid, Devuan beowulf, chimaera, daedalus, Ubuntu bionic, focal, jammy and all derivatives including Linux mint, Deepin, neon KDE, etc. Eggs is able to remaster and install manjaro linux too and derivated.
81
+ eggs was born on Debian strecth, buster and following, actually full support Debian from jessie to bookworm/sid, Devuan beowulf, chimaera, daedalus, Ubuntu bionic, focal, jammy and all derivatives from them, including Linux mint, Deepin, neon KDE, etc. Eggs is able to remaster and install manjaro linux too and derivated, i need help to continue the effort to manjaro.
82
82
 
83
83
  You can read more on the [blog](https://penguins-eggs.net/2021/11/02/distros-that-can-be-remastered-with-eggs/), some examples of iso images remastered with eggs are in the [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/files/iso/).
84
84
 
85
85
  ## What architecture can I use?
86
- From eggs v. 8.0.4 I'm releasing eggs in 4 differents architectures: **i386**, **amd64**, **arm64** and **armel**. eggs - at the moment - produce in i386 and amd64, but can be installed already on arm64 and armel. This mean who it is possible to install it in [raspberrypi](https://www.raspberrypi.org/), but again not possible to produce a [Raspberry Pi OS](https://www.raspberrypi.org/software/) egg in armel or arm64. I'm working to complete this step, but need help and experience.
86
+ Eggs, can be released for differents architectures: **amd64**, **arm64** and **armel**. Actually I'm producing mainly for PCs (amd64) and armel. Someone want to contribute to bring eggs on [raspberrypi](https://www.raspberrypi.org/)?
87
87
 
88
88
  # Packages
89
89
  eggs is released deb packages for i386, amd64, armel and arm64 architectures. Due the characteristic of eggs, they can installed in Debian, Devuan or Ubuntu based distros, withouth worries about different versions, except for the architecture. It include standard scripts for preinst, postinst, prerm and postrm.
@@ -108,7 +108,7 @@ Update your repositories: **sudo apt update** and install eggs: **sudo apt insta
108
108
  The simplest way to install eggs is download the [package eggs](https://sourceforge.net/projects/penguins-eggs/files/packages-deb/) from [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/) and install it
109
109
 
110
110
  ```
111
- sudo dpkg -i eggs_9.1.24_amd64.deb
111
+ sudo dpkg -i eggs_9.1.26_amd64.deb
112
112
  ```
113
113
 
114
114
  or, on a i386 system:
@@ -132,7 +132,7 @@ $ npm install -g penguins-eggs
132
132
  $ eggs COMMAND
133
133
  running command...
134
134
  $ eggs (--version|-v)
135
- penguins-eggs/9.1.26 linux-x64 node-v18.2.0
135
+ penguins-eggs/9.1.29 linux-x64 node-v16.15.0
136
136
  $ eggs --help [COMMAND]
137
137
  USAGE
138
138
  $ eggs COMMAND
@@ -188,7 +188,7 @@ DESCRIPTION
188
188
  adapt monitor resolution for VM only
189
189
  ```
190
190
 
191
- _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/adapt.ts)_
191
+ _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/adapt.ts)_
192
192
 
193
193
  ## `eggs analyze`
194
194
 
@@ -209,7 +209,7 @@ EXAMPLES
209
209
  $ sudo eggs analyze
210
210
  ```
211
211
 
212
- _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/analyze.ts)_
212
+ _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/analyze.ts)_
213
213
 
214
214
  ## `eggs autocomplete [SHELL]`
215
215
 
@@ -267,7 +267,7 @@ EXAMPLES
267
267
  install calamares and create it's configuration's files
268
268
  ```
269
269
 
270
- _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/calamares.ts)_
270
+ _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/calamares.ts)_
271
271
 
272
272
  ## `eggs config`
273
273
 
@@ -291,7 +291,7 @@ EXAMPLES
291
291
  Configure and install prerequisites deb packages to run it
292
292
  ```
293
293
 
294
- _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/config.ts)_
294
+ _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/config.ts)_
295
295
 
296
296
  ## `eggs dad`
297
297
 
@@ -311,7 +311,7 @@ DESCRIPTION
311
311
  ask help from daddy - configuration helper
312
312
  ```
313
313
 
314
- _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/dad.ts)_
314
+ _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/dad.ts)_
315
315
 
316
316
  ## `eggs export deb`
317
317
 
@@ -402,7 +402,7 @@ DESCRIPTION
402
402
  informations about eggs configuration
403
403
  ```
404
404
 
405
- _See code: [src/commands/info.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/info.ts)_
405
+ _See code: [src/commands/info.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/info.ts)_
406
406
 
407
407
  ## `eggs install`
408
408
 
@@ -427,7 +427,7 @@ EXAMPLES
427
427
  Install the system using GUI or CLI installer
428
428
  ```
429
429
 
430
- _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/install.ts)_
430
+ _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/install.ts)_
431
431
 
432
432
  ## `eggs kill`
433
433
 
@@ -449,7 +449,7 @@ EXAMPLES
449
449
  kill the eggs/free the nest
450
450
  ```
451
451
 
452
- _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/kill.ts)_
452
+ _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/kill.ts)_
453
453
 
454
454
  ## `eggs mom`
455
455
 
@@ -466,7 +466,7 @@ DESCRIPTION
466
466
  ask for mommy - gui helper
467
467
  ```
468
468
 
469
- _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/mom.ts)_
469
+ _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/mom.ts)_
470
470
 
471
471
  ## `eggs produce`
472
472
 
@@ -527,7 +527,7 @@ EXAMPLES
527
527
  in /home/eggs/ovarium and you can customize all you need
528
528
  ```
529
529
 
530
- _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/produce.ts)_
530
+ _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/produce.ts)_
531
531
 
532
532
  ## `eggs remove`
533
533
 
@@ -557,7 +557,7 @@ EXAMPLES
557
557
  remove eggs, eggs configurations, packages dependencies
558
558
  ```
559
559
 
560
- _See code: [src/commands/remove.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/remove.ts)_
560
+ _See code: [src/commands/remove.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/remove.ts)_
561
561
 
562
562
  ## `eggs syncfrom`
563
563
 
@@ -581,11 +581,11 @@ EXAMPLES
581
581
  $ sudo eggs restore
582
582
  ```
583
583
 
584
- _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/syncfrom.ts)_
584
+ _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/syncfrom.ts)_
585
585
 
586
586
  ## `eggs syncto`
587
587
 
588
- Backup users, server and datas to luks-eggs-backup
588
+ saving users' datas and accounts on LUKS volume
589
589
 
590
590
  ```
591
591
  USAGE
@@ -598,13 +598,13 @@ FLAGS
598
598
  --delete=<value> rsync --delete delete extraneous files from dest dirs
599
599
 
600
600
  DESCRIPTION
601
- Backup users, server and datas to luks-eggs-backup
601
+ saving users' datas and accounts on LUKS volume
602
602
 
603
603
  EXAMPLES
604
604
  $ sudo eggs syncto
605
605
  ```
606
606
 
607
- _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/syncto.ts)_
607
+ _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/syncto.ts)_
608
608
 
609
609
  ## `eggs tools clean`
610
610
 
@@ -699,7 +699,7 @@ EXAMPLES
699
699
  update/upgrade the penguin's eggs tool
700
700
  ```
701
701
 
702
- _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.26/src/commands/update.ts)_
702
+ _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v9.1.29/src/commands/update.ts)_
703
703
 
704
704
  ## `eggs version`
705
705
 
@@ -3,7 +3,7 @@
3
3
  Encoding=UTF-8
4
4
  Name=adapt resolution
5
5
  Type=Application
6
- Exec=/usr/bin/eggs adapt
6
+ Exec=/usr/local/bin/adapt
7
7
  Icon=video-display
8
8
  Categories=GNOME;GTK;Utility;
9
9
  Name[it]=Adatta risoluzione
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env bash
1
2
  xrandr --output Virtual-0 --auto > /dev/null
2
3
  xrandr --output Virtual-1 --auto > /dev/null
3
4
  xrandr --output Virtual-2 --auto > /dev/null
@@ -3,7 +3,7 @@
3
3
  # Syntax is YAML 1.2
4
4
  ---
5
5
  # "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
6
- modules-search: [local, /usr/lib/calamares/modules]
6
+ modules-search: [local, /usr/lib/calamares/modules, /usr/lib/x86_64-linux-gnu/calamares/modules]
7
7
 
8
8
  sequence:
9
9
  - show:
@@ -18,7 +18,7 @@ sequence:
18
18
  - mount
19
19
  - unpackfs
20
20
  - sources-yolk
21
- - {{hasSystemd}}machineid
21
+ {{hasSystemd}}machineid
22
22
  - fstab
23
23
  - locale
24
24
  - keyboard
@@ -39,8 +39,8 @@ sequence:
39
39
  - add386arch
40
40
  - packages
41
41
  - removeuser
42
- - remove-link
43
42
  - sources-yolk-unmount
43
+ - cleanup
44
44
  - umount
45
45
  - show:
46
46
  - finished
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+ CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
3
+
4
+ if [ -f "$CHROOT"/etc/motd ]; then
5
+ sed -i '/^eggs-start-message/,/^\eggs-end-message/{/^#/!{/^\$/!d;};}' "$CHROOT"/etc/motd
6
+ fi
7
+
8
+ if [ -f "$CHROOT"/etc/issue ]; then
9
+ sed -i '/^eggs-start-message/,/^\eggs-end-message/{/^#/!{/^\$/!d;};}' "$CHROOT"/etc/issue
10
+ fi
11
+
12
+ rm -r $CHROOT/usr/share/applications/install-debian.desktop
@@ -0,0 +1,9 @@
1
+ # Common
2
+ # cleanup
3
+ ---
4
+ type: "job"
5
+ name: "cleanup"
6
+ interface: "process"
7
+ chroot: false
8
+ command: "/usr/sbin/cleanup.sh"
9
+ timeout: 8
@@ -2,5 +2,5 @@
2
2
  ---
3
3
  restartNowEnabled: true
4
4
  restartNowChecked: true
5
- # restartNowCommand: {{restartNowCommand}}
6
- restartNowCommand: "systemctl -i reboot"
5
+ restartNowCommand: {{restartNowCommand}}
6
+ # restartNowCommand: "systemctl -i reboot"
@@ -38,9 +38,9 @@ disable-cancel-during-exec: false
38
38
  quit-at-end: false
39
39
 
40
40
  instances:
41
- - id: eggs-cleanup
41
+ - id: cleanup
42
42
  module: shellprocess
43
- config: shellprocess_eggs-cleanup.conf
43
+ config: shellprocess_cleanup.conf
44
44
 
45
45
  sequence:
46
46
  # Phase 1 - prepare.
@@ -87,9 +87,8 @@ sequence:
87
87
  - initramfs
88
88
  # dpkg-unsafe-io-undo
89
89
  - removeuser
90
- - shellprocess@eggs-cleanup
91
- - remove-link
92
90
  - sources-yolk-unmount
91
+ - cleanup
93
92
  - umount
94
93
 
95
94
  # Phase 3 - postinstall.
@@ -129,4 +128,3 @@ prompt-install: false
129
128
  #
130
129
  # YAML: boolean.
131
130
  dont-chroot: false
132
-
@@ -57,8 +57,8 @@ sequence:
57
57
  - shellprocess@add386arch
58
58
  - packages
59
59
  - removeuser
60
- - remove-link
61
60
  # - shellprocess@logs
61
+ - cleanup
62
62
  - sources-yolk-unmount
63
63
  - umount
64
64
  - show:
@@ -47,8 +47,8 @@ sequence:
47
47
  - initramfscfg
48
48
  - initramfs
49
49
  - removeuser
50
- - remove-link
51
50
  - sources-yolk-unmount
51
+ - cleanup
52
52
  - umount
53
53
 
54
54
  # Phase 3 - postinstall.
@@ -1,7 +1,7 @@
1
- # Debian Buster
1
+ # manjaro
2
2
  # packages
3
3
  ---
4
- backend: apt
4
+ backend: pamac
5
5
 
6
6
  operations:
7
7
  {{remove}}
@@ -4,9 +4,9 @@
4
4
  modules-search: [local, /usr/lib/calamares/modules, /usr/share/calamares]
5
5
 
6
6
  instances:
7
- - id: eggs-cleanup
7
+ - id: cleanup
8
8
  module: shellprocess
9
- config: shellprocess_eggs-cleanup.conf
9
+ config: shellprocess_cleanup.conf
10
10
 
11
11
  sequence:
12
12
  # Phase 1 - prepare.
@@ -51,7 +51,7 @@ sequence:
51
51
  #- initramfscfg
52
52
  #- initramfs
53
53
  - removeuser
54
- #- shellprocess@eggs-cleanup
54
+ #- shellprocess@cleanup
55
55
  #- remove-link
56
56
  #- sources-yolk-unmount
57
57
  - umount
@@ -83,8 +83,11 @@ class Daddy {
83
83
  }
84
84
  case 'max': {
85
85
  const filter = 'x86';
86
- if (process.arch === 'armel') {
87
- const filter = 'ARM';
86
+ if (process.arch === 'arm') {
87
+ const filter = 'ARM'; // to check
88
+ }
89
+ else if (process.arch === 'arm64') {
90
+ const filter = 'ARM64'; // to check
88
91
  }
89
92
  config.compression = 'xz -Xbcj ' + filter;
90
93
  break;
@@ -36,6 +36,7 @@ class Archlinux {
36
36
  * Crea array pacchetti da installare/rimuovere
37
37
  */
38
38
  static packages(remove = false, verbose = false) {
39
+ // non può essere pacman è universalmente presente
39
40
  const packages = ['arch-install-scripts', 'awk', 'dosfstools', 'e2fsprogs', 'erofs-utils', 'findutils', 'gzip', 'libarchive', 'libisoburn', 'mtools', 'openssl', 'pacman', 'rsync', 'sed', 'syslinux', 'squashfs-tools'];
40
41
  const toInstall = [];
41
42
  const toRemove = [];
@@ -24,13 +24,13 @@ class Debian {
24
24
  */
25
25
  static isInstalledXorg() {
26
26
  let test = 'xserver-xorg-core';
27
- if (pacman_1.default.distro().codenameLikeId === 'bionic') {
28
- /**
29
- * BUT_ on Ubuntu bionic we have:
30
- * xserver-xorg-core-hwe-18.04
31
- */
32
- test = 'xserver-xorg-core-hwe-18.04';
33
- }
27
+ // if (Pacman.distro().codenameLikeId === 'bionic') {
28
+ /*
29
+ * BUT_ on Ubuntu bionic we have:
30
+ * xserver-xorg-core-hwe-18.04
31
+ */
32
+ // test = 'xserver-xorg-core-hwe-18.04'
33
+ //}
34
34
  return this.packageIsInstalled(test);
35
35
  }
36
36
  /**
@@ -59,8 +59,8 @@ class Bionic {
59
59
  await fisherman.buildCalamaresModule('add386arch', false);
60
60
  await fisherman.modulePackages(this.distro, this.release); //
61
61
  await fisherman.moduleRemoveuser(this.user_opt); //
62
- await fisherman.buildCalamaresModule('remove-link', true);
63
62
  await fisherman.buildCalamaresModule('sources-yolk-unmount', false);
63
+ await fisherman.buildCalamaresModule('cleanup', true);
64
64
  await fisherman.buildModule('umount');
65
65
  await fisherman.buildModule('finished');
66
66
  }
@@ -61,12 +61,11 @@ class Buster {
61
61
  await fisherman.buildModule('plymouthcfg');
62
62
  await fisherman.buildModule('initramfscfg');
63
63
  await fisherman.buildModule('initramfs');
64
- await fisherman.shellprocess('eggs-cleanup');
65
64
  await fisherman.moduleRemoveuser(this.user_opt);
66
65
  await fisherman.buildCalamaresModule('dpkg-unsafe-io-undo', false);
67
66
  await fisherman.buildCalamaresModule('sources-yolk-unmount', false);
67
+ await fisherman.buildCalamaresModule('cleanup', true);
68
68
  await fisherman.buildModule('umount');
69
- await fisherman.buildCalamaresModule('remove-link');
70
69
  await fisherman.moduleFinished();
71
70
  }
72
71
  }
@@ -62,9 +62,9 @@ class Focal {
62
62
  await fisherman.shellprocess('add386arch');
63
63
  await fisherman.modulePackages(this.distro, this.release); //
64
64
  await fisherman.moduleRemoveuser(this.user_opt);
65
- await fisherman.buildCalamaresModule('remove-link', true);
66
65
  await fisherman.buildCalamaresModule('sources-yolk', false);
67
66
  await fisherman.buildCalamaresModule('sources-yolk-unmount', false);
67
+ await fisherman.buildCalamaresModule('cleanup', true);
68
68
  await fisherman.buildModule('umount');
69
69
  await fisherman.buildModule('finished');
70
70
  }
@@ -60,7 +60,6 @@ class Rolling {
60
60
  await fisherman.buildModule('plymouthcfg');
61
61
  // await fisherman.buildModule('initramfscfg')
62
62
  // await fisherman.buildModule('initramfs')
63
- // await fisherman.shellprocess('eggs-cleanup')
64
63
  await fisherman.moduleRemoveuser(this.user_opt);
65
64
  // await fisherman.buildCalamaresModule('sources-yolk-unmount', false)
66
65
  // await fisherman.buildCalamaresModule('remove-link')
@@ -14,6 +14,9 @@ function remove(distro) {
14
14
  let removePackages = pacman_1.default.packages(remove);
15
15
  removePackages.push("calamares");
16
16
  removePackages.push("eggs");
17
+ if (distro.distroLike === 'Arch') {
18
+ removePackages = ["calamares"]; // penguins-eggs, manjaro-tools-iso, arch-install-scripts
19
+ }
17
20
  const mustRemain = ["coreutils", "cryptsetup", "curl", "dosfstools", "git", "parted", "rsync"];
18
21
  let sorted = [];
19
22
  for (const elem of removePackages) {
@@ -95,6 +95,7 @@ class Incubator {
95
95
  * Manjaro
96
96
  */
97
97
  case 'rolling': {
98
+ release = true;
98
99
  const rolling = new rolling_1.Rolling(this.installer, this.remix, this.distro, release, this.user_opt, this.verbose);
99
100
  await rolling.create();
100
101
  break;
@@ -32,7 +32,6 @@
32
32
  - initramfscfg OK
33
33
  - initramfs OK
34
34
  - removeuser OK
35
- - remove-link // OK
36
35
  - sources-yolk-unmount // execCalamaresModule('sources-yolk-unmount')
37
36
  - umount // this.umountVfs, this.umountFs
38
37
  */
@@ -301,20 +301,20 @@ class Hatching {
301
301
  catch (error) {
302
302
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
303
303
  }
304
- // delLiveUser
305
- message = "Removing user live ";
306
- percent = 0.70;
307
- try {
308
- redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
309
- await this.delLiveUser();
310
- }
311
- catch (error) {
312
- await utils_1.default.pressKeyToExit(JSON.stringify(error));
313
- }
314
304
  /**
315
- * if NOT restore users data
305
+ * IF NOT RESTORE USERS DATA
316
306
  */
317
307
  if (!fs_1.default.existsSync(this.luksFile)) {
308
+ // delLiveUser
309
+ message = "Removing user live ";
310
+ percent = 0.70;
311
+ try {
312
+ redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
313
+ await this.delLiveUser();
314
+ }
315
+ catch (error) {
316
+ await utils_1.default.pressKeyToExit(JSON.stringify(error));
317
+ }
318
318
  // addUser
319
319
  message = "Adding user ";
320
320
  percent = 0.73;
@@ -461,14 +461,14 @@ adduser ${name} \
461
461
  async delLiveUser() {
462
462
  if (utils_1.default.isLive()) {
463
463
  const user = this.settings.config.user_opt;
464
- let cmd = `#!/bin/sh\ngetent passwd "${user}" > /dev/null`;
465
464
  let userExists = false;
466
465
  try {
466
+ const cmd = `#!/bin/sh\ngetent passwd "${user}" > /dev/null`;
467
467
  await (0, utils_2.exec)(cmd, utils_1.default.setEcho(this.verbose));
468
468
  userExists = true;
469
469
  }
470
470
  catch (error) {
471
- // console.log(error)
471
+ console.log(error);
472
472
  }
473
473
  finally {
474
474
  if (userExists) {
@@ -86,8 +86,6 @@ class Ovary {
86
86
  }
87
87
  let luksName = 'luks-eggs-backup';
88
88
  let luksFile = `/tmp/${luksName}`;
89
- // let luksDevice = `/dev/mapper/${luksName}`
90
- // let luksMountpoint = `/mnt`
91
89
  if (this.familyId === 'debian') {
92
90
  const yolk = new yolk_1.default();
93
91
  if (!yolk.yolkExists()) {
@@ -118,8 +116,9 @@ class Ovary {
118
116
  const bleach = new bleach_1.default();
119
117
  await bleach.clean(verbose);
120
118
  }
119
+ utils_2.default.warning('eggs will remove users accounts and datas from live');
121
120
  if (backup) {
122
- console.log(`eggs will remove all users and services data from live. Following datas will included on a crypted LUKS volume:`);
121
+ console.log(`Follow users' data and accounts will be saved in a crypted LUKS volume:`);
123
122
  const users = await this.usersFill();
124
123
  for (let i = 0; i < users.length; i++) {
125
124
  if (users[i].saveIt) {
@@ -134,9 +133,6 @@ class Ovary {
134
133
  }
135
134
  }
136
135
  }
137
- else {
138
- utils_2.default.warning('eggs will remove all the users data from live, but all services data will be included uncrypted');
139
- }
140
136
  /**
141
137
  * NOTE: reCreate = false
142
138
  *
@@ -188,6 +184,8 @@ class Ovary {
188
184
  }
189
185
  if (backup) {
190
186
  await (0, utils_1.exec)('eggs syncto', utils_2.default.setEcho(true));
187
+ utils_2.default.warning(`Waiting 10s, before to move ${luksFile} in ${this.settings.config.snapshot_dir}ovarium/iso/live`);
188
+ await (0, utils_1.exec)('sleep 10', utils_2.default.setEcho(false));
191
189
  utils_2.default.warning(`moving ${luksFile} in ${this.settings.config.snapshot_dir}ovarium/iso/live`);
192
190
  await (0, utils_1.exec)(`mv ${luksFile} ${this.settings.config.snapshot_dir}ovarium/iso/live`, this.echo);
193
191
  }
@@ -965,11 +963,10 @@ class Ovary {
965
963
  */
966
964
  // adapt
967
965
  if (myAddons.adapt) {
968
- // if (Pacman.packageIsInstalled('lxde-core') || Pacman.packageIsInstalled('deepin-desktop-base') || Pacman.packageIsInstalled('mate-desktop') || Pacman.packageIsInstalled('ubuntu-mate-core') || Pacman.packageIsInstalled('xfce4')) {
969
966
  const dirAddon = node_path_1.default.resolve(__dirname, `../../addons/eggs/adapt/`);
970
967
  shelljs_1.default.cp(`${dirAddon}/applications/eggs-adapt.desktop`, `${this.settings.work_dir.merged}/usr/share/applications/`);
971
- // shx.cp(`${dirAddon}/bin/eggs-adapt.sh`, `${this.settings.work_dir.merged}/usr/local/bin/`)
972
- // }
968
+ shelljs_1.default.cp(`${dirAddon}/bin/adapt`, `${this.settings.work_dir.merged}/usr/local/bin/`);
969
+ shelljs_1.default.chmod('+x', `${this.settings.work_dir.merged}/usr/local/bin/adapt`);
973
970
  }
974
971
  // ichoice
975
972
  if (myAddons.ichoice) {
@@ -978,6 +975,7 @@ class Ovary {
978
975
  const dirAddon = node_path_1.default.resolve(__dirname, '../../addons/eggs/ichoice/');
979
976
  shelljs_1.default.cp(`${dirAddon}/applications/eggs-ichoice.desktop`, `${this.settings.work_dir.merged}/usr/share/applications/`);
980
977
  shelljs_1.default.cp(`${dirAddon}/bin/eggs-ichoice.sh`, `${this.settings.work_dir.merged}/usr/local/bin/`);
978
+ shelljs_1.default.chmod('+x', `${this.settings.work_dir.merged}/usr/local/bin/eggs-ichoice.sh`);
981
979
  }
982
980
  // pve
983
981
  if (myAddons.pve) {