forked from pool/libgit2
- 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
92 lines
2.7 KiB
RPMSpec
92 lines
2.7 KiB
RPMSpec
#
|
|
# spec file for package libgit2
|
|
#
|
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
# Copyright (c) 2011, Sascha Peilicke <saschpe@gmx.de>
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define sover 28
|
|
Name: libgit2
|
|
Version: 0.28.0
|
|
Release: 0
|
|
Summary: C git library
|
|
License: GPL-2.0 WITH GCC-exception-2.0
|
|
Group: Development/Libraries/C and C++
|
|
URL: http://libgit2.github.com/
|
|
Source0: https://github.com/libgit2/libgit2/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
Source99: baselibs.conf
|
|
BuildRequires: cmake >= 2.8
|
|
BuildRequires: http-parser-devel
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: pkgconfig(libcurl)
|
|
BuildRequires: pkgconfig(libssh2)
|
|
BuildRequires: pkgconfig(openssl)
|
|
BuildRequires: pkgconfig(zlib)
|
|
|
|
%description
|
|
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
|
|
with bindings.
|
|
|
|
%package -n %{name}-%{sover}
|
|
Summary: C git library
|
|
Group: System/Libraries
|
|
|
|
%description -n %{name}-%{sover}
|
|
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
|
|
with bindings.
|
|
|
|
%package devel
|
|
Summary: C git library
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name}-%{sover} >= %{version}
|
|
|
|
%description devel
|
|
This package contains all necessary include files and libraries needed
|
|
to compile and develop applications that use libgit2.
|
|
|
|
%prep
|
|
%setup -q
|
|
find examples -type f -name ".gitignore" -print -delete
|
|
|
|
%build
|
|
%cmake \
|
|
-DTHREADSAFE:BOOL=ON \
|
|
-DUSE_SSH:BOOL=ON \
|
|
-DUSE_SHA1DC:BOOL=ON
|
|
%make_jobs
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
%post -n %{name}-%{sover} -p /sbin/ldconfig
|
|
%postun -n %{name}-%{sover} -p /sbin/ldconfig
|
|
|
|
%files -n %{name}-%{sover}
|
|
%license COPYING
|
|
%doc AUTHORS README.md
|
|
%{_libdir}/%{name}.so.*%{sover}*
|
|
|
|
%files devel
|
|
%doc examples
|
|
%{_libdir}/%{name}.so
|
|
%{_includedir}/git2*
|
|
%{_libdir}/pkgconfig/libgit2.pc
|
|
|
|
%changelog
|