Files
Das-OS/TODO.md
T
dasandClaude Opus 5.5 5349a028c8 Fix issues found testing stage 5 in a VM
- Calamares branding takes the version from VERSION at ISO build time
- das-update tray hides its icon when updates were installed elsewhere
  (watches the xbps package database)
- Installer removes guest tools of other hypervisors; the live image
  starts VBoxClient only inside VirtualBox
- Live session no longer locks the screen while the installer runs
- das-tools 0.2.0, das-installer 0.2.0, das-settings 0.4.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:43:51 +03:00

8.1 KiB
Raw Blame History

Das OS — що зробити далі

Стан на 2026-10-19: версія 0.3.0, етапи 1–5 готові (live ISO, власний репозиторій, оформлення, інсталятор Calamares зі знімками Btrfs, Go-утиліти das-update і das-welcome). Далі: серверний образ (етап 6).

Етап 5. Go-утиліти (готово, лишилися перевірки)

  • das-update: вікно, значок у треї (лише коли є оновлення), консольний режим --cli, знімок snapper pre/post, встановлення через pkexec, підказка про відкат.
  • das-welcome: вікно першого входу (встановлення в live-сесії, мова, теки, оновлення, налаштування, довідка).
  • Англійські назви тек: xdg-user-dirs 0.20 шукає переклади лише в першій теці XDG_DATA_DIRS з підкаталогом locale (порожня /usr/local/share/locale). Виправлено в das-settings (/etc/X11/xinit/xinitrc.d/50-das-user-dirs), уже створені теки перейменовує das-welcome.
  • Тести go test ./... (make test і під час збирання пакета).
  • Перевірено у встановленій системі на Btrfs (QEMU, UEFI): оновлення з вікна й --cli створює пару знімків pre/post, вони з'являються в меню GRUB, завантаження в знімок і snapper-rollback повертають попередню версію пакета; вибір мови в das-welcome діє після перезавантаження.
  • Виправлено після перевірки: версія в Calamares береться з VERSION; значок у треї ховається, коли оновлення встановлено поза ним (стежить за базою пакетів xbps); інструменти VirtualBox прибираються з не-VirtualBox машин (у KVM було повідомлення при кожному вході); live-сесія не блокує екран під час встановлення.
  • Перевірити в наступному live ISO, що екран більше не блокується (властивості xfconf звірено з двійковими файлами).
  • Вікно автентифікації polkit (xfce-polkit) англійською: перекласти або замінити агент.
  • Повідомити авторів xdg-user-dirs про помилку з XDG_DATA_DIRS.
  • Пункт «Профіль розробника» в das-welcome (разом з етапом 7).

Етап 6. Серверний образ

Live ISO без графіки з консольним інсталятором: dasos-server-<версія>-x86_64.iso.

  • Профіль server/ поруч із live/ (packages.x86_64, services, include/); параметризувати scripts/container/build-iso.sh профілем; ціль make iso-server. Kernel cmdline з console=tty0 console=ttyS0 для серійної консолі.
  • Метапакет das-server: openssh, chrony, dhcpcd (NetworkManager/nmtui на вибір), das-snapshots, docker (без podman), nftables, fail2ban, python3, lazydocker, lazygit, mc, tmux, htop, socklog-void.
  • Налаштування в das-server: nftables «закрито все, крім SSH», jail sshd для fail2ban, sshd без входу root за паролем.
  • dsv (das services): керування службами runit замість systemctl (list, enable, disable, start, stop, restart, status, logs): посилання /etc/sv/X → /var/service, логи через socklog/svlogd. Знадобиться й на десктопі.
  • das-server-install: TUI-інсталятор на dialog (диск, ім'я хоста, користувач, SSH-ключ, часовий пояс, розкладка). Розмітка GPT: ESP + Btrfs з тими ж підтомами, що й у Calamares (@, @snapshots…); копіювання з live-base (перевикористати mount-source); GRUB для UEFI і BIOS.
  • Винести спільну частину postinstall (локалі, /tmp, гостьові інструменти VM, das-snapper-setup, переписування ядер) в окремий скрипт для обох інсталяторів.
  • scripts/run-qemu.sh --serial (-nographic) для перевірки серверного ISO.
  • Перевірка: встановлення в QEMU, вхід по SSH, docker run hello-world, знімок snapper перед das-update --cli.
  • Наостанок — розмір ISO: виміряти обидва образи, знайти, що займає найбільше (розміри пакетів через xbps-query, прошивки linux-firmware-*, локалі, документація, -devel-пакети, гостьові інструменти VM, компресія squashfs xz/zstd), і вирішити, що й як зменшити.

Етап 7. Профіль розробника

  • Метапакет das-dev: go, git, docker, podman, vscode.
  • Android Studio та JetBrains на вимогу через Flatpak.
  • Вибір профілю в інсталяторі (модуль packagechooser) або в das-welcome.

Етап 8. CI

  • Збирання пакетів і обох ISO (десктоп і сервер) в контейнері Void (Gitea Actions на git.das.org.ua або GitHub Actions).

Репозиторій пакетів

  • Підпис через xbps-rindex --sign, ключ поза репозиторієм.
  • Хостинг репозиторію (власний сервер або GitHub Releases/Pages).
  • /etc/xbps.d/das.conf у встановленій системі, щоб пакети das-* оновлювалися. Зараз встановлена система бачить лише репозиторій Void.

Інсталятор

  • Перевірити встановлення на старий BIOS (MBR, grub-install --target=i386-pc).
  • Перевірити на реальному залізі: видалення гостьових інструментів VM, Wi-Fi, NVIDIA/AMD.
  • Шифрування диска (LUKS): luksbootkeyfile, crypttab, dracut, GRUB_ENABLE_CRYPTODISK.
  • Перевірити ручну розмітку з Btrfs (чи створюються підтоми) і встановлення на ext4/XFS (знімки мають вимкнутися без помилок).
  • Перевірити розкладку, відмінну від us,ua (автологін перевірено).

Знімки й відкат

  • Перевірити, що cron справді робить щогодинні знімки й очищує старі.
  • Графічний відкат (у das-update або окремою утилітою) замість sudo snapper-rollback N.
  • Прибирати старі корені @<дата>, які лишаються після відкату.

Оформлення та дрібниці

  • Прибрати значки томів live-носія («Том 6,6 ГБ») з робочого столу live-сесії.
  • Тема GRUB у встановленій системі (зараз стандартний чорний екран).
  • Перевірити меню Whisker вручну.
  • Прискорити make packages: не перезбирати Calamares, якщо його версія не змінилася.

Відкладено

  • ARM-образ для Raspberry Pi.
  • Вбудувати текстовий редактор MultiText.
  • Перший стабільний реліз: злиття dev → main.