Bump to lipzip/rel-1-5-1/b95cf3fd (#1721)
Bumps to LibZipSharp/master/4d3e59c8 Main reason is to include fixes for a couple CVEs. Changes: * 1.3.0 * Support bzip2 compressed zip archives * Improve file progress callback code * Fix `zip_fdopen()` * CVE-2017-12858: Fix double `free()`. * CVE-2017-14107: Improve EOCD64 parsing. * 1.3.1 * Install `zipconf.h` into `${PREFIX}/include` * Add `zip_libzip_version()` * Fix AES tests on Linux * 1.3.2 * Fix bug introduced in last: `zip_t` was erroneously freed if `zip_close()` failed. * 1.4.0 * Improve build with `cmake` * Retire autoconf/automake build system * Add `zip_source_buffer_fragment()`. * Add support to clone unchanged beginning of archive (instead of rewriting it). Supported for buffer sources and on Apple File System. * Add support for Microsoft Universal Windows Platform. * 1.5.0 * Use standard cryptographic library instead of custom AES implementation. This also simplifies the license. * Use clang-format to format the source code. * More Windows improvements. * 1.5.1 * Choose format of installed documentation based on available tools. * Fix visibility of symbols. * Fix zipcmp directory support. * Don’t set RPATH on Linux. * Use Libs.private for link dependencies in pkg-config file. * Fix build with LibreSSL. * Various bugfixes. Additionally: * make it possible to build Windows version of libzip on Linux with mingw (no mxe required) * build on macOS targeting Windows with system/brew cmake * Linux "host" builds *must* use the system `cmake`, to prevent it from using any MXE-cross-compiled versions. * export `MACOSX_DEPLOYMENT_TARGET=10.11` in the top-level Makefile to specify the minimum version of macOS we support. Without this it is possible that code built on 10.11 with Xcode targeting a newer version of the system will not work on macOS older than the version targetted by Xcode being used. For instance, if we build on macOS 10.11 with Xcode 8.2 (which targets macOS 10.12) then the code which just built on 10.11 may not work on this very system - because it may use APIs available only starting from 10.12
This commit is contained in:
Родитель
462add4c95
Коммит
c87c61763f
|
@ -20,7 +20,7 @@
|
|||
[submodule "external/libzip"]
|
||||
path = external/libzip
|
||||
url = https://github.com/nih-at/libzip.git
|
||||
branch = master
|
||||
branch = rel-1-5-1
|
||||
[submodule "external/LibZipSharp"]
|
||||
path = external/LibZipSharp
|
||||
url = https://github.com/grendello/LibZipSharp.git
|
||||
|
|
4
Makefile
4
Makefile
|
@ -9,6 +9,10 @@ SOLUTION = Xamarin.Android.sln
|
|||
TEST_TARGETS = build-tools/scripts/RunTests.targets
|
||||
API_LEVEL ?=
|
||||
|
||||
ifeq ($(OS_NAME),Darwin)
|
||||
export MACOSX_DEPLOYMENT_TARGET := 10.11
|
||||
endif
|
||||
|
||||
ifneq ($(V),0)
|
||||
MONO_OPTIONS += --debug
|
||||
endif
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit b7aab1e26aed3e0269a73cc6f8ce973169741f76
|
||||
Subproject commit 4d3e59c8960562309c817a4c367300e6a20bf9b7
|
|
@ -1 +1 @@
|
|||
Subproject commit 1d8b1ac4d20b8ef8d3f5d496dabebaa0ff9019ff
|
||||
Subproject commit b95cf3fdd4c1271f922017f092d02a878873425c
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Content Include="$(XAInstallPrefix)xbuild\Xamarin\Android\libzip.3.0.dylib">
|
||||
<Content Include="$(XAInstallPrefix)xbuild\Xamarin\Android\libzip.5.0.dylib">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" />
|
||||
<PropertyGroup>
|
||||
<BuildDependsOnLocal Condition=" '$(HostOS)' == 'Darwin' ">
|
||||
<BuildDependsOnLocal Condition=" '$(HostOS)' == 'Darwin' Or '$(HostOS)' == 'Linux' ">
|
||||
ResolveReferences;
|
||||
_BuildUnlessCached
|
||||
</BuildDependsOnLocal>
|
||||
|
|
|
@ -1,15 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(HostOS)' == 'Linux' ">
|
||||
<CMakeBinary32>\usr\bin\cmake</CMakeBinary32>
|
||||
<CMakeBinary64>$(CMakeBinary32)</CMakeBinary64>
|
||||
<CMakeFlags32>-DCMAKE_TOOLCHAIN_FILE=$(MSBuildThisFileDirectory)\mingw-linux-32.cmake</CMakeFlags32>
|
||||
<CMakeFlags64>-DCMAKE_TOOLCHAIN_FILE=$(MSBuildThisFileDirectory)\mingw-linux-64.cmake</CMakeFlags64>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(HostOS)' == 'Darwin' ">
|
||||
<CMakeBinary64>cmake</CMakeBinary64>
|
||||
<CMakeBinary32>cmake</CMakeBinary32>
|
||||
<CMakeCommonFlags>-DCMAKE_SYSTEM_NAME=Windows -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON -DBUILD_SHARED_LIBS=ON</CMakeCommonFlags>
|
||||
<CMakeFlags32>$(CMakeCommonFlags) -DCMAKE_C_COMPILER=$(AndroidMxeFullPath)\bin\$(MingwCommandPrefix32)-gcc -DCMAKE_CXX_COMPILER=$(AndroidMxeFullPath)\bin\$(MingwCommandPrefix32)-g++ -DCMAKE_RC_COMPILER=$(AndroidMxeFullPath)\bin\$(MingwCommandPrefix32)-windres -DCMAKE_FIND_ROOT_PATH=$(AndroidMxeFullPath)\$(MingwCommandPrefix32)</CMakeFlags32>
|
||||
<CMakeFlags64>$(CMakeCommonFlags) -DCMAKE_C_COMPILER=$(AndroidMxeFullPath)\bin\$(MingwCommandPrefix64)-gcc -DCMAKE_CXX_COMPILER=$(AndroidMxeFullPath)\bin\$(MingwCommandPrefix64)-g++ -DCMAKE_RC_COMPILER=$(AndroidMxeFullPath)\bin\$(MingwCommandPrefix64)-windres -DCMAKE_FIND_ROOT_PATH=$(AndroidMxeFullPath)\$(MingwCommandPrefix64)</CMakeFlags64>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<_LibZipTarget Include="host-mxe-Win64" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:'))">
|
||||
<CMake>$(AndroidMxeFullPath)\bin\x86_64-w64-mingw32.static-cmake</CMake>
|
||||
<CMakeFlags></CMakeFlags>
|
||||
<CMake>$(CMakeBinary64)</CMake>
|
||||
<CMakeFlags>$(CMakeFlags64)</CMakeFlags>
|
||||
<OutputLibrary>x64/libzip.dll</OutputLibrary>
|
||||
<OutputLibraryPath>lib/libzip.dll</OutputLibraryPath>
|
||||
</_LibZipTarget>
|
||||
<_LibZipTarget Include="host-mxe-Win32" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win32:'))">
|
||||
<CMake>$(AndroidMxeFullPath)\bin\i686-w64-mingw32.static-cmake</CMake>
|
||||
<CMakeFlags></CMakeFlags>
|
||||
<CMake>$(CMakeBinary32)</CMake>
|
||||
<CMakeFlags>$(CMakeFlags32)</CMakeFlags>
|
||||
<OutputLibrary>libzip.dll</OutputLibrary>
|
||||
<OutputLibraryPath>lib/libzip.dll</OutputLibraryPath>
|
||||
</_LibZipTarget>
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# the name of the target operating system
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
# which compilers to use for C and C++
|
||||
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
|
||||
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
|
||||
|
||||
# here is the target environment located
|
||||
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
|
||||
|
||||
# adjust the default behaviour of the FIND_XXX() commands:
|
||||
# search headers and libraries in the target environment, search
|
||||
# programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
set(BUILD_SHARED_LIBS ON)
|
|
@ -0,0 +1,20 @@
|
|||
# the name of the target operating system
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
# which compilers to use for C and C++
|
||||
SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
||||
SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
|
||||
|
||||
# here is the target environment located
|
||||
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
|
||||
|
||||
# adjust the default behaviour of the FIND_XXX() commands:
|
||||
# search headers and libraries in the target environment, search
|
||||
# programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
set(BUILD_SHARED_LIBS ON)
|
|
@ -0,0 +1,13 @@
|
|||
# Force minimum macOS version to be 10.11 as this is the oldest version of the OS we support.
|
||||
# Setting this on command line won't work, for some reason, so we override the value her
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING "Minimum OS X deployment version" FORCE)
|
||||
|
||||
# This is necessary when cmake runs on a 10.11 system with Xcode 8.x installed in which case
|
||||
# the headers (and SDK libraries) target a later version of macOS but the host OS might not
|
||||
# have some functions found. `clonefile` is one of them - it was added in 10.12. Cmake will
|
||||
# happily "detect" clonefile even though the *host* OS doesn't have it which results in the
|
||||
# library being build but failing to load.
|
||||
#
|
||||
# Forcing a cache entry here will override the detection result, even though cmake will *still*
|
||||
# show clonefile as found in the detection output.
|
||||
set(HAVE_CLONEFILE "" CACHE INTERNAL "Force 10.11 compatibility on XA build bots" FORCE)
|
|
@ -3,13 +3,13 @@
|
|||
<ItemGroup>
|
||||
<_LibZipTarget Include="host-Darwin" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':Darwin:'))">
|
||||
<CMake>cmake</CMake>
|
||||
<CMakeFlags>-DCMAKE_OSX_ARCHITECTURES="i386;x86_64"</CMakeFlags>
|
||||
<OutputLibrary>libzip.3.0.dylib</OutputLibrary>
|
||||
<OutputLibraryPath>lib/libzip.3.0.dylib</OutputLibraryPath>
|
||||
<CMakeFlags>-C$(MSBuildThisFileDirectory)/CMakeCacheInitialOSX.txt -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBUILD_SHARED_LIBS=ON</CMakeFlags>
|
||||
<OutputLibrary>libzip.5.0.dylib</OutputLibrary>
|
||||
<OutputLibraryPath>lib/libzip.5.0.dylib</OutputLibraryPath>
|
||||
</_LibZipTarget>
|
||||
<_LibZipTarget Include="host-Linux" Condition="$(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':Linux:')) AND '$(_LinuxBuildLibZip)' == 'true' ">
|
||||
<CMake>cmake</CMake>
|
||||
<CMakeFlags></CMakeFlags>
|
||||
<CMakeFlags>-DBUILD_SHARED_LIBS=ON</CMakeFlags>
|
||||
<OutputLibrary>libzip.so</OutputLibrary>
|
||||
<OutputLibraryPath>lib/libzip.so</OutputLibraryPath>
|
||||
</_LibZipTarget>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
Inputs="@(_LibZipTargetMakefile)"
|
||||
Outputs="@(Content)">
|
||||
<Exec
|
||||
Command="make"
|
||||
Command="make VERBOSE=1"
|
||||
WorkingDirectory="$(IntermediateOutputPath)\%(_LibZipTarget.Identity)"
|
||||
/>
|
||||
<Copy
|
||||
|
|
Загрузка…
Ссылка в новой задаче