Skip to content

Conversation

@miyanyan
Copy link
Contributor

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

@miyanyan
Copy link
Contributor Author

there's no 1.87.0 release for boost-compatibility, so I keep it as 1.86.0

@Cheney-W Cheney-W added the category:port-update The issue is with a library, which is requesting update new revision label Dec 13, 2024
@Cheney-W
Copy link
Contributor

Regarding the boost-build port, it requires manually updating the SHA512 value in the portfile.cmake.

@Cheney-W
Copy link
Contributor

Below ports should do the same thing as boost-build.

boost-graph-parallel
boost-mpi
boost-property-map-parallel

The line 31 of scripts/boost/generate-ports.ps1 should be removed.

@Cheney-W Cheney-W marked this pull request as draft December 13, 2024 09:44
@miyanyan
Copy link
Contributor Author

Below ports should do the same thing as boost-build.

boost-graph-parallel
boost-mpi
boost-property-map-parallel

The line 31 of scripts/boost/generate-ports.ps1 should be removed.

thanks

@miyanyan
Copy link
Contributor Author

@Cheney-W asio removed some deprecated facilities, see https://www.boost.org/doc/libs/1_87_0/doc/html/boost_asio/history.html, and this caused some ports build failed。

for https://github.com/glynos/cpp-netlib, it has been archived by the owner on Apr 3, 2020, should we still need to support it?

set(FEATURE_OPTIONS "")
include("${CMAKE_CURRENT_LIST_DIR}/features.cmake")
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd_static")
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd_static")
list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd")

if it is necessary at all. This target is always created.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thanks, I changed to

if (BOOST_IOSTREAMS_ENABLE_ZSTD)
    list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd")
endif()

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@dg0yt there's an error when vcpkg install avro-cpp:x64-windows-static:

CMake Error at D:/installed/x64-windows-static/share/boost_iostreams/boost_iostreams-targets.cmake:60 (set_target_properties):
  The link interface of target "Boost::iostreams" contains:

    zstd::libzstd

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  D:/installed/x64-windows-static/share/boost_iostreams/boost_iostreams-config.cmake:67 (include)
  D:/a/_work/1/s/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
  D:/installed/x64-windows-static/share/boost/BoostConfig.cmake:67 (find_package)
  D:/installed/x64-windows-static/share/boost/BoostConfig.cmake:128 (boostcfg_find_component)
  D:/installed/x64-windows-static/share/boost/vcpkg-cmake-wrapper.cmake:3 (_find_package)
  D:/a/_work/1/s/scripts/buildsystems/vcpkg.cmake:813 (include)
  D:/downloads/tools/cmake-3.30.1-windows/cmake-3.30.1-windows-i386/share/cmake-3.30/Modules/FindBoost.cmake:610 (find_package)
  D:/installed/x64-windows-static/share/boost/vcpkg-cmake-wrapper.cmake:3 (_find_package)
  D:/a/_work/1/s/scripts/buildsystems/vcpkg.cmake:813 (include)
  CMakeLists.txt:77 (find_package)

config-x64-windows-static-out.log

but if I changed to

if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
    list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd_static")
endif()

it works well, seems target zstd::libzstd not work when build static?
boost_iostreams-targets.txt
zstdTargets.txt

@feliwir
Copy link

feliwir commented Mar 20, 2025

@ras0219-msft, @AugP, @BillyONeal, and I discussed this today and reached the following outcomes:

* cpp-netlib: Delist.

* websocketpp: Delist.

* freeopcua: Delist.

* quickfast: Delist.

* hazelcast-cpp-client: Delist.

* nghttp2-asio: Delist.

These delistings imply the following delistings as well:

* autobahn

* socket-io-client

* bitserializer

* etcd-cpp-apiv3

* microsoft-signalr

* signalrclient

* tgbot-cpp: They just did a new release 2 days ago, the existing Boost update PR uses the patch upstream already merged so I think we can merge that.

* functions-framework-cpp: The patch is so tiny I think we should just take it.

* hareflow: The patch is so tiny I think we should just take it.

* qwtw: The patch is so tiny and straightforward I think we should just take it.

* cpprestsdk: We can't delist due to high user counts.

* azure-storage-cpp: We can't delist due to high user counts.

@BillyONeal All of these are deprecated or dead.

@ras0219-msft

* we can remove websocket feature in cpprestsdk and change supports for cpprestsdk to avoid the boost dependencies (windows only)

Delisting websocketcpp will break the "websocket" feature in cpprestsdk. That feature should be removed and cpprestsdk's supports expression should be modified to not trigger boost dependencies which should resolve to windows only.

I'd reconsider the WebSocket++ removal, since this breaks many (including our) VCPKG setup

@BillyONeal
Copy link
Member

BillyONeal commented Mar 20, 2025

@feliwir

I'd reconsider the WebSocket++ removal, since this breaks many (including our) VCPKG setup

Then someone needs to actually maintain WebSocket++. This is not vcpkg's choice: We can't leave Boost out of date forever, and we can't become maintainers for every downstream project that is unmaintained and no longer compiles.

@feliwir
Copy link

feliwir commented Mar 20, 2025

@BillyONeal
WebSocket++ recipe had an option to not link in any dependencies. We were using this anyways since we are not using boost::asio.
I propose making this the default behavior

@BillyONeal
Copy link
Member

WebSocket++ recipe had an option to not link in any dependencies.

I don't see an obvious way to remove the boost dependency in:

https://github.com/zaphoyd/websocketpp/blob/1b11fd301531e6df35a6107c1e8665b1e77a2d8e/CMakeLists.txt#L176-L245

We have no objection to bringing it back if it can be made to compile. But relying on networking bits which have been unmaintained for 5+ years is probably a bad idea either way.

JackPGreen added a commit to JackPGreen/hazelcast-cpp-client that referenced this pull request Apr 10, 2025
[A community user raised that the `vcpkg` instructions no longer work](https://hazelcastcommunity.slack.com/archives/C015Q2TUBKL/p1743010446548399).

Specifically, `vcpkg` delisted Hazelcast when upgrading to Boost `1.87` - microsoft/vcpkg#42678.

As such an version of `vcpkg` must be used that _does_ contain Hazelcast.

Tested locally on a fresh environment via Docker:
```
docker run --interactive --tty --rm --platform linux/amd64 ubuntu:latest bash -c "apt-get -y update && apt-get install -y curl git build-essential zip unzip tar pkg-config && git clone https://github.com/microsoft/vcpkg --branch 2025.02.14 && ./vcpkg/bootstrap-vcpkg.sh && ./vcpkg/vcpkg install hazelcast-cpp-client[openssl] --recurse"
```
> Successfully downloaded hazelcast-hazelcast-cpp-client-v5.3.0.tar.gz

This is a _workaround_ until the client can be relisted.
@LilyWangLL LilyWangLL mentioned this pull request Apr 11, 2025
11 tasks
@miyanyan miyanyan mentioned this pull request Apr 13, 2025
17 tasks
JackPGreen added a commit to hazelcast/hazelcast-cpp-client that referenced this pull request Apr 22, 2025
[A community user raised that the `vcpkg` instructions no longer
work](https://hazelcastcommunity.slack.com/archives/C015Q2TUBKL/p1743010446548399).

Specifically, `vcpkg` delisted Hazelcast when upgrading to Boost `1.87`
- microsoft/vcpkg#42678.

As such an version of `vcpkg` must be used that _does_ contain
Hazelcast.

Tested locally on a fresh environment via Docker:
```
docker run --interactive --tty --rm --platform linux/amd64 ubuntu:latest bash -c "apt-get -y update && apt-get install -y curl git build-essential zip unzip tar pkg-config && git clone https://github.com/microsoft/vcpkg --branch 2025.02.14 && ./vcpkg/bootstrap-vcpkg.sh && ./vcpkg/vcpkg install hazelcast-cpp-client[openssl] --recurse"
```
> Successfully downloaded hazelcast-hazelcast-cpp-client-v5.3.0.tar.gz

This is a _workaround_ until the client can be relisted.
@Nick7K
Copy link

Nick7K commented May 22, 2025

The problem with this unilateral decision is that cpprestsdk relies on websocketpp to provide WebSocket functionality.

cpprestsdk is used by a LOT of vcpkg users.

@BillyONeal
Copy link
Member

The problem with this unilateral decision is that cpprestsdk relies on websocketpp to provide WebSocket functionality.

It isn't 'unilateral'. A lot more vcpkg customers use boost than use cpprestsdk. Integrity of the registry is more important than any individual thing in the registry.

cpprestsdk is used by a LOT of vcpkg users.

cpprestsdk is effectively unmaintained, and the websockets part is built on websocketspp which has been unmaintained for even longer. vcpkg can't effectively become the new upstream when one of the ~2500 things in the registry decides they don't want to do it any more.

@Nick7K
Copy link

Nick7K commented May 22, 2025

The problem with this unilateral decision is that cpprestsdk relies on websocketpp to provide WebSocket functionality.

It isn't 'unilateral'. A lot more vcpkg customers use boost than use cpprestsdk. Integrity of the registry is more important than any individual thing in the registry.

cpprestsdk is used by a LOT of vcpkg users.

cpprestsdk is effectively unmaintained, and the websockets part is built on websocketspp which has been unmaintained for even longer. vcpkg can't effectively become the new upstream when one of the ~2500 things in the registry decides they don't want to do it any more.

Fair enough.

I do see websocketpp is being updated - https://github.com/zaphoyd/websocketpp/pull/1164

@BillyONeal
Copy link
Member

I do see websocketpp is being updated - zaphoyd/websocketpp#1164

Wow, indeed, back from the dead. We would of course love to put this back if it can compile with current Boost.

ihsandemir pushed a commit to ihsandemir/hazelcast-cpp-client that referenced this pull request May 23, 2025
[A community user raised that the `vcpkg` instructions no longer
work](https://hazelcastcommunity.slack.com/archives/C015Q2TUBKL/p1743010446548399).

Specifically, `vcpkg` delisted Hazelcast when upgrading to Boost `1.87`
- microsoft/vcpkg#42678.

As such an version of `vcpkg` must be used that _does_ contain
Hazelcast.

Tested locally on a fresh environment via Docker:
```
docker run --interactive --tty --rm --platform linux/amd64 ubuntu:latest bash -c "apt-get -y update && apt-get install -y curl git build-essential zip unzip tar pkg-config && git clone https://github.com/microsoft/vcpkg --branch 2025.02.14 && ./vcpkg/bootstrap-vcpkg.sh && ./vcpkg/vcpkg install hazelcast-cpp-client[openssl] --recurse"
```
> Successfully downloaded hazelcast-hazelcast-cpp-client-v5.3.0.tar.gz

This is a _workaround_ until the client can be relisted.
ihsandemir pushed a commit to ihsandemir/hazelcast-cpp-client that referenced this pull request May 23, 2025
[A community user raised that the `vcpkg` instructions no longer
work](https://hazelcastcommunity.slack.com/archives/C015Q2TUBKL/p1743010446548399).

Specifically, `vcpkg` delisted Hazelcast when upgrading to Boost `1.87`
- microsoft/vcpkg#42678.

As such an version of `vcpkg` must be used that _does_ contain
Hazelcast.

Tested locally on a fresh environment via Docker:
```
docker run --interactive --tty --rm --platform linux/amd64 ubuntu:latest bash -c "apt-get -y update && apt-get install -y curl git build-essential zip unzip tar pkg-config && git clone https://github.com/microsoft/vcpkg --branch 2025.02.14 && ./vcpkg/bootstrap-vcpkg.sh && ./vcpkg/vcpkg install hazelcast-cpp-client[openssl] --recurse"
```
> Successfully downloaded hazelcast-hazelcast-cpp-client-v5.3.0.tar.gz

This is a _workaround_ until the client can be relisted.
ihsandemir pushed a commit to ihsandemir/hazelcast-cpp-client that referenced this pull request May 23, 2025
[A community user raised that the `vcpkg` instructions no longer
work](https://hazelcastcommunity.slack.com/archives/C015Q2TUBKL/p1743010446548399).

Specifically, `vcpkg` delisted Hazelcast when upgrading to Boost `1.87`
- microsoft/vcpkg#42678.

As such an version of `vcpkg` must be used that _does_ contain
Hazelcast.

Tested locally on a fresh environment via Docker:
```
docker run --interactive --tty --rm --platform linux/amd64 ubuntu:latest bash -c "apt-get -y update && apt-get install -y curl git build-essential zip unzip tar pkg-config && git clone https://github.com/microsoft/vcpkg --branch 2025.02.14 && ./vcpkg/bootstrap-vcpkg.sh && ./vcpkg/vcpkg install hazelcast-cpp-client[openssl] --recurse"
```
> Successfully downloaded hazelcast-hazelcast-cpp-client-v5.3.0.tar.gz

This is a _workaround_ until the client can be relisted.
ihsandemir pushed a commit to hazelcast/hazelcast-cpp-client that referenced this pull request May 23, 2025
[A community user raised that the `vcpkg` instructions no longer
work](https://hazelcastcommunity.slack.com/archives/C015Q2TUBKL/p1743010446548399).

Specifically, `vcpkg` delisted Hazelcast when upgrading to Boost `1.87`
- microsoft/vcpkg#42678.

As such an version of `vcpkg` must be used that _does_ contain
Hazelcast.

Tested locally on a fresh environment via Docker:
```
docker run --interactive --tty --rm --platform linux/amd64 ubuntu:latest bash -c "apt-get -y update && apt-get install -y curl git build-essential zip unzip tar pkg-config && git clone https://github.com/microsoft/vcpkg --branch 2025.02.14 && ./vcpkg/bootstrap-vcpkg.sh && ./vcpkg/vcpkg install hazelcast-cpp-client[openssl] --recurse"
```
> Successfully downloaded hazelcast-hazelcast-cpp-client-v5.3.0.tar.gz

This is a _workaround_ until the client can be relisted.
@reitowo
Copy link
Contributor

reitowo commented May 26, 2025

Why websocketpp is removed from vcpkg?

@BillyONeal
Copy link
Member

Why websocketpp is removed from vcpkg?

Because it can't be built with current versions of Boost. It's effectively unmaintained at this point. If upstream would fix it to build with current Boost we would put it back.

@reitowo
Copy link
Contributor

reitowo commented May 28, 2025

Oh, ok. I just want to say I was using it in manifest mode, after updating baseline in vcpkg.json, it just throw a git error that says invalid tree object or something, not very clear, spent some time debugging it.

@BillyONeal
Copy link
Member

Oh, ok. I just want to say I was using it in manifest mode, after updating baseline in vcpkg.json, it just throw a git error that says invalid tree object or something, not very clear, spent some time debugging it.

Improving the error message is a reasonable issue to report if you have a repro

@reitowo
Copy link
Contributor

reitowo commented May 31, 2025

Here's a repro: #45778 (Not sure if it is duplicated to any existing issue)

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

Labels

category:port-update The issue is with a library, which is requesting update new revision info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. 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.