./devel/libgit2, Portable, pure C implementation of the Git core methods

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.9.2nb1, Package name: libgit2-1.9.2nb1, Maintainer: pkgsrc-users

libgit2 is a portable, pure C implementation of the Git core methods provided as
a re-entrant linkable library with a solid API, allowing you to write native
speed custom Git applications in any language which supports C bindings.


Required to run:
[www/curl] [security/openssl] [security/libssh2] [devel/pcre2] [www/http-parser] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 7488.104 KB

Version history: (Expand)


CVS history: (Expand)


   2026-01-07 09:49:50 by Thomas Klausner | Files touched by this commit (2525)
Log message:
*: recursive bump for icu 78.1
   2025-12-22 08:57:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
libgit2: updated to 1.9.2

v1.9.2: update changelog and version numbers
   2025-10-23 22:40:24 by Thomas Klausner | Files touched by this commit (2999)
Log message:
*: recursive bump for pcre2

Running an old binary against the new pcre doesn't work:
/usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by \ 
/usr/pkg/lib/libglib-2.0.so.0 not defined
   2025-10-05 21:26:29 by Jonathan Schleifer | Files touched by this commit (485)
Log message:
*: rev bump for curl
   2025-09-22 11:11:42 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
libgit2: updated to 1.9.1

libgit2 v1.9.1

Bug fixes

hash: allow unsigned int != size_t in sha256
include: Fix code comment termination
alternates: allow relative paths in all repositories
FIx potential null dereference
cli: fix undefined alloca() on CYGWIN
attr: honor ignorecase in attribute matching
tag: Refuse to use HEAD as a tagname
Fix memory leak in openssl fips modes
Fix circular includes between types.h and oid.h
diff: correct diff stat alignment in presence of renames w/ common prefix.
Revert include path regression

libgit2 v1.9.0

Major changes

Documentation improvements
We've launched a new website for our API reference docs at \ 
https://libgit2.org/docs/reference/main. To support this, we've updated the \ 
documentation to ensure that all APIs are well-documented, and added \ 
docurium-style specifiers to indicate more depth about the API surface.

We now also publish a JSON blob with the API structure and the documentation \ 
that may be helpful for binding authors.

TLS cipher updates
libgit2 has updated our TLS cipher selection to match the \ 
"compatibility" cipher suite settings as documented by Mozilla.

Blame improvements
The blame API now contains committer information and commit summaries for blame \ 
hunks, and the ability to get information about the line of text that was \ 
modified. In addition, a CLI blame command has been added so that the blame \ 
functionality can be benchmarked by our benchmark suite.

More CLI commands
libgit2 has added blame and init commands, which have allowed for further \ 
benchmarking and several API improvements and git compatibility updates.

Warning when configuring without SHA1DC
Users are encouraged to use SHA1DC, which is git's hash; users should not use \ 
SHA1 in the general case. Users will now be warned if they try to configure \ 
cmake with a SHA1 backend (-DUSE_SHA1=...).

Breaking changes

There are several ABI-breaking changes that integrators, particularly \ 
maintainers of bindings or FFI users, may want to be aware of.

Blame hunk structure updates (ABI breaking change)
There are numerous additions to the git_blame_hunk structure to accommodate more \ 
information about the blame process.

Checkout strategy updates (ABI breaking change)
The values for GIT_CHECKOUT_SAFE and GIT_CHECKOUT_NONE have been updated. \ 
GIT_CHECKOUT_SAFE is now 0; this was implicitly the default value (with the \ 
options constructors setting that as the checkout strategy). It is now the \ 
default if the checkout strategy is set to 0. This allows for an overall code \ 
simplification in the library.

Configuration entry member removal (ABI breaking change)
The git_config_entry structure no longer contains a free member; this was an \ 
oversight as end-users should not try to free that structure.

Configuration backend function changes (ABI breaking change)
git_config_backends should now return git_config_backend_entry objects instead \ 
of git_config_entry objects. This allows backends to provide a mechanism to \ 
nicely free the configuration entries that they provide.

