penguins-eggs 10.0.24 → 10.0.27
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 +7 -7
- 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 +37 -8
- 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/scripts/love +13 -18
|
@@ -6,31 +6,28 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
7
|
</head>
|
|
8
8
|
<body>
|
|
9
|
-
<h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.
|
|
9
|
+
<h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.27</h1>
|
|
10
10
|
<h1>SYNOPSIS</h1>
|
|
11
|
-
<p>
|
|
12
|
-
<
|
|
11
|
+
<p>eggs is a console utility, in active development, who let you to remaster your system and redistribuite it as live ISO image.</p>
|
|
12
|
+
<h1>INSTALL</h1>
|
|
13
|
+
<p>AlpineLinux</p>
|
|
14
|
+
<pre><code>$ doas apk add penguins-eggs@testing
|
|
13
15
|
</code></pre>
|
|
14
|
-
<p>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
$ cd penguins-eggs.git
|
|
18
|
-
$ makepkg -si
|
|
16
|
+
<p>Arch</p>
|
|
17
|
+
<pre><code>$ sudo pacman -S penguins-eggs
|
|
18
|
+
$ sudo pacman -U penguins-eggs_10.0.27-1_amd64-1-x86_64.pkg.tar.zst
|
|
19
19
|
</code></pre>
|
|
20
|
-
<p>
|
|
21
|
-
<pre><code>$
|
|
22
|
-
$
|
|
23
|
-
$ makepkg -si
|
|
20
|
+
<p>Debian/Devuan/Ubuntu</p>
|
|
21
|
+
<pre><code>$ sudo apt install penguins-eggs
|
|
22
|
+
$ sudo dpkg -i penguins-eggs_10.0.27-1_amd64.deb
|
|
24
23
|
</code></pre>
|
|
25
|
-
<p>Manjaro
|
|
26
|
-
<pre><code>$
|
|
27
|
-
$ cd penguins-eggs-manjaro
|
|
28
|
-
$ makepkg -si
|
|
24
|
+
<p>Manjaro</p>
|
|
25
|
+
<pre><code>$ sudo pamac install penguins-eggs
|
|
29
26
|
</code></pre>
|
|
30
27
|
<h1>USAGE</h1>
|
|
31
28
|
<pre><code>$ eggs (-v|--version|version)
|
|
32
29
|
|
|
33
|
-
penguins-eggs/10.0.
|
|
30
|
+
penguins-eggs/10.0.27
|
|
34
31
|
$ eggs --help [COMMAND]
|
|
35
32
|
|
|
36
33
|
USAGE
|
|
@@ -39,19 +36,16 @@ $ eggs COMMAND
|
|
|
39
36
|
<p>Most of the commands of eggs need sudo, but there are exceptions for export, info and mom.</p>
|
|
40
37
|
<p>examples:</p>
|
|
41
38
|
<pre><code>sudo eggs produce
|
|
42
|
-
sudo eggs produce --
|
|
43
|
-
sudo eggs produce --clone
|
|
39
|
+
sudo eggs produce --pendrive --clone
|
|
44
40
|
sudo eggs kill
|
|
45
41
|
</code></pre>
|
|
46
|
-
<p>There are too two interactive helpers:</p>
|
|
42
|
+
<p>There are too two interactive helpers, probably you already know:</p>
|
|
47
43
|
<pre><code>eggs mom
|
|
48
44
|
sudo eggs dad
|
|
49
|
-
sudo eggs dad -d
|
|
50
45
|
</code></pre>
|
|
51
|
-
<p>
|
|
46
|
+
<p>We have a comprehensive guide at https://penguins-eggs.net, help yorself signing on telegram https://t.me/penguins_eggs on facebook group, or writing me.</p>
|
|
52
47
|
<h1>DESCRIPTION</h1>
|
|
53
|
-
<p>
|
|
54
|
-
<p>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 easily install your live system with gui installer (calamares) or eggs CLI installer (krill).</p>
|
|
48
|
+
<p>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 live. Of course, You can easily install your live image using GUI installer (calamares) or CLI installer (krill) always included.</p>
|
|
55
49
|
<h1>COMMANDS</h1>
|
|
56
50
|
<ul>
|
|
57
51
|
<li><a href="#eggs-adapt"><code>eggs adapt</code></a></li>
|
|
@@ -204,7 +198,7 @@ EXAMPLES
|
|
|
204
198
|
<h2><code>eggs dad</code></h2>
|
|
205
199
|
<p>ask help from daddy - TUI configuration helper</p>
|
|
206
200
|
<pre><code>USAGE
|
|
207
|
-
$ eggs dad [-c] [-d] [-
|
|
201
|
+
$ eggs dad [-c] [-d] [-f <value>] [-h] [-v]
|
|
208
202
|
|
|
209
203
|
FLAGS
|
|
210
204
|
-c, --clean remove old configuration before to create
|
|
@@ -701,10 +695,10 @@ EXAMPLES
|
|
|
701
695
|
all eggs configurations are here
|
|
702
696
|
|
|
703
697
|
/etc/penguins-eggs.d/exclude.list
|
|
704
|
-
exclude.list
|
|
698
|
+
exclude.list
|
|
705
699
|
|
|
706
|
-
/usr/lib/penguins-eggs
|
|
707
|
-
|
|
700
|
+
/usr/lib/penguins-eggs
|
|
701
|
+
where eggs is installed
|
|
708
702
|
</code></pre>
|
|
709
703
|
<h1>TROUBLES</h1>
|
|
710
704
|
<h2>BUGS</h2>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# AlpineLinux
|
|
2
|
+
|
|
3
|
+
Sto cercando una soluzione per montare il mio `filesystem.squasfs` attraverso un apposito `initramfs-lts` custom che viene inserito nella ISO.
|
|
4
|
+
|
|
5
|
+
Dato che dobbiamo avere a disposizione squashfs ed overlay per montare il `filesystem.squash`, li ho aggiunti alle features del file utilizzato per la configurazione: `live.conf`
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
# live conf
|
|
9
|
+
features="ata base ide scsi usb cdrom virtio blkid squashfs overlay ext4"
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
La creazione di `initramfs-lts` avviene all'interno di `ovary.ts` chiamando il metodo `initrdAlpine()`:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/**
|
|
16
|
+
* initrdAlpine()
|
|
17
|
+
*/
|
|
18
|
+
async initrdAlpine() {
|
|
19
|
+
Utils.warning(`creating ${path.basename(this.settings.initrdImg)} Alpine on ISO/live`)
|
|
20
|
+
let initrdImg='initramfs-lts'
|
|
21
|
+
const pathConf = path.resolve(__dirname, `../../mkinitfs/live.conf`)
|
|
22
|
+
const sidecar = path.resolve(__dirname, `../../mkinitfs/sidecar.sh`)
|
|
23
|
+
await exec(`mkinitfs -c ${pathConf} -o ${this.settings.iso_work}live/${initrdImg}`, Utils.setEcho(true))
|
|
24
|
+
await exec(`cp ${sidecar} ${this.settings.iso_work}live/`)
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Nella stessa funzione, lo script `sidecar.sh` viene creato e viene inserito all'interno della carlella `live` della ISO.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
L'avvio del live è possibile solo da sistemi BIOS, il sistema viene avviato ma `initramfs-lts` va in emergency mode, non è previsto il mount con overlayfs.
|
|
32
|
+
|
|
33
|
+
A questo punto, basta montare la ISO, digitare exit per trovarisi in emergency shell e lanciare sidecar.sh:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
mkdir /mnt/
|
|
37
|
+
mount /dev/sr0 /mnt
|
|
38
|
+
exit
|
|
39
|
+
/mnt/live/sidecar.sh
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Le istruzioni di `sidecar.sh` utilizzano `/sysroot` come mountpoint per il mount RW del filesystem live e, digitanto ancora `exit` per tornare all'init, verrà correttamente eseguito lo `switch_root` ed il sistema verrà avviato.
|
|
43
|
+
|
|
44
|
+
Resta da vedere se è possibile includere questo in un vero init.
|
|
45
|
+
|
|
46
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/sh -e
|
|
2
|
+
|
|
3
|
+
# At the end of the boot, initram goes into emergency,
|
|
4
|
+
# we give the following commands:
|
|
5
|
+
# mkdir /mnt
|
|
6
|
+
# mount /dev/sr0 /mnt
|
|
7
|
+
# /mnt/live/sidecar.sh
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
DIRECTORY="/sysroot"
|
|
11
|
+
if [ -z "$(find "$DIRECTORY" -mindepth 1)" ]; then
|
|
12
|
+
echo "sidecar: /sysroot is again emply!"
|
|
13
|
+
echo " type 'exit' to return init, then run sidecar.sh again"
|
|
14
|
+
exit 0
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
# Creating mountpoints
|
|
18
|
+
mkdir -p /media/root-ro
|
|
19
|
+
mkdir -p /media/root-rw
|
|
20
|
+
|
|
21
|
+
# mount filesystem squashfs on /media/root-ro
|
|
22
|
+
mount -t squashfs /mnt/live/filesystem.squashfs /media/root-ro
|
|
23
|
+
|
|
24
|
+
# Mount tmpfs on /media/root-rw
|
|
25
|
+
mount -t tmpfs root-tmpfs /media/root-rw
|
|
26
|
+
|
|
27
|
+
# Creare i punti di montaggio necessari
|
|
28
|
+
mkdir -p /media/root-rw/work
|
|
29
|
+
mkdir -p /media/root-rw/root
|
|
30
|
+
|
|
31
|
+
# mount overlayfs on //sysroot
|
|
32
|
+
mount -t overlay overlay -o lowerdir=/media/root-ro,upperdir=/media/root-rw/root,workdir=/media/root-rw/work /sysroot
|
|
33
|
+
|
|
34
|
+
# insert a dummy value for /etc/machine-id
|
|
35
|
+
echo "9350a55456f5bb96ef2fda0166a86d91" | tee /sysroot/etc/machine-id
|
|
36
|
+
|
|
37
|
+
echo "sidecar: /sysroot was mounted!"
|
|
38
|
+
echo " ================================"
|
|
39
|
+
echo " YOU CAN TYPE 'exit' TO BOOT LIVE"
|
|
40
|
+
echo " ================================"
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "penguins-eggs",
|
|
3
3
|
"shortName": "eggs",
|
|
4
4
|
"description": "A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others",
|
|
5
|
-
"version": "10.0.
|
|
5
|
+
"version": "10.0.27",
|
|
6
6
|
"author": "Piero Proietti",
|
|
7
7
|
"bin": {
|
|
8
8
|
"eggs": "./bin/run.js"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@oclif/core": "^4.0.17",
|
|
13
13
|
"@oclif/plugin-autocomplete": "^3.1.11",
|
|
14
|
-
"@oclif/plugin-help": "^6.2.
|
|
14
|
+
"@oclif/plugin-help": "^6.2.8",
|
|
15
15
|
"@oclif/plugin-version": "^2.2.10",
|
|
16
16
|
"axios": "^1.7.3",
|
|
17
17
|
"chalk": "^5.3.0",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"node-static": "^0.7.11",
|
|
26
26
|
"react": "^18.3.1",
|
|
27
27
|
"shelljs": "^0.8.5",
|
|
28
|
-
"systeminformation": "^5.
|
|
28
|
+
"systeminformation": "^5.23.4",
|
|
29
29
|
"tftp": "^0.1.2"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@oclif/prettier-config": "^0.2.1",
|
|
33
|
-
"@oclif/test": "^4.0.
|
|
33
|
+
"@oclif/test": "^4.0.8",
|
|
34
34
|
"@types/chai": "^4.3.17",
|
|
35
35
|
"@types/inquirer": "^9.0.7",
|
|
36
36
|
"@types/js-yaml": "^4.0.9",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"eslint-config-oclif-typescript": "^3.1.9",
|
|
48
48
|
"eslint-config-prettier": "^9.1.0",
|
|
49
49
|
"mocha": "^10.6.0",
|
|
50
|
-
"oclif": "^4.14.
|
|
50
|
+
"oclif": "^4.14.15",
|
|
51
51
|
"perrisbrewery": "^10.0.1",
|
|
52
52
|
"prettier": "^3.3.3",
|
|
53
53
|
"shx": "^0.3.4",
|
|
@@ -64,10 +64,12 @@
|
|
|
64
64
|
"/bin",
|
|
65
65
|
"/conf",
|
|
66
66
|
"/dist",
|
|
67
|
+
"/dracut",
|
|
67
68
|
"/eui",
|
|
68
69
|
"/ipxe",
|
|
69
70
|
"/manpages",
|
|
70
71
|
"/mkinitcpio",
|
|
72
|
+
"/mkinitfs",
|
|
71
73
|
"/scripts"
|
|
72
74
|
],
|
|
73
75
|
"homepage": "https://penguins-eggs.net",
|
package/scripts/love
CHANGED
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
#!/bin/bash -e
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
function press_a_key_to_continue {
|
|
5
4
|
read -rp ">> Press enter to continue or CTRL-C to abort."
|
|
6
5
|
}
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
function kill {
|
|
10
|
-
sudo eggs kill
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function produce {
|
|
14
|
-
sudo eggs dad --default
|
|
15
|
-
sudo eggs tools clean
|
|
16
|
-
sudo eggs produce
|
|
17
|
-
}
|
|
18
|
-
|
|
19
7
|
# main
|
|
8
|
+
if command -v sudo >/dev/null 2>&1; then
|
|
9
|
+
SUDO='sudo'
|
|
10
|
+
else
|
|
11
|
+
SUDO='doas'
|
|
12
|
+
fi
|
|
20
13
|
clear
|
|
21
14
|
echo ">>> L O V E : the simplest way to get a child!"
|
|
22
15
|
echo
|
|
23
|
-
echo "1)
|
|
24
|
-
echo "2)
|
|
25
|
-
echo "3)
|
|
26
|
-
echo "4)
|
|
16
|
+
echo "1) $SUDO eggs kill"
|
|
17
|
+
echo "2) $SUDO eggs dad --default"
|
|
18
|
+
echo "3) $SUDO eggs tools clean"
|
|
19
|
+
echo "4) $SUDO eggs produce"
|
|
27
20
|
echo
|
|
28
21
|
press_a_key_to_continue
|
|
29
|
-
kill
|
|
30
|
-
|
|
22
|
+
$SUDO eggs kill
|
|
23
|
+
$SUDO eggs dad --default
|
|
24
|
+
$SUDO eggs tools clean
|
|
25
|
+
$SUDO eggs produce
|