Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sdbusplus] add new port #33937

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

jbbjarnason
Copy link
Contributor

@jbbjarnason jbbjarnason commented Sep 22, 2023

  • Changes comply with the maintainer guide
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx
  • 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 accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.

Added meson option async, to turn off internal impl of event loop, to use boost::asio only. It is both beneficial to reduce compile time of the port (if it is not needed don't compile it). Secondly, libc++ still does not implement internals of async.

Hacks to work with old version of meson where added.

@Neumann-A
Copy link
Contributor

Updating meson is blocked by the tool RFC PR. Furthermore updating meson is no simple task since it requires changes to vcpkg_confgure_meson and how compiler flags are setup. (I mean I already did the work the problem is the tool blocker.)

@jbbjarnason
Copy link
Contributor Author

jbbjarnason commented Sep 22, 2023

Updating meson is blocked by the tool RFC PR. Furthermore updating meson is no simple task since it requires changes to vcpkg_confgure_meson and how compiler flags are setup. (I mean I already did the work the problem is the tool blocker.)

@Neumann-A , should I try to patch the current version instead?
Add support for cpp23 compiler flag.

Edit: Removed meson update and made small hacks to use the old version of meson.

@FrankXie05 FrankXie05 added category:port-update The issue is with a library, which is requesting update new revision category:new-port The issue is requesting a new library to be added; consider making a PR! labels Sep 25, 2023
@jbbjarnason jbbjarnason changed the title [sdbusplus] add new port, [meson] update to 1.2.1 Sep 25, 2023
@jbbjarnason jbbjarnason marked this pull request as draft September 25, 2023 09:49
@jbbjarnason
Copy link
Contributor Author

jbbjarnason commented Sep 25, 2023

@jbbjarnason jbbjarnason marked this pull request as ready for review September 25, 2023 12:38
@jbbjarnason
Copy link
Contributor Author

@FrankXie05 can you review this PR?

FrankXie05
FrankXie05 previously approved these changes Oct 8, 2023
@FrankXie05 FrankXie05 added the requires:all-feature-testing vcpkg install port[all features supported by that port] needs to be demonstrated to function label Oct 8, 2023
Comment on lines 17 to 18
# Hack to work with old meson version
file(COPY "${CMAKE_CURRENT_LIST_DIR}/meson_options.txt" DESTINATION "${SOURCE_PATH}")
Copy link
Contributor

Choose a reason for hiding this comment

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

AFAICS that's already part of disable-boost-definitions.patch.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can you please clarify what you mean?

disable-boost-definitions.patch is editing meson.build to prevent the code from building the library with its specified boost asio definitions, if it is built with those definitions and the consumer of the library does not specify those same definitions it will end in indexing nullptr errors within boost asio, really hard to track errors.

what the following part is resolving, is using meson version below v1.0 since vcpkg uses v0.6 which does not support the newly named option file meson.options:

# Hack to work with old meson version
file(COPY "${CMAKE_CURRENT_LIST_DIR}/meson_options.txt" DESTINATION "${SOURCE_PATH}")
Copy link
Contributor

Choose a reason for hiding this comment

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

I see now, one file is meson.options and the other one is meson.options.txt.
And we can't COPY_FILE the original file?

vcpkg uses v0.6

#28084 still suck 😞

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Simplified with COPY_FILE as suggested. Thanks!

@jbbjarnason
Copy link
Contributor Author

@FrankXie05 is there any progress with the reviewing of this PR?

@omarhogni
Copy link
Contributor

Date-Version updated, @FrankXie05 @autoantwort are there any blockers for reviewing the PR. We are ready to make changes and work with you to get this merged.

@FrankXie05
Copy link
Contributor

All features and usage have been tested successfully on x64-linux.

@FrankXie05 FrankXie05 added info:reviewed Pull Request changes follow basic guidelines and removed requires:all-feature-testing vcpkg install port[all features supported by that port] needs to be demonstrated to function labels Feb 28, 2024
@dg0yt
Copy link
Contributor

dg0yt commented Feb 28, 2024

  • Will the asio-only feature & patch remain to be maintained in vcpkg forever?
  • Does the asio-only feature fulfil the "features are additive" requirement?
@omarhogni
Copy link
Contributor

  • Will the asio-only feature & patch remain to be maintained in vcpkg forever?

    • Does the asio-only feature fulfil the "features are additive" requirement?

After looking into this more closely this feature was added in order to compile the library under libc++ because stop_token is not implemented.

I have created a PR for upstream to try and solve that problem in the right place.
https://gerrit.openbmc.org/c/openbmc/sdbusplus/+/69768

Lets hold out and see how that pans out. I can also remove this feature and we can merge now. I would then just publish an update when/if the library compiles under libc++

@vicroms vicroms added the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Mar 5, 2024
@BillyONeal BillyONeal added the depends:upstream-changes Waiting on a change to the upstream project label Mar 11, 2024
@BillyONeal
Copy link
Member

Giving upstream until March 29 to respond

@BillyONeal BillyONeal removed the info:reviewed Pull Request changes follow basic guidelines label Mar 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-update The issue is with a library, which is requesting update new revision depends:upstream-changes Waiting on a change to the upstream project requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look.
8 participants