Page MenuHomeSolus

Update msgpack to 4.0.0
ClosedPublic

Authored by EbonJaeger on Dec 2 2021, 6:56 PM.
Tags
None
Referenced Files
F11052839: D12401.diff
Thu, Aug 10, 10:11 PM
F10891109: D12401.id30495.diff
Jun 28 2023, 9:35 PM
F10889616: D12401.id30292.diff
Jun 28 2023, 1:12 AM
F10886481: D12401.id30146.diff
Jun 25 2023, 11:18 PM
F10883994: D12401.diff
Jun 24 2023, 5:44 PM
F10814112: D12401.id30292.diff
May 31 2023, 2:11 PM
F10813039: D12401.id30146.diff
May 31 2023, 9:48 AM
F10775881: D12401.id30292.diff
May 23 2023, 1:41 AM

Details

Summary

Upstream has split the C and C++ parts into two separate projects with different version numbers, so the C++ headers are no longer in this package.

Changelog:

  • Fix and improve alignment logic
  • Fix iovec name conflict
  • Fix empty string print
  • Fix buffer ptr size
Test Plan

Build tmate and neovim against this version.

Diff Detail

Repository
R2109 msgpack
Branch
master
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 2628
Build 2628: arc lint + arc unit

Event Timeline

Working out which package requires libboost

According to the msgpack C++ readme:

msgpack-c requires boost library. C++ version of msgpack-c itself is a header-only library and depends only on boost headers. Tests depend on boost unit test framework and are linked with it, so if you want to build them, you need to have this dependency installed.

A linked merged PR in the changelog said that:

msgpack-c depends on only boost headers. You don't need to link boost libraries.

So I take that to mean that this (the C package) requires libboost headers to be present, but it doesn't link to them during build. And thus the C++ package doesn't need it as a dependecy at all. Does that sound correct?

I would also guess that the C++ package would take this package as a dependency.

https://github.com/msgpack/msgpack-c/tree/cpp_master#dependency
https://github.com/msgpack/msgpack-c/pull/912

The zeromq and cppzmq packages implement this pattern, so you could take a look at those. Namely how the cppzmq (the c++ headers of zeromq) has a build and run dep on zeromq and how there's a simple check in the cppzmq package to ensure that the version of cppzmq is compatible with the version of zeromq. I also recommend adding some comments in both packages to remind anyone updating them that the packages should be updated and tested together. When I most recently updated both of them I discovered that packages that depended on cppzmq were actually no longer buildable because zeromq had been updated without cppzmq being updated as well.

@ReillyBrogan thanks for those packages, I'll take a look at them!

And yeah, additional comments would probably be a good idea. The real annoying part with this one is it's all in the same repository, but each one is developed on a separate branch and are released separately. Why they didn't just make a second project is beyond me, but that's neither here nor there. Hopefully, if there are any future incompatibilities, they'll be listed.

Additionally, as far as I can see only two packages in the Solus repo depends on msgpack, and both are C projects, not C++, so I'm not sure that we even have anything that uses the C++ headers. Certainly neovim didn't in my testing, and tmate appears to work just fine, too, so I guess the open question is: do we (I) have to worry about packaging the C++ headers right now?

After more research, only the C++ version requires the Boost headers, so this should be good to go as-is.

Actually build the tests since we already try to run them

This revision is now accepted and ready to land.Dec 21 2021, 11:37 PM
This revision was automatically updated to reflect the committed changes.