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