Commits


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.


don't scan pack index offsets for large values if pack file is < 2GB This saves an iteration over the entire h->offsets array when opening a pack index which should not contain large offsets in the first place. ok millert@


handle pack index files which lack a corresponding pack file ok millert


make got_packidx_get_packfile_path() usable for callers who only have a path


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


expose got_pack_parse_ref_delta() for library-internal use This will be needed by a future 'gotadmin listpack' command.


expose got_packidx_get_object_offset() for library-internal use This will be needed by a future 'gotadmin listpack' command.


mark got_pack_stop_privsep_child() static; it is only used inside pack.c


fix a leaky ibuf. ok stsp


add got_packidx_get_packfile_path() for library-internal use


when reading a pack index byte-swap fields at compile-time where possible suggested by mpi@ ages ago


make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy


add fd field to got_repository, modify got_packidx_open to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp


fix matching the object ID of the first object in a pack index An object ID which appears first in a pack index was wrongly ignored by got_packidx_match_id_str_prefix(). The result was a spurious "object not found" error when this object ID was passed on the command line. Reported by jrick on freenode who was lucky enough to this edge case!


use the POSIX standard endian functions and explicitly include <endian.h> ok stsp


do not rely on <zlib.h> to pull in <unistd.h> ok stsp


remove got_packidx_get_object_idx_sha1(); it is not actually needed


write large objects to disk when resolving deltas; raise in-mem delta threshold


extract large objects to a temporary file in got-index-pack


add mmap support to got-index-pack


do not buffer more data than necessary in got_inflate_to_mem_fd()


avoid re-reading the entirety of an object's data to calculate the CRC


rewritten got-index-pack; sorry about the monster commit


add optional 'consumed' output parameter to got_inflate_to_mem_fd()