penguins-eggs 25.10.6 → 25.10.19
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 +51 -145
- package/README.md +3 -829
- package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +3 -3
- package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +3 -4
- package/conf/love.yaml +1 -1
- package/dist/classes/distro.js +9 -2
- package/dist/classes/diversions.d.ts +1 -1
- package/dist/classes/diversions.js +27 -8
- package/dist/classes/incubation/incubator.d/archlinux.js +1 -0
- package/dist/classes/incubation/incubator.d/trixie.js +7 -10
- package/dist/classes/ovary.d/edit-live-fs.d.ts +1 -1
- package/dist/classes/ovary.d/edit-live-fs.js +1 -7
- package/dist/classes/ovary.d/fertilization.js +1 -0
- package/dist/classes/ovary.d/finished.js +1 -5
- package/dist/classes/ovary.d/initrd.d.ts +1 -1
- package/dist/classes/ovary.d/initrd.js +17 -19
- package/dist/classes/ovary.d/live-create-structure.js +1 -4
- package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
- package/dist/classes/ovary.d/luks-get-password.js +57 -0
- package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
- package/dist/classes/ovary.d/luks-home-support.js +75 -0
- package/dist/classes/ovary.d/luks-home.d.ts +15 -0
- package/dist/classes/ovary.d/luks-home.js +140 -0
- package/dist/classes/ovary.d/luks-root-bootstrap-builder.d.ts +11 -0
- package/dist/classes/ovary.d/luks-root-bootstrap-builder.js +45 -0
- package/dist/classes/ovary.d/luks-root.d.ts +15 -0
- package/dist/classes/ovary.d/luks-root.js +126 -0
- package/dist/classes/ovary.d/make-efi.js +1 -1
- package/dist/classes/ovary.d/make-squashfs.d.ts +1 -1
- package/dist/classes/ovary.d/make-squashfs.js +7 -3
- package/dist/classes/ovary.d/produce.d.ts +3 -3
- package/dist/classes/ovary.d/produce.js +76 -48
- package/dist/classes/ovary.d/syslinux.js +1 -1
- package/dist/classes/ovary.d/xorriso-command.d.ts +2 -2
- package/dist/classes/ovary.d/xorriso-command.js +27 -29
- package/dist/classes/ovary.d.ts +35 -16
- package/dist/classes/ovary.js +42 -16
- package/dist/classes/utils.d.ts +1 -0
- package/dist/classes/utils.js +3 -0
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.js +2 -2
- package/dist/commands/love.d.ts +3 -0
- package/dist/commands/love.js +40 -2
- package/dist/commands/produce.d.ts +3 -2
- package/dist/commands/produce.js +14 -17
- package/dist/commands/tools/{ppa.d.ts → repo.d.ts} +2 -2
- package/dist/commands/tools/{ppa.js → repo.js} +69 -67
- package/dracut/create-symlink +71 -0
- package/dracut/dracut-log.txt +3 -0
- package/dracut/dracut.conf.d/50-live.conf +24 -6
- package/dracut/dracut.conf.d/README.md +10 -0
- package/dracut/export +4 -0
- package/dracut/export-dracut-analysis +51 -0
- package/dracut/export-dracut-log +2 -0
- package/dracut/mkisofs +10 -0
- package/dracut/modules.d/00debug-shell/debug-hook.sh +13 -0
- package/dracut/modules.d/00debug-shell/module-setup.sh +20 -0
- package/dracut/modules.d/90block/README.md +7 -0
- package/dracut/modules.d/90block/block-cmdline.sh +3 -0
- package/dracut/modules.d/90block/module-setup.sh +15 -0
- package/dracut/modules.d/95iso-scan/README.md +3 -0
- package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +12 -0
- package/dracut/modules.d/95iso-scan/iso-scan.sh +92 -0
- package/dracut/modules.d/95iso-scan/module-setup.sh +18 -0
- package/dracut/modules.d/95luks-loop/README.md +9 -0
- package/dracut/modules.d/95luks-loop/luks-loop.sh +90 -0
- package/dracut/modules.d/95luks-loop/module-setup.sh +17 -0
- package/dracut/renew-initramfs +17 -0
- package/dracut/sbin2bin +10 -0
- package/dracut/update-dracut-conf-d +2 -0
- package/dracut/update-dracut-modules +62 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +7 -661
- package/package.json +9 -8
- package/perrisbrewery/template/dependencies.yaml +6 -5
- package/scripts/_eggs +16 -31
- package/scripts/eggs.bash +4 -6
- package/scripts/luks-root-bootstrap-create.sh +235 -0
- package/scripts/luks-root-unlock.sh +172 -0
- package/scripts/mount-encrypted-home.sh +223 -0
- package/dist/commands/syncfrom.d.ts +0 -45
- package/dist/commands/syncfrom.js +0 -152
- package/dist/commands/syncto.d.ts +0 -40
- package/dist/commands/syncto.js +0 -175
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# 95luks-loop: Apre luks.img e lo rende disponibile per dmsquash-live
|
|
3
|
+
|
|
4
|
+
type info >/dev/null 2>&1 || info() { echo "[luks-loop] $*" >&2; }
|
|
5
|
+
type warn >/dev/null 2>&1 || warn() { echo "[luks-loop][WARN] $*" >&2; }
|
|
6
|
+
|
|
7
|
+
# Leggi parametri kernel
|
|
8
|
+
luks_img=$(getarg rd.luks.loop=)
|
|
9
|
+
luks_uuid=$(getarg eggs.luks.uuid=)
|
|
10
|
+
|
|
11
|
+
info "luks-loop starting..."
|
|
12
|
+
info "luks_img=$luks_img"
|
|
13
|
+
info "luks_uuid=$luks_uuid"
|
|
14
|
+
|
|
15
|
+
# Se non specificato, prova il path scritto da iso-scan
|
|
16
|
+
if [ -z "$luks_img" ] && [ -e /run/initramfs/luks.loop.path ]; then
|
|
17
|
+
luks_img=$(cat /run/initramfs/luks.loop.path)
|
|
18
|
+
info "luks_img from iso-scan: $luks_img"
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# Se ancora non c'è, esci
|
|
22
|
+
if [ -z "$luks_img" ]; then
|
|
23
|
+
info "no rd.luks.loop parameter, skipping"
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# Attendi che il file sia disponibile
|
|
28
|
+
info "waiting for $luks_img..."
|
|
29
|
+
i=0
|
|
30
|
+
while [ ! -f "$luks_img" ]; do
|
|
31
|
+
sleep 1
|
|
32
|
+
i=$((i+1))
|
|
33
|
+
if [ $i -gt 30 ]; then
|
|
34
|
+
warn "timeout waiting for $luks_img"
|
|
35
|
+
exit 1
|
|
36
|
+
fi
|
|
37
|
+
done
|
|
38
|
+
|
|
39
|
+
info "found $luks_img"
|
|
40
|
+
|
|
41
|
+
# Setup loop device
|
|
42
|
+
loop_dev=$(losetup -f --show "$luks_img")
|
|
43
|
+
if [ -z "$loop_dev" ]; then
|
|
44
|
+
warn "losetup failed"
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
info "loop device: $loop_dev"
|
|
49
|
+
|
|
50
|
+
# Attendi che udev lo riconosca
|
|
51
|
+
udevadm settle --timeout=10
|
|
52
|
+
|
|
53
|
+
# Apri LUKS
|
|
54
|
+
crypt_name="crypted"
|
|
55
|
+
|
|
56
|
+
info "opening LUKS container as $crypt_name..."
|
|
57
|
+
|
|
58
|
+
# Prova con keyfile se esiste
|
|
59
|
+
if [ -f /run/initramfs/live.key ]; then
|
|
60
|
+
info "using keyfile"
|
|
61
|
+
cryptsetup luksOpen "$loop_dev" "$crypt_name" --key-file /run/initramfs/live.key
|
|
62
|
+
else
|
|
63
|
+
info "prompting for passphrase"
|
|
64
|
+
cryptsetup luksOpen "$loop_dev" "$crypt_name"
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# Verifica successo
|
|
68
|
+
if [ ! -b "/dev/mapper/$crypt_name" ]; then
|
|
69
|
+
warn "LUKS open failed!"
|
|
70
|
+
losetup -d "$loop_dev"
|
|
71
|
+
exit 1
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
info "LUKS opened successfully: /dev/mapper/$crypt_name"
|
|
75
|
+
|
|
76
|
+
# Monta il filesystem decifrato in un punto temporaneo
|
|
77
|
+
# così dmsquash-live può trovare filesystem.squashfs dentro
|
|
78
|
+
mkdir -p /run/initramfs/crypted
|
|
79
|
+
mount -o ro /dev/mapper/$crypt_name /run/initramfs/crypted
|
|
80
|
+
|
|
81
|
+
if [ -f /run/initramfs/crypted/filesystem.squashfs ]; then
|
|
82
|
+
info "found filesystem.squashfs inside LUKS"
|
|
83
|
+
# Scrivi il path per dmsquash-live
|
|
84
|
+
echo "/run/initramfs/crypted/filesystem.squashfs" > /run/initramfs/live.squashfs.path
|
|
85
|
+
else
|
|
86
|
+
warn "filesystem.squashfs not found inside LUKS!"
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
info "luks-loop completed"
|
|
90
|
+
exit 0
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
check() {
|
|
4
|
+
return 0
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
depends() {
|
|
8
|
+
return 0
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
# RIMUOVI QUESTA FUNZIONE COMPLETAMENTE
|
|
12
|
+
# cmdline() { ... }
|
|
13
|
+
|
|
14
|
+
install() {
|
|
15
|
+
inst_multiple losetup cryptsetup blkid udevadm mount
|
|
16
|
+
inst_hook pre-mount 50 "$moddir/luks-loop.sh"
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
if [[ $(id -u) -ne 0 ]]; then
|
|
4
|
+
echo "Errore: Questo script deve essere eseguito come root o con sudo." >&2
|
|
5
|
+
exit 1
|
|
6
|
+
fi
|
|
7
|
+
|
|
8
|
+
LOG="./dracut-log.txt"
|
|
9
|
+
CONFDIR="/usr/lib/penguins-eggs/dracut/dracut.conf.d"
|
|
10
|
+
LIVE="/home/eggs/iso/live"
|
|
11
|
+
|
|
12
|
+
dracut --force \
|
|
13
|
+
--confdir $CONFDIR \
|
|
14
|
+
--kmoddir /lib/modules/6.12.48+deb13-amd64 \
|
|
15
|
+
$LIVE/initrd.img-6.12.48+deb13-amd64 6.12.48+deb13-amd64 2>&1| tee $LOG
|
|
16
|
+
|
|
17
|
+
scp $LOG artisan@192.168.1.2:/home/artisan
|
package/dracut/sbin2bin
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Crea i collegamenti simbolici
|
|
2
|
+
sudo ln -s /usr/sbin/cryptsetup /usr/bin/cryptsetup
|
|
3
|
+
sudo ln -s /usr/sbin/losetup /usr/bin/losetup
|
|
4
|
+
#sudo ln -s /usr/sbin/lsblk /usr/bin/lsblk già esiste
|
|
5
|
+
|
|
6
|
+
# Nota: il log mostra anche altri comandi, potrebbero servire anche questi
|
|
7
|
+
#sudo ln -s /bin/mount /usr/bin/mount # mount potrebbe essere in /bin
|
|
8
|
+
#sudo ln -s /bin/umount /usr/bin/umount # umount potrebbe essere in /bin
|
|
9
|
+
#sudo ln -s /usr/bin/find /usr/bin/find # find è già al posto giusto, di solito
|
|
10
|
+
#sudo ln -s /bin/cat /usr/bin/cat # cat è già al posto giusto, di solito
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
MODULES_TO_REPLACE=("00debug-shell" "90block" "95iso-scan" "95luks" "95luks-loop")
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
DRACUT_MODULES_DIR="/usr/lib/penguins-eggs/dracut/modules.d"
|
|
7
|
+
SOURCE_MODULES_DIR="$(dirname "$0")/modules.d"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# --- FUNZIONE PRINCIPALE ---
|
|
11
|
+
main() {
|
|
12
|
+
echo "ATTENZIONE: adesso aggiorn $DRACUT_MODULES_DIR"
|
|
13
|
+
|
|
14
|
+
# 1. Controllo dei permessi
|
|
15
|
+
# Lo script deve essere eseguito come root per poter scrivere in /usr/lib
|
|
16
|
+
if [[ $(id -u) -ne 0 ]]; then
|
|
17
|
+
echo "Errore: Questo script deve essere eseguito come root o con sudo." >&2
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# 2. Verifica che la cartella di origine esista
|
|
22
|
+
if [[ ! -d "$SOURCE_MODULES_DIR" ]]; then
|
|
23
|
+
echo "Errore: La directory di origine '$SOURCE_MODULES_DIR' non è stata trovata." >&2
|
|
24
|
+
exit 1
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
echo "Avvio della sostituzione dei moduli Dracut..."
|
|
28
|
+
|
|
29
|
+
# 3. Ciclo for per ogni modulo nell'array
|
|
30
|
+
for module_name in "${MODULES_TO_REPLACE[@]}"; do
|
|
31
|
+
local dest_path="$DRACUT_MODULES_DIR/$module_name"
|
|
32
|
+
local source_path="$SOURCE_MODULES_DIR/$module_name"
|
|
33
|
+
|
|
34
|
+
echo "--- Elaborazione del modulo: $module_name ---"
|
|
35
|
+
|
|
36
|
+
# Controlla se il modulo di origine esiste prima di procedere
|
|
37
|
+
if [[ ! -d "$source_path" ]]; then
|
|
38
|
+
echo "Attenzione: Il modulo '$source_path' non esiste nella cartella di origine. Salto."
|
|
39
|
+
continue
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Rimuovi la vecchia versione del modulo, se esiste
|
|
43
|
+
if [[ -d "$dest_path" ]]; then
|
|
44
|
+
echo "Rimuovendo la vecchia versione: $dest_path"
|
|
45
|
+
rm -rf "$dest_path"
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
# Copia la nuova versione del modulo
|
|
49
|
+
echo "Copiando la nuova versione da: $source_path"
|
|
50
|
+
cp -r "$source_path" "$DRACUT_MODULES_DIR/"
|
|
51
|
+
|
|
52
|
+
echo "Modulo '$module_name' aggiornato con successo."
|
|
53
|
+
echo "------------------------------------"
|
|
54
|
+
done
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
echo "Operazione completata."
|
|
58
|
+
echo "Ricorda di rigenerare l'initramfs con 'dracut -f' o un comando simile."
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
# Esegui la funzione principale
|
|
62
|
+
main
|
|
Binary file
|