Skip to content

V0.4.1 rework#2

Draft
towo2099 wants to merge 19 commits into
v0.4.0from
v0.4.1_rework
Draft

V0.4.1 rework#2
towo2099 wants to merge 19 commits into
v0.4.0from
v0.4.1_rework

Conversation

@towo2099

Copy link
Copy Markdown
Member

Ich habe das Paket mal komplett überarbeitet.
Damit braucht man im Calamares das ganze Scripts-Gedöns nicht mehr machen, sondern dieses Paket konfiguuriert snapper so, wie von uns gewünscht.

Ich habe allerdings ALLOW_GROUPS="" statt ALLOW_GROUPS="users" gesetzt, weil letzteres eigentlich keine so dolle Idee ist

Was meint ihr dazu?

@towo2099 towo2099 requested a review from ak-li June 23, 2026 13:30
@ak-li

ak-li commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

@towo2099
Welches "Scripts-Gedöns " meinst du? Ich finde außer calamares-settings-siduction kein aktuelles Repo mit Bezug zu Calamares und dort gibt es nur ein Verzeichnis 'scripts' mit zwei Skripten und natürlich die calamares Module.

Die Änderungen mit Bezug zu systemd erscheinen sinnvoll, das kann ich aber nicht genau beurteilen.

ALLOW_GROUPS="users" hat den Sinn, dass der Benutzer snapper Aktionen ohne root-Rechte ausführen kann. Er kann das System (auch als root) mittels snapper Aktionen nicht zerstören. Das verhindert Btrfs.

Der gesamte Rest baut viele Fehler (wieder) in das Paket ein.

Was hat tuxedo da drin zu suchen?
Das Paket wurde von mir in langwieriger und mühevoller Arbeit entwickelt und ich verbitte mir die Übernahme durch tuxedo für dieses Paket. Von mir aus kann tuxedo das alles für sich verwenden, Aber in siduction-btrfs hat tuxedo nichts zu suchen.
Wenn du Verbesserungsvorschläge hast, die auf Arbeit von tuxedo basieren, können wir gerne einen Vermerk im copyright eintragen.

@towo2099

Copy link
Copy Markdown
Member Author

Was hat tuxedo da drin zu suchen?

Tuxedo hat in den Files gar nichts zu suchen, das waren Überbleibsel aus meinen Umbau-Arbeiten für Tuxedo, ist gefixt.

Welches "Scripts-Gedöns " meinst du?

modules/shellprozess:

script:
    - "-umount ${ROOT}.snapshots"
    - "-rm -r ${ROOT}.snapshots"
    - "-snapper --no-dbus create-config -f btrfs ${ROOT}"
    - "-snapper --no-dbus -c root set-config 'TIMELINE_CREATE=no'"
    - "-snapper --no-dbus -c root set-config 'ALLOW_GROUPS=users'"
    - "-snapper --no-dbus -c root set-config 'SYNC_ACL=yes'"
    - "-snapper --no-dbus -c home create-config -f btrfs ${ROOT}home"
    - "-snapper --no-dbus -c home set-config 'TIMELINE_CREATE=no'"
    - "-snapper --no-dbus -c home set-config 'ALLOW_GROUPS=users'"
    - "-snapper --no-dbus -c home set-config 'SYNC_ACL=yes'"
    - "-systemctl disable snapper-boot.timer"
    - "-systemctl disable snapper-timeline.timer"
    - "-umount ${ROOT}.snapshots"
    - "-btrfs sub del ${ROOT}.snapshots/"
    - "-mkdir ${ROOT}.snapshots"
    - "-sed -i 's|GRUB_BTRFS_DISABLE=|#GRUB_BTRFS_DISABLE=|g' ${ROOT}etc/default/grub-btrfs/config"

Das ist im Prinzip sogar falsch, weil modules/mount hat

    - mountPoint: /.snapshots
      subvolume: /@snapshots

gesetzt, was in meinen Augen falsch ist, das snapper create-config sowohl das subvolume, als auch das verzeichnis anlegt.
Durch dieses Setting landed .snapshots dann auch in der fstab und das hat da, glaube ich, nichts zu suchen.

Der gesamte Rest baut viele Fehler (wieder) in das Paket ein.

Lässt Du mich wissen, welche?

@towo2099

Copy link
Copy Markdown
Member Author

Das Paket wurde von mir in langwieriger und mühevoller Arbeit entwickelt und ich verbitte mir die Übernahme durch tuxedo für dieses Paket

Tuxedo will da nichts übernehmen. Ich habe das Paket geforkt und für TUXEDO OS umgebaut. Wenn Du als Autor mir sagts, wir dürfen das micht benutzen, dann müssen wir das akzeptieren und uns etwas anderes einfallen lassen.

Wenn wir es unter TUXEDO OS nur als siduction-btrfs einsetzen dürfen, dann kann ich das auch abklären.

@ak-li

ak-li commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Durch dieses Setting landed .snapshots dann auch in der fstab und das hat da, glaube ich, nichts zu suchen.

Das schaue ich mir genauer an. Das .snapshots Subvolumen einfach mounten zu können hat schon was für sich wenn mann in den Snapshots auf die Suche geht. Das Setup für die Konfig 'root' ist ohne natürlich einfacher.

Lässt Du mich wissen, welche?

Heute nicht mehr. Werden morgen ein paar Sachen aufzeigen.

@ak-li

ak-li commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Betr. Tuxedo
Natürlich darf Tuxedo das Paket benutzen. Ist und bleibt eine freie Lizenz und ist ja auch Sinn der Sache.
Mein Anliegen war, dass "Tuxedo OS" nichts in siduction-btrfs zu suchen hat (aber das hast du ja oben schon klargestellt), es sei denn wir bekommen einige Zeilen von Tuxedo dazu. Zum Beispiel den Krempel mit systemd.

@towo2099

Copy link
Copy Markdown
Member Author

Das .snapshots Subvolumen einfach mounten zu können hat schon was für sich wenn mann in den Snapshots auf die Suche geht.

Also ich kann da ohne fstab Eintrag z.B. per Midnightcommander drin rumsuchen.

Comment thread debian/changelog Outdated
@@ -1,27 +1,17 @@
siduction-btrfs (0.4.0-3) unstable; urgency=medium
siduction-btrfs (0.4.1-1-tux1) unstable; urgency=medium

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die neue Version gehört nach oben bzw. oberhalb 0.4.0-3 und dann als 0.4.1-0
und dort hinein deine Änderungen.
Die mit 0.4.0-3 und 0.4.0-2 getätigten Fehlerbereinigungen müssen in der Datei snapshot-description wieder eingepflegt werden.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beim changelog ist wohl beim kopieren etwas schief gegangen.

snapshot-description sollte wieder auf dem stand von main sein.

Wie das Git repo im Moment angelegt ist, ist halt wirklich suboptimal.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Durch die chaotische repo-struktur hier, ist mir wohl eine falsche Version von snapshot-description hier herein geraten.

@ak-li

ak-li commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Durch dieses Setting landed .snapshots dann auch in der fstab und das hat da, glaube ich, nichts zu suchen.

Das schaue ich mir genauer an. Das .snapshots Subvolumen einfach mounten zu können hat schon was für sich wenn mann in den Snapshots auf die Suche geht. Das Setup für die Konfig 'root' ist ohne natürlich einfacher.

Der Fehler kommt wenn kein Eintrag in der fstab steht

root@pc1:/# snapper list
E/A-Fehler (.snapshots is not a btrfs subvolume)
root@pc1:/# ls /.snapshots
root@pc1:/#

systemd legt eine mount Unit an und mountet das Subvolumen auch immer wieder automatisch wenn es in der fstab steht.
\x2esnapshots.mount generated

Wir sind also darauf angewiesen, dass ein fstab Eintrag besteht.
Bleibt die Frage nach der Reihenfolge während der Installation und damit nach den ungeliebten Skripten.

  • Partition mit Btrfs formatieren
  • Subvolumen anlegen ( '/' , '/root' , '/home' , '/var/log' ) ohne '/.snapshots'
  • snapper create-config für '/' und '/home'
  • Irgendwann danach die fstab mit '/.snapshots' erstellen

@towo2099

towo2099 commented Jun 24, 2026

Copy link
Copy Markdown
Member Author
test@tuxedo-os:~$ sudo snapper list
[sudo] Passwort für test:
  # | Typ    | Vorher # | Datum                        | Benutzer | Bereinigen | Beschreibung                                        | Benutzerdaten
----+--------+----------+------------------------------+----------+------------+-----------------------------------------------------+--------------
 0  | single |          |                              | root     |            | current                                             |
 1  | pre    |          | Di 23 Jun 2026 13:51:57 CEST | root     | number     | install inkscape +33 pkg                            |
 2  | post   |        1 | Di 23 Jun 2026 13:52:28 CEST | root     | number     | install inkscape +33 pkg                            |
 3  | pre    |          | Di 23 Jun 2026 14:00:18 CEST | root     | number     | install tuxedo-drivers                              |
 4  | post   |        3 | Di 23 Jun 2026 14:00:24 CEST | root     | number     | install tuxedo-drivers                              |
 5  | pre    |          | Di 23 Jun 2026 14:00:35 CEST | root     | number     | install tuxedo-nvidia-driver-default-pinning +1 pkg |
 6  | post   |        5 | Di 23 Jun 2026 14:00:41 CEST | root     | number     | install tuxedo-nvidia-driver-default-pinning +1 pkg |
 7  | pre    |          | Di 23 Jun 2026 15:39:57 CEST | root     | number     | install openssh-server +2 pkg                       |
 8  | post   |        7 | Di 23 Jun 2026 15:40:05 CEST | root     | number     | install openssh-server +2 pkg                       |
 9  | pre    |          | Mi 24 Jun 2026 13:02:30 CEST | root     | number     | install tuxedo-btrfs                                |
10  | post   |        9 | Mi 24 Jun 2026 13:02:38 CEST | root     | number     | install tuxedo-btrfs                                |
test@tuxedo-os:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=1B11-D0A5                            /boot/efi      vfat    defaults,umask=0077 0 2
UUID=5b4eeac0-e9db-4bdc-8466-92ed269c58a0 /              btrfs   subvol=@,defaults,compress=zstd:3 0 0
UUID=5b4eeac0-e9db-4bdc-8466-92ed269c58a0 /home          btrfs   subvol=@home,defaults,compress=zstd:3 0 0
UUID=5b4eeac0-e9db-4bdc-8466-92ed269c58a0 /root          btrfs   subvol=@root,defaults,compress=zstd:3 0 0
UUID=5b4eeac0-e9db-4bdc-8466-92ed269c58a0 /var/log       btrfs   subvol=@var@log,defaults,compress=zstd:3 0 0
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0
test@tuxedo-os:~$ sudo btrfs subvolume list /
ID 256 gen 1605 top level 5 path @
ID 257 gen 1605 top level 5 path @home
ID 258 gen 1264 top level 5 path @root
ID 259 gen 1605 top level 5 path @var@log
ID 260 gen 1605 top level 256 path .snapshots
ID 261 gen 889 top level 257 path @home/.snapshots
ID 262 gen 172 top level 260 path .snapshots/1/snapshot
ID 263 gen 233 top level 260 path .snapshots/2/snapshot
ID 264 gen 428 top level 260 path .snapshots/3/snapshot
ID 265 gen 489 top level 260 path .snapshots/4/snapshot
ID 266 gen 669 top level 260 path .snapshots/5/snapshot
ID 267 gen 729 top level 260 path .snapshots/6/snapshot
ID 268 gen 1001 top level 260 path .snapshots/7/snapshot
ID 269 gen 1063 top level 260 path .snapshots/8/snapshot
ID 270 gen 1284 top level 260 path .snapshots/9/snapshot
ID 271 gen 1345 top level 260 path .snapshots/10/snapshot

snapper create-config funktioniert nicht, wenn schon ein .snapshots subvolume existiert

Dieses system wurde per Calamares installiert, wobei in Calamares kein Subvolumen für .snapshots angelegt wurde.
Innerhalb Calamares wurde das paket tuxedo-btrfs in dieser reworked Variante installiert.

Die gescriiptete snapper-config wurde nicht mehr in calamares gemacht.

@ak-li

ak-li commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

snapper create-config funktioniert nicht, wenn schon ein .snapshots subvolume existiert

Das ist klar, geht auch aus meinem vorherigen Kommentar hervor.

Dieses system wurde per Calamares installiert, wobei in Calamares kein Subvolumen für .snapshots angelegt wurde. Innerhalb Calamares wurde das paket tuxedo-btrfs in dieser reworked Variante installiert.

Jetzt wäre mal von Interesse was
findmnt ".snapshots"
ausgibt.
Ich vermute da hat systemd wieder seine Tentakel drin.
Ein
systemctl list-unit-files | grep "shots.mount"
evt. auch ".automount"
könnte es zeigen.

Wie oben beschrieben funktioniert bei mir snapper ohne eingehangenes '.snapshots' nicht.

@towo2099

Copy link
Copy Markdown
Member Author

findmnt ".snapshots" => nada
systemctl list-unit-files | grep "shots.mount" => nada

Wenn initial mit diesem Paket installiert wird, sind das nested subvolumes, welche nicht explizit in der fstab stehen müssen.

Der alte Calamares Code war deshalb auch so verwirrend, löschen von /.snapshots =>snapper create-config => loöschen von /.snapshots + subvol delete.

Dein bestehendes sytem hat /.snapshots aber flat angelegt, dseshalb brauchts da den fstab eintrag.
die home-config wurde aber von Calamares als nestet subvol erstellt, dafür hast du ja auch keinen fstab Eintrag.

@ak-li

ak-li commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Wenn initial mit diesem Paket installiert wird, sind das nested subvolumes, welche nicht explizit in der fstab stehen müssen.

Dein bestehendes sytem hat /.snapshots aber flat angelegt, dseshalb brauchts da den fstab eintrag. die home-config wurde aber von Calamares als nestet subvol erstellt, dafür hast du ja auch keinen fstab Eintrag.

Ok, verstanden, und so sieht es bei mir aus (statt 'home' 'daten' )

root@pc1:/# btrfs sub li .
ID 256 gen 482954 top level 5 path @
ID 257 gen 539951 top level 5 path @snapshots
ID 259 gen 540416 top level 5 path @root
ID 260 gen 540459 top level 5 path @var@log
ID 263 gen 540459 top level 5 path @daten
ID 267 gen 540453 top level 264 path @daten/.snapshots
ID 2749 gen 540458 top level 257 path @snapshots/61/snapshot
ID 3424 gen 535915 top level 257 path @snapshots/62/snapshot
ID 3450 gen 538356 top level 267 path @daten/.snapshots/16/snapshot
ID 3453 gen 538638 top level 267 path @daten/.snapshots/17/snapshot

Somit ist deine Variante bei der Installation einfacher.
Können wir gerne übernehmen.
Damit es einheitlich ist, müsste ich den fll-installer anpassen und das Handbuch braucht auch eine Aktualisierung.

Bei den anderen Dateien habe ich diverse Kommentare und Fragen dazu geschrieben und kleinere Änderungen vorgenommen.

Hat denn das "Scripts-Gedöns" etwas mit dem Bootfehler zu tun?

@towo2099

Copy link
Copy Markdown
Member Author

Hat denn das "Scripts-Gedöns" etwas mit dem Bootfehler zu tun?

Das glaube ich nicht, bzw, kann ich mir nicht vorstellen.

@towo2099

Copy link
Copy Markdown
Member Author

Bei den anderen Dateien habe ich diverse Kommentare und Fragen dazu geschrieben und kleinere Änderungen vorgenommen.

Irgendwie bin ich zu doof für github, manchmal sehe ich die Kommentare, manchmal nicht.
Sowas kenne ich von gitlab nicht.

@ak-li

ak-li commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Bei den anderen Dateien habe ich diverse Kommentare und Fragen dazu geschrieben und kleinere Änderungen vorgenommen.

Irgendwie bin ich zu doof für github, manchmal sehe ich die Kommentare, manchmal nicht. Sowas kenne ich von gitlab nicht.

Habe da auch so meine Schwierigkeiten.
Aber so findest du die ganzen Kommentare und Fragen:
Im Reiter <Commits (11)> in der Zeile des ersten (obersten) Commit auf die Kommentarfläche mit der 10 klicken.
Befindet sich zwischen dem Commit Titel und der Commit Nummer.
Dann werden alle Kommentare in der linken Spalte neben den Dateinamen mit einem Ikon angezeigt.

ak-li added 3 commits June 25, 2026 13:18
Same as rolling
meaningful settings
Comment thread debian/postrm
Comment thread debian/postinst
abort-upgrade|abort-remove|abort-deconfigure)
;;

exec $(systemctl enable --now siduction_btrfs.path)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die systemd Unit müsste auch aktiviert werden. Sonst können keine Booteinträge erstellt werden.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

siduction_btrfs.path ist enabled, wenn man dieses Paket installiert, dafür sogt der Debhelper.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Einzig, wenn man von 0.4.0 auf dieses Paket upgraden würde, ist das danach nicht anabled (auf Grund des alten codes).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wie wäre es mit diesen Code innerhalb 'configure)' um ein Upgrade von 0.4.0 sicher zu gestalten?

if [ "$(systemctl is-active siduction_btrfs.path)" = "inactive" ]; then
    if [ "$(systemctl is-enabled siduction_btrfs.path)" = "disabled" ]; then
        systemctl enable --now siduction_btrfs.path &>/dev/null
    else
        systemctl start siduction_btrfs.path
    fi
fi

Comment thread debian/postinst
Comment thread debian/preinst
@ak-li

ak-li commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

@towo2099
Habe in dem Commit
reworked package for managing snapper on siduction
zu den Dateien postinst und postrm drei Kommentare eingetragen.
Kannst du damit etwas anfangen?
Sonst ist mir nichts weiter aufgefallen.

Lines removed because a file named `btrfs` is being used.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants