Skip to content

[rdma-core] Add new port#51531

Draft
chris1786 wants to merge 1 commit intomicrosoft:masterfrom
chris1786:rdma-core
Draft

[rdma-core] Add new port#51531
chris1786 wants to merge 1 commit intomicrosoft:masterfrom
chris1786:rdma-core

Conversation

@chris1786
Copy link
Copy Markdown
Contributor

@chris1786 chris1786 commented May 3, 2026

  • Changes comply with the maintainer guide.
  • The packaged project shows strong association with the chosen port name. Check this box if at least one of the following criteria is met:
    • The project is in Repology: https://repology.org//versions
    • The project is amongst the first web search results for "" or " C++". Include a screenshot of the search engine results in the PR.
    • The port name follows the 'GitHubOrg-GitHubRepo' form or equivalent Owner-Project form.
  • Optional dependencies of the build are all controlled by the port. A dependency is controlled if it is declared an unconditional dependency in vcpkg.json, or explicitly disabled through patches or build system arguments such as CMAKE_DISABLE_FIND_PACKAGE_Xxx or VCPKG_LOCK_FIND_PACKAGE
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is brief and accurate. See adding-usage for context. Don't add a usage file if the automatically generated usage is correct.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

@chris1786 chris1786 marked this pull request as ready for review May 3, 2026 22:04
Copy link
Copy Markdown
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

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

I asked GPT 5.4 to look at this. About half the report it generated was nonsense but these bits seem reasonable. In particular the license bits probably need to be fixed.

"ccan" being vendored may be fine if this is one of those situations where we would never expect that to be provided by itself.

The hard "request changes" is about the licensing parts.

===========================

Build Invocation Summary

  • Key options: -DENABLE_RESOLVE_NEIGH=OFF, -DNO_MAN_PAGES=ON, -DNO_PYVERBS=ON, -DENABLE_STATIC=... (ports/rdma-core/portfile.cmake:20-38)
  • Feature controls: tests, examples, docs, infiniband-diags, srp_daemon, kernel-boot, and librspreload are patched out (ports/rdma-core/0001-disable-tests.patch:1-28, 0002-disable-examples.patch:1-13, 0003-disable-documentation.patch, 0004-disable-infiniband-diags.patch:1-15, 0005-disable-srp-daemon.patch:1-12, 0006-disable-kernel-boot.patch:1-13, 0007-disable-librspreload.patch:1-33)
  • Platform guards: supports: "linux" in metadata; install succeeded on Linux
  • Observed configure command: static-only build on x64-linux, with VCPKG_LOCK_FIND_PACKAGE_Systemd=OFF and VCPKG_LOCK_FIND_PACKAGE_UDev=OFF (buildtrees/rdma-core/config-x64-linux-out.log:1)

Vendored Dependencies

  • Bundled component: ccan

    • Evidence: upstream builds an internal static ccan library and links it through COMMON_LIBS / COMMON_LIBS_PIC (buildtrees/rdma-core/src/v62.0-f5edcc20ee.clean/ccan/CMakeLists.txt:1-22, buildlib/rdma_functions.cmake:13-15,103-115,247-301)
    • Status: present and folded into installed static libraries, but not installed as standalone headers or a separate library
    • Assessment: vendored internal code is materially part of shipped .a archives, and it carries MIT / CC0 notices (buildtrees/rdma-core/src/v62.0-f5edcc20ee.clean/COPYING.md:26-35, ccan/LICENSE.MIT, ccan/LICENSE.CCO)
  • Bundled provider-specific code

    • Evidence: installed static provider archives include libipathverbs-rdmav59.a, libhfi1verbs-rdmav59.a, libocrdma-rdmav59.a (packages/rdma-core_x64-linux/lib/...)
    • Status: installed
    • Assessment: upstream documents provider-specific alternate licenses beyond the default dual license (COPYING.md:36-49, providers/ipathverbs/COPYING:1-35, COPYING.BSD_FB:1-22)

License / Installed Content Findings

  • Finding: installed content appears broader than the declared SPDX expression
    • Declared license: GPL-2.0-only OR Linux-OpenIB
    • Observed installed content: static provider archives and internally linked vendored ccan code in packages/rdma-core_x64-linux/lib/*.a
    • Evidence: upstream license catalog calls out ccan under MIT / CC0 and provider-specific alternatives including Intel 3-clause BSD, PathScale BSD patent, and OpenIB BSD FreeBSD variant (buildtrees/rdma-core/src/v62.0-f5edcc20ee.clean/COPYING.md:26-49; providers/ipathverbs/COPYING:1-35; COPYING.BSD_FB:1-22)
    • Assessment: vcpkg.json likely under-describes the installed licensing surface. At minimum, the copyright bundle is incomplete for the installed static-provider payload, and the SPDX expression may need to account for additional bundled-license alternatives

Other Port Review Suggestions

  • Suggestion: review whether static-only packaging should ship all provider archives unconditionally
    • Evidence: the package installs many provider-specific static libraries with no features (packages/rdma-core_x64-linux/lib/*; ports/rdma-core/vcpkg.json:1-23)
    • Rationale: this is a large payload with diverse licensing and hardware-specific code, but consumers cannot opt out or model providers separately

"${SOURCE_PATH}/COPYING.md"
"${SOURCE_PATH}/COPYING.BSD_MIT"
"${SOURCE_PATH}/COPYING.GPL2"
) No newline at end of file
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.

(extreme nitpick) Please add the missing newline here

Comment thread ports/rdma-core/vcpkg.json
@BillyONeal BillyONeal marked this pull request as draft May 5, 2026 02:45
@BillyONeal
Copy link
Copy Markdown
Member

Despite the nitpicks, thank you for the new port submission!

@chris1786
Copy link
Copy Markdown
Contributor Author

"ccan" being vendored may be fine if this is one of those situations where we would never expect that to be provided by itself.

Looking at ccan's documentation on its website, it appears that it's designed to be vendored, rather than consumed as a dependency. As such, I think this is best left as-is.

Will rework the licensing info.

@BillyONeal BillyONeal added the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label May 5, 2026
@chris1786
Copy link
Copy Markdown
Contributor Author

@BillyONeal - there are a couple of licences (PathScale BSD Patent license and Intel 3 clause BSD license), that are not listed in standalone files within the source repo, and are only listed within headers. How should I handle this? Should I vendor the licenses as files within the port directory, and install them from there?

@BillyONeal
Copy link
Copy Markdown
Member

BillyONeal commented May 5, 2026

Even if designed to be vendored that's still broken if 2 ports do this. (We have similar problems with imgui which also expects to be vendored that also breaks the universe as soon as 2 people do this)

It looks like for now that isn't creating conflicts so I don't think it's an over our dead bodies issue. But still + requires:vcpkg-team-review for a 2nd opinion

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

Labels

requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants