SHA256
8
0
forked from pool/libgit2
Files
libgit2/libgit2.spec
Dominique Leuenberger 1e6433acdf Accepting request 674749 from GNOME:Factory
- 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
2019-02-14 15:28:32 +00:00

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