Commits


portable: configure: split out dependencies Rather than assume all dependencies are required for all programs, split them out. This will make packaging easier, as well as splitting the code to use subprojects. Note that due to the use of config.h semantics, in most cases the got_compat.h header file is now at the top of the .c file it is included in, so that it can handle the system header inclusion properly.


portable: rework SHA detection Simply the SHA detection by not predicating on libcrypto, but instead checking individual header files.


portable: remove sha1.h; found portably Remove sha1.h as this is found portably across systems.


include sha2.h too where sha1.h is included In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>


portable: add back sys/queue.h Now that the handling of including sys/queue.h is better, there's no need to remove those lines from the source. Copy the location of those original sys/queue.h lines from upstream at the same line number, so as to avoid any conflicts in the future.


portable: add FreeBSD support This adds the capability to compile got-portable on FreeBSD.


portable: initial Linux compilation This commit modifies the GoT main branch to be able to compile it under linux.


switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp


improve error reporting when delta application fails


make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy


convert tree entries from SIMPLEQ to an array


stop storing decompressed delta data in struct got_delta; fetch it on demand


avoid dependency on delta.o in binaries which don't need it


rename got_error_prefix_errno() to got_error_from_errno()


got_error_from_errno -> got_error_prefix_errno also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)


make got path APIs available to library consumers


check for errors from fclose()


remove struct got_object from public library API


check for size_t overflow in got_delta_apply_in_mem() like libgit2's c15771104 (delta: fix overflow when computing limit)


bounds checks before memcpy in got_delta_apply_in_mem()


no need to zero got_delta during allocation


don't store copies of packfile paths in each delta


rename zbuf to inflate


store commit timestamps as 'struct tm' in UTC


look up deltas in the correct pack file