Skip to content

Commit eb30364

Browse files
committed
CSHARP-6023: Update libmongocrypt to 1.18.2 using GitHub release URLs
Download libmongocrypt binaries from GitHub releases instead of S3, and verify tarball signatures with GPG on non-Windows platforms.
1 parent 6678034 commit eb30364

2 files changed

Lines changed: 50 additions & 38 deletions

File tree

purls.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pkg:github/mongodb/libmongocrypt@1.15.2
1+
pkg:github/mongodb/libmongocrypt@1.18.2

src/MongoDB.Driver.Encryption/MongoDB.Driver.Encryption.csproj

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -14,130 +14,142 @@
1414
</PropertyGroup>
1515

1616
<PropertyGroup>
17-
<LibMongoCryptVersionPath>r1.15/2807bca63631a5b6b8affcb7f4402e351166659e</LibMongoCryptVersionPath>
17+
<LibMongoCryptVersion>1.18.2</LibMongoCryptVersion>
18+
<LibMongoCryptBaseUrl>https://github.com/mongodb/libmongocrypt/releases/download/$(LibMongoCryptVersion)</LibMongoCryptBaseUrl>
1819
</PropertyGroup>
1920

2021
<Target Name="DownloadNativeBinaries_MacOS"
21-
BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/osx/native/libmongocrypt.dylib')">
22+
BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/osx/native/libmongocrypt.dylib')">
2223
<PropertyGroup>
23-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/macos/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
24+
<LibMongoCryptTarball>libmongocrypt-macos-universal-$(LibMongoCryptVersion).tar.gz</LibMongoCryptTarball>
25+
<LibMongoCryptSourceUrl>$(LibMongoCryptBaseUrl)/$(LibMongoCryptTarball)</LibMongoCryptSourceUrl>
2426
<LibMongoCryptSourcePath>lib/libmongocrypt.dylib</LibMongoCryptSourcePath>
25-
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/osx/native</LibMongoCryptPackagePath>
27+
<LibMongoCryptPackagePath>$(LibMongoCryptVersion)/runtimes/osx/native</LibMongoCryptPackagePath>
2628
</PropertyGroup>
2729

2830
<MSBuild Projects ="$(MSBuildProjectFullPath)"
29-
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
31+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptTarball=$(LibMongoCryptTarball);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
3032
Targets="DownloadNativeBinary" />
3133
</Target>
3234

33-
<Target Name="DownloadNativeBinaries_UbuntuX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-x64/native/libmongocrypt.so')">
35+
<Target Name="DownloadNativeBinaries_UbuntuX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-x64/native/libmongocrypt.so')">
3436
<PropertyGroup>
35-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/ubuntu1804-64/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
36-
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
37-
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-x64/native/</LibMongoCryptPackagePath>
37+
<LibMongoCryptTarball>libmongocrypt-linux-x86_64-glibc_2_7-nocrypto-$(LibMongoCryptVersion).tar.gz</LibMongoCryptTarball>
38+
<LibMongoCryptSourceUrl>$(LibMongoCryptBaseUrl)/$(LibMongoCryptTarball)</LibMongoCryptSourceUrl>
39+
<LibMongoCryptSourcePath>lib64/libmongocrypt.so</LibMongoCryptSourcePath>
40+
<LibMongoCryptPackagePath>$(LibMongoCryptVersion)/runtimes/linux-x64/native/</LibMongoCryptPackagePath>
3841
</PropertyGroup>
3942

4043
<MSBuild Projects ="$(MSBuildProjectFullPath)"
41-
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
44+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptTarball=$(LibMongoCryptTarball);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
4245
Targets="DownloadNativeBinary" />
4346
</Target>
4447

45-
<Target Name="DownloadNativeBinaries_UbuntuARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-arm64/native/libmongocrypt.so')">
48+
<Target Name="DownloadNativeBinaries_UbuntuARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-arm64/native/libmongocrypt.so')">
4649
<PropertyGroup>
47-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/ubuntu1804-arm64/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
48-
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
49-
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-arm64/native/</LibMongoCryptPackagePath>
50+
<LibMongoCryptTarball>libmongocrypt-linux-arm64-glibc_2_17-nocrypto-$(LibMongoCryptVersion).tar.gz</LibMongoCryptTarball>
51+
<LibMongoCryptSourceUrl>$(LibMongoCryptBaseUrl)/$(LibMongoCryptTarball)</LibMongoCryptSourceUrl>
52+
<LibMongoCryptSourcePath>lib64/libmongocrypt.so</LibMongoCryptSourcePath>
53+
<LibMongoCryptPackagePath>$(LibMongoCryptVersion)/runtimes/linux-arm64/native/</LibMongoCryptPackagePath>
5054
</PropertyGroup>
5155

5256
<MSBuild Projects ="$(MSBuildProjectFullPath)"
53-
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
57+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptTarball=$(LibMongoCryptTarball);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
5458
Targets="DownloadNativeBinary" />
5559
</Target>
5660

57-
58-
<Target Name="DownloadNativeBinaries_AlpineAMD64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-x64/native/libmongocrypt.so')">
61+
<Target Name="DownloadNativeBinaries_AlpineAMD64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-musl-x64/native/libmongocrypt.so')">
5962
<PropertyGroup>
60-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/alpine-amd64-earthly/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
61-
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
62-
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-musl-x64/native/</LibMongoCryptPackagePath>
63+
<LibMongoCryptTarball>libmongocrypt-linux-x86_64-musl_1_2-nocrypto-$(LibMongoCryptVersion).tar.gz</LibMongoCryptTarball>
64+
<LibMongoCryptSourceUrl>$(LibMongoCryptBaseUrl)/$(LibMongoCryptTarball)</LibMongoCryptSourceUrl>
65+
<LibMongoCryptSourcePath>lib/libmongocrypt.so</LibMongoCryptSourcePath>
66+
<LibMongoCryptPackagePath>$(LibMongoCryptVersion)/runtimes/linux-musl-x64/native/</LibMongoCryptPackagePath>
6367
</PropertyGroup>
6468

6569
<MSBuild Projects ="$(MSBuildProjectFullPath)"
66-
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
70+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptTarball=$(LibMongoCryptTarball);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
6771
Targets="DownloadNativeBinary" />
6872
</Target>
6973

70-
<Target Name="DownloadNativeBinaries_AlpineARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-arm64/native/libmongocrypt.so')">
74+
<Target Name="DownloadNativeBinaries_AlpineARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-musl-arm64/native/libmongocrypt.so')">
7175
<PropertyGroup>
72-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/alpine-arm64-earthly/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
73-
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
74-
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-musl-arm64/native/</LibMongoCryptPackagePath>
76+
<LibMongoCryptTarball>libmongocrypt-linux-arm64-musl_1_2-nocrypto-$(LibMongoCryptVersion).tar.gz</LibMongoCryptTarball>
77+
<LibMongoCryptSourceUrl>$(LibMongoCryptBaseUrl)/$(LibMongoCryptTarball)</LibMongoCryptSourceUrl>
78+
<LibMongoCryptSourcePath>lib/libmongocrypt.so</LibMongoCryptSourcePath>
79+
<LibMongoCryptPackagePath>$(LibMongoCryptVersion)/runtimes/linux-musl-arm64/native/</LibMongoCryptPackagePath>
7580
</PropertyGroup>
7681

7782
<MSBuild Projects ="$(MSBuildProjectFullPath)"
78-
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
83+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptTarball=$(LibMongoCryptTarball);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
7984
Targets="DownloadNativeBinary" />
8085
</Target>
8186

82-
<Target Name="DownloadNativeBinaries_WindowsX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/win-x64/native/mongocrypt.dll')">
87+
<Target Name="DownloadNativeBinaries_WindowsX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/win-x64/native/mongocrypt.dll')">
8388
<PropertyGroup>
84-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/windows-test/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
89+
<LibMongoCryptTarball>libmongocrypt-windows-x86_64-$(LibMongoCryptVersion).tar.gz</LibMongoCryptTarball>
90+
<LibMongoCryptSourceUrl>$(LibMongoCryptBaseUrl)/$(LibMongoCryptTarball)</LibMongoCryptSourceUrl>
8591
<LibMongoCryptSourcePath>bin/mongocrypt.dll</LibMongoCryptSourcePath>
86-
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/win-x64/native</LibMongoCryptPackagePath>
92+
<LibMongoCryptPackagePath>$(LibMongoCryptVersion)/runtimes/win-x64/native</LibMongoCryptPackagePath>
8793
</PropertyGroup>
8894

8995
<MSBuild Projects ="$(MSBuildProjectFullPath)"
90-
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
96+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptTarball=$(LibMongoCryptTarball);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
9197
Targets="DownloadNativeBinary" />
9298
</Target>
9399

94100
<Target Name="DownloadNativeBinary">
95101
<PropertyGroup>
96102
<LibMongoCryptTmpPath>$(IntermediateOutputPath.Replace('\', '/'))$(LibMongoCryptPackagePath)</LibMongoCryptTmpPath>
103+
<LibMongoCryptAscUrl>$(LibMongoCryptSourceUrl.Replace('.tar.gz','.asc'))</LibMongoCryptAscUrl>
104+
<LibMongoCryptAscFile>$(LibMongoCryptTarball.Replace('.tar.gz','.asc'))</LibMongoCryptAscFile>
97105
</PropertyGroup>
98106
<DownloadFile SourceUrl="$(LibMongoCryptSourceUrl)" DestinationFolder="$(LibMongoCryptTmpPath)"/>
99-
<Exec Command="tar -zxvf $(LibMongoCryptTmpPath)/libmongocrypt.tar.gz -C $(LibMongoCryptTmpPath) $(LibMongoCryptSourcePath)" />
107+
<DownloadFile SourceUrl="$(LibMongoCryptAscUrl)" DestinationFolder="$(LibMongoCryptTmpPath)"/>
108+
<DownloadFile SourceUrl="https://pgp.mongodb.com/libmongocrypt.pub" DestinationFolder="$(LibMongoCryptTmpPath)"/>
109+
<Exec Command="gpg --batch --import $(LibMongoCryptTmpPath)/libmongocrypt.pub" Condition="!$([MSBuild]::IsOSPlatform('Windows'))" />
110+
<Exec Command="gpg --batch --verify $(LibMongoCryptTmpPath)/$(LibMongoCryptAscFile) $(LibMongoCryptTmpPath)/$(LibMongoCryptTarball)" Condition="!$([MSBuild]::IsOSPlatform('Windows'))" />
111+
<Exec Command="tar -zxvf $(LibMongoCryptTmpPath)/$(LibMongoCryptTarball) -C $(LibMongoCryptTmpPath) $(LibMongoCryptSourcePath)" />
100112
<Copy SourceFiles="$(LibMongoCryptTmpPath)/$(LibMongoCryptSourcePath)" DestinationFolder="$(MSBuildProjectDirectory)/$(LibMongoCryptPackagePath)" />
101113
<RemoveDir Directories="$(LibMongoCryptTmpPath)" />
102114
</Target>
103115

104116
<ItemGroup>
105-
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/osx/native/libmongocrypt.dylib">
117+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/osx/native/libmongocrypt.dylib">
106118
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
107119
<Link>runtimes\osx\native\libmongocrypt.dylib</Link>
108120
<Pack>true</Pack>
109121
<PackagePath>runtimes\osx\native</PackagePath>
110122
</Content>
111123

112-
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-x64/native/libmongocrypt.so">
124+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-x64/native/libmongocrypt.so">
113125
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
114126
<Link>runtimes\linux-x64\native\libmongocrypt.so</Link>
115127
<Pack>true</Pack>
116128
<PackagePath>runtimes\linux-x64\native</PackagePath>
117129
</Content>
118130

119-
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-arm64/native/libmongocrypt.so">
131+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-arm64/native/libmongocrypt.so">
120132
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
121133
<Link>runtimes\linux-arm64\native\libmongocrypt.so</Link>
122134
<Pack>true</Pack>
123135
<PackagePath>runtimes\linux-arm64\native</PackagePath>
124136
</Content>
125137

126-
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-arm64/native/libmongocrypt.so">
138+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-musl-arm64/native/libmongocrypt.so">
127139
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
128140
<Link>runtimes\linux-musl-arm64\native\libmongocrypt.so</Link>
129141
<Pack>true</Pack>
130142
<PackagePath>runtimes\linux-musl-arm64\native</PackagePath>
131143
</Content>
132144

133-
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-x64/native/libmongocrypt.so">
145+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/linux-musl-x64/native/libmongocrypt.so">
134146
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
135147
<Link>runtimes\linux-musl-x64\native\libmongocrypt.so</Link>
136148
<Pack>true</Pack>
137149
<PackagePath>runtimes\linux-musl-x64\native</PackagePath>
138150
</Content>
139151

140-
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/win-x64/native/mongocrypt.dll">
152+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersion)/runtimes/win-x64/native/mongocrypt.dll">
141153
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
142154
<Link>runtimes\win-x64\native\mongocrypt.dll</Link>
143155
<Pack>true</Pack>

0 commit comments

Comments
 (0)