Bubblewrap (bwrap) is used here to create fast, ephemeral per-test containers 
(*snapshots*) of the root filesystem. This replaces the former use of 
fakechroot. The whole test suite (the `rpmtests` script) assumes that the RPM 
build to be tested is installed into the root filesystem.

That means, in most scenarios, you'd want the test suite to run in a container 
with RPM installed and ready to use. That's what the `mktree` script does - it 
creates such an OS tree (i.e. image) and runs a container on top with 
`rpmtests`.

Now, the `mktree` script can have multiple implementations (*backends*). For 
example, one can use the host package manager to build the OS tree (e.g. DNF on 
Fedora) while another one can utilize `podman`. Both examples have their pros 
and cons (which is why backends are supported) but I won't go into the details 
now.

So to run the test suite, your platform needs to have bwrap ported and a 
suitable mktree backend to build the image.

The latter can be easily accomplished almost anywhere since in the worst case, 
the backend can always download a prebuilt OS tree tarball, or even copy 
(reflink) the necessary libraries and binaries from the host system into place 
(much like what we did with fakechroot).

The former (bwrap), however, is currently a strict requirement. That said, I 
was actually thinking of moving the bwrap logic into the mktree backends and 
have them define the per-test isolation method, instead of it being hardwired 
into the test suite. That way, one could write a "legacy" backend that 
basically does exactly what fakechroot did.

BTW, is fakechroot ported to MacOS? Or does Darwin have any containerization 
support?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1632369824
You are receiving this because you are subscribed to this thread.

Message ID: <rpm-software-management/rpm/pull/2559/c1632369...@github.com>
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to