update_refs callback for remotes (ABI breaking change)
The update_refs callback was added to the git_remote_callbacks structure to \ 
provide additional information about updated refs; in particular, the \ 
git_refspec is included for more information about the remote ref. The \ 
update_refs callback will be preferred over the now deprecated update_tips \ 
callback.

What's Changed

New features

The git_signature_default_from_env API will now produce a pair of git_signatures \ 
representing the author, and the committer, taking the GIT_AUTHOR_NAME and \ 
GIT_COMMITTER_NAME environment variables into account. Added

packbuilder can now be interrupted from a callback. Added @roberth

libgit2 now claims to honor the preciousObject repository extension. This \ 
extension indicates that the client will never delete objects (in other words, \ 
will not garbage collect). libgit2 has no functionality to remove objects, so it \ 
implicitly obeys this in all cases. Added

Push status will be reported even when a push fails. This is useful to give \ 
information from the server about possible updates, even when the overall status \ 
failed. Added

You can now generate a thin pack from a mempack instance using \ 
git_mempack_write_thin_pack. Added

The new LIBGIT2_VERSION_CHECK macro will indicate whether the version of libgit2 \ 
being compiled against is at least the version specified. For example: #if \ 
LIBGIT2_VERSION_CHECK(1, 6, 3) is true for libgit2 version 1.6.3 or newer. In \ 
addition, the new LIBGIT2_VERSION_NUMBER macro will return an integer version \ 
representing the libgit2 version number. For example, for version 1.6.3, \ 
LIBGIT2_VERSION_NUMBER will evaluate to 010603. Added

Custom X509 certificates can be added to OpenSSL's certificate store using the \ 
GIT_OPT_ADD_SSL_X509_CERT option. Added

The libgit2 compatibility CLI now has a git blame command. Added

Remote callbacks now provide an update_refs callback so that users can now get \ 
the refspec of the updated reference during push. This gives more complete \ 
information about the remote reference that was updated. Added

An optional FIPS-compliant mode for hashing is now available; you can set \ 
-DUSE_SHA256=OpenSSL-FIPS to enable it. Added

The git-compatible CLI now supports the git init command, which has been useful \ 
in identifying API improvements and incompatibilities with git. Added

Consumers can now query more information about how libgit2 was compiled, and \ 
query the "backends" that libgit2 uses. Added

Bug fixes

Fix constness issue
odb: conditional git_hash_ctx_cleanup in git_odb_stream
Fix shallow root maintenance during fetch
Headers cleanup
http: Initialize on_status when using the http-parser backend
Leak in truncate_racily_clean in index.c
ssh: Omit port option from ssh command unless specified in remote url
diff: print the file header on GIT_DIFF_FORMAT_PATCH_HEADER
Add more robust reporting to SecureTransport errors on macos
transport: do not filter tags based on ref dir in local
push: handle tags to blobs
Fixes for OpenSSL dynamic
realpath: unbreak build on OpenBSD
util/win32: Continue if access is denied when deleting a folder
object: git_object_short_id fails with core.abbrev string values
Clear data after negotiation
smart: ignore shallow/unshallow packets during ACK processing
Security fixes

ssh: Include rsa-sha2-256 and rsa-sha2-512 in the list of hostkey types
TLS: v1.2 and updated cipher list
Code cleanups

checkout: make safe checkout the default
url: track whether url explicitly specified a port
config: remove free ptr from git_config_entry
Add SecCopyErrorMessageString for iOS and update README for iOS
vector: free is now dispose
hashmap: a libgit2-idiomatic khash
hashmap: asserts
hashmap: further asserts
Make GIT_WIN32 an internal declaration
pathspec: additional pathspec wildcard tests
repo: don't require option when template_path is specified
options: update X509 cert constant
   2025-04-19 09:58:38 by Thomas Klausner | Files touched by this commit (750)
Log message:
*: recursive bump for default Kerberos implementation switch
   2025-04-17 23:53:13 by Thomas Klausner | Files touched by this commit (2449)
Log message:
*: recursive bump for icu 77 and libxml2 2.14
   2024-11-14 23:22:33 by Thomas Klausner | Files touched by this commit (2428)
Log message:
*: recursive bump for icu 76 shlib major version bump