Skip to content

[matroska] Update to 1.7.2 - #53669

Open
SunBlack (SunBlack) wants to merge 1 commit into
microsoft:masterfrom
SunBlack:matroska
Open

[matroska] Update to 1.7.2#53669
SunBlack (SunBlack) wants to merge 1 commit into
microsoft:masterfrom
SunBlack:matroska

Conversation

@SunBlack

Copy link
Copy Markdown
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, or no changes were necessary.
  • Any fixed CI baseline and CI feature baseline entries are removed from that file, or no entries needed to be changed.
  • All patch files in the port are applied and succeed.
  • 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.

@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:

  • On Windows, upstream 1.7.2 forces BUILD_SHARED_LIBS off even when vcpkg requests a dynamic build. Consequently, x64-windows loses bin/matroska.dll and debug/bin/matroska.dll, but BUILD_INFO still reports LibraryLinkage: dynamic.

Steve Lhomme (@robUx4) Is this expected? It looks like DLLs on Windows used to work.

Comment thread ports/matroska/vcpkg.json
"dependencies": [
{
"name": "ebml",
"version>=": "1.4.4"

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.

Why was this version constraint dropped?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Basically this was incorrect, as only 1.4.3 is required

Since we don't do that with other ports either: Why with this port? And why is there only version>= and not also version== (that would make sense for Boost, for example, since vcpkg doesn't rebuild things there if, say, Boost 1.81 is partially installed, but later you install something that requires a different Boost component, and vcpkg now contains Boost 1.82, the build fails because Boost checks its dependencies using EXACT).

Comment thread ports/matroska/vcpkg.json
"version": "1.7.2",
"description": "a C++ library to parse Matroska files (.mkv and .mka)",
"homepage": "https://github.com/Matroska-Org/libmatroska",
"dependencies": [

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.

  • The pre-existing manifest has no SPDX license field. The installed headers state LGPL 2.1 or later, so "license": "LGPL-2.1-or-later" would describe the packaged content.
@BillyONeal
Billy O'Neal (BillyONeal) marked this pull request as draft August 31, 2026 04:37
@robUx4

Copy link
Copy Markdown
Contributor

GPT 5.6 Sol reports:

  • On Windows, upstream 1.7.2 forces BUILD_SHARED_LIBS off even when vcpkg requests a dynamic build. Consequently, x64-windows loses bin/matroska.dll and debug/bin/matroska.dll, but BUILD_INFO still reports LibraryLinkage: dynamic.

Steve Lhomme (Steve Lhomme (@robUx4)) Is this expected? It looks like DLLs on Windows used to work.

An explicit BUILD_SHARED_LIBS option was added in Matroska-Org/libmatroska@1e6000e and then turned into a dependent option (although it's still off in all cases) in Matroska-Org/libmatroska@df79d8c. But it's still possible to build a Windows DLL. I think that's what mkmverge uses. Maybe your machine is confused by the commit title "disable building dynamic libraries on Windows".

@BillyONeal

Billy O'Neal (BillyONeal) commented Aug 31, 2026

Copy link
Copy Markdown
Member

An explicit BUILD_SHARED_LIBS option was added in Matroska-Org/libmatroska@1e6000e and then turned into a dependent option (although it's still off in all cases) in Matroska-Org/libmatroska@df79d8c. But it's still possible to build a Windows DLL. I think that's what mkmverge uses. Maybe your machine is confused by the commit title "disable building dynamic libraries on Windows".

Steve Lhomme (@robUx4) I think the bit that tries to make it a dependent option is causing vcpkg's setting of it to be ignored. This isn't looking at commit titles, it actually tried vcpkg install matroska which no longer produces DLLs. See also https://dev.azure.com/vcpkg/public/_build/results?buildId=136754&view=artifacts&pathAsName=false&type=publishedArtifacts "file lists for x64-windows" has no DLLs:

matroska:x64-windows:/debug/lib/matroska.lib
matroska:x64-windows:/debug/lib/pkgconfig/libmatroska.pc
matroska:x64-windows:/include/matroska/c/libmatroska.h
matroska:x64-windows:/include/matroska/c/libmatroska_t.h
matroska:x64-windows:/include/matroska/FileKax.h
matroska:x64-windows:/include/matroska/KaxAttached.h
matroska:x64-windows:/include/matroska/KaxAttachments.h
matroska:x64-windows:/include/matroska/KaxBlock.h
matroska:x64-windows:/include/matroska/KaxBlockData.h
matroska:x64-windows:/include/matroska/KaxChapters.h
matroska:x64-windows:/include/matroska/KaxCluster.h
matroska:x64-windows:/include/matroska/KaxClusterData.h
matroska:x64-windows:/include/matroska/KaxConfig.h
matroska:x64-windows:/include/matroska/KaxContentEncoding.h
matroska:x64-windows:/include/matroska/KaxContexts.h
matroska:x64-windows:/include/matroska/KaxCues.h
matroska:x64-windows:/include/matroska/KaxCuesData.h
matroska:x64-windows:/include/matroska/KaxDefines.h
matroska:x64-windows:/include/matroska/KaxInfo.h
matroska:x64-windows:/include/matroska/KaxInfoData.h
matroska:x64-windows:/include/matroska/KaxSeekHead.h
matroska:x64-windows:/include/matroska/KaxSegment.h
matroska:x64-windows:/include/matroska/KaxSemantic.h
matroska:x64-windows:/include/matroska/KaxTag.h
matroska:x64-windows:/include/matroska/KaxTags.h
matroska:x64-windows:/include/matroska/KaxTrackAudio.h
matroska:x64-windows:/include/matroska/KaxTrackEntryData.h
matroska:x64-windows:/include/matroska/KaxTracks.h
matroska:x64-windows:/include/matroska/KaxTrackVideo.h
matroska:x64-windows:/include/matroska/KaxTypes.h
matroska:x64-windows:/include/matroska/KaxVersion.h
matroska:x64-windows:/include/matroska/matroska_export.h
matroska:x64-windows:/lib/matroska.lib
matroska:x64-windows:/lib/pkgconfig/libmatroska.pc
matroska:x64-windows:/share/matroska/copyright
matroska:x64-windows:/share/matroska/MatroskaConfig.cmake
matroska:x64-windows:/share/matroska/MatroskaConfigVersion.cmake
matroska:x64-windows:/share/matroska/MatroskaTargets-debug.cmake
matroska:x64-windows:/share/matroska/MatroskaTargets-release.cmake
matroska:x64-windows:/share/matroska/MatroskaTargets.cmake
matroska:x64-windows:/share/matroska/vcpkg-spdx-resources.json
matroska:x64-windows:/share/matroska/vcpkg.spdx.json
matroska:x64-windows:/share/matroska/vcpkg_abi_info.txt
@robUx4

Copy link
Copy Markdown
Contributor

Indeed, I just added a similar target to our CI and I see the same thing. It's fixed now but it's not in a release yet.

You may pick Matroska-Org/libmatroska@9d2029c to get the DLL.

The same problem exists in libebml.

@SunBlack
SunBlack (SunBlack) marked this pull request as ready for review August 31, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants