Building pijul for target x86_64-pc-windows-msvc with vcpkg

vcpkg dropped support for MSVC 2017 and requires MSVC 2019. Packages required to install are llvm[clang], nettle, openssl, libsodium.

I set environments:

set VCPKGRS_DYNAMIC=1
set SODIUM_LIB_DIR=%VCPKG_ROOT%\installed\x64-windows\lib\
set LLVM_CONFIG_PATH=%VCPKG_ROOT%\installed\x64-windows\bin\llvm-config.exe

Next I’ve downloaded pijul from https://crates.io/api/v1/crates/pijul/0.12.2/download and patched to use https://gitlab.com/sequoia-pgp/nettle-sys/-/merge_requests/5

All dependencies include libpijul are building but pijul itself produce error:

error[E0599]: no method named `add_identity` found for unit type `()` in the cur
rent scope
   --> src\commands\ssh_auth_attempts.rs:220:48
    |
220 |                         return Either::A(agent.add_identity(&key, cons).fr
om_err().and_then(
    |                                                ^^^^^^^^^^^^ method not fou
nd in `()`

Also I cann’t correctly build thrussh-libsodium 0.1.4 so I need pijul to use 0.2.0 version.

What about to make a minor update for old 0.21 thrussh to use 0.2.0 thrussh-libsodium which supports windows?

I’ve managed to build pijul-0.12.2 for x86_64-pc-windows-msvc.

I had to patch nettle-sys, cryptovec-0.5.3, thrussh-libsodium-0.2.0, thrussh-keys-0.11.9, thrussh-0.21.5, and pijul-0.12.2, but it works and I can download repositories from the nest via SSH.

Since there are currently no official Windows binaries, would You be in a position to share the full list of steps You had to use to create a working Pijul? I think it would go a long way to helping Others.

Thanks in advance.

I suppose it should work now with updated components.