Skip to content

Commit

Permalink
LibGit2: ABI update for 1.4.0 (and later) (JuliaLang#45411)
Browse files Browse the repository at this point in the history
* LibGit2: ABI update for 1.4.0

* Update to fix Windows issue
  • Loading branch information
fxcoudert authored and pcjentsch committed Aug 18, 2022
1 parent eaa0074 commit b19bc5b
Show file tree
Hide file tree
Showing 10 changed files with 89 additions and 47 deletions.
68 changes: 34 additions & 34 deletions deps/checksums/libgit2
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
LibGit2.v1.3.0+0.aarch64-apple-darwin.tar.gz/md5/af98f6fafe5678873b7f974c481c4238
LibGit2.v1.3.0+0.aarch64-apple-darwin.tar.gz/sha512/1c3509d6b2e00ddfb282e4081a3994302b86cef2ff54c74e63000ec5319cf9f37b7685a14cad85f48a90e37afa507efa97881c27a4f4926fae1b74e96a4aed5a
LibGit2.v1.3.0+0.aarch64-linux-gnu.tar.gz/md5/4884296753929a70f6f01b36bfec1f61
LibGit2.v1.3.0+0.aarch64-linux-gnu.tar.gz/sha512/42babda48f23b672ac382780b450e314ee16929c523125246f7d66e11fd27208354fd4d4c7e663e2a6091de78612be0e825f8d1cd4eba595a056838df12fd213
LibGit2.v1.3.0+0.aarch64-linux-musl.tar.gz/md5/c0b53bfdfa9d4b9e653a5470eccb40c6
LibGit2.v1.3.0+0.aarch64-linux-musl.tar.gz/sha512/b3d79bbaeb26869066d6b7e228bc2712b67c5dc45badd317c3023eda86d82ac2b712a2126d4049f1074d0ed86ec9f80f9a2e7d6458d47c1d3c953a37a4b3ac0e
LibGit2.v1.3.0+0.armv6l-linux-gnueabihf.tar.gz/md5/ac91abf4ce2ef1f25729d352c2bd3630
LibGit2.v1.3.0+0.armv6l-linux-gnueabihf.tar.gz/sha512/c8297da990ead579e285e4347a99a824a81c147965a8394e034690b63e3e84f55f21d37f2754725dacc7836812698a06fb6101fe05b222cbe11d558742986e91
LibGit2.v1.3.0+0.armv6l-linux-musleabihf.tar.gz/md5/eaf893aabde1ec021bbeda5150df6212
LibGit2.v1.3.0+0.armv6l-linux-musleabihf.tar.gz/sha512/3bca29dd9bb724db74eae72a9bbeae777e315a616938d76144c2183c9bb9b1656c83de3e7c743c3cba8f2492f74a1cf4254c8942859211f1d6beb514e3532b18
LibGit2.v1.3.0+0.armv7l-linux-gnueabihf.tar.gz/md5/fd6b13ae9129c6f082ab194782e33c01
LibGit2.v1.3.0+0.armv7l-linux-gnueabihf.tar.gz/sha512/e236667bc0e3a929b625a410c55fffa0be3f71aef090c3c18c9806ff3c866a0f2dfc1afdcba34d7f0b81b0fd38fa3441b56f4343fedf66c5eead64f059c095d3
LibGit2.v1.3.0+0.armv7l-linux-musleabihf.tar.gz/md5/9370e574abf25984dda0521b9b3d2df9
LibGit2.v1.3.0+0.armv7l-linux-musleabihf.tar.gz/sha512/281c7f04d8560f5ef4c9902ace66f41b255e6868d83bbe37e61923371b0752a076f93f249abbd64e6d3849460c2c36dee9207303f0e0eb0ef5d37990aa7337df
LibGit2.v1.3.0+0.i686-linux-gnu.tar.gz/md5/e0ecd37c7dd9709ddedf3eab8a4f2d47
LibGit2.v1.3.0+0.i686-linux-gnu.tar.gz/sha512/04ff40e26df0f66413564f4189a031abf538dbea2cd41192164ab5e5361527b18d2a448ca7dacd9754a419d198dd816dd25bfecde4b2cfb1f497aa437a1784a3
LibGit2.v1.3.0+0.i686-linux-musl.tar.gz/md5/4d98934e46f16eaa3afb597474639de6
LibGit2.v1.3.0+0.i686-linux-musl.tar.gz/sha512/6d2fea7fe42d12642004f41d31d8ecf5213d0ce7cef3489c96583c9096d8b044b70dd3466bfc2ad901a7302fb8d320713a2ee4bb03702dd7487b0eb0b34966dc
LibGit2.v1.3.0+0.i686-w64-mingw32.tar.gz/md5/29fc6f7d785aebaed7a916106efaf690
LibGit2.v1.3.0+0.i686-w64-mingw32.tar.gz/sha512/ac29ef9b8d2d2b44a8d37bba4a40103fb174a55c3210b2b5c6d02baf7cf7f0bbea5acefc5c465ce931fc21275045ad0b39ada32b96795a74e4a46fb405c76398
LibGit2.v1.3.0+0.powerpc64le-linux-gnu.tar.gz/md5/8b412e41808ff41418b35feab033c445
LibGit2.v1.3.0+0.powerpc64le-linux-gnu.tar.gz/sha512/fecbcbe322e53a311aa28a6734ca6331438f14e030342efcab7d3f9f2b582c1c23b9d40ce63e1decb92d4d8620685d2e9ae7fadc55bf5db9169590f83327e2de
LibGit2.v1.3.0+0.x86_64-apple-darwin.tar.gz/md5/033cb0d768a322dc6fc8f1fc58963f62
LibGit2.v1.3.0+0.x86_64-apple-darwin.tar.gz/sha512/69d6c9e4b38257c89311cdf0a219a8497482c85a7a39c2c6d5819c5d9443d93f4978fbe08291313492f673e02ff4ae709fa4047c3ce015a806b4f22284c1c2cf
LibGit2.v1.3.0+0.x86_64-linux-gnu.tar.gz/md5/bd7a36813ec371d2a39a98eced238294
LibGit2.v1.3.0+0.x86_64-linux-gnu.tar.gz/sha512/b3a605a9cb7057f4c9652cd551922b4e11f65d74383a9c5b7a0234b7cf599e0a23cf79695e1db6c760dea194f76b59a347e38e14729b0bcc9b120812b63bb2c3
LibGit2.v1.3.0+0.x86_64-linux-musl.tar.gz/md5/856ac3655c979881c6c0537f49907d18
LibGit2.v1.3.0+0.x86_64-linux-musl.tar.gz/sha512/8cae2271bfa4a9dc6168fdd1d6133997756f56c60cd94525357f907109b41cb7d6594f7916557de03f1450b4bc694705f2f21d8426cb909c5678cee7f1477b88
LibGit2.v1.3.0+0.x86_64-unknown-freebsd.tar.gz/md5/5c864ad058dd9c30340bb1c196d97b66
LibGit2.v1.3.0+0.x86_64-unknown-freebsd.tar.gz/sha512/e2d3953ebe99743b0f6e62901b953e7c57030cfd5b1cc40d2bda85ed26573212c2e4748f2fdf46d88b75f584471a8b0b287c0a65ef83f502164e92624aaa091e
LibGit2.v1.3.0+0.x86_64-w64-mingw32.tar.gz/md5/45d92f092eb1a319396dd7ebb36a2273
LibGit2.v1.3.0+0.x86_64-w64-mingw32.tar.gz/sha512/0f219513972259f131fbc509eb035103a986bf1483f7cf9d0bfbca2802f5bbf23296a36a9f9d72e4d89a70f86acf781aec3d49df6aaf408da4f025f65d559cfa
libgit2-b7bad55e4bb0a285b073ba5e02b01d3f522fc95d.tar.gz/md5/02582c680d006890def088ffaccea7d8
libgit2-b7bad55e4bb0a285b073ba5e02b01d3f522fc95d.tar.gz/sha512/ee51c06c012503d66ba28d9c2fc9ad42af69f22fd1ae1be54642820ccd80c74e24d78eeec7fe5222daf2432930bcce163800502db1224571da852238c1970e36
LibGit2.v1.4.3+2.aarch64-apple-darwin.tar.gz/md5/df6f108f17778bafe0dec2db18a4a312
LibGit2.v1.4.3+2.aarch64-apple-darwin.tar.gz/sha512/d9ad1f441fd705b8c91a9fbfd39e97a1fe84753a0435af67e19344476c390dd301ed53a138867cc61552a9d4f26e6bac9ddf5284354c5631312893eb828c0b27
LibGit2.v1.4.3+2.aarch64-linux-gnu.tar.gz/md5/044f354966ea77f380eef9ec8093b13e
LibGit2.v1.4.3+2.aarch64-linux-gnu.tar.gz/sha512/e6feef32df7a5ffff48a34afbba5efb02452406de756a411c5675de9434641f4678ba7a0bec849d0f74de0df089a9a3769eb4ce466570b976442ae217ea62509
LibGit2.v1.4.3+2.aarch64-linux-musl.tar.gz/md5/d985b03be81552fff6f5d451319f6a23
LibGit2.v1.4.3+2.aarch64-linux-musl.tar.gz/sha512/0d606b358010839c9ee1a25c557c347f6532f6cafad66b0ce8d28945d2d6c84745b245193765a168e3b0aec93fbd7f3bc1c80afffdc96fb18fbf27c8b340ae8c
LibGit2.v1.4.3+2.armv6l-linux-gnueabihf.tar.gz/md5/b1c839415fcceb2b0c3c75606cbf3494
LibGit2.v1.4.3+2.armv6l-linux-gnueabihf.tar.gz/sha512/92ffd4ad4ab754ddab7be786374a54fed97694714ac99cf93372829821540f78eaa071c974efddbb3bdb9ad7824a95a6b935bb19c222f402a407b7a36e162b94
LibGit2.v1.4.3+2.armv6l-linux-musleabihf.tar.gz/md5/3cada4ec0a62e441169b0247f1b86daf
LibGit2.v1.4.3+2.armv6l-linux-musleabihf.tar.gz/sha512/8ced3cad5b25370348ed68b932f03e0b67974d7a3fa973a954247cd783e9e2647adb4ced66e8dccd3918429dc5df0afbde2a28c979a5c6fe7b5d0b103f88ddb5
LibGit2.v1.4.3+2.armv7l-linux-gnueabihf.tar.gz/md5/dc4b8c69e534beae8a7b31a990cecda7
LibGit2.v1.4.3+2.armv7l-linux-gnueabihf.tar.gz/sha512/05327ba85893ff3aa478c35ea3e12ceddbca7e53d5714474bec640c9d613e362975e89569aa84cc713facdae90a0292b144fbdfd1a4c8a1f21ab6916b467e0a8
LibGit2.v1.4.3+2.armv7l-linux-musleabihf.tar.gz/md5/8f9defcc523bf0a6ae6b1623e250fc8e
LibGit2.v1.4.3+2.armv7l-linux-musleabihf.tar.gz/sha512/2770b6f969d23389724a2f4b14671fa1dcd4b344abd2a7c2a5c5bef7ffd06a95f262066d2541c1df39f1394efa66a1bef07e5a031f05b12397c997ce9d71d17d
LibGit2.v1.4.3+2.i686-linux-gnu.tar.gz/md5/a014ce0eefc4371e77cec90ee073c78e
LibGit2.v1.4.3+2.i686-linux-gnu.tar.gz/sha512/d762404b6554078af5e681a4b766d9586e6b1f40c1f297ec1f7a1f70b00a426dc6429ef781581c757754ee31f14b662a60d7b40fefc1106ff7dc79aeb734a2fd
LibGit2.v1.4.3+2.i686-linux-musl.tar.gz/md5/ceb843d699ed19384c6a11c0cbf37ce5
LibGit2.v1.4.3+2.i686-linux-musl.tar.gz/sha512/ba169256ae760543a5513d06f260a00c27e2907c72d545e74af10341e29a8376dc980d6b19603b8d73354df07a7e8c58fd9473513f93f742a77bcf863519570e
LibGit2.v1.4.3+2.i686-w64-mingw32.tar.gz/md5/98fecb082adac2b6dcaa992c018f6def
LibGit2.v1.4.3+2.i686-w64-mingw32.tar.gz/sha512/566fdd275e01f3756134d998879a8fba15ac779505f4e7524ea3928dbb52d2212579de2896659e497c56292d69f2f3f661c712ed483f09835b80854472c713df
LibGit2.v1.4.3+2.powerpc64le-linux-gnu.tar.gz/md5/324fd370a11e082b5c1e61c9be2fbd01
LibGit2.v1.4.3+2.powerpc64le-linux-gnu.tar.gz/sha512/983bbb9b0922da4120cf61ed62e310ba6b5bdf42c734632e0cb531fd2053ba6c90a5afcbe9c94568a14122ef0a1271e6c654236df903e9fc769e6a65be0ce6a0
LibGit2.v1.4.3+2.x86_64-apple-darwin.tar.gz/md5/6abf91ca41140499ab280fcea01303e4
LibGit2.v1.4.3+2.x86_64-apple-darwin.tar.gz/sha512/66cba364b542df5f443b6761cc037704cb1e99b883285fe0af17bed644e310b6cfb6ac09a4f7119f9baa5d96b79d2a365fa9a572b40b01210ad325bf1cdcc025
LibGit2.v1.4.3+2.x86_64-linux-gnu.tar.gz/md5/ae8d8f3e916dd528b3f4368bf4a51ac4
LibGit2.v1.4.3+2.x86_64-linux-gnu.tar.gz/sha512/f2235440df3ef9162b14de3d6ff06a7122e2884ef6b81f8493a475d2814dc7b41ec322f18ab11c8d04fccc7028f48b9bf7febf3b75141a43a77c57df25233887
LibGit2.v1.4.3+2.x86_64-linux-musl.tar.gz/md5/98110121f786e127adef201b21e3a4f6
LibGit2.v1.4.3+2.x86_64-linux-musl.tar.gz/sha512/d248d5a1691deb38752a71f768724a31527c2594cd9175411f7d3f5ba6e4248ecb3207859004316993a75668c7d9c35615a3e4578e874745d37cc33a66dddbdf
LibGit2.v1.4.3+2.x86_64-unknown-freebsd.tar.gz/md5/985c14f55e2f9d7c2a00543f97e0195b
LibGit2.v1.4.3+2.x86_64-unknown-freebsd.tar.gz/sha512/a7fd6adae3386ccf409f43c756fe806a1c31f75762e9c422dcc4a6a5ce237a8efa0e7606c88c3f6f684b795e81cd2d58c638043cb3bc9cfac37e29279c5d1705
LibGit2.v1.4.3+2.x86_64-w64-mingw32.tar.gz/md5/d4fba0b0ccefb72b3e78f49a366e7170
LibGit2.v1.4.3+2.x86_64-w64-mingw32.tar.gz/sha512/a0e6cd5ca6b6635f46aa9f565b75b45828dc2d1a7a0f4f00654f41bf293c67f66f213c0854a3ebe0d1f93d114cb26313dbf178ca6353ba2a441b6bf3ab0ca36f
libgit2-465bbf88ea939a965fbcbade72870c61f815e457.tar.gz/md5/b91c544293f15b00acc04315eb38c2b5
libgit2-465bbf88ea939a965fbcbade72870c61f815e457.tar.gz/sha512/ac1d47e6308ad7a7620b683fd56568390be49cd8120b475fd6617aed8e7635036fce7e99a50f2611d0adeff28082aa673292475c1782f4e9dec9fa7dde8f1e77
13 changes: 8 additions & 5 deletions deps/libgit2.mk
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ifeq ($(USE_SYSTEM_MBEDTLS), 0)
$(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: | $(build_prefix)/manifest/mbedtls
endif

LIBGIT2_OPTS := $(CMAKE_COMMON) -DCMAKE_BUILD_TYPE=Release -DTHREADSAFE=ON -DUSE_BUNDLED_ZLIB=ON
LIBGIT2_OPTS := $(CMAKE_COMMON) -DCMAKE_BUILD_TYPE=Release -DUSE_THREADS=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
ifeq ($(OS),WINNT)
LIBGIT2_OPTS += -DWIN32=ON -DMINGW=ON
ifneq ($(ARCH),x86_64)
Expand All @@ -30,7 +30,7 @@ endif
endif

ifneq (,$(findstring $(OS),Linux FreeBSD))
LIBGIT2_OPTS += -DUSE_HTTPS="mbedTLS" -DSHA1_BACKEND="CollisionDetection" -DCMAKE_INSTALL_RPATH="\$$ORIGIN"
LIBGIT2_OPTS += -DUSE_HTTPS="mbedTLS" -DUSE_SHA1="CollisionDetection" -DCMAKE_INSTALL_RPATH="\$$ORIGIN"
endif

LIBGIT2_SRC_PATH := $(SRCCACHE)/$(LIBGIT2_SRC_DIR)
Expand All @@ -45,9 +45,12 @@ $(LIBGIT2_SRC_PATH)/libgit2-hostkey.patch-applied: $(LIBGIT2_SRC_PATH)/libgit2-a
patch -p1 -f < $(SRCDIR)/patches/libgit2-hostkey.patch
echo 1 > $@

$(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: \
$(LIBGIT2_SRC_PATH)/libgit2-agent-nonfatal.patch-applied \
$(LIBGIT2_SRC_PATH)/libgit2-hostkey.patch-applied
$(LIBGIT2_SRC_PATH)/libgit2-win32-ownership.patch-applied: $(LIBGIT2_SRC_PATH)/libgit2-hostkey.patch-applied
cd $(LIBGIT2_SRC_PATH) && \
patch -p1 -f < $(SRCDIR)/patches/libgit2-win32-ownership.patch
echo 1 > $@

$(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: $(LIBGIT2_SRC_PATH)/libgit2-win32-ownership.patch-applied

$(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: $(LIBGIT2_SRC_PATH)/source-extracted
mkdir -p $(dir $@)
Expand Down
4 changes: 2 additions & 2 deletions deps/libgit2.version
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
LIBGIT2_BRANCH=v1.3.0
LIBGIT2_SHA1=b7bad55e4bb0a285b073ba5e02b01d3f522fc95d
LIBGIT2_BRANCH=v1.4.3
LIBGIT2_SHA1=465bbf88ea939a965fbcbade72870c61f815e457
27 changes: 27 additions & 0 deletions deps/patches/libgit2-win32-ownership.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
From cdff2f0237f663e0f68155655a8b66d05c1ec716 Mon Sep 17 00:00:00 2001
From: Edward Thomson <[email protected]>
Date: Mon, 13 Jun 2022 21:34:01 -0400
Subject: [PATCH] repo: allow administrator to own the configuration

Update our ownership checks that were introduced in libgit2 v1.4.3
(to combat CVE 2022-24765). These were not compatible with git's; git
itself allows administrators to own the path. Our checks now match
this behavior.
---
src/libgit2/repository.c | 2 +-
tests/libgit2/repo/open.c | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/repository.c b/src/repository.c
index 48a0b70f519..d2484318f10 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -512,7 +512,7 @@ static int validate_ownership(const char *repo_path)
bool is_safe;
int error;

- if ((error = git_fs_path_owner_is_current_user(&is_safe, repo_path)) < 0) {
+ if ((error = git_fs_path_owner_is_system_or_current_user(&is_safe, repo_path)) < 0) {
if (error == GIT_ENOTFOUND)
error = 0;

5 changes: 5 additions & 0 deletions stdlib/LibGit2/src/consts.jl
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,11 @@ const REMOTE_DOWNLOAD_TAGS_AUTO = Cint(1)
const REMOTE_DOWNLOAD_TAGS_NONE = Cint(2)
const REMOTE_DOWNLOAD_TAGS_ALL = Cint(3)

# remote_redirect
const REMOTE_REDIRECT_NONE = Cuint(1 << 0)
const REMOTE_REDIRECT_INITIAL = Cuint(1 << 1)
const REMOTE_REDIRECT_ALL = Cuint(1 << 2)

# clone
const CLONE_LOCAL_AUTO = Cint(0)
const CLONE_LOCAL = Cint(1)
Expand Down
3 changes: 2 additions & 1 deletion stdlib/LibGit2/src/error.jl
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ export GitError
RETRY = Cint(-32), # internal only
EMISMATCH = Cint(-33), # hashsum mismatch in object
EINDEXDIRTY = Cint(-34), # unsaved changes in the index would be overwritten
EAPPLYFAIL = Cint(-35)) # patch application failed
EAPPLYFAIL = Cint(-35), # patch application failed
EOWNER = Cint(-36)) # the object is not owned by the current user

@enum(Class, None,
NoMemory,
Expand Down
6 changes: 6 additions & 0 deletions stdlib/LibGit2/src/types.jl
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ The fields represent:
@static if LibGit2.VERSION >= v"0.25.0"
proxy_opts::ProxyOptions = ProxyOptions()
end
@static if LibGit2.VERSION >= v"1.4.0"
follow_redirects::Cuint = Cuint(0)
end
@static if LibGit2.VERSION >= v"0.24.0"
custom_headers::StrArrayStruct = StrArrayStruct()
end
Expand Down Expand Up @@ -677,6 +680,9 @@ The fields represent:
@static if LibGit2.VERSION >= v"0.25.0"
proxy_opts::ProxyOptions = ProxyOptions()
end
@static if LibGit2.VERSION >= v"1.4.0"
follow_redirects::Cuint = Cuint(0)
end
@static if LibGit2.VERSION >= v"0.24.0"
custom_headers::StrArrayStruct = StrArrayStruct()
end
Expand Down
4 changes: 2 additions & 2 deletions stdlib/LibGit2_jll/Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "LibGit2_jll"
uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
version = "1.3.0+0"
version = "1.4.3+2"

[deps]
MbedTLS_jll = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
Expand All @@ -9,7 +9,7 @@ Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"

[compat]
julia = "1.8"
julia = "1.9"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Expand Down
4 changes: 2 additions & 2 deletions stdlib/LibGit2_jll/src/LibGit2_jll.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ libgit2_path = ""
if Sys.iswindows()
const libgit2 = "libgit2.dll"
elseif Sys.isapple()
const libgit2 = "@rpath/libgit2.1.3.dylib"
const libgit2 = "@rpath/libgit2.1.4.dylib"
else
const libgit2 = "libgit2.so.1.3"
const libgit2 = "libgit2.so.1.4"
end

function __init__()
Expand Down
2 changes: 1 addition & 1 deletion stdlib/LibGit2_jll/test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ using Test, Libdl, LibGit2_jll
minor = Ref{Cint}(0)
patch = Ref{Cint}(0)
@test ccall((:git_libgit2_version, libgit2), Cint, (Ref{Cint}, Ref{Cint}, Ref{Cint}), major, minor, patch) == 0
@test VersionNumber(major[], minor[], patch[]) == v"1.3.0"
@test VersionNumber(major[], minor[], patch[]) == v"1.4.3"
end

0 comments on commit b19bc5b

Please sign in to comment.