Skip to content

Commit 33a1986

Browse files
authored
CSHARP-5705: Use standard RID paths in MongoDB.Driver.Encryption packaging (#1782)
1 parent e694805 commit 33a1986

File tree

3 files changed

+56
-32
lines changed

3 files changed

+56
-32
lines changed

src/MongoDB.Driver.Encryption/LibraryLoader.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,11 @@ static LinuxLibrary()
181181
var osArchitecture = RuntimeInformation.OSArchitecture.ToString().ToLower();
182182
#pragma warning restore CA1304
183183

184-
var finalpath = IsAlpine() ? $"alpine/{osArchitecture}" : $"{osArchitecture}";
184+
var runtimeSuffix = IsAlpine() ? $"musl-{osArchitecture}" : $"{osArchitecture}";
185185

186186
__suffixPaths = new []{
187-
$"../../runtimes/linux/native/{finalpath}",
188-
$"runtimes/linux/native/{finalpath}",
187+
$"../../runtimes/linux-{runtimeSuffix}/native/",
188+
$"runtimes/linux-{runtimeSuffix}/native/",
189189
string.Empty
190190
};
191191

@@ -246,8 +246,8 @@ private class WindowsLibrary : ISharedLibraryLoader
246246
{
247247
private static readonly string[] __suffixPaths =
248248
{
249-
@"..\..\runtimes\win\native\",
250-
@".\runtimes\win\native\",
249+
@"..\..\runtimes\win-x64\native\",
250+
@".\runtimes\win-x64\native\",
251251
string.Empty
252252
};
253253

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

Lines changed: 50 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,64 +14,76 @@
1414
</PropertyGroup>
1515

1616
<PropertyGroup>
17-
<LibMongoCryptVersion>r1.15</LibMongoCryptVersion>
18-
<LibMongoCryptCommit>059d538126eb2a1cd90103147bc9b1be0d46de92</LibMongoCryptCommit>
17+
<LibMongoCryptVersionPath>r1.15/2807bca63631a5b6b8affcb7f4402e351166659e</LibMongoCryptVersionPath>
1918
</PropertyGroup>
2019

2120
<Target Name="DownloadNativeBinaries_MacOS"
22-
BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/runtimes/osx/native/libmongocrypt.dylib')">
21+
BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/osx/native/libmongocrypt.dylib')">
2322
<PropertyGroup>
24-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/macos/$(LibMongoCryptVersion)/$(LibMongoCryptCommit)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
23+
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/macos/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
2524
<LibMongoCryptSourcePath>lib/libmongocrypt.dylib</LibMongoCryptSourcePath>
26-
<LibMongoCryptPackagePath>runtimes/osx/native</LibMongoCryptPackagePath>
25+
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/osx/native</LibMongoCryptPackagePath>
2726
</PropertyGroup>
2827

2928
<MSBuild Projects ="$(MSBuildProjectFullPath)"
3029
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
3130
Targets="DownloadNativeBinary" />
3231
</Target>
3332

34-
<Target Name="DownloadNativeBinaries_UbuntuX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/runtimes/linux/native/x64/libmongocrypt.so')">
33+
<Target Name="DownloadNativeBinaries_UbuntuX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-x64/native/libmongocrypt.so')">
3534
<PropertyGroup>
36-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/ubuntu1804-64/$(LibMongoCryptVersion)/$(LibMongoCryptCommit)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
35+
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/ubuntu1804-64/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
3736
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
38-
<LibMongoCryptPackagePath>runtimes/linux/native/x64</LibMongoCryptPackagePath>
37+
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-x64/native/</LibMongoCryptPackagePath>
3938
</PropertyGroup>
4039

4140
<MSBuild Projects ="$(MSBuildProjectFullPath)"
4241
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
4342
Targets="DownloadNativeBinary" />
4443
</Target>
4544

46-
<Target Name="DownloadNativeBinaries_UbuntuARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/runtimes/linux/native/arm64/libmongocrypt.so')">
45+
<Target Name="DownloadNativeBinaries_UbuntuARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-arm64/native/libmongocrypt.so')">
4746
<PropertyGroup>
48-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/ubuntu1804-arm64/$(LibMongoCryptVersion)/$(LibMongoCryptCommit)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
47+
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/ubuntu1804-arm64/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
4948
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
50-
<LibMongoCryptPackagePath>runtimes/linux/native/arm64</LibMongoCryptPackagePath>
49+
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-arm64/native/</LibMongoCryptPackagePath>
5150
</PropertyGroup>
5251

5352
<MSBuild Projects ="$(MSBuildProjectFullPath)"
5453
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
5554
Targets="DownloadNativeBinary" />
5655
</Target>
5756

58-
<Target Name="DownloadNativeBinaries_Alpine" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/runtimes/linux/native/alpine/libmongocrypt.so')">
57+
58+
<Target Name="DownloadNativeBinaries_AlpineAMD64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-x64/native/libmongocrypt.so')">
5959
<PropertyGroup>
60-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/alpine-arm64-earthly/$(LibMongoCryptVersion)/$(LibMongoCryptCommit)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
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+
</PropertyGroup>
64+
65+
<MSBuild Projects ="$(MSBuildProjectFullPath)"
66+
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
67+
Targets="DownloadNativeBinary" />
68+
</Target>
69+
70+
<Target Name="DownloadNativeBinaries_AlpineARM64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-arm64/native/libmongocrypt.so')">
71+
<PropertyGroup>
72+
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/alpine-arm64-earthly/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
6173
<LibMongoCryptSourcePath>nocrypto/lib/libmongocrypt.so</LibMongoCryptSourcePath>
62-
<LibMongoCryptPackagePath>runtimes/linux/native/alpine</LibMongoCryptPackagePath>
74+
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/linux-musl-arm64/native/</LibMongoCryptPackagePath>
6375
</PropertyGroup>
6476

6577
<MSBuild Projects ="$(MSBuildProjectFullPath)"
6678
Properties="TargetFramework=once;LibMongoCryptSourceUrl=$(LibMongoCryptSourceUrl);LibMongoCryptSourcePath=$(LibMongoCryptSourcePath);LibMongoCryptPackagePath=$(LibMongoCryptPackagePath)"
6779
Targets="DownloadNativeBinary" />
6880
</Target>
6981

70-
<Target Name="DownloadNativeBinaries_Windows" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/runtimes/win/native/mongocrypt.dll')">
82+
<Target Name="DownloadNativeBinaries_WindowsX64" BeforeTargets="BeforeBuild" Condition="!Exists('$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/win-x64/native/mongocrypt.dll')">
7183
<PropertyGroup>
72-
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/windows-test/$(LibMongoCryptVersion)/$(LibMongoCryptCommit)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
84+
<LibMongoCryptSourceUrl>https://mciuploads.s3.amazonaws.com/libmongocrypt-release/windows-test/$(LibMongoCryptVersionPath)/libmongocrypt.tar.gz</LibMongoCryptSourceUrl>
7385
<LibMongoCryptSourcePath>bin/mongocrypt.dll</LibMongoCryptSourcePath>
74-
<LibMongoCryptPackagePath>runtimes/win/native</LibMongoCryptPackagePath>
86+
<LibMongoCryptPackagePath>$(LibMongoCryptVersionPath)/runtimes/win-x64/native</LibMongoCryptPackagePath>
7587
</PropertyGroup>
7688

7789
<MSBuild Projects ="$(MSBuildProjectFullPath)"
@@ -90,34 +102,46 @@
90102
</Target>
91103

92104
<ItemGroup>
93-
<Content Include="$(MSBuildProjectDirectory)/runtimes/osx/native/libmongocrypt.dylib">
105+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/osx/native/libmongocrypt.dylib">
94106
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
107+
<Link>runtimes\osx\native\libmongocrypt.dylib</Link>
95108
<Pack>true</Pack>
96109
<PackagePath>runtimes\osx\native</PackagePath>
97110
</Content>
98111

99-
<Content Include="$(MSBuildProjectDirectory)/runtimes/linux/native/x64/libmongocrypt.so">
112+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-x64/native/libmongocrypt.so">
113+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
114+
<Link>runtimes\linux-x64\native\libmongocrypt.so</Link>
115+
<Pack>true</Pack>
116+
<PackagePath>runtimes\linux-x64\native</PackagePath>
117+
</Content>
118+
119+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-arm64/native/libmongocrypt.so">
100120
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
121+
<Link>runtimes\linux-arm64\native\libmongocrypt.so</Link>
101122
<Pack>true</Pack>
102-
<PackagePath>runtimes\linux\native\x64</PackagePath>
123+
<PackagePath>runtimes\linux-arm64\native</PackagePath>
103124
</Content>
104125

105-
<Content Include="$(MSBuildProjectDirectory)/runtimes/linux/native/arm64/libmongocrypt.so">
126+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-arm64/native/libmongocrypt.so">
106127
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
128+
<Link>runtimes\linux-musl-arm64\native\libmongocrypt.so</Link>
107129
<Pack>true</Pack>
108-
<PackagePath>runtimes\linux\native\arm64</PackagePath>
130+
<PackagePath>runtimes\linux-musl-arm64\native</PackagePath>
109131
</Content>
110132

111-
<Content Include="$(MSBuildProjectDirectory)/runtimes/linux/native/alpine/libmongocrypt.so">
133+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/linux-musl-x64/native/libmongocrypt.so">
112134
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
135+
<Link>runtimes\linux-musl-x64\native\libmongocrypt.so</Link>
113136
<Pack>true</Pack>
114-
<PackagePath>runtimes\linux\native\alpine</PackagePath>
137+
<PackagePath>runtimes\linux-musl-x64\native</PackagePath>
115138
</Content>
116139

117-
<Content Include="$(MSBuildProjectDirectory)/runtimes/win/native/mongocrypt.dll">
140+
<Content Include="$(MSBuildProjectDirectory)/$(LibMongoCryptVersionPath)/runtimes/win-x64/native/mongocrypt.dll">
118141
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
142+
<Link>runtimes\win-x64\native\mongocrypt.dll</Link>
119143
<Pack>true</Pack>
120-
<PackagePath>runtimes\win\native</PackagePath>
144+
<PackagePath>runtimes\win-x64\native</PackagePath>
121145
</Content>
122146
</ItemGroup>
123147

src/MongoDB.Driver.Encryption/MongoDB.Driver.Encryption.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Condition="$([MSBuild]::IsOsPlatform('Windows'))">
4-
<Content Include="$(MSBuildThisFileDirectory)../runtimes/win/native/mongocrypt.dll">
4+
<Content Include="$(MSBuildThisFileDirectory)../runtimes/win-x64/native/mongocrypt.dll">
55
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
66
<Link>mongocrypt.dll</Link>
77
</Content>

0 commit comments

Comments
 (0)