Skip to content

[mlspp] New package: mlspp v0.1.1 - #15399

Open
manelsen wants to merge 2 commits into
JuliaPackaging:masterfrom
manelsen:mlspp-v0.1.1
Open

manelsen wants to merge 2 commits into
JuliaPackaging:masterfrom
manelsen:mlspp-v0.1.1

Conversation

@manelsen

@manelsen manelsen commented Nov 1, 2026

Copy link
Copy Markdown

Adds mlspp, Cisco's C++ implementation of MLS (RFC 9420). It is the first of two PRs: the second adds Discord's libdave (the DAVE end-to-end encryption that Discord now requires for voice), which links against it. This follows up on #14291, which built mlspp inside the libdave recipe; splitting it out answers the review question there about building another library in the same recipe.

Choices worth a look:

  • Version. mlspp's only tag is v0.1.0. This builds 1cc50a1, the commit libdave pins in its vcpkg overlay port, which is 210 commits after v0.1.0, so the JLL is v0.1.1.
  • Configuration. As in libdave's vcpkg port: MLS_CXX_NAMESPACE=mlspp (libdave's sources refer to mlspp:: directly) and DISABLE_GREASE=ON.
  • macOS SDK 10.14. On x86_64-apple-darwin the default SDK fails with 'get<…>' is unavailable: introduced in macOS 10.14 in lib/hpke/src/certificate.cpp. aarch64 builds without it.
  • OpenSSL_jll 3.0.16 rather than 3.0.8, which has no riscv64 build; the same for CompilerSupportLibraries_jll 1.1.2.
  • libmls_ds and libmls_vectors are also installed; they are not declared as products since libdave does not use them.

Tested locally with the repository's .ci/bb1_project (Julia 1.13.2) for x86_64-linux-gnu, riscv64-linux-gnu, x86_64-w64-mingw32, x86_64-apple-darwin, aarch64-apple-darwin and x86_64-unknown-freebsd. libdave v1.2.2 built against the x86_64-linux-gnu shared libraries passes the DAVE test suite of Accord.jl, a Discord library that will be the first user of libdave_jll.

Cisco's MLS (RFC 9420) implementation in C++, at the commit Discord's
libdave pins, built the way libdave's vcpkg port builds it. libdave_jll
will follow once this is registered.
manelsen added a commit to manelsen/Accord.jl that referenced this pull request Nov 1, 2026
Yggdrasil allows one package per recipe, so mlspp gets its own recipe
(shared libraries, configured like libdave's vcpkg port) and libdave
depends on mlspp_jll. Neither needs patches anymore. The mlspp recipe is
submitted as JuliaPackaging/Yggdrasil#15399; libdave follows once
mlspp_jll is registered.
Comment thread M/mlspp/build_tarballs.jl

sources = [
GitSource("https://github.com/cisco/mlspp.git",
"1cc50a124a3bc4e143a787ec934280dc70c1034d"),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please use the tag kwarg

Comment thread M/mlspp/build_tarballs.jl Outdated
dependencies = [
Dependency("OpenSSL_jll";
compat="3.0.16"),
BuildDependency("nlohmann_json_jll"),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you probably want to fix a version of this build dependency

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants