I briefly checked Blivet and it is currently calls cmdline mount(8). There exists libmount library [1], which could be used to streamline the mounting without forking. Unfortunately, it does not have Python bindings yet, but that can be solved.
1: https://www.kernel.org/pub/linux/utils/util-linux/v2.21/libmount-docs/
I have wanted this for a long time in anaconda, so I am happy to hear it. I'd be willing to help with python bindings, but I would not want to maintain them.
I don't see a problem to maintain the bindig at util-linux source tree, but I have no time to implement it.
I guess that for applications like anaconda it will be enough to have bindig for high-level things and for work with mount tables (fstab, /proc/self/mountinfo, ..).
I had a brief chat with libmount author (Karel Zak, on cc:) and it would be possible to add fstab editing to the library, so Blivet would get it for free.
David, what do you think about? I know, Blivet can mount stuff even now and using a library wouldn't add immediate benefit, but fstab editing could be worth checking.
Using a library gets us better error condition checking and reporting, I would think. It certainly would have helped us a lot more back when we had imount.c, but it's still a good idea.
I'm going to extend the current library API to support fstab update (now the library supports parsing and only in-memory work with fstab entries).
Karel
anaconda-devel@lists.stg.fedoraproject.org