The « ERPLibre Deployment (+ QEMU + dev) » profile installed packages with a one-liner ending in « || true » and hiding stderr, so a broken host looked installed. Reproduced on erplibre-arch-latest: every binary was present, yet virt-install failed and « virsh list --all » could not reach any hypervisor. Three distinct causes, all unhandled: - The user was never added to the libvirt group. Without it a non-root libvirt client falls back to qemu:///session, where the « default » network does not exist, so « --network network=default » fails while everything looks installed. Being in the group grants the RIGHT to reach qemu:///system but does NOT change the default URI, so virt-install and virsh now pass « --connect qemu:///system » explicitly (new LIBVIRT_URI constant). - dnsmasq was missing: ensure_tools only installed DAEMON_PACKAGES when the daemon was absent, and libvirt was already there. setup_host now forces them. - On a rolling distro, « make install_os » upgrades the kernel and the package manager removes /lib/modules/<running kernel>. modprobe bridge then fails and libvirt cannot create virbr0 (« Unable to create bridge virbr0: Package not installed »). No package fixes that, only a reboot: it is now diagnosed and reported instead of surfacing as an unreadable virsh error. The profile now calls « deploy_qemu.py --setup-host », which reuses the existing ensure_* chain, so package names stay defined in one place (TOOL_PACKAGES / DAEMON_PACKAGES) and keep working for apt, dnf, pacman, zypper and brew. It fails loudly instead of « || true ». Verified on the Arch VM that failed: setup-host reports the stale kernel and exits 1; after a reboot it installs dnsmasq, joins libvirt/kvm, starts the default network, and reports « Hôte prêt » (exit 0, idempotent on rerun). The generated command now reads « virt-install --connect qemu:///system ». Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| database_manager.py | ||
| kdbx_manager.py | ||
| logo_ascii.txt | ||
| qemu_install_monitor.py | ||
| README.base.md | ||
| README.fr.md | ||
| README.md | ||
| source_todo.sh | ||
| todo.json | ||
| todo.py | ||
| todo_example.json | ||
| todo_file_browser.py | ||
| todo_i18n.py | ||
| todo_telemetry.py | ||
| todo_upgrade.py | ||
| version_manager.py | ||
TODO is an assistant robot to use ERPLibre
Execute it with ./script/todo/todo.py or make todo.
For a new project, copy todo_example.json to private/todo/todo_override.json | private/todo/todo_override_private.json and edit it.