Commit Briefs
move got_opentempfd() call out of got_pack_create()
Future gotd(8) needs to run got_pack_create() in a chroot environment, so we can no longer open new temporary files inside got_pack_create(). ok op@
make got_pack_create() write to a file descriptor instead of a stdio FILE
The old code required a seekable output file. This conflicts with requirements of future gotd(8), which will write pack file data to network sockets. ok op@
simplify the way 'got patch' opens a tempfile when reading from stdin
Also add basic test coverage for reading patches from stdin, while here. ok op@
move declaration of got_privsep_child out of got_lib_privsep.h
This declaration is the only reason why got_lib_privsep.h must be included in order to use got_lib_repository.h. Moving this declaration will allow for cleaning up unnecessary includes of got_lib_privsep.h.
move code for reading Git's config file into new file read_gitconfig_privsep.c
The end goal here is to remove the dependency of repository.c on privsep.c during compilation.
move functions which open objects into new file object_open_privsep.c
For the future, this will make it possible to provide alternative implementations of functions now stored in object_open_privsep.c. This will probably be needed by future gotd(8) which runs inside a chroot(2) environment and without the "exec" pledge(2) promise, making it impossible to run libexec helpers on the fly. Details of this design are not yet settled, but moving functions into a separate compilation unit won't hurt in any case.