Actual windows build instructions

I’ve tried to build both jami-client-qt & jami-daemon but got multiple errors… For example for jami-daemon cmake showing errors during configuring:

Checking patch contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj...

error: while searching for:
<?xml version="1.0" encoding="utf-8"?>?
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">?
  <ItemGroup Label="ProjectConfigurations">?
    <ProjectConfiguration Include="Debug|Win32">?
      <Configuration>Debug</Configuration>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:1
error: while searching for:
  <PropertyGroup Label="Globals">?
    <ProjectGuid>{B9CAC9CE-9F0D-4F52-8D67-FDBBAFCD0DE2}</ProjectGuid>?
    <RootNamespace>Argon2Ref</RootNamespace>?
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>?
  </PropertyGroup>?
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>true</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <CharacterSet>MultiByte</Cha
racterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>true</UseDebugLibraries>?
    <PlatformToolset>v140<
/PlatformToolset>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:29
error: while searching for:
      <Optimization>Disabled</Optimization>?
      <SDLCheck>true</SDLCh
eck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
  </ItemDefinitionGroup>?
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:132
error: while searching for:
      <Optimization>Disabled</Optimization>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
  </ItemDefinitionGroup>?
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:140
error: while searching for:
      <IntrinsicFunctions>true</IntrinsicFunctions>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
    <Link>?
      <EnableCOMDATFold
ing>true</EnableCOMDATFolding>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:150
error: while searching for:
      <IntrinsicFunctions>true</IntrinsicFunctions>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
    <Link>?
      <EnableCOMDATFolding>true</EnableCOMDATFolding>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:179

Applying patch contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj with 6 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.

it doesn’t prevent configuring from completion, but then compiling fails with the following error:

|Error|C1083|Cannot open include file: ‘libavutil/common.h’: No such file or directory|jami-core|Q:\jami\jami-client-qt\daemon\src\media\srtp.c|24|||

So looks like dependencies were not initialized / downloaded / built properly. What I’m missing?

What instructions did you follow?

First I’ve tried build.py from jami-client-qt but it resulted in lots of errors, then tried cmake project & manually specified Qt path etc. but realized pretty soon going through all the dependencies manually is not going to be fun process so decided to build daemon first.

But even in a case of daemon I had to create cmake project manually (via cmake-gui) because README.md didn’t contain windows-specific instructions. And again stopped after realizing dependencies were not fetched (for example ffmpeg):

So let me ask this: which instructions are most actual for windows? Where to find it?

The simpler instructions are located in the README of the client-qt, with Visual Studio (will use the CMake)

README of the client-qt references INSTALL.md and INSTALL.md says to start with ‘python build.py --dependencies’ (more precisely it says to start with ‘sh python build.py --dependencies’ (MSYS?)) but I’ve used just and elevated command prompt (cmd under admin):

python build.py --dependencies

which failed here:

git.install
By installing, you accept licenses for the packages.
[NuGet] One or more unresolved package dependency constraints detected in the Chocolatey lib folder. All dependency constraints must be resolved to add or update packages. If these packages are being updated this message may be ignored, if not the following error(s) may be blocking the current package operation: 'docker-toolbox 19.3.1 constraint: git.install (>= 2.5.0)', 'git 2.42.0 constraint: git.install (= 2.42.0)'
Unable to resolve dependency: Unable to resolve dependencies. 'git.install 2.10.2' is not compatible with 'git 2.42.0 constraint: git.install (= 2.42.0)'.

… but I already have git and other dependencies so modifying install-deps-windows.ps1 in a following way:

$choco_packages = @(
#    [pscustomobject]@{pkg = "wget"; ver = "1.19.4" }
#    [pscustomobject]@{pkg = "git.install"; ver = "2.10.2" }
#    [pscustomobject]@{pkg = "7zip"; ver = "" }
#    [pscustomobject]@{pkg = "unzip"; ver = "" }
#    [pscustomobject]@{pkg = "cmake"; ver = "" }
#    [pscustomobject]@{pkg = "pandoc"; ver = "" }
#    [pscustomobject]@{pkg = "strawberryperl"; ver = "" }
    [pscustomobject]@{pkg = "msys2"; ver = "" }
)

and repeating:

Q:\jami-dev\jami-client-qt>python build.py --dependencies
Installing jami-qt build dependencies for windows…
Chocolatey already installed
MSYS2 64 already installed
Getting installed package list from Chocolatey…
msys2 not found.
Installing msys2
Chocolatey v2.2.2
Installing the following packages:
msys2
By installing, you accept licenses for the packages.
msys2 v20231026.0.0 already installed. Forcing reinstall of version '20231026.0.0'.
 Please use upgrade if you meant to upgrade to a new version.
Progress: Downloading msys2 20231026.0.0... 100%

msys2 v20231026.0.0 (forced) [Approved]
msys2 package files install completed. Performing other installation steps.
'C:\tools\msys64' already exists and will only be updated.
Invoking first run to setup things like bash profile, gpg etc...
Invoking msys2 shell command: -defterm -no-start -c "ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
Repeating system update until there are no more updates or max 5 iterations
Output is recorded in: C:\tools\msys64\update.log

================= SYSTEM UPDATE 1 =================

Invoking msys2 shell command: -defterm -no-start -c "pacman --noconfirm -Syuu --disable-download-timeout | tee -a /update.log; ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
Cannot find path 'C:\tools\msys64\update.log' because it does not exist.

================= SYSTEM UPDATE 2 =================

Invoking msys2 shell command: -defterm -no-start -c "pacman --noconfirm -Syuu --disable-download-timeout | tee -a /update.log; ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
Cannot find path 'C:\tools\msys64\update.log' because it does not exist.

================= SYSTEM UPDATE 3 =================

Invoking msys2 shell command: -defterm -no-start -c "pacman --noconfirm -Syuu --disable-download-timeout | tee -a /update.log; ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
Cannot find path 'C:\tools\msys64\update.log' because it does not exist.

================= SYSTEM UPDATE 4 =================

Invoking msys2 shell command: -defterm -no-start -c "pacman --noconfirm -Syuu --disable-download-timeout | tee -a /update.log; ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
Cannot find path 'C:\tools\msys64\update.log' because it does not exist.

================= SYSTEM UPDATE 5 =================

Invoking msys2 shell command: -defterm -no-start -c "pacman --noconfirm -Syuu --disable-download-timeout | tee -a /update.log; ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
Cannot find path 'C:\tools\msys64\update.log' because it does not exist.
Only an exit code of non-zero will fail the package by default. Set
 `--failonstderr` if you want error messages to also fail a script. See
 `choco -h` for details.
 The install of msys2 was successful.
  Software install location not explicitly set, it could be in package or
  default install location of installer.

Chocolatey installed 1/1 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Choco Packages Installation Succeeded
error: mingw32: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: mingw64: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: msys: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
make already installed
error: mingw32: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: mingw64: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: msys: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
gcc already installed
error: mingw32: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: mingw64: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: msys: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: package 'perl' was not found
error: mingw32: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: mingw64: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: msys: signature from "David Macek <david.macek.0@gmail.com>" is unknown trust
error: database 'mingw32' is not valid (invalid or corrupted database (PGP signature))
error: database 'mingw64' is not valid (invalid or corrupted database (PGP signature))
error: database 'msys' is not valid (invalid or corrupted database (PGP signature))
Pacman Packages Installation Failed

Last time I stopped exactly here and switched to daemon. Any hints on how to proceed further from this place? While I understand that most likely build.py will work on absolutely clean environment, I would like to build jami on my dev environment if possible

Imo build.py should autodetect tools required for build and allow to specify missing ones via input parameters rather than purely rely on chocolatey

These are pretty old scripts and need to be updated. Also, chocolatey may be replaced with winget after a revision. I will log a Gitlab issue for this for now (Windows build: issues reported setting up development environment (#1620) · Issues · savoirfairelinux / jami-client-qt · GitLab). I don’t think this will be addressed immediately, so the best advice for setting up the build environment would be to loosely follow the install-deps-windows.ps1 as you seem to have been doing, and make adjustments where needed (change version numbers, install packages using alternate methods, etc.). Keep in mind that an important part of the script is the installation of YASM and NASM for VS.

@elderorb can you please post your host system information?

Turned out chocolatey installs corrupted msys2… After I installed msys2 manually on top of the one installed by chocolatey install-deps-windows.ps1 finished:

diffutils already installed
Pacman Packages Installation Succeeded
Downloading VSNASM
Download VSNASM Succeeded
Unzipping VSNASM
Unzip VSNASM Succeeded
Install VSNASM
Detected 64 bit system...
Downloading required vswhere release binary...
Visual Studio 2017 environment detected...
Installing VS15 customisations into "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
Installing build customisations...
Downloading required NASM release binary...
Installing required NASM release binary...
Finished Successfully
Visual Studio 2022 environment detected...
Installing VS17 customisations into "C:\Program Files\Microsoft Visual Studio\2022\Community"
Installing build customisations...
Using existing NASM binary...
Installing required NASM release binary...
Finished Successfully
Visual Studio 2019 environment detected...
Installing VS16 customisations into "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
Installing build customisations...
Using existing NASM binary...
Installing required NASM release binary...
Finished Successfully
Install VSNASM Succeeded
Downloading VSYASM
Download VSYASM Succeeded
Unzipping VSYASM
Unzip VSYASM Succeeded
Install VSYASM
Detected 64 bit system...
Downloading required vswhere release binary...
Visual Studio 2017 environment detected...
Installing VS15 customisations into "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
Installing build customisations...
Installing required YASM release binary...
Finished Successfully
Visual Studio 2022 environment detected...
Installing VS17 customisations into "C:\Program Files\Microsoft Visual Studio\2022\Community"
Installing build customisations...
Installing required YASM release binary...
Finished Successfully
Visual Studio 2019 environment detected...
Installing VS16 customisations into "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
Installing build customisations...
Installing required YASM release binary...
Finished Successfully
Install VSYASM Succeeded
Downloading yasm.exe (win64)
Download yasm.exe (win64) Succeeded
Move yasm.exe (win64) to msys64 folder
Move yasm.exe (win64) to msys64 folder Succeeded
Downloading gas-preprocessor.pl
Download gas-preprocessor.pl Succeeded
Move gas-preprocessor.pl to msys64 folder
Move gas-preprocessor.pl to msys64 folder Succeeded
Done

As the next step I tried to re-create cmake project for daemon via cmake-gui:

Unfortunately it failed to execute a few steps:

Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631.
[ e[36mINFO   e[0m e[35m1714304082.45e[0m e[1;30m      winmake.py:  62e[0m ] e[32mop=resolve, pkgs=all, force=Falsee[0m

[ e[36mINFO   e[0m e[35m1714304082.45e[0m e[1;30m    versioner.py: 117e[0m ] e[32mBuilding packages: ['argon2', 'asio', 'dhtnet', 'ffmpeg', 'ffnvcodec', 'fmt', 'gmp', 'gnutls', 'http_parser', 'iconv', 'jsoncpp', 'libarchive', 'libgit2', 'media-sdk', 'msgpack', 'natpmp', 'nettle', 'opendht', 'openssl', 'opus', 'pjproject', 'portaudio', 'pthreads', 'restinio', 'secp256k1', 'speexdsp', 'upnp', 'vpx', 'webrtc-audio-processing', 'x264', 'yaml-cpp', 'zlib']e[0m

[ e[36mINFO   e[0m e[35m1714304082.45e[0m e[1;30m    versioner.py: 134e[0m ] e[32mDoing resolve for argon2e[0m

[ e[36mINFO   e[0m e[35m1714304082.46e[0m e[1;30m    versioner.py:  61e[0m ] e[32mPackage argon2 (req-ver: 670229c - build:None:source:e70f356)e[0m

[ e[36mINFO   e[0m e[35m1714304086.71e[0m e[1;30m      patcher.py:  39e[0m ] e[32mPatching argon2e[0m

Checking patch contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj...

error: while searching for:
<?xml version="1.0" encoding="utf-8"?>?
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">?
  <ItemGroup Label="ProjectConfigurations">?
    <ProjectConfiguration Include="Debug|Win32">?
      <Configuration>Debug</Configuration>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:1
error: while searching for:
  <PropertyGroup Label="Globals">?
    <ProjectGuid>{B9CAC9CE-9F0D-4F52-8D67-FDBBAFCD0DE2}</ProjectGuid>?
    <RootNamespace>Argon2Ref</RootNamespace>?
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>?
  </PropertyGroup>?
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>true</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <CharacterSet>MultiByte</Cha
racterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>true</UseDebugLibraries>?
    <PlatformToolset>v140<
/PlatformToolset>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:29
error: while searching for:
      <Optimization>Disabled</Optimization>?
      <SDLCheck>true</SDLCh
eck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
  </ItemDefinitionGroup>?
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:132
error: while searching for:
      <Optimization>Disabled</Optimization>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
  </ItemDefinitionGroup>?
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:140
error: while searching for:
      <IntrinsicFunctions>true</IntrinsicFunctions>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
    <Link>?
      <EnableCOMDATFold
ing>true</EnableCOMDATFolding>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:150
error: while searching for:
      <IntrinsicFunctions>true</IntrinsicFunctions>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
    <Link>?
      <EnableCOMDATFolding>true</EnableCOMDATFolding>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:179

Applying patch contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj with 6 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.

[ e[36mWARNINGe[0m e[35m1714304086.79e[0m e[1;30m      patcher.py:  58e[0m ] e[33mCouldn't apply patch Q:\jami\jami-client-qt\daemon\contrib\src\argon2\argon2-vs2017.patche[0m

[ e[36mWARNINGe[0m e[35m1714304086.79e[0m e[1;30m    versioner.py: 217e[0m ] e[33mFailed to apply patches for argon2 (Patches may be either aleady applied, or the source code has changed.)e[0m

[ e[36mINFO   e[0m e[35m1714304086.79e[0m e[1;30m meta_builder.py: 145e[0m ] e[32mBuilding argon2e[0m

[ e[36mINFO   e[0m e[35m1714304086.84e[0m e[1;30m       vs_env.py:  45e[0m ] e[32mDiscovering VS build environment (x64 / 10.0.18362.0)...e[0m

[ e[36mCRITICALe[0m e[35m1714304088.11e[0m e[1;30m       vs_env.py: 144e[0m ] e[1;31mFailed to load VS environment for sdk 10.0.18362.0e[0m

[ e[36mCRITICALe[0m e[35m1714304088.11e[0m e[1;30m       vs_env.py:  57e[0m ] e[1;31mCould not find Visual Studio environment.e[0m

[ e[36mERROR  e[0m e[35m1714304088.11e[0m e[1;30m meta_builder.py:  66e[0m ] e[31mA valid Visual Studio env is not installed on this machine.e[0m

[ e[36mERROR  e[0m e[35m1714304088.11e[0m e[1;30m meta_builder.py: 213e[0m ] e[31mError building argon2: 'NoneType' object has no attribute 'build'e[0m

[ e[36mERROR  e[0m e[35m1714304088.11e[0m e[1;30m    versioner.py: 226e[0m ] e[31mFailed to build argon2e[0m

[ e[36mERROR  e[0m e[35m1714304088.11e[0m e[1;30m    versioner.py: 144e[0m ] e[31mFailed to resolve argon2e[0m

[ e[36mERROR  e[0m e[35m1714304088.11e[0m e[1;30m    versioner.py: 120e[0m ] e[31mFailed to build argon2e[0m

[ e[36mINFO   e[0m e[35m1714304088.11e[0m e[1;30m      winmake.py: 121e[0m ] e[32m--- 0:00:48.033221 ---e[0m

Contrib build successful.
Configuring done (48.4s)
Generating done (0.2s)

VS solution was not created.

Windows 11, VS 2022 Community edition 17.9.5… Not sure what else is needed so sending msinfo:

https://file.io/zzbb7kRj4OJd

atraczyk How exactly releases for windows are built? May I ask cmake ‘build’ folder content (the folder with cmakecache.txt) for comparison?

Also just tried to build client-gui via ‘python build.py --install’ - still no luck :frowning:

Build was initiated from VS2022 command prompt.

Q:\jami-dev\jami-client-qt>python build.py --install --qt=C:\Qt\6.6.3\msvc2019_64
[ INFO     1714306977.015060       main: 853 ] Making: daemon
[ INFO     1714306977.017600    resolve: 480 ]  Resolving: daemon
[ WARNING  1714306977.061752 make_daemon: 234 ] Cmake generating vcxproj files
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.18362.0.
Q:\jami-dev\jami-client-qt\daemon\extras\scripts\winmake.py:53: SyntaxWarning: invalid escape sequence '\Q'
  qt_tools_dir = os.path.join(os.getenv("QTDIR", "C:\Qt"), "Tools")
[ INFO    1714307020.49       winmake.py:  62 ] op=resolve, pkgs=all, force=False
[ INFO    1714307020.49     versioner.py: 117 ] Building packages: ['argon2', 'asio', 'dhtnet', 'ffmpeg', 'ffnvcodec', 'fmt', 'gmp', 'gnutls', 'http_parser', 'iconv', 'jsoncpp', 'libarchive', 'libgit2', 'media-sdk', 'msgpack', 'natpmp', 'nettle', 'opendht', 'openssl', 'opus', 'pjproject', 'portaudio', 'pthreads', 'restinio', 'secp256k1', 'speexdsp', 'upnp', 'vpx', 'webrtc-audio-processing', 'x264', 'yaml-cpp', 'zlib']
[ INFO    1714307020.49     versioner.py: 134 ] Doing resolve for argon2
[ INFO    1714307023.55     versioner.py:  61 ] Package argon2 (req-ver: 670229c - build:None:source:e70f356)
[ INFO    1714307023.55       patcher.py:  39 ] Patching argon2
Checking patch contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj...
error: while searching for:
<?xml version="1.0" encoding="utf-8"?>?
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">?
  <ItemGroup Label="ProjectConfigurations">?
    <ProjectConfiguration Include="Debug|Win32">?
      <Configuration>Debug</Configuration>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:1
error: while searching for:
  <PropertyGroup Label="Globals">?
    <ProjectGuid>{B9CAC9CE-9F0D-4F52-8D67-FDBBAFCD0DE2}</ProjectGuid>?
    <RootNamespace>Argon2Ref</RootNamespace>?
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>?
  </PropertyGroup>?
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>true</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <CharacterSet>MultiByte</Cha[ WARNING 1714307023.67       patcher.py:  58 ] Couldn't apply patch Q:\jami-dev\jami-client-qt\daemon\contrib\src\argon2\argon2-vs2017.patch
racterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>true</UseDebugLibraries>?
    <PlatformToolset>v140<[ WARNING 1714307023.67     versioner.py: 217 ] Failed to apply patches for argon2 (Patches may be either aleady applied, or the source code has changed.)
[ INFO    1714307023.67  meta_builder.py: 145 ] Building argon2
/PlatformToolset>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'" Label="Configuration">?
    <ConfigurationType>Application</ConfigurationType>?
    <UseDebugLibraries>false</UseDebugLibraries>?
    <PlatformToolset>v140</PlatformToolset>?
    <WholeProgramOptimization>true</WholeProgramOptimization>?
    <CharacterSet>MultiByte</CharacterSet>?
  </PropertyGroup>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:29
error: while searching for:
      <Optimization>Disabled</Optimization>?
      <SDLCheck>true</SDLCh[ INFO    1714307023.72        vs_env.py:  45 ] Discovering VS build environment (x64 / 10.0.18362.0)...
eck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
  </ItemDefinitionGroup>?
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:132
error: while searching for:
      <Optimization>Disabled</Optimization>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
  </ItemDefinitionGroup>?
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:140
error: while searching for:
      <IntrinsicFunctions>true</IntrinsicFunctions>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
    <Link>?
      <EnableCOMDATFolding>true</EnableCOMDATFolding>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:150
error: while searching for:
      <IntrinsicFunctions>true</IntrinsicFunctions>?
      <SDLCheck>true</SDLCheck>?
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>?
    </ClCompile>?
    <Link>?
      <EnableCOMDATFolding>true</EnableCOMDATFolding>?

error: patch failed: contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj:179
Applying patch contrib/build/argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj with 6 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.
[ CRITICAL 1714307025.22        vs_env.py: 144 ] Failed to load VS environment for sdk 10.0.18362.0
[ CRITICAL 1714307025.22        vs_env.py:  57 ] Could not find Visual Studio environment.
[ ERROR   1714307025.22  meta_builder.py:  66 ] A valid Visual Studio env is not installed on this machine.
[ ERROR   1714307025.22  meta_builder.py: 213 ] Error building argon2: 'NoneType' object has no attribute 'build'
[ ERROR   1714307025.22     versioner.py: 226 ] Failed to build argon2
[ ERROR   1714307025.22     versioner.py: 144 ] Failed to resolve argon2
[ ERROR   1714307025.22     versioner.py: 120 ] Failed to build argon2
[ INFO    1714307025.22       winmake.py: 121 ] --- 0:00:47.161726 ---
-- Contrib build successful.
-- Configuring done (48.1s)
-- Generating done (1.7s)
-- Build files have been written to: Q:/jami-dev/jami-client-qt/daemon/build
[ WARNING  1714307027.462929 make_daemon: 241 ] Building daemon with preferred sdk version 10.0.18362.0 and toolset v143
[ DEBUG    1714307028.098961 setup_vs_env: 732 ]      Setting up vs environment
dictionary update sequence element #0 has length 1; 2 is required
[ ERROR    1714307048.760137    resolve: 486 ]  Make daemon failed!
Error executing script! Exit code: 1 (['python winmake.py -iv -s 10.0.18362.0 -b daemon'])

Any updates here? Would still like to prepare dev env on Windows…

still no updates? does it mean you are not interested in external contributions?

what about now? still nope? :slight_smile: