pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/libgit2 libgit2: update to 0.28.1.

branches:  trunk
changeset: 319910:9f6011ab9812
user:      wiz <>
date:      Sun Feb 24 10:15:26 2019 +0000

libgit2: update to 0.28.1.


This is a bugfix release with the following change:

* The deprecated functions (`git_buf_free` and the `giterr_` family of
  functions) are now exported properly.  In the v0.28 release, they were
  not given the correct external attributes and they did not have the
  correct linkage visibility in the v0.28 library.


### Changes or improvements

* The library is now always built with cdecl calling conventions on
  Windows; the ability to build a stdcall library has been removed.

* Reference log creation now honors `core.logallrefupdates=always`.

* Fix some issues with the error-reporting in the OpenSSL backend.

* HTTP proxy support is now builtin; libcurl is no longer used to support
  proxies and is removed as a dependency.

* Certificate and credential callbacks can now return `GIT_PASSTHROUGH`
  to decline to act; libgit2 will behave as if there was no callback set
  in the first place.

* The line-ending filtering logic - when checking out files - has been
  updated to match newer git (>= git 2.9) for proper interoperability.

* Symbolic links are now supported on Windows when `core.symlinks` is set
  to `true`.

* Submodules with names which attempt to perform path traversal now have their
  configuration ignored. Such names were blindly appended to the
  `$GIT_DIR/modules` and a malicious name could lead to an attacker writing to
  an arbitrary location. This matches git's handling of CVE-2018-11235.

* Object validation is now performed during tree creation in the
  `git_index_write_tree_to` API.

* Configuration variable may now be specified on the same line as a section
  header; previously this was erroneously a parser error.

* When an HTTP server supports both NTLM and Negotiate authentication
  mechanisms, we would previously fail to authenticate with any mechanism.

* The `GIT_OPT_SET_PACK_MAX_OBJECTS` option can now set the maximum
  number of objects allowed in a packfile being downloaded; this can help
  limit the maximum memory used when fetching from an untrusted remote.

* Line numbers in diffs loaded from patch files were not being populated;
  they are now included in the results.

* The repository's index is reloaded from disk at the beginning of
  `git_merge` operations to ensure that it is up-to-date.

* Mailmap handling APIs have been introduced, and the new commit APIs
  `git_commit_committer_with_mailmap` and `git_commit_author_with_mailmap`
  will use the mailmap to resolve the committer and author information.
  In addition, blame will use the mailmap given when the

* Ignore handling for files in ignored folders would be ignored.

* Worktrees can now be backed by bare repositories.

* Trailing spaces are supported in `.gitignore` files, these spaces were
  previously (and erroneously) treated as part of the pattern.

* The library can now be built with mbedTLS support for HTTPS.

* The diff status character 'T' will now be presented by the
  `git_diff_status_char` API for diff entries that change type.

* Revision walks previously would sometimes include commits that should
  have been ignored; this is corrected.

* Revision walks are now more efficient when the output is unsorted;
  we now avoid walking all the way to the beginning of history unnecessarily.

* Error-handling around index extension loading has been fixed. We were
  previously always misreporting a truncated index (#4858).

### API additions

* The index may now be iterated atomically using `git_index_iterator`.

* Remote objects can now be created with extended options using the
  `git_remote_create_with_opts` API.

* Diff objects can now be applied as changes to the working directory,
  index or both, emulating the `git apply` command.  Additionally,
  `git_apply_to_tree` can apply those changes to a tree object as a
  fully in-memory operation.

* You can now swap out memory allocators via the
  `GIT_OPT_SET_ALLOCATOR` option with `git_libgit2_opts()`.

* You can now ensure that functions do not discard unwritten changes to the
  index via the `GIT_OPT_ENABLE_UNSAVED_INDEX_SAFETY` option to
  `git_libgit2_opts()`.  This will cause functions that implicitly re-read
  the index (eg, `git_checkout`) to fail if you have staged changes to the
  index but you have not written the index to disk.  (Unless the checkout
  has the FORCE flag specified.)

  At present, this defaults to off, but we intend to enable this more
  broadly in the future, as a warning or error.  We encourage you to
  examine your code to ensure that you are not relying on the current
  behavior that implicitly removes staged changes.

* Reference specifications can be parsed from an arbitrary string with
  the `git_refspec_parse` API.

* You can now get the name and path of worktrees using the
  `git_worktree_name` and `git_worktree_path` APIs, respectively.

* The `ref` field has been added to `git_worktree_add_options` to enable
  the creation of a worktree from a pre-existing branch.

* It's now possible to analyze merge relationships between any two
  references, not just against `HEAD`, using `git_merge_analysis_for_ref`.

### API removals

* The `git_buf_free` API is deprecated; it has been renamed to
  `git_buf_dispose` for consistency.  The `git_buf_free` API will be
  retained for backward compatibility for the foreseeable future.

* The `git_otype` enumeration and its members are deprecated and have
  been renamed for consistency.  The `GIT_OBJ_` enumeration values are
  now prefixed with `GIT_OBJECT_`.  The old enumerations and macros
  will be retained for backward compatibility for the foreseeable future.

* Several index-related APIs have been renamed for consistency.  The
  `GIT_IDXENTRY_` enumeration values and macros have been renamed to
  be prefixed with `GIT_INDEX_ENTRY_`.  The `GIT_INDEXCAP` enumeration
  values are now prefixed with `GIT_INDEX_CAPABILITY_`.  The old
  enumerations and macros will be retained for backward compatibility
  for the foreseeable future.

* The error functions and enumeration values have been renamed for
  consistency.  The `giterr_` functions and values prefix have been
  renamed to be prefixed with `git_error_`; similarly, the `GITERR_`
  constants have been renamed to be prefixed with `GIT_ERROR_`.
  The old enumerations and macros will be retained for backward
  compatibility for the foreseeable future.

### Breaking API changes

* The default checkout strategy changed from `DRY_RUN` to `SAFE` (#4531).

* Adding a symlink as .gitmodules into the index from the workdir or checking
  out such files is not allowed as this can make a Git implementation write
  outside of the repository and bypass the fsck checks for CVE-2018-11235.


 devel/libgit2/Makefile      |   5 ++---
 devel/libgit2/PLIST         |   9 +++++++--
 devel/libgit2/ |   3 ++-
 devel/libgit2/distinfo      |  10 +++++-----
 4 files changed, 16 insertions(+), 11 deletions(-)

diffs (96 lines):

diff -r 0761093f7be6 -r 9f6011ab9812 devel/libgit2/Makefile
--- a/devel/libgit2/Makefile    Sun Feb 24 05:15:29 2019 +0000
+++ b/devel/libgit2/Makefile    Sun Feb 24 10:15:26 2019 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.32 2018/12/13 19:51:48 adam Exp $
+# $NetBSD: Makefile,v 1.33 2019/02/24 10:15:26 wiz Exp $
-DISTNAME=      libgit2-0.27.7
+DISTNAME=      libgit2-0.28.1
 CATEGORIES=    devel
diff -r 0761093f7be6 -r 9f6011ab9812 devel/libgit2/PLIST
--- a/devel/libgit2/PLIST       Sun Feb 24 05:15:29 2019 +0000
+++ b/devel/libgit2/PLIST       Sun Feb 24 10:15:26 2019 +0000
@@ -1,6 +1,7 @@
-@comment $NetBSD: PLIST,v 1.8 2018/04/17 10:50:24 wiz Exp $
+@comment $NetBSD: PLIST,v 1.9 2019/02/24 10:15:26 wiz Exp $
@@ -13,6 +14,7 @@
@@ -23,6 +25,7 @@
@@ -53,6 +56,7 @@
@@ -63,6 +67,7 @@
@@ -80,5 +85,5 @@
diff -r 0761093f7be6 -r 9f6011ab9812 devel/libgit2/
--- a/devel/libgit2/       Sun Feb 24 05:15:29 2019 +0000
+++ b/devel/libgit2/       Sun Feb 24 10:15:26 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD:,v 1.5 2017/11/20 23:04:05 wiz Exp $
+# $NetBSD:,v 1.6 2019/02/24 10:15:26 wiz Exp $
 BUILDLINK_TREE+=       libgit2
@@ -6,6 +6,7 @@
 BUILDLINK_API_DEPENDS.libgit2+=        libgit2>=0.26.0
+BUILDLINK_ABI_DEPENDS.libgit2+=        libgit2>=0.28.0
 BUILDLINK_PKGSRCDIR.libgit2?=  ../../devel/libgit2
 .include "../../devel/zlib/"
diff -r 0761093f7be6 -r 9f6011ab9812 devel/libgit2/distinfo
--- a/devel/libgit2/distinfo    Sun Feb 24 05:15:29 2019 +0000
+++ b/devel/libgit2/distinfo    Sun Feb 24 10:15:26 2019 +0000
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.15 2018/12/01 20:18:18 wiz Exp $
+$NetBSD: distinfo,v 1.16 2019/02/24 10:15:26 wiz Exp $
-SHA1 (libgit2-0.27.7.tar.gz) = 1898564266b4672ac3a1e98e9ce5a57bd1cd48c0
-RMD160 (libgit2-0.27.7.tar.gz) = fba3719288325573fcbce5d11b560d5cac4b2b89
-SHA512 (libgit2-0.27.7.tar.gz) = de2e266939bd40bc580603539e1156906b97299523336ddc6a66c3bec26729495bef2daa2d240b83b7e011e93852381e95a4407132b0440a5aa1e1b7642c0011
-Size (libgit2-0.27.7.tar.gz) = 4782856 bytes
+SHA1 (libgit2-0.28.1.tar.gz) = 15c252dc43211cd5609a254a1cff11a77df2dd9d
+RMD160 (libgit2-0.28.1.tar.gz) = 7fad81ad55bd8603d12a95576bd813ada8167644
+SHA512 (libgit2-0.28.1.tar.gz) = 5a1bc5c6af6ad25cb8b2c446e75a774d2a615d4999ec3223d681c7b120d83e7cecd94f1ca549bac0802f5324e27e73cc5a6483ad410636c2f06f098b30b1b647
+Size (libgit2-0.28.1.tar.gz) = 4987204 bytes

Home | Main Index | Thread Index | Old Index