Skip to content

[dispenso] Update to version 1.6.0 - #53402

Open
Brian Budge (graphicsMan) wants to merge 1 commit into
microsoft:masterfrom
graphicsMan:dispenso-1.6.0
Open

[dispenso] Update to version 1.6.0#53402
Brian Budge (graphicsMan) wants to merge 1 commit into
microsoft:masterfrom
graphicsMan:dispenso-1.6.0

Conversation

@graphicsMan

Copy link
Copy Markdown
Contributor

Port Update Checklist

  • Complies with the maintainer guide
  • Updated SHA512 checksums
  • Version database updated via ./vcpkg x-add-version --all
  • Exactly one version added per modified versions file

Update dispenso to version 1.6.0.

This also clears the two 1.5.0-era workarounds. Both have been unnecessary
since dispenso 1.5.1, and neither is needed by 1.6.0:

  • Removes the orphaned fix-arm64-platform-define.patch. [dispenso] Bump to 1.5.1 #50867 dropped the
    PATCHES reference but left the file itself behind. Billy O'Neal (@BillyONeal) asked in
    [dispenso] Update to version 1.5.1 #50888 that it be removed "next time the port is touched" — this is that PR.
  • Removes -DDISPENSO_SHARED_LIB=${DISPENSO_SHARED} and the
    string(COMPARE EQUAL ...) line feeding it. Upstream CMakeLists.txt has
    defaulted DISPENSO_SHARED_LIB to ${BUILD_SHARED_LIBS} since 1.5.1, so the
    port no longer has to force it; VCPKG_LIBRARY_LINKAGE now drives linkage
    through the standard mechanism.

@BillyONeal Billy O'Neal (BillyONeal) left a comment

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.

GPT 5.6 Sol reports:

  • The port uses bundled concurrentqueue, exposing a non-root public include path that breaks direct header consumption. It also installs third-party code under BSD/Boost licensing while declaring only MIT (portfile.cmake, concurrentqueue.h).

(It also complained about NOMINMAX but I don't care :) )

I understand that this is not a regression introduced by this update, so if you don't want to deal with devendoring it that's OK, but we at least need to fix the installed copyright file and "license" to note the different license of the vendored part if you decide to not devendor it.

Thanks for the update!

@BillyONeal
Billy O'Neal (BillyONeal) marked this pull request as draft August 13, 2026 22:44
@graphicsMan

Copy link
Copy Markdown
Contributor Author

Thanks for the careful review — both points are fair.

Rather than declaring the extra licenses, I've devendored: the port now depends on concurrentqueue and builds dispenso with -DDISPENSO_USE_SYSTEM_CONCURRENTQUEUE=ON, which dispenso has supported for a while and which conan-center already uses. That resolves both points at once — no third-party code is installed, so there's nothing to under-declare, and <moodycamel/concurrentqueue.h> now resolves from the root include path.

On the include-path point specifically: you're right that it isn't a regression here, and dispenso 1.6.1 fixes it upstream as well, so the bundled layout stops being a trap for consumers who don't go through the CMake target.

Your review also caught something on our side worth fixing: dispenso's own README understated the bundled licenses — it omitted the Boost option entirely, and implied the Zlib terms applied more broadly than they do. Correcting upstream now.

Thanks again!

@graphicsMan

Copy link
Copy Markdown
Contributor Author

Correction to my previous comment: I said devendoring resolves the include-path point too. It doesn't — I'd misread the concurrentqueue port's install layout.

That port installs its headers to include/concurrentqueue/moodycamel/, not include/moodycamel/, so <moodycamel/concurrentqueue.h> still isn't reachable from a bare -I<prefix>/include; it resolves through the CMake target's include directories, the same as for any other consumer of that port.

So this update fixes the licensing point squarely — dispenso now installs no third-party code, and concurrentqueue carries its own copyright — and leaves the header layout to that port rather than dispenso inventing its own. Happy to do something further there if you'd prefer, but matching the existing port seemed better than special-casing dispenso.

For what it's worth, dispenso 1.6.1 does fix the layout on the bundled path upstream (the vendored headers move to the include root), so source builds and anything not going through the CMake target stop hitting it.

@graphicsMan

Copy link
Copy Markdown
Contributor Author

Correction to my previous comment: I said devendoring resolves the include-path point too. It doesn't — I'd misread the concurrentqueue port's install layout.

That port installs its headers to include/concurrentqueue/moodycamel/, not include/moodycamel/, so <moodycamel/concurrentqueue.h> still isn't reachable from a bare -I<prefix>/include; it resolves through the CMake target's include directories, the same as for any other consumer of that port.

So this update fixes the licensing point squarely — dispenso now installs no third-party code, and concurrentqueue carries its own copyright — and leaves the header layout to that port rather than dispenso inventing its own. Happy to do something further there if you'd prefer, but matching the existing port seemed better than special-casing dispenso.

For what it's worth, dispenso 1.6.1 will fix the layout on the bundled path upstream (the vendored headers move to the include root), so source builds and anything not going through the CMake target stop hitting it.

@BillyONeal
Billy O'Neal (BillyONeal) marked this pull request as ready for review August 15, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants