-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On Wed, Mar 06, 2024 at 11:59:41AM +0000, 'unman' via qubes-devel wrote:
> There's a recent issues on GitHub (#8980) about removing "non-essential"
> packages from the Debian minimal template.
> 
> The argument is that minimal templates should contain only "vital packages".
> OP argues that a minimal system is one from which nothing can be removed
> without breaking anything else, and therefore the minimal templates
> should be trimmed accordingly.
> 
> Debian has the concepts of minbase and base systems.
> Minbase is a variant in debootstrap - it installs only essential
> packages and apt.
> The base system, or core installation, consists of essential packages,
> and those tagged as required or important.
> 
> The Debian minimal template is a core system, with some Qubes packages
> installed.
> In my view the minimal template contains a base system - it contains
> packages that any user of Debian would expect to find installed.
> 
> The docs say that "The minimal templates are lightweight versions of
> their standard template counterparts. They have only the most vital
> packages installed, including a minimal X and xterm installation."
> 
> It may be that Qubes wants to ship a micro template, with only selected
> packages installed, as well as the existing minimal templates. Or trim
> down minimal templates to minbase, or smaller.
> In either case, we would need to decide what packages should be included.
> Any decision should be applied for all official templates.
> 
> (I should say that building with minbase in debootstrap makes very
> little difference once Qubes packages are installed, and that not all
> packages correctly set out dependencies on packages that are assumed o
> be present.)
> 
> Thoughts would be appreciated.

Generally, I think minimal template should be as minimal as possible,
while still allowing reasonable easy customization. The latter
especially means:
- - working package manager (thanks to updates proxy, it doesn't require
  all kind of networking packages)
- - some terminal emulator
- - being able to target with salt (or ansible in the future)

The last two are debatable. Terminal emulator may not be strictly
required since there is qvm-console-dispvm. And also salt is rather
arbitrary choice here, but IMO since minimal templates in practice must
be customized to be useful, being friendly to automating this
customization makes sense (BTW, this is currently broken in Fedora
minimal templates).

If there is some smaller base Debian variant to start from, IMHO it's
worth a try. Currently the main difference is that minimal template
skips installing "standard" task:
https://github.com/QubesOS/qubes-builder-debian/blob/main/template_debian/02_install_groups.sh#L45-L54
and also there is a smaller list of packages to be installed:
https://github.com/QubesOS/qubes-builder-debian/blob/main/template_debian/packages_minimal.list
many of the latter list probably can be removed. If some of those are
actually required by other packages, it should be set in package
dependencies. And if that's isn't the case, it's a bug to be fixed.

Whether to actively remove packages that were installed automatically
but aren't "vital" is another question. I suspect it might be quite
fragile (something that wasn't essential before may become essential at
some point, and thus removing will break stuff). I'd prefer the approach
that prevents installing non-essential packages in the first place, so
dependencies still can do their job. Minimal templates are built with
"no-recommends" option[2] already. But maybe there is some place that
doesn't use that properly and some "recommends" (not "depends") packages
are installed anyway?

[2] 
https://github.com/QubesOS/qubes-release-configs/blob/main/R4.2/qubes-os-r4.2-templates-itl.yml#L131

- -- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmXocJAACgkQ24/THMrX
1yzREAf+K3SnbpqCuQx8zyVyVZP1GqYpcvZ4yAn1+KMisiinpI1/x+3/wmOdP3f7
9AyuNBJ3wVBMgliYWAtQMLdZ2sqyS41KTEQd6BwVvuK9qjYp6cO72GdUdvK1WWbK
1cw6nq0gux+livKIbXjxgyjloABrGmzfG6F5/4QAi/Ce7TrED1DqlTW5RSjqORRj
N8LWY0wZ+oyPn/fTNnNGh4KxZb5Ps+T8fHloK1E2A+N6mcBPkDaAsqvZ0+x2lqCR
FxVgygFjoEo3LJBtjNamzg7ELjwWGDDXoKaYO0AfqIt93i04YNE3TtXh/YTH/QA+
1omKuMoRjIj/0vJV+ACI/mnTYVyvfw==
=tZfX
-----END PGP SIGNATURE-----

-- 
You received this message because you are subscribed to the Google Groups 
"qubes-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to qubes-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qubes-devel/ZehwkPMa_2lkdnWv%40mail-itl.

Reply via email to