Goals are:
- Putting the cost of building them on the FreeBSD project instead of volunteers
- Creating bootstraps for only supported releases instead of using whatever upstream builds them on (currently 10.3-RELEASE)
- Having the ability to easily patch them when it becomes necessary
Adding portmgr for approval of flavors.
Do we need a g_free_event as well? In your case in geom_disk you are going to consume it always, but my other case in g_vfs_done() is optional and I will need to be able to free it in g_vfs_close() when a g_vfs object is freed without having its underlying storage destroyed.
You could also perhaps forward declare 'struct g_event' in geom.h while leaving it opaque so that you could have static type-checking for the new functions (g_alloc_event, g_free_event, g_post_event_storage).