- update to 1.1.1:
* Fixes a bug where decompressing packfiles could fail in rare
instances.
* Ensure worktree paths are validated in more cases.
* Builds without thread-safety (`THREADSAFE=OFF`) are supported again.
* Builds without mmap (`NO_MMAP`) are supported again.
* mbedTLS is supported in non-default locations.
* Malformed branch names or missing branches on remotes are ignored.
* Use compiler intrinsics to detect arithmetic overflows in more cases.
* The configuration cache functions properly on systems with strict
alignment.
* A missing options initializer function (`git_blob_filter_options_init`)
was added for `git_blob_filter_options`.
* Several documentation fixes.
OBS-URL: https://build.opensuse.org/request/show/906736
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libgit2?expand=0&rev=92
- Update to version 1.0.0:
* CMake was converted to make use of the GNUInstallDirs module
for both our pkgconfig and install targets in favor of our
custom build options BIN_INSTALL_DIR, LIB_INSTALL_DIR and
INCLUDE_INSTALL_DIR. Instead, you can now use CMakes standard
variables CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_LIBDIR and
CMAKE_INSTALL_INCLUDEDIR.
* Some CMake build options accepted either a specific value or a
boolean value to disable the option altogether or use automatic
detection. We only accepted "ON" or "OFF", but none of the
other values CMake recognizes as boolean. This was aligned with
CMake's understanding of booleans.
* The installed pkgconfig file contained incorrect values for
both libdir and includedir variables.
* If using pcre2 for regular expressions, then we incorrectly
added "pcre2" instead of "pcre2-8" to our pkgconfig
dependencies, which was corrected.
* Fixed building the bundled ntlmclient dependency on FreeBSD,
OpenBSD and SunOS.
* When writing symlinks on Windows, we incorrectly handled
relative symlink targets, which was corrected.
* When using the HTTP protocol via macOS' SecureTransport
implementation, reads could stall at the end of the session and
only continue after a timeout of 60 seconds was reached.
* The filesystem-based reference callback didn't corectly
initialize the backend version.
* A segmentation fault was fixed when calling git_blame_buffer()
for files that were modified and added to the index.
* A backwards-incompatible change was introduced when we moved
some structures from "git2/credentials.h" into
"git2/sys/credentials.h". This was fixed in the case where you
do not use hard deprecation.
* Improved error handling in various places.
- Change sover define to 1_0 and in baselibs following upstream
changes.
OBS-URL: https://build.opensuse.org/request/show/796007
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libgit2?expand=0&rev=84
- Update to 0.28.2:
* Fix include directory ordering when using bundled dependencies.
* Fix infinite loop when searching for a non-existing repository with
Windows-style paths including drive prefixes.
* Fix symlinks to directories on Windows.
* Fix paths with a trailing "/" not always being treated as
directories when computing ignores.
* Fix false negatives when computing ignores where ignore rules
that are a prefix to a negative ignore rule exist.
* Fix patches with CRLF line endings not being parsed correctly.
* Fix segfault when parsing patches with file addition (deletion)
where the added (deleted) file name contains a space.
* Fix assertion failure when trying to write to a non-existent
locked configuration file.
OBS-URL: https://build.opensuse.org/request/show/717802
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libgit2?expand=0&rev=77
- Update to version 0.28.0:
* 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
GIT_BLAME_USE_MAILMAP option.
- 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.
* 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.
- 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.
- Bump sover to 28 following upstreams changes.
OBS-URL: https://build.opensuse.org/request/show/674749
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libgit2?expand=0&rev=74
- libgit2 0.27.3:
* CVE-2018-10887 (bsc#1100613), CVE-2018-10888 (bsc#1100612):
Specially crafted delta object in packfiles could trigger an
integer overflow, bypassing input validation and causing the
object database to contain copies of system memory. This may
allow denial of service or, potentially, an information leak
- includes changes from 0.27.2:
* various API and correctnes fixes
* Fixes related to handling of .gitmodules
- includes changes from 0.27.1:
* CVE-2018-11235: insufficient validation of submodule names from
.gitmodules allowed writes to arbitrary paths (bsc#1095219)
* disallow .gitmodules files as symlinks.
OBS-URL: https://build.opensuse.org/request/show/621935
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libgit2?expand=0&rev=64
- update to 0.27.0:
- Changes or improvements
- Improved p_unlink in posix_w32.c to try and make a file
writable before sleeping in the retry loop to prevent
unnecessary calls to sleep.
- The CMake build infrastructure has been improved to speed up
building time.
- A new CMake option "-DUSE_HTTPS=" makes it possible to
explicitly choose an HTTP backend.
- A new CMake option "-DSHA1_BACKEND=" makes it possible to
explicitly choose an SHA1 backend. The collision-detecting
backend is now the default.
- A new CMake option "-DUSE_BUNDLED_ZLIB" makes it possible to
explicitly use the bundled zlib library.
- A new CMake option "-DENABLE_REPRODUCIBLE_BUILDS" makes it
possible to generate a reproducible static archive. This
requires support from your toolchain.
- The minimum required CMake version has been bumped to 2.8.11.
- Writing to a configuration file now preserves the case of the
key given by the caller for the case-insensitive portions of
the key (existing sections are used even if they don't
match).
- We now support conditional includes in configuration files.
- Fix for handling re-reading of configuration files with
includes.
- Fix for reading patches which contain exact renames only.
- Fix for reading patches with whitespace in the compared
files' paths.
- We will now fill FETCH_HEAD from all passed refspecs instead
of overwriting with the last one.
OBS-URL: https://build.opensuse.org/request/show/600302
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libgit2?expand=0&rev=30
- Update to 0.26.3:
* Fix cloning of the libgit2 project with git clone --recursive by removing an
invalid submodule from our testing data.
* Fix endianness of the port in p_getaddrinfo().
* Fix handling of negative gitignore rules with wildcards.
* Fix handling of case-insensitive negative gitignore rules.
* Fix resolving references to a tag if the reference is stored with its fully
resolved OID in the packed-refs file.
* Fix checkout not treating worktree files as modified when only their mode has
changed.
* Fix rename detection with GIT_DIFF_FIND_RENAMES_FROM_REWRITES.
* Fixes memory handling issues when reading crafted repository index files.
The issues allow for possible denial of service due to allocation of large
memory and out-of-bound reads.
(CVE-2018-8098 bnc#1085257 CVE-2018-8099 bnc#1085256)
* Updates the bundled zlib to 1.2.11. Users who build the bundled zlib are
vulnerable to security issues in the prior version.
OBS-URL: https://build.opensuse.org/request/show/586751
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libgit2?expand=0&rev=56