MSVC Dependencies: Update [As of Feb 2026]

I’ve made a script to build almost all dependencies using vcpkg: testardourdeps/vcpkg-build/InstallDependencies.vcpkg.py at main · EZ4Stephen/testardourdeps · GitHub

I might have to look into writing .pc files for libwebsockets, but apart from that, all dependencies (that aren’t msvc, perl or llvm-nm) (excluding cppunit and lrdf) should be there.

Note: If you do get strawberry perl for windows, make sure to set PATH to include where pkgconf is located (and rename pkgconf to pkg-config. I originally had it automated in the script but I removed it.)

What I did: $env:path = "C:\ADeps3\vcpkg\installed\x64-windows\tools\pkgconf;$env:PATH"

Aside from that, you just run the python script, and once it’s done you add the include and lib folders to --also-include and --also-libdir when building ardour. Cautiously assume building dependencies takes 8GB and 2 hours, I don’t know the actual value.

It’s been a while since I gave an update on my xmake-adjacent endeavors:

  1. Passing of shared static and release/debug: Figured out.
  2. pkg-config integration: I’ll either have to generate them on the fly, or copy some custom .pc files with the correct relative paths. Because some packages get installed as “precompiled”, it isn’t possible to download pkgconf/pkg-config first and then everything else.
  3. Copying all package files into a structure similar to how vcpkg installs packages: Will target once I have the right dependencies in place.
  4. What dependencies haven’t yet been added to xmake: sord, sratom, lilv, individual boost packages (ignorable), lrdf (+ raptor2, both ignorable), cwiid (ignorable)

When I’m done, the result will be a python script that downloads xmake (and maybe xrepo?) and automatically runs and sets everything, just like the vcpkg script.


Current draft of the xmake.lua file:

set_policy("package.sync_requires_to_deps", true)
add_requireconfs("**", {configs = {shared = true}})

if is_mode("debug") then
    add_requireconfs("**", {configs = {debug = true}})
end

add_requires("libsndfile")
add_requires("curl")
add_requires("libarchive")
add_requires("liblo")
add_requires("taglib")
add_requires("vamp-plugin-sdk")
add_requires("libusb")
add_requires("rubberband")
add_requires("jack2")
add_requires("fftw")
add_requires("aubio")
add_requires("libxml2")
add_requires("cppunit")
add_requires("libwebsockets")
add_requires("portaudio", {configs = {asio = true}})
add_requires("libsamplerate")
add_requires("lv2")
add_requires("serd")
--add_requires("vcpkg::sord")
--add_requires("vcpkg::sratom")
--add_requires("vcpkg::lilv")
add_requires("libjpeg-turbo")
add_requires("boost")
add_requires("pangomm <2.48.0")
if is_plat("windows") then
	add_requires("pthreads4w")
	add_requires("wingetopt")
end

I would like to know if anyone has taken the opportunity to make use of the python script from the previous reply, and whether there were any problems. I doubt there could be any serious issue gone unnoticed.

(I suppose one can get errors for running out of space if not having enough for the downloads+installs, or curl timing out for a package, in which case you rerun the script; what has already successfully installed doesn’t get rebuilt. And if running out of memory/heap space, closing some browser tabs and/or restarting the pc/laptop before rerunning the script. I’ve faced 2 of these before; the script wasn’t at fault, to my knowledge.)

@EZ4Stephen - if vcpkg is needed, most people here won’t be familiar with it so it’s probably best if you describe how to obtain it and configure it.

I don’t mind trying if no-one else comes forward but be warned - I’m not the biggest fan of scripts! Everyone else seems to get on okay with them (and even I’ve had the occasional success with perl) but I’ve never found a single python script that worked :frowning:

If running the python script: The only change currently needed (after running the script) is to rename vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe to pkg-config.exe.

(Beyond that, you don’t need to do anything else to the vcpkg folders. I suppose you can copy out vcpkg/installed/x64-windows somewhere, and then delete the entire installed vcpkg folder, but that’s things one can do themselves.)

After that, run developer cmd or powershell, add the path to pkg-config.exe to path, set PKG_CONFIG_PATH to where the .pc files are (e.g. vcpkg\installed\x64-windows\lib\pkgconfig for release), then when running configure for ardour, add include folder to --also-include, and lib folder to --also-libdir.

Maybe I should’ve clarified that the vcpkg python script handled installing vcpkg itself, and didn’t require vcpkg beforehand anyhow…? I hope it is clear now, either way.

I don’t have much time today but as a quick test I created a new folder on a drive here and copied your script into it. I then ran python InstallDependencies.vcpkg.py which gave the following output:-

  File "InstallDependencies.vcpkg.py", line 270
    print(f"  Running: {' '.join(cmd)}")
                                      ^
SyntaxError: invalid syntax

What python version are you on? (python --version)
I’m on 3.13.12 and don’t get any such error.

Image shows the run function (which is lines 269-275) working as intended by showing the “Running (command)” for me.
image

I’m on version 3.3.5

Could you update python to a newer version (3.12+, latest stable being 3.14.6) and try again? When you have the time, of course.

I’ll be out for the rest of today but after updating python it’s now working so I’ll leave it running and let you know. At the moment it’s building boost but one strange thing is that there’s no folder called vcpkg\installed yet and no file called pkgconf.exe ??

I am puzzled. If you ran the python script from the same directory, I assume it’d be right there. If not, I don’t know if the vcpkg folder ends up where you ran the script from, or next to the python script.

Or actually, if you opened the vcpkg folder before it started installing a package, the folder installed might not have existed, and the new folder is visible if you scroll down?

Bad news I’m afraid…

When I returned home the build had stopped with an error (see below). However, by that time, pkgconf.exe and pkg-config.exe had both gotten downloaded to:-
G:\vcpkg-stuff\gnu-windows\src\vcpkg\downloads\tools\msys2\3e71d1f8e22ab23f\mingw64\bin

So I added that folder to my path and restarted the build. But it stopped immediately with the same error that I mentioned previously:-

Successfully downloaded msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst
CMake Error: Problem with archive_write_header(): Can’t create ‘\?\G:\vcpkg-stuff\gnu-windows\src\vcpkg\downloads\tools\msys2\19f68f647e350a23.tmp\usr\bin\ld.exe’
CMake Error: Current file:
usr/bin/ld.exe
CMake Error at scripts/cmake/vcpkg_acquire_msys.cmake:232 (file):
file failed to extract:

G:/vcpkg-stuff/gnu-windows/src/vcpkg/downloads/msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst

Call Stack (most recent call first):
installed/x64-windows/share/vcpkg-make/vcpkg_scripts.cmake:59 (vcpkg_acquire_msys)
installed/x64-windows/share/vcpkg-make/vcpkg_make.cmake:157 (vcpkg_insert_msys_into_path)
installed/x64-windows/share/vcpkg-make/vcpkg_make.cmake:166 (vcpkg_make_setup_win_msys)
installed/x64-windows/share/vcpkg-make/vcpkg_make_configure.cmake:62 (vcpkg_make_get_shell)
ports/gperf/portfile.cmake:17 (vcpkg_make_configure)
scripts/ports.cmake:206 (include)

error: building gperf:x64-windows failed with: BUILD_FAILED
See Troubleshoot build failures | Microsoft Learn for more information.
Elapsed time to handle gperf:x64-windows: 7.1 s
Please ensure you’re using the latest port files with git pull and vcpkg update.
Then check for known issues at:
Issues · microsoft/vcpkg · GitHub
You can submit a new issue at:
Sign in to GitHub · GitHub

ERROR: command failed with exit code 1

In case either msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst or msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst might be corrupted I deleted them both and tried again it still gives the same error :frowning:

(Based on some online research) You might’ve reached the MAX_PATH limit, or some other thing related to the length. Try installing in a shorter path than G:\vcpkg-stuff\gnu-windows\src.

No that definitely won’t be it. I have LongPathsEnabled in my registry which sets a path limit of 32K characters. But even if apps aren’t compatible with LongPathsEnabled, the default limit is 260 characters and the longest vcpkg path here less than half that.

At the moment, the 2 ideas I can give is to

  1. delete everything in vcpkg\downloads\tools\msys2, and/or
  2. delete any installed versions of cmake, then download the latest version, and try again.

In the meantime, I’ll run a modified version of the script that installs just gperf (and its dependencies), to see if I get the same errors.

The slightly modified script worked for me. (Only changes in the local script: adding --binarysource=clear so that it wouldn’t pick up already built gperf/dependencies in cache, passing only “gperf” to install_deps, and commenting out the post-install patches from being run.)

PS C:\ADeps6> python installdependencies.vcpkg.py
  Running: git clone https://github.com/microsoft/vcpkg.git
Cloning into 'vcpkg'...
remote: Enumerating objects: 329578, done.
remote: Counting objects: 100% (430/430), done.
remote: Compressing objects: 100% (170/170), done.
remote: Total 329578 (delta 367), reused 260 (delta 260), pack-reused 329148 (from 3)
Receiving objects: 100% (329578/329578), 106.65 MiB | 16.23 MiB/s, done.
Resolving deltas: 100% (219258/219258), done.
Updating files: 100% (14073/14073), done.
  Running: bootstrap-vcpkg.bat -disableMetrics
Downloading https://github.com/microsoft/vcpkg-tool/releases/download/2026-05-27/vcpkg.exe -> C:\ADeps6\vcpkg\vcpkg.exe... done.
Validating signature... done.

vcpkg package management program version 2026-05-27-d5b6777d666efc1a7f491babfcdab37794c1ae3e

See LICENSE.txt for license information.
  Running: C:\ADeps6\vcpkg\vcpkg.exe --overlay-ports=C:\ADeps6\vcpkg\overlay_ports install gperf --binarysource=clear
Computing installation plan...
A suitable version of cmake was not found (required v4.3.3).
Downloading https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -> cmake-4.3.3-windows-x86_64.zip
Successfully downloaded cmake-4.3.3-windows-x86_64.zip
Extracting cmake...
A suitable version of 7zip was not found (required v26.1.0).
Downloading https://github.com/ip7z/7zip/releases/download/26.01/7z2601-x64.exe -> 7z2601-x64.7z.exe
Successfully downloaded 7z2601-x64.7z.exe
Extracting 7zip...
A suitable version of 7zr was not found (required v26.1.0).
Downloading https://github.com/ip7z/7zip/releases/download/26.01/7zr.exe -> f798fab8-7zr.exe
Successfully downloaded f798fab8-7zr.exe
The following packages will be built and installed:
    gperf:x64-windows@3.3
  * vcpkg-cmake:x64-windows@2024-04-23
  * vcpkg-cmake-get-vars:x64-windows@2025-05-29
  * vcpkg-make:x64-windows@2026-01-01
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-windows...
A suitable version of powershell-core was not found (required v7.6.2).
Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.6.2/PowerShell-7.6.2-win-x64.zip -> PowerShell-7.6.2-win-x64.zip
Successfully downloaded PowerShell-7.6.2-win-x64.zip
Extracting powershell-core...
Compiler found: C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/MSVC/14.50.35717/bin/Hostx64/x64/cl.exe
Installing 1/4 vcpkg-cmake:x64-windows@2024-04-23...
vcpkg-cmake:x64-windows@2024-04-23 package ABI: 0e06edc7f0da167693184387d9c834ca256d323266cf305a1522e6a91ea797be
Building vcpkg-cmake:x64-windows@2024-04-23...
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake_x64-windows/share/vcpkg-cmake/vcpkg_cmake_configure.cmake
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake_x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake_x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake_x64-windows/share/vcpkg-cmake/vcpkg-port-config.cmake
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake_x64-windows/share/vcpkg-cmake/copyright
-- Performing post-build validation
Elapsed time to handle vcpkg-cmake:x64-windows: 142 ms
Installing 2/4 vcpkg-cmake-get-vars:x64-windows@2025-05-29...
vcpkg-cmake-get-vars:x64-windows@2025-05-29 package ABI: a1534383e3e83b45aa9fadaa4f4b4d8ecebf54b3531cb57de64c0aec77bd4075
Building vcpkg-cmake-get-vars:x64-windows@2025-05-29...
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake-get-vars_x64-windows/share/vcpkg-cmake-get-vars/vcpkg_cmake_get_vars.cmake
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake-get-vars_x64-windows/share/vcpkg-cmake-get-vars/cmake_get_vars
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake-get-vars_x64-windows/share/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake-get-vars_x64-windows/share/vcpkg-cmake-get-vars/cmake-get-vars.cmake.in
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake-get-vars_x64-windows/share/vcpkg-cmake-get-vars/vcpkg-port-config.cmake
-- Installing: C:/ADeps6/vcpkg/packages/vcpkg-cmake-get-vars_x64-windows/share/vcpkg-cmake-get-vars/copyright
-- Performing post-build validation
Elapsed time to handle vcpkg-cmake-get-vars:x64-windows: 126 ms
Installing 3/4 vcpkg-make:x64-windows@2026-01-01...
vcpkg-make:x64-windows@2026-01-01 package ABI: c84af5ccfb6b5c2b877a2ffc4b9bea5c188db183eb85f1860ccaf8675f2e7f97
Building vcpkg-make:x64-windows@2026-01-01...
Downloading automake-1.17.tar.gz, trying https://ftpmirror.gnu.org/gnu/automake/automake-1.17.tar.gz
Successfully downloaded automake-1.17.tar.gz
-- Extracting source C:/ADeps6/vcpkg/downloads/automake-1.17.tar.gz
-- Using source at C:/ADeps6/vcpkg/buildtrees/vcpkg-make/src/automake-1-c362683103.clean
-- Getting CMake variables for x64-windows
-- Loading CMake variables from C:/ADeps6/vcpkg/buildtrees/vcpkg-make/cmake-get-vars_C_CXX-x64-windows.cmake.log
-- x64-windows autotools triplet: x86_64-pc-mingw32 (from vcpkg)
-- Performing post-build validation
Elapsed time to handle vcpkg-make:x64-windows: 7.7 s
Installing 4/4 gperf:x64-windows@3.3...
gperf:x64-windows@3.3 package ABI: 7f8d152617654564f8a2677329f025db9796258e7891c5b5fe8ca958bcb0d1e5
Building gperf:x64-windows@3.3...
Downloading gperf-3.3.tar.gz, trying https://ftpmirror.gnu.org/gnu/gperf/gperf-3.3.tar.gz
Successfully downloaded gperf-3.3.tar.gz
-- Extracting source C:/ADeps6/vcpkg/downloads/gperf-3.3.tar.gz
-- Using source at C:/ADeps6/vcpkg/buildtrees/gperf/src/gperf-3-b814f52c10.clean
-- Getting CMake variables for x64-windows
-- Loading CMake variables from C:/ADeps6/vcpkg/buildtrees/gperf/cmake-get-vars_C_CXX-x64-windows.cmake.log
Downloading msys2-autoconf-wrapper-20250528-1-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/autoconf-wrapper-20250528-1-any.pkg.tar.zst
Successfully downloaded msys2-autoconf-wrapper-20250528-1-any.pkg.tar.zst
Downloading msys2-automake-wrapper-20250528-1-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/automake-wrapper-20250528-1-any.pkg.tar.zst
Successfully downloaded msys2-automake-wrapper-20250528-1-any.pkg.tar.zst
Downloading msys2-autoconf-archive-2024.10.16-1-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/autoconf-archive-2024.10.16-1-any.pkg.tar.zst
Successfully downloaded msys2-autoconf-archive-2024.10.16-1-any.pkg.tar.zst
Downloading msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/binutils-2.45.1-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst
Downloading msys2-libtool-2.5.4-4-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libtool-2.5.4-4-x86_64.pkg.tar.zst
Successfully downloaded msys2-libtool-2.5.4-4-x86_64.pkg.tar.zst
Downloading msys2-make-4.4.1-2-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/make-4.4.1-2-x86_64.pkg.tar.zst
Successfully downloaded msys2-make-4.4.1-2-x86_64.pkg.tar.zst
Downloading msys2-which-2.23-4-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/which-2.23-4-x86_64.pkg.tar.zst
Successfully downloaded msys2-which-2.23-4-x86_64.pkg.tar.zst
Downloading msys2-bash-5.3.009-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/bash-5.3.009-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-bash-5.3.009-1-x86_64.pkg.tar.zst
Downloading msys2-coreutils-8.32-5-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/coreutils-8.32-5-x86_64.pkg.tar.zst
Successfully downloaded msys2-coreutils-8.32-5-x86_64.pkg.tar.zst
Downloading msys2-file-5.46-2-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/file-5.46-2-x86_64.pkg.tar.zst
Successfully downloaded msys2-file-5.46-2-x86_64.pkg.tar.zst
Downloading msys2-gawk-5.3.2-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/gawk-5.3.2-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-gawk-5.3.2-1-x86_64.pkg.tar.zst
Downloading msys2-grep-1~3.0-7-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/grep-1~3.0-7-x86_64.pkg.tar.zst
Successfully downloaded msys2-grep-1~3.0-7-x86_64.pkg.tar.zst
Downloading msys2-gzip-1.14-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/gzip-1.14-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-gzip-1.14-1-x86_64.pkg.tar.zst
Downloading msys2-diffutils-3.12-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/diffutils-3.12-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-diffutils-3.12-1-x86_64.pkg.tar.zst
Downloading msys2-pkgconf-2.5.1-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/pkgconf-2.5.1-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-pkgconf-2.5.1-1-x86_64.pkg.tar.zst
Downloading msys2-sed-4.9-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/sed-4.9-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-sed-4.9-1-x86_64.pkg.tar.zst
Downloading msys2-msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst
Downloading msys2-autoconf2.72-2.72-3-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/autoconf2.72-2.72-3-any.pkg.tar.zst
Successfully downloaded msys2-autoconf2.72-2.72-3-any.pkg.tar.zst
Downloading msys2-automake1.16-1.16.5-1-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/automake1.16-1.16.5-1-any.pkg.tar.zst
Successfully downloaded msys2-automake1.16-1.16.5-1-any.pkg.tar.zst
Downloading msys2-automake1.17-1.17-1-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/automake1.17-1.17-1-any.pkg.tar.zst
Successfully downloaded msys2-automake1.17-1.17-1-any.pkg.tar.zst
Downloading msys2-automake1.18-1.18.1-1-any.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/automake1.18-1.18.1-1-any.pkg.tar.zst
Successfully downloaded msys2-automake1.18-1.18.1-1-any.pkg.tar.zst
Downloading msys2-libiconv-1.18-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libiconv-1.18-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-libiconv-1.18-1-x86_64.pkg.tar.zst
Downloading msys2-libintl-0.22.5-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libintl-0.22.5-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-libintl-0.22.5-1-x86_64.pkg.tar.zst
Downloading msys2-zlib-1.3.1-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/zlib-1.3.1-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-zlib-1.3.1-1-x86_64.pkg.tar.zst
Downloading msys2-findutils-4.10.0-2-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/findutils-4.10.0-2-x86_64.pkg.tar.zst
Successfully downloaded msys2-findutils-4.10.0-2-x86_64.pkg.tar.zst
Downloading msys2-tar-1.35-3-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/tar-1.35-3-x86_64.pkg.tar.zst
Successfully downloaded msys2-tar-1.35-3-x86_64.pkg.tar.zst
Downloading msys2-gmp-6.3.0-2-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/gmp-6.3.0-2-x86_64.pkg.tar.zst
Successfully downloaded msys2-gmp-6.3.0-2-x86_64.pkg.tar.zst
Downloading msys2-gcc-libs-15.2.0-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/gcc-libs-15.2.0-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-gcc-libs-15.2.0-1-x86_64.pkg.tar.zst
Downloading msys2-libbz2-1.0.8-4-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libbz2-1.0.8-4-x86_64.pkg.tar.zst
Successfully downloaded msys2-libbz2-1.0.8-4-x86_64.pkg.tar.zst
Downloading msys2-liblzma-5.8.2-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/liblzma-5.8.2-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-liblzma-5.8.2-1-x86_64.pkg.tar.zst
Downloading msys2-libzstd-1.5.7-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libzstd-1.5.7-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-libzstd-1.5.7-1-x86_64.pkg.tar.zst
Downloading msys2-libreadline-8.3.003-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libreadline-8.3.003-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-libreadline-8.3.003-1-x86_64.pkg.tar.zst
Downloading msys2-mpfr-4.2.2-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/mpfr-4.2.2-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-mpfr-4.2.2-1-x86_64.pkg.tar.zst
Downloading msys2-libpcre-8.45-5-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libpcre-8.45-5-x86_64.pkg.tar.zst
Successfully downloaded msys2-libpcre-8.45-5-x86_64.pkg.tar.zst
Downloading msys2-m4-1.4.19-2-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/m4-1.4.19-2-x86_64.pkg.tar.zst
Successfully downloaded msys2-m4-1.4.19-2-x86_64.pkg.tar.zst
Downloading msys2-perl-5.40.3-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/perl-5.40.3-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-perl-5.40.3-1-x86_64.pkg.tar.zst
Downloading msys2-ncurses-6.5.20240831-2-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/ncurses-6.5.20240831-2-x86_64.pkg.tar.zst
Successfully downloaded msys2-ncurses-6.5.20240831-2-x86_64.pkg.tar.zst
Downloading msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst, trying https://mirror.msys2.org/msys/x86_64/libxcrypt-4.5.2-1-x86_64.pkg.tar.zst
Successfully downloaded msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst
-- Applying patch C:/ADeps6/vcpkg/scripts/cmake/compile_wrapper_consider_clang-cl.patch
-- Using msys root at C:/ADeps6/vcpkg/downloads/tools/msys2/19f68f647e350a23
-- Generating configure for x64-windows
-- Finished generating configure for x64-windows
Downloading msys2-mingw-w64-x86_64-pkgconf-1~2.5.1-1-any.pkg.tar.zst, trying https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-pkgconf-1~2.5.1-1-any.pkg.tar.zst
Successfully downloaded msys2-mingw-w64-x86_64-pkgconf-1~2.5.1-1-any.pkg.tar.zst
-- Using cached msys2-msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst
-- Using msys root at C:/ADeps6/vcpkg/downloads/tools/msys2/3e71d1f8e22ab23f
-- Configuring x64-windows-rel
-- Using cached msys2-autoconf-wrapper-20250528-1-any.pkg.tar.zst
-- Using cached msys2-automake-wrapper-20250528-1-any.pkg.tar.zst
-- Using cached msys2-autoconf-archive-2024.10.16-1-any.pkg.tar.zst
-- Using cached msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-libtool-2.5.4-4-x86_64.pkg.tar.zst
-- Using cached msys2-make-4.4.1-2-x86_64.pkg.tar.zst
-- Using cached msys2-which-2.23-4-x86_64.pkg.tar.zst
-- Using cached msys2-bash-5.3.009-1-x86_64.pkg.tar.zst
-- Using cached msys2-coreutils-8.32-5-x86_64.pkg.tar.zst
-- Using cached msys2-file-5.46-2-x86_64.pkg.tar.zst
-- Using cached msys2-gawk-5.3.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-grep-1~3.0-7-x86_64.pkg.tar.zst
-- Using cached msys2-gzip-1.14-1-x86_64.pkg.tar.zst
-- Using cached msys2-diffutils-3.12-1-x86_64.pkg.tar.zst
-- Using cached msys2-pkgconf-2.5.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-sed-4.9-1-x86_64.pkg.tar.zst
-- Using cached msys2-msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst
-- Using cached msys2-autoconf2.72-2.72-3-any.pkg.tar.zst
-- Using cached msys2-automake1.16-1.16.5-1-any.pkg.tar.zst
-- Using cached msys2-automake1.17-1.17-1-any.pkg.tar.zst
-- Using cached msys2-automake1.18-1.18.1-1-any.pkg.tar.zst
-- Using cached msys2-libiconv-1.18-1-x86_64.pkg.tar.zst
-- Using cached msys2-libintl-0.22.5-1-x86_64.pkg.tar.zst
-- Using cached msys2-zlib-1.3.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-findutils-4.10.0-2-x86_64.pkg.tar.zst
-- Using cached msys2-tar-1.35-3-x86_64.pkg.tar.zst
-- Using cached msys2-gmp-6.3.0-2-x86_64.pkg.tar.zst
-- Using cached msys2-gcc-libs-15.2.0-1-x86_64.pkg.tar.zst
-- Using cached msys2-libbz2-1.0.8-4-x86_64.pkg.tar.zst
-- Using cached msys2-liblzma-5.8.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-libzstd-1.5.7-1-x86_64.pkg.tar.zst
-- Using cached msys2-libreadline-8.3.003-1-x86_64.pkg.tar.zst
-- Using cached msys2-mpfr-4.2.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-libpcre-8.45-5-x86_64.pkg.tar.zst
-- Using cached msys2-m4-1.4.19-2-x86_64.pkg.tar.zst
-- Using cached msys2-perl-5.40.3-1-x86_64.pkg.tar.zst
-- Using cached msys2-ncurses-6.5.20240831-2-x86_64.pkg.tar.zst
-- Using cached msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst
-- Using msys root at C:/ADeps6/vcpkg/downloads/tools/msys2/19f68f647e350a23
-- Building/Installing x64-windows-rel
-- Making target 'all' for x64-windows-rel
-- Making target 'install' for x64-windows-rel
-- Installing: C:/ADeps6/vcpkg/packages/gperf_x64-windows/share/gperf/copyright
-- Performing post-build validation
Elapsed time to handle gperf:x64-windows: 16 min
Total install time: 16 min
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Some packages did not declare an SPDX license. Check the `copyright` file for each package for more information about their licensing.
Packages installed in this vcpkg installation declare the following licenses:
GPL-3.0-or-later
MIT
All requested installations completed successfully in: 16 min

I don’t understand. Is –binarysource=clear a parameter that needs to get passed to something? Or is it some new text that I’ll need to add to your python script somewhere?

I put it so that my previous installs of gperf and its dependencies wouldn’t affect the new installation run. If you want to try using it, delete the vcpkg folder that was installed from the script, then change the following line (line 297 of the script):
run([str(_vcpkg_exe), f"--overlay-ports={_overlay_dir}", "install", *packages], cwd=_vcpkg_dir)
to the following:
run([str(_vcpkg_exe), f"--overlay-ports={_overlay_dir}", "install", *packages , "--binarysource=clear"], cwd=_vcpkg_dir)

Same error I’m afraid.

The error happens while extracting the contents of an archive called msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst which needs 7-zip to extract it. vcpkg installs 7-zip which contains a feature to test archive files so I ran it on the above archive and the test reported no problems.

The actual error is file failed to extract so I wonder if maybe there’s a file missing from that archive?

Let’s just check if you’re using the same version of msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst. My version here is located in vcpkg\downloads (with today’s date) and its size is 6,076,084 bytes.

It matches.

image

I’ve just gotten an idea of trying to run the python script from a similar path as yours (just that I’ll do it on C:/… instead of G:/…). If I get an error, it would prove that in spite of LongPathsEnabled, there’s some path length error (which I doubt, but better to eliminate possible options of what’s going wrong)

Again no error for me. Looks like I might have to look into making a custom port overlay for gperf, along with a custom meson.build file to write into it. (Since the only build system in the official gperf 3.3 is make, and the error step happens when vcpkg installs the relevant tools from msys. No use of make → No error from binutils extraction, is the logic I thought of.)

For reference, xrepo makes use of writing a custom xmake.lua file for windows, to build gperf.