MONGOCRYPT-841 add signed binaries for Github release#1145
MONGOCRYPT-841 add signed binaries for Github release#1145kevinAlbs wants to merge 3 commits intomongodb:masterfrom
Conversation
|
So, I haven't reviewed the code itself yet, but I wanted to comment on the use of Which means that even when built on RHEL 8.x, the library only uses symbols from version 2.17 of glibc. Glibc 2.17 is the same glibc version shipped in RHEL 7.x builds. So, in reality, it is not necessary to create both @kevinAlbs the main drawback of taking the approach I am suggesting here (i.e., to inspect the actual symbol references and determine the dependency/naming from that) is that it results in multiple platforms producing potentially identically named artifacts (as is the case with RHEL 8.x and 7.x). That means that the individual upload tasks would need to upload to a staging location and then a task which depends on the completion of all individual upload tasks would need to sort through the uploads and deduplicate. This has the additional drawback of potentially preventing the upload of any artifacts if even one individual upload task happens to fail. |
|
|
||
| set -eu | ||
|
|
||
| if command -v ldd &> /dev/null; then |
There was a problem hiding this comment.
I'm pretty sure that we don't the & here, as it will background the invocation. It probably happens that the invocation returns quickly enough that the & has no visible effect, but it still seems like it shouldn't be there.
Summary
Add an
upload_releasetask to upload smaller signed tarballs.Evergreen patch: https://spruce.corp.mongodb.com/version/69d8dca860bf2400076c5dc4. This patch was run by temporarily removing the
patchable: falseoption.Background & Motivation
This PR is intended to help migrate drivers from direct S3 URLs to GitHub releases (DRIVERS-3441).
The set of platforms for
upload_releasetasks are added to match existing driver download scripts (referenced in "How binaries are obtained?" of Which drivers package libmongocrypt?).The naming scheme follows some ideas of: https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/, and follows this form:
Examples:
libmongocrypt on Linux has an OpenSSL dependency by default, unless building with
nocrypto. Users must set crypto callbacks (e.g. callmongocrypt_setopt_crypto_hooks) to do operations requiring crypto to avoid an error.Version numbers for glibc and musl were determined by running
ldd --versionon thebuild_and_test_and_uploadtasks (example).