diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 837be068..16c2c540 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,26 +16,37 @@ jobs:
strategy:
matrix:
include:
- - os: windows-2019
+ - os: windows-2022
name: win-x86
param: -x86
- - os: windows-2019
+ - os: windows-2022
name: win-x64
param: -x64
- - os: ubuntu-20.04
+ - os: windows-2022
+ name: win-arm64
+ param: -arm64
+ - os: ubuntu-24.04
name: linux-x64
- - os: ubuntu-20.04
- name: linux-musl-x64
- - os: ubuntu-20.04
- name: linux-arm64
- - os: ubuntu-20.04
+ - os: ubuntu-24.04
name: linux-arm
- - os: macos-10.15
+ - os: ubuntu-24.04
+ name: linux-arm64
+ - os: ubuntu-24.04
+ name: linux-ppc64le
+ - os: ubuntu-24.04
+ name: linux-musl-x64
+ - os: ubuntu-24.04
+ name: linux-musl-arm
+ - os: ubuntu-24.04
+ name: linux-musl-arm64
+ - os: macos-14
name: osx-x64
+ - os: macos-14
+ name: osx-arm64
fail-fast: false
steps:
- name: Checkout
- uses: actions/checkout@v2.3.4
+ uses: actions/checkout@v4.2.2
with:
submodules: true
- name: Build Windows
@@ -44,42 +55,40 @@ jobs:
- name: Build macOS
if: runner.os == 'macOS'
run: ./build.libgit2.sh
+ - name: Setup QEMU
+ if: matrix.name == 'linux-musl-arm' || matrix.name == 'linux-musl-arm64'
+ run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
- name: Build Linux
if: runner.os == 'Linux'
run: ./dockerbuild.sh
- name: Upload artifacts
- uses: actions/upload-artifact@v2.2.2
+ uses: actions/upload-artifact@v4.4.3
with:
name: ${{ matrix.name }}
path: nuget.package/runtimes/${{ matrix.name }}
package:
name: Create package
needs: build
- runs-on: windows-2019
+ runs-on: ubuntu-24.04
env:
DOTNET_NOLOGO: true
steps:
- name: Checkout
- uses: actions/checkout@v2.3.4
+ uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v1.7.2
+ uses: actions/setup-dotnet@v4.1.0
with:
- dotnet-version: 5.0.x
- - name: Install MinVer
- run: dotnet tool install --global minver-cli
- - name: Run MinVer
- id: minver
- run: echo '::set-output name=version::$(minver)'
+ dotnet-version: 9.0.x
- name: Download artifacts
- uses: actions/download-artifact@v2.0.10
+ uses: actions/download-artifact@v4.1.8
with:
path: nuget.package/runtimes/
- name: Create package
- run: ./nuget.exe Pack nuget.package/NativeBinaries.nuspec -Version ${{ steps.minver.outputs.version }} -NoPackageAnalysis
+ run: dotnet pack nuget.package
- name: Upload NuGet package
- uses: actions/upload-artifact@v2.2.2
+ uses: actions/upload-artifact@v4.4.3
with:
name: NuGet package
- path: ./*.nupkg
+ path: ./nuget.package/*.nupkg
diff --git a/.gitignore b/.gitignore
index 202aff2c..87bac4fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,7 @@
*.dylib
*.so
*.zip
+
+bin/
+obj/
+.vs/
diff --git a/CMakeLists.arm.txt b/CMakeLists.arm.txt
deleted file mode 100644
index 4b11f14a..00000000
--- a/CMakeLists.arm.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-SET(CMAKE_SYSTEM_NAME Linux)
-set(CMAKE_SYSTEM_PROCESSOR arm)
-set(TARGET_ABI "linux-gnueabihf")
-
-SET(CMAKE_C_COMPILER ${CMAKE_SYSTEM_PROCESSOR}-${TARGET_ABI}-gcc)
-SET(CMAKE_CXX_COMPILER ${CMAKE_SYSTEM_PROCESSOR}-${TARGET_ABI}-g++)
diff --git a/CMakeLists.arm64.txt b/CMakeLists.arm64.txt
deleted file mode 100644
index 304ef973..00000000
--- a/CMakeLists.arm64.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-SET(CMAKE_SYSTEM_NAME Linux)
-set(CMAKE_SYSTEM_PROCESSOR aarch64)
-set(TARGET_ABI "linux-gnu")
-
-SET(CMAKE_C_COMPILER ${CMAKE_SYSTEM_PROCESSOR}-${TARGET_ABI}-gcc)
-SET(CMAKE_CXX_COMPILER ${CMAKE_SYSTEM_PROCESSOR}-${TARGET_ABI}-g++)
diff --git a/Dockerfile.linux-arm b/Dockerfile.linux-arm
deleted file mode 100644
index 9e6d6c06..00000000
--- a/Dockerfile.linux-arm
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM debian:9
-WORKDIR /nativebinaries
-COPY . /nativebinaries/
-
-RUN dpkg --add-architecture armhf
-
-RUN apt update && apt -y install cmake pkg-config crossbuild-essential-armhf
-
-CMD ["/bin/bash", "-c", "./build.libgit2.sh"]
diff --git a/Dockerfile.linux-arm64 b/Dockerfile.linux-arm64
deleted file mode 100644
index 239dd775..00000000
--- a/Dockerfile.linux-arm64
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM debian:9
-WORKDIR /nativebinaries
-COPY . /nativebinaries/
-
-RUN dpkg --add-architecture arm64
-
-RUN apt update && apt -y install cmake pkg-config crossbuild-essential-arm64
-
-CMD ["/bin/bash", "-c", "./build.libgit2.sh"]
diff --git a/Dockerfile.linux-musl-x64 b/Dockerfile.linux-musl-x64
deleted file mode 100644
index 07cd6f88..00000000
--- a/Dockerfile.linux-musl-x64
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM alpine:3.7
-WORKDIR /nativebinaries
-COPY . /nativebinaries/
-
-RUN apk add --no-cache bash build-base cmake
-
-CMD ["/bin/bash", "-c", "./build.libgit2.sh"]
diff --git a/Dockerfile.linux-x64 b/Dockerfile.linux-x64
deleted file mode 100644
index dbed1ff7..00000000
--- a/Dockerfile.linux-x64
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM ubuntu:14.04
-WORKDIR /nativebinaries
-COPY . /nativebinaries/
-
-RUN apt update && apt -y install pkg-config curl make gcc build-essential
-
-RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4-Linux-x86_64.sh -o /tmp/cmake.sh && bash /tmp/cmake.sh --skip-license --prefix=/usr/local
-
-CMD ["/bin/bash", "-c", "./build.libgit2.sh"]
diff --git a/README.md b/README.md
index af893d48..a6f68879 100644
--- a/README.md
+++ b/README.md
@@ -9,9 +9,11 @@ the **[LibGit2Sharp.NativeBinaries][lg2s-nb]** NuGet package.
This package contains the compiled versions of the libgit2 native library for
the following platforms:
- - Windows (x86, x64)
- - macOS (x64)
- - Linux (arm, arm64, x64)
+ - Windows (x86, x64, arm64)
+ - macOS (x64, arm64)
+ - Linux
+ - glibc: (x64, arm, arm64, ppc64le)
+ - musl: (x64, arm, arm64)
[lg2s-nb]: https://www.nuget.org/packages/LibGit2Sharp.NativeBinaries
[lg2]: https://libgit2.github.com/
@@ -37,7 +39,15 @@ To build x64 binaries:
build.libgit2.ps1 -x64
```
-If both parameters are specified, both architectures will be built. See the script for additional parameters.
+To build arm64 binaries:
+
+```
+build.libgit2.ps1 -arm64
+```
+
+Multiple architecture parameters can be specified to build multiple binaries with a single execution of the script.
+
+See the script for additional parameters.
### build.libgit2.sh
diff --git a/UpdateLibgit2ToSha.ps1 b/UpdateLibgit2ToSha.ps1
index bf6ead69..a3111d3d 100644
--- a/UpdateLibgit2ToSha.ps1
+++ b/UpdateLibgit2ToSha.ps1
@@ -109,6 +109,7 @@ Push-Location $libgit2Directory
+
@@ -122,7 +123,9 @@ Push-Location $libgit2Directory
+
+
"@
diff --git a/build.libgit2.ps1 b/build.libgit2.ps1
index aeefd202..9c86db2c 100644
--- a/build.libgit2.ps1
+++ b/build.libgit2.ps1
@@ -6,16 +6,19 @@
.PARAMETER debug
If set, build the "Debug" configuration of libgit2, rather than "Release" (default).
.PARAMETER x86
- If set, the 32-bit version will be built.
+ If set, the x86 version will be built.
.PARAMETER x64
- If set, the 64-bit version will be built.
+ If set, the x64 version will be built.
+.PARAMETER arm64
+ If set, the arm64 version will be built.
#>
Param(
[switch]$test,
[switch]$debug,
[switch]$x86,
- [switch]$x64
+ [switch]$x64,
+ [switch]$arm64
)
Set-StrictMode -Version Latest
@@ -24,12 +27,13 @@ $projectDirectory = Split-Path $MyInvocation.MyCommand.Path
$libgit2Directory = Join-Path $projectDirectory "libgit2"
$x86Directory = Join-Path $projectDirectory "nuget.package\runtimes\win-x86\native"
$x64Directory = Join-Path $projectDirectory "nuget.package\runtimes\win-x64\native"
+$arm64Directory = Join-Path $projectDirectory "nuget.package\runtimes\win-arm64\native"
$hashFile = Join-Path $projectDirectory "nuget.package\libgit2\libgit2_hash.txt"
$sha = Get-Content $hashFile
$binaryFilename = "git2-" + $sha.Substring(0,7)
-$build_clar = 'OFF'
-if ($test.IsPresent) { $build_clar = 'ON' }
+$build_tests = 'OFF'
+if ($test.IsPresent) { $build_tests = 'ON' }
$configuration = "Release"
if ($debug.IsPresent) { $configuration = "Debug" }
@@ -98,6 +102,11 @@ function Assert-Consistent-Naming($expected, $path) {
}
try {
+ if ((!$x86.isPresent -and !$x64.IsPresent) -and !$arm64.IsPresent) {
+ Write-Output -Stderr "Error: usage $MyInvocation.MyCommand [-x86] [-x64] [-arm64]"
+ Exit
+ }
+
Push-Location $libgit2Directory
$cmake = Find-CMake
@@ -108,8 +117,8 @@ try {
cd build
if ($x86.IsPresent) {
- Write-Output "Building 32-bit..."
- Run-Command -Fatal { & $cmake -G "Visual Studio 16 2019" -A Win32 -D ENABLE_TRACE=ON -D USE_SSH=OFF -D "BUILD_CLAR=$build_clar" -D "LIBGIT2_FILENAME=$binaryFilename" .. }
+ Write-Output "Building x86..."
+ Run-Command -Fatal { & $cmake -A Win32 -D USE_SSH=exec -D USE_HTTPS=Schannel -D "BUILD_TESTS=$build_tests" -D "BUILD_CLI=OFF" -D "LIBGIT2_FILENAME=$binaryFilename" .. }
Run-Command -Fatal { & $cmake --build . --config $configuration }
if ($test.IsPresent) { Run-Command -Quiet -Fatal { & $ctest -V . } }
cd $configuration
@@ -122,10 +131,10 @@ try {
}
if ($x64.IsPresent) {
- Write-Output "Building 64-bit..."
+ Write-Output "Building x64..."
Run-Command -Quiet { & mkdir build64 }
cd build64
- Run-Command -Fatal { & $cmake -G "Visual Studio 16 2019" -A x64 -D THREADSAFE=ON -D USE_SSH=OFF -D ENABLE_TRACE=ON -D "BUILD_CLAR=$build_clar" -D "LIBGIT2_FILENAME=$binaryFilename" ../.. }
+ Run-Command -Fatal { & $cmake -A x64 -D USE_SSH=exec -D USE_HTTPS=Schannel -D "BUILD_TESTS=$build_tests" -D "BUILD_CLI=OFF" -D "LIBGIT2_FILENAME=$binaryFilename" ../.. }
Run-Command -Fatal { & $cmake --build . --config $configuration }
if ($test.IsPresent) { Run-Command -Quiet -Fatal { & $ctest -V . } }
cd $configuration
@@ -136,6 +145,21 @@ try {
Run-Command -Quiet -Fatal { & copy -fo * $x64Directory -Exclude *.lib }
}
+ if ($arm64.IsPresent) {
+ Write-Output "Building arm64..."
+ Run-Command -Quiet { & mkdir buildarm64 }
+ cd buildarm64
+ Run-Command -Fatal { & $cmake -A ARM64 -D USE_SSH=exec -D USE_HTTPS=Schannel -D "BUILD_TESTS=$build_tests" -D "BUILD_CLI=OFF" -D "LIBGIT2_FILENAME=$binaryFilename" ../.. }
+ Run-Command -Fatal { & $cmake --build . --config $configuration }
+ if ($test.IsPresent) { Run-Command -Quiet -Fatal { & $ctest -V . } }
+ cd $configuration
+ Assert-Consistent-Naming "$binaryFilename.dll" "*.dll"
+ Run-Command -Quiet { & rm *.exp }
+ Run-Command -Quiet { & rm $arm64Directory\* -ErrorAction Ignore }
+ Run-Command -Quiet { & mkdir -fo $arm64Directory }
+ Run-Command -Quiet -Fatal { & copy -fo * $arm64Directory -Exclude *.lib }
+ }
+
Write-Output "Done!"
}
finally {
diff --git a/build.libgit2.sh b/build.libgit2.sh
index b8cdd25b..3ac9e48e 100755
--- a/build.libgit2.sh
+++ b/build.libgit2.sh
@@ -7,11 +7,17 @@ SHORTSHA=${LIBGIT2SHA:0:7}
OS=`uname`
ARCH=`uname -m`
PACKAGEPATH="nuget.package/runtimes"
+OSXARCHITECTURE=$ARCH
if [[ $OS == "Darwin" ]]; then
- USEHTTPS="ON"
+ USEHTTPS="ON"
+ if [[ $RID == "osx-arm64" ]]; then
+ OSXARCHITECTURE="arm64"
+ elif [[ $RID == "osx-x64" ]]; then
+ OSXARCHITECTURE="x86_64"
+ fi
else
- USEHTTPS="OpenSSL-Dynamic"
+ USEHTTPS="OpenSSL-Dynamic"
fi
rm -rf libgit2/build
@@ -20,41 +26,27 @@ pushd libgit2/build
export _BINPATH=`pwd`
-if [[ $RID == *arm ]]; then
- export TOOLCHAIN_FILE=/nativebinaries/CMakeLists.arm.txt
-fi
-
-if [[ $RID == *arm64 ]]; then
- export TOOLCHAIN_FILE=/nativebinaries/CMakeLists.arm64.txt
-fi
-
cmake -DCMAKE_BUILD_TYPE:STRING=Release \
- -DBUILD_CLAR:BOOL=OFF \
- -DUSE_SSH=OFF \
- -DENABLE_TRACE=ON \
+ -DBUILD_TESTS:BOOL=OFF \
+ -DUSE_SSH=exec \
-DLIBGIT2_FILENAME=git2-$SHORTSHA \
- -DCMAKE_OSX_ARCHITECTURES="x86_64" \
+ -DCMAKE_OSX_ARCHITECTURES=$OSXARCHITECTURE \
-DUSE_HTTPS=$USEHTTPS \
-DUSE_BUNDLED_ZLIB=ON \
- -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
..
cmake --build .
popd
if [[ $RID == "" ]]; then
- if [[ $ARCH == "x86_64" ]]; then
- RID="unix-x64"
- else
- RID="unix-x86"
- fi
- echo "$(tput setaf 3)RID not defined. Falling back to '$RID'.$(tput sgr0)"
+ echo "$(tput setaf 3)RID not defined. Skipping copy to package path.$(tput sgr0)"
+ exit 0
fi
if [[ $OS == "Darwin" ]]; then
- LIBEXT="dylib"
+ LIBEXT="dylib"
else
- LIBEXT="so"
+ LIBEXT="so"
fi
rm -rf $PACKAGEPATH/$RID
diff --git a/docker/linux b/docker/linux
new file mode 100644
index 00000000..7e4131a9
--- /dev/null
+++ b/docker/linux
@@ -0,0 +1,9 @@
+FROM kmturley/crossbuild
+ARG ARCH='amd64'
+ENV CROSS_TRIPLE=${ARCH}
+RUN apt update && apt -y install pkg-config
+
+WORKDIR /nativebinaries
+COPY . /nativebinaries/
+
+CMD ["/bin/bash", "-c", "./build.libgit2.sh"]
diff --git a/docker/musl b/docker/musl
new file mode 100644
index 00000000..1cfa1e4e
--- /dev/null
+++ b/docker/musl
@@ -0,0 +1,8 @@
+ARG ARCH='amd64'
+FROM multiarch/alpine:${ARCH}-v3.13
+RUN apk add --no-cache bash build-base cmake
+
+WORKDIR /nativebinaries
+COPY . /nativebinaries/
+
+CMD ["/bin/bash", "-c", "./build.libgit2.sh"]
\ No newline at end of file
diff --git a/dockerbuild.sh b/dockerbuild.sh
index ae5018b4..c42fa150 100755
--- a/dockerbuild.sh
+++ b/dockerbuild.sh
@@ -1,8 +1,25 @@
#!/bin/bash
set -e
+echo "building for $RID"
-docker build -t $RID -f Dockerfile.$RID .
+if [[ $RID =~ arm64 ]]; then
+ arch="arm64"
+elif [[ $RID =~ arm ]]; then
+ arch="armhf"
+elif [[ $RID =~ ppc64le ]]; then
+ arch="powerpc64le"
+else
+ arch="amd64"
+fi
+
+if [[ $RID == linux-musl* ]]; then
+ dockerfile="docker/musl"
+else
+ dockerfile="docker/linux"
+fi
+
+docker buildx build -t $RID -f $dockerfile --build-arg ARCH=$arch .
docker run -t -e RID=$RID --name=$RID $RID
diff --git a/libgit2 b/libgit2
index 4fd32be0..5853918c 160000
--- a/libgit2
+++ b/libgit2
@@ -1 +1 @@
-Subproject commit 4fd32be01c79a5c003bb47674ac1d76d948518b7
+Subproject commit 5853918c4c6a7b12f8becf4bd11ff4362ebb9020
diff --git a/nuget.exe b/nuget.exe
deleted file mode 100644
index 0e535e73..00000000
Binary files a/nuget.exe and /dev/null differ
diff --git a/nuget.package/LibGit2Sharp.NativeBinaries.csproj b/nuget.package/LibGit2Sharp.NativeBinaries.csproj
new file mode 100644
index 00000000..5d72ef07
--- /dev/null
+++ b/nuget.package/LibGit2Sharp.NativeBinaries.csproj
@@ -0,0 +1,29 @@
+
+
+
+ netstandard2.0
+ true
+ false
+ true
+ LibGit2Sharp contributors
+ libgit2\libgit2.license.txt
+ https://github.com/libgit2/libgit2sharp.nativebinaries
+ libgit2\libgit2.png
+ Native binaries for LibGit2Sharp
+ true
+ $(MSBuildThisFileDirectory)
+ $(NoWarn);NU5127
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nuget.package/NativeBinaries.nuspec b/nuget.package/NativeBinaries.nuspec
deleted file mode 100644
index a3bbd7c0..00000000
--- a/nuget.package/NativeBinaries.nuspec
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- LibGit2Sharp.NativeBinaries
- 2.0.0
- LibGit2Sharp contributors
- libgit2\libgit2.license.txt
- https://github.com/libgit2/libgit2sharp.nativebinaries
- libgit2\libgit2.png
- false
- Native binaries for LibGit2Sharp
-
-
-
diff --git a/nuget.package/build/LibGit2Sharp.NativeBinaries.props b/nuget.package/build/LibGit2Sharp.NativeBinaries.props
index e643759c..fd3c7ad2 100644
--- a/nuget.package/build/LibGit2Sharp.NativeBinaries.props
+++ b/nuget.package/build/LibGit2Sharp.NativeBinaries.props
@@ -1,7 +1,7 @@
$(MSBuildThisFileFullPath)
- 4fd32be01c79a5c003bb47674ac1d76d948518b7
- git2-4fd32be
+ 5853918c4c6a7b12f8becf4bd11ff4362ebb9020
+ git2-5853918
diff --git a/nuget.package/build/net46/LibGit2Sharp.NativeBinaries.props b/nuget.package/build/net46/LibGit2Sharp.NativeBinaries.props
index bb4f3aee..b9049c40 100644
--- a/nuget.package/build/net46/LibGit2Sharp.NativeBinaries.props
+++ b/nuget.package/build/net46/LibGit2Sharp.NativeBinaries.props
@@ -1,12 +1,13 @@
$(MSBuildThisFileFullPath)
- 4fd32be01c79a5c003bb47674ac1d76d948518b7
- git2-4fd32be
+ 5853918c4c6a7b12f8becf4bd11ff4362ebb9020
+ git2-5853918
+
diff --git a/nuget.package/libgit2/LibGit2Sharp.dll.config b/nuget.package/libgit2/LibGit2Sharp.dll.config
index fce9d57a..95f4b0bc 100644
--- a/nuget.package/libgit2/LibGit2Sharp.dll.config
+++ b/nuget.package/libgit2/LibGit2Sharp.dll.config
@@ -1,6 +1,8 @@
-
-
-
-
+
+
+
+
+
+
diff --git a/nuget.package/libgit2/libgit2.license.txt b/nuget.package/libgit2/libgit2.license.txt
index 6bb39b0c..80788a3e 100644
--- a/nuget.package/libgit2/libgit2.license.txt
+++ b/nuget.package/libgit2/libgit2.license.txt
@@ -365,7 +365,7 @@ Public License instead of this License.
The bundled ZLib code is licensed under the ZLib license:
-Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
+ (C) 1995-2022 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -406,30 +406,107 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
----------------------------------------------------------------------
-The regex library (deps/regex/) is licensed under the GNU LGPL
-(available at the end of this file).
+The bundled PCRE implementation (deps/pcre2/) is licensed under the
+PCRE2 Licence.
-Definitions for data structures and routines for the regular
-expression library.
+PCRE2 is a library of functions to support regular expressions whose syntax
+and semantics are as close as possible to those of the Perl 5 language.
-Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006,2008
-Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+Releases 10.00 and above of PCRE2 are distributed under the terms of the "BSD"
+licence, as specified below, with one exemption for certain binary
+redistributions. The documentation for PCRE2, supplied in the "doc" directory,
+is distributed under the same terms as the software itself. The data in the
+testdata directory is not copyrighted and is in the public domain.
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
+The basic library functions are written in C and are freestanding. Also
+included in the distribution is a just-in-time compiler that can be used to
+optimize pattern matching. This is an optional feature that can be omitted when
+the library is built. The just-in-time compiler is separately licensed under the
+"2-clause BSD" licence.
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public
-License along with the GNU C Library; if not, write to the Free
-Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
+COPYRIGHT
+---------
+
+### The basic library functions
+
+ Written by: Philip Hazel
+ Email local part: Philip.Hazel
+ Email domain: gmail.com
+
+ Retired from University of Cambridge Computing Service,
+ Cambridge, England.
+
+ Copyright (c) 1997-2007 University of Cambridge
+ Copyright (c) 2007-2024 Philip Hazel
+ All rights reserved.
+
+### PCRE2 Just-In-Time compilation support
+
+ Written by: Zoltan Herczeg
+ Email local part: hzmester
+ Email domain: freemail.hu
+
+ Copyright (c) 2010-2024 Zoltan Herczeg
+ All rights reserved.
+
+### Stack-less Just-In-Time compiler
+
+ Written by: Zoltan Herczeg
+ Email local part: hzmester
+ Email domain: freemail.hu
+
+ Copyright (c) 2009-2024 Zoltan Herczeg
+ All rights reserved.
+
+The code in the `deps/sljit` directory has its own LICENSE file.
+
+### All other contributions
+
+Many other contributors have participated in the authorship of PCRE2. As PCRE2
+has never required a Contributor Licensing Agreement, or other copyright
+assignment agreement, all contributions have copyright retained by each
+original contributor or their employer.
+
+
+THE "BSD" LICENCE
+-----------------
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notices,
+ this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+ notices, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+* Neither the name of the University of Cambridge nor the names of any
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES
+------------------------------------------
+
+The second condition in the BSD licence (covering binary redistributions) does
+not apply all the way down a chain of software. If binary package A includes
+PCRE2, it must respect the condition, but if package B is software that
+includes package A, the condition is not imposed on package B unless it uses
+PCRE2 independently.
----------------------------------------------------------------------
@@ -1127,3 +1204,279 @@ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
+----------------------------------------------------------------------
+
+The xoroshiro256** implementation is licensed in the public domain:
+
+Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
+
+To the extent possible under law, the author has dedicated all copyright
+and related and neighboring rights to this software to the public domain
+worldwide. This software is distributed without any warranty.
+
+See .
+
+----------------------------------------------------------------------
+
+The built-in SHA256 support (src/hash/rfc6234) is taken from RFC 6234
+under the following license:
+
+Copyright (c) 2011 IETF Trust and the persons identified as
+authors of the code. All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the following
+conditions are met:
+
+- Redistributions of source code must retain the above
+ copyright notice, this list of conditions and
+ the following disclaimer.
+
+- Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+- Neither the name of Internet Society, IETF or IETF Trust, nor
+ the names of specific contributors, may be used to endorse or
+ promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+----------------------------------------------------------------------
+
+The built-in git_fs_path_basename_r() function is based on the
+Android implementation, BSD licensed:
+
+Copyright (C) 2008 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+----------------------------------------------------------------------
+
+The bundled ntlmclient code is licensed under the MIT license:
+
+Copyright (c) Edward Thomson. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+----------------------------------------------------------------------
+
+Portions of this software derived from Team Explorer Everywhere:
+
+Copyright (c) Microsoft Corporation
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+---------------------------------------------------------------------------
+
+Portions of this software derived from the LLVM Compiler Infrastructure:
+
+Copyright (c) 2003-2016 University of Illinois at Urbana-Champaign.
+All rights reserved.
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+---------------------------------------------------------------------------
+
+Portions of this software derived from Unicode, Inc:
+
+Copyright 2001-2004 Unicode, Inc.
+
+Disclaimer
+
+This source code is provided as is by Unicode, Inc. No claims are
+made as to fitness for any particular purpose. No warranties of any
+kind are expressed or implied. The recipient agrees to determine
+applicability of information provided. If this file has been
+purchased on magnetic or optical media from Unicode, Inc., the
+sole remedy for any claim will be exchange of defective media
+within 90 days of receipt.
+
+Limitations on Rights to Redistribute This Code
+
+Unicode, Inc. hereby grants the right to freely use the information
+supplied in this file in the creation of products supporting the
+Unicode Standard, and to make copies of this file in any form
+for internal or external distribution as long as this notice
+remains attached.
+
+---------------------------------------------------------------------------
+
+Portions of this software derived from sheredom/utf8.h:
+
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to
+
+---------------------------------------------------------------------------
+
+Portions of this software derived from RFC 1320:
+
+Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved.
+
+License to copy and use this software is granted provided that it
+is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+Algorithm" in all material mentioning or referencing this software
+or this function.
+
+License is also granted to make and use derivative works provided
+that such works are identified as "derived from the RSA Data
+Security, Inc. MD4 Message-Digest Algorithm" in all material
+mentioning or referencing the derived work.
+
+RSA Data Security, Inc. makes no representations concerning either
+the merchantability of this software or the suitability of this
+software for any particular purpose. It is provided "as is"
+without express or implied warranty of any kind.
+
+These notices must be retained in any copies of any part of this
+documentation and/or software.
+
+----------------------------------------------------------------------
+
+The bundled llhttp dependency is licensed under the MIT license:
+
+Copyright Fedor Indutny, 2018.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to permit
+persons to whom the Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/nuget.package/libgit2/libgit2_hash.txt b/nuget.package/libgit2/libgit2_hash.txt
index 698b7143..5ec9c056 100644
--- a/nuget.package/libgit2/libgit2_hash.txt
+++ b/nuget.package/libgit2/libgit2_hash.txt
@@ -1 +1 @@
-4fd32be01c79a5c003bb47674ac1d76d948518b7
+5853918c4c6a7b12f8becf4bd11ff4362ebb9020