[paludis-user] Paludis/transaction merging

denisgolovan denisgolovan at yandex.ru
Tue May 1 09:26:00 UTC 2012

Hi all

Currently I am in a process of desperately getting rid of libpng14 library leftovers.
cave fix-linkage ..., lafilefixer, find a missing dependency in some of ebuilds, report to Gentoo team, find a "recursive" fix-linkage necessity, loop :)
Meanwhile even my graphical login manager would not start :)

That's the common thing for a gentooer, right?
Gentoo on server is especially painful because of that.

So the problem is that Gentoo/portage/paludis do not support transactional merging.
I mean I'd like to have a following workflow:

1. Start a install transaction.
2. Emerge all the packages/dependencies necessary.
3. Resolve all conflicts/leftovers/revdeps necessary.
4. Commit install transaction onto /. Everything in one go.

So unless everything is ready for merging your main root does not change.
You can continue to work, use your X, browser :), and even do not afraid of sudden kernel reboot/crash.

So, that's kind of wishful thinking so far.

Can we make it happen?
I think we can make something similar with the help of aufs and a bit of help from cave.

So plan is:
1. Create a chroot directory using aufs copy-on-write functionality. 
This chroot will be seen as a view of root directory, but all changes won't touch the main root, but "accumulate" in aufs branch.
2. Start installing/removing/whatever activity in cave with chroot as a parameter/mode.
3. Resolve all conflicts/leftovers/revdeps necessary.
4. Merge aufs changes back to main root.
5. Kill chroot.

I guess it should work.
And it looks like cave already has some chroot support in place. 
Even though it's somehow not documented.

And I guess this nice functionality can be even made part of paludis. But that's up to you of course.

Please give suggestions. 

Denis Golovan

More information about the paludis-user mailing list