das-tools (Go, GTK 3 via gotk3): - das-update: update window, tray icon when updates are available, --cli mode; xbps-install -Su between a snapper pre/post snapshot pair, privileged part through pkexec, rollback and reboot hints - das-welcome: first-login window with install (live), language, home folder renaming, updates, settings and help das-settings 0.3.0: create home folders with translated names. xdg-user-dirs 0.20 only looks for translations in the first XDG_DATA_DIRS entry with a locale directory (/usr/local/share/locale). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.2 KiB
7.2 KiB
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 (у live-сесії перевірено лише гілку без знімків).
- Перевірити вибір мови в
das-welcome(AccountsService і~/.dmrc): у live-образі зібрано лише одну локаль, тому рядок мови не показується. - Повідомити авторів 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, компресія squashfsxz/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.