Phase 2: 28 neue App-Store-Merkmale (regulaere apt-Pakete)

Erste Batch des Merkmal-Ausbaus (siehe Roadmap-Plan, Memory
project_phase2_app_store_merkmale): 28 Ansible-Rollen fuer Apps mit
regulaerem Debian/Ubuntu-Paket (per apt-cache auf einer echten
Debian-trixie-Quelle verifiziert, nicht aus dem Gedaechtnis geraten).

apt/deb bewusst statt Flatpak (Nutzer-Entscheidung 09.09.2026, kehrt
die bisherige brave/libreoffice/onlyoffice-Praxis fuer alle NEUEN
Rollen um). Kein os_family-Zweig noetig - alle drei Ziel-Backends
(mint-image/debian-image/ubuntu-image) sind Debian-Familie, Fedora
bewusst ausgeklammert.

Rollen: gimp, inkscape, scribus, librecad (Kreativ/Grafik); audacity,
musescore, metronome, minuet (Musik/Audio); stellarium, octave,
kalgebra, kalzium, kbruch, step, tuxmath, filius, gcompris (Bildung
Mathe/Naturwissenschaft); ktouch, kwordquiz, kanagram, tuxtype,
foliate (Bildung Sprache/Schreiben); evolution (Buero); kturtle,
fritzing (Programmieren/Making); remmina (Internet); geogebra, marble
(Unterrichtswerkzeuge).

Jede Rolle folgt dem bestehenden Muster (Marker-Datei unter
/run/tuxflotte/agent/applied/, present/absent-Verzweigung auf
tuxflotte_state) - alle 33 site.yml-Bloecke + alle Rollen-tasks als
YAML geparst verifiziert.

Gehoert zusammen mit admin/provisioning-server-Migration 0030 (Merkmal-
+Blueprint-DB-Eintraege, live auf anode angewendet+verifiziert).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VLk93dhDMrkPXefVdknMV9
This commit is contained in:
adminandClaude Sonnet 5 committed 2026-09-09 13:24:00 +02:00
1 parent 78397251e5
commit 572a8039bd
57 files changed
+1372

No files matched your search

+252
View File
@@ -56,3 +56,255 @@
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('google-earth', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('google-earth', {}) }}"
tags: google-earth
- include_role:
name: gimp
apply:
tags: gimp
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('gimp', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('gimp', {}) }}"
tags: gimp
- include_role:
name: inkscape
apply:
tags: inkscape
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('inkscape', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('inkscape', {}) }}"
tags: inkscape
- include_role:
name: scribus
apply:
tags: scribus
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('scribus', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('scribus', {}) }}"
tags: scribus
- include_role:
name: librecad
apply:
tags: librecad
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('librecad', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('librecad', {}) }}"
tags: librecad
- include_role:
name: audacity
apply:
tags: audacity
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('audacity', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('audacity', {}) }}"
tags: audacity
- include_role:
name: musescore
apply:
tags: musescore
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('musescore', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('musescore', {}) }}"
tags: musescore
- include_role:
name: metronome
apply:
tags: metronome
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('metronome', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('metronome', {}) }}"
tags: metronome
- include_role:
name: minuet
apply:
tags: minuet
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('minuet', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('minuet', {}) }}"
tags: minuet
- include_role:
name: stellarium
apply:
tags: stellarium
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('stellarium', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('stellarium', {}) }}"
tags: stellarium
- include_role:
name: octave
apply:
tags: octave
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('octave', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('octave', {}) }}"
tags: octave
- include_role:
name: kalgebra
apply:
tags: kalgebra
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kalgebra', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kalgebra', {}) }}"
tags: kalgebra
- include_role:
name: kalzium
apply:
tags: kalzium
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kalzium', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kalzium', {}) }}"
tags: kalzium
- include_role:
name: kbruch
apply:
tags: kbruch
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kbruch', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kbruch', {}) }}"
tags: kbruch
- include_role:
name: step
apply:
tags: step
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('step', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('step', {}) }}"
tags: step
- include_role:
name: tuxmath
apply:
tags: tuxmath
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('tuxmath', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('tuxmath', {}) }}"
tags: tuxmath
- include_role:
name: filius
apply:
tags: filius
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('filius', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('filius', {}) }}"
tags: filius
- include_role:
name: gcompris
apply:
tags: gcompris
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('gcompris', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('gcompris', {}) }}"
tags: gcompris
- include_role:
name: ktouch
apply:
tags: ktouch
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('ktouch', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('ktouch', {}) }}"
tags: ktouch
- include_role:
name: kwordquiz
apply:
tags: kwordquiz
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kwordquiz', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kwordquiz', {}) }}"
tags: kwordquiz
- include_role:
name: kanagram
apply:
tags: kanagram
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kanagram', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kanagram', {}) }}"
tags: kanagram
- include_role:
name: tuxtype
apply:
tags: tuxtype
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('tuxtype', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('tuxtype', {}) }}"
tags: tuxtype
- include_role:
name: foliate
apply:
tags: foliate
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('foliate', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('foliate', {}) }}"
tags: foliate
- include_role:
name: evolution
apply:
tags: evolution
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('evolution', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('evolution', {}) }}"
tags: evolution
- include_role:
name: kturtle
apply:
tags: kturtle
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kturtle', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kturtle', {}) }}"
tags: kturtle
- include_role:
name: fritzing
apply:
tags: fritzing
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('fritzing', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('fritzing', {}) }}"
tags: fritzing
- include_role:
name: remmina
apply:
tags: remmina
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('remmina', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('remmina', {}) }}"
tags: remmina
- include_role:
name: geogebra
apply:
tags: geogebra
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('geogebra', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('geogebra', {}) }}"
tags: geogebra
- include_role:
name: marble
apply:
tags: marble
vars:
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('marble', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('marble', {}) }}"
tags: marble