From 675d34c612e1901e3ee73a3470528a6dbc0f3cf7 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 11 Jan 2025 17:35:54 +0900 Subject: [PATCH] Fixed minor issues with Windows containers --- Dockerfiles/agent/windows/Dockerfile | 2 +- .../agent/windows/docker-entrypoint.ps1 | 1 - Dockerfiles/agent2/windows/Dockerfile | 1 + .../build-base/windows/Dockerfile.agent | 36 +++++++++---------- .../build-base/windows/Dockerfile.agent2 | 24 ++++++------- .../build-mysql/windows/Dockerfile.agent | 12 +++---- .../build-mysql/windows/Dockerfile.agent2 | 11 +++--- 7 files changed, 43 insertions(+), 44 deletions(-) diff --git a/Dockerfiles/agent/windows/Dockerfile b/Dockerfiles/agent/windows/Dockerfile index 0717cd14e..31137a0b0 100644 --- a/Dockerfiles/agent/windows/Dockerfile +++ b/Dockerfiles/agent/windows/Dockerfile @@ -51,7 +51,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR | Out-Null; ` New-Item -Force -ItemType directory -Path $env:ZABBIX_CONF_DIR\zabbix_agentd.d | Out-Null; ` New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\enc | Out-Null; ` - New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\buffer | Out-Null; ` + New-Item -Force -ItemType directory -Path $env:ZABBIX_USER_HOME_DIR\enc_internal | Out-Null; ` New-Item -Force -ItemType directory -Path $env:ZBX_USERPARAMETERDIR | Out-Null; ` ` net accounts /MaxPWAge:unlimited; ` diff --git a/Dockerfiles/agent/windows/docker-entrypoint.ps1 b/Dockerfiles/agent/windows/docker-entrypoint.ps1 index d0ccd1c05..443f4cc8c 100644 --- a/Dockerfiles/agent/windows/docker-entrypoint.ps1 +++ b/Dockerfiles/agent/windows/docker-entrypoint.ps1 @@ -13,7 +13,6 @@ if ($env:ZBX_SERVER_PORT -eq $null) { $env:ZBX_SERVER_PORT="10051" } - # Default directories # Internal directory for TLS related files, used when TLS*File specified as plain text values $ZabbixInternalEncDir="$env:ZABBIX_USER_HOME_DIR/enc_internal" diff --git a/Dockerfiles/agent2/windows/Dockerfile b/Dockerfiles/agent2/windows/Dockerfile index f32e3c741..818e52496 100644 --- a/Dockerfiles/agent2/windows/Dockerfile +++ b/Dockerfiles/agent2/windows/Dockerfile @@ -1,6 +1,7 @@ # syntax=docker/dockerfile:1 # escape=` ARG OS_BASE_IMAGE=mcr.microsoft.com/powershell:lts-nanoserver-ltsc2022 + ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION} diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent b/Dockerfiles/build-base/windows/Dockerfile.agent index 9f9e42bf2..38bdc7df7 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent +++ b/Dockerfiles/build-base/windows/Dockerfile.agent @@ -3,6 +3,10 @@ ARG OS_BASE_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2022 FROM ${OS_BASE_IMAGE} +ARG GIT_VERSION=2.47.1 +ARG NASM_VERSION=2.16.03 +ARG VS_BUILDTOOLS_VERSION=17 + ARG PCRE2_VERSION=10.44 ARG OPENSSL_VERSION=3.3.2 ARG LIBMODBUS_VERSION=3.1.11 @@ -14,11 +18,11 @@ ARG BUILD_ARCH=x64 ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION} -ARG GIT_URL=https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/MinGit-2.47.1-64-bit.zip +ARG GIT_URL=https://github.com/git-for-windows/git/releases/download/v$GIT_VERSION.windows.1/MinGit-$GIT_VERSION-64-bit.zip ARG PERL_URL=https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54001_64bit_UCRT/strawberry-perl-5.40.0.1-64bit-portable.zip -ARG VS_BUILDTOOLS_URL=https://aka.ms/vs/17/release/vs_buildtools.exe -ARG NASM_URL=https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/win64/nasm-2.16.03-installer-x64.exe +ARG VS_BUILDTOOLS_URL=https://aka.ms/vs/$VS_BUILDTOOLS_VERSION/release/vs_buildtools.exe +ARG NASM_URL=https://www.nasm.us/pub/nasm/releasebuilds/$NASM_VERSION/win64/nasm-$NASM_VERSION-installer-x64.exe ARG PCRE2_URL=https://github.com/PhilipHazel/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-$PCRE2_VERSION.zip ARG OPENSSL_URL=https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL_VERSION/openssl-$OPENSSL_VERSION.tar.gz @@ -29,7 +33,7 @@ ARG CURL_URL=https://curl.se/download/curl-$CURL_VERSION.tar.gz ENV ZBX_VERSION=$ZBX_VERSION ` BUILD_ARCH=$BUILD_ARCH ` GIT_URL=$GIT_URL PERL_URL=$PERL_URL NASM_URL=$NASM_URL ` - VS_BUILDTOOLS_URL=$VS_BUILDTOOLS_URL ` + VS_BUILDTOOLS_URL=$VS_BUILDTOOLS_URL VS_BUILDTOOLS_VERSION=$VS_BUILDTOOLS_VERSION ` PCRE2_VERSION=$PCRE2_VERSION OPENSSL_VERSION=$OPENSSL_VERSION LIBMODBUS_VERSION=$LIBMODBUS_VERSION ` PCRE2_URL=$PCRE2_URL OPENSSL_URL=$OPENSSL_URL LIBMODBUS_URL=$LIBMODBUS_URL ` ZLIB_URL=$ZLIB_URL CURL_URL=$CURL_URL @@ -43,8 +47,6 @@ LABEL org.opencontainers.image.title="Zabbix agent build base for Windows" ` org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" ` org.opencontainers.image.version="${ZBX_VERSION}" -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - ADD --checksum=sha256:21c6f0523abfd37a2f5cc85879d0ff32723ab496347f0d20793df888ecec3957 $PCRE2_URL C:\pcre2.zip ADD --checksum=sha256:2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281 $OPENSSL_URL C:\openssl.tar.gz ADD --checksum=sha256:15b4b2e0f68122c2da9b195de5c330489a9c97d40b4a95d2822378dc14d780e7 $LIBMODBUS_URL C:\libmodbus.tar.gz @@ -53,6 +55,8 @@ ADD --checksum=sha256:a889ac9dbba3644271bd9d1302b5c22a088893719b72be3487bc3d401e COPY modbus.vs16.* C:\build_src\libmodbus_project\ +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + RUN Set-Location -Path $env:SystemDrive\.; ` [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` ` @@ -64,6 +68,9 @@ RUN Set-Location -Path $env:SystemDrive\.; ` $env:BUILD_SRC = [string]::Format('{0}\build_src', $env:SystemDrive); ` [Environment]::SetEnvironmentVariable('BUILD_SRC', $env:BUILD_SRC, [EnvironmentVariableTarget]::Machine); ` ` + New-Item -ItemType directory -Path $env:BUILD_OUTPUT -Force | Out-Null; ` + New-Item -ItemType directory -Path $env:BUILD_SRC -Force | Out-Null; ` + ` Write-Host ('Downloading {0} ...' -f $env:GIT_URL); ` Invoke-WebRequest -OutFile $env:TEMP\git.zip -Uri $env:GIT_URL; ` ` @@ -129,9 +136,9 @@ RUN Set-Location -Path $env:SystemDrive\.; ` --norestart ` --nocache ` --installPath """${env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools""" ` - --channelUri https://aka.ms/vs/17/release/channel ` - --installChannelUri https://aka.ms/vs/17/release/channel ` - --channelId VisualStudio.17.Release ` + --channelUri https://aka.ms/vs/$env:VS_BUILDTOOLS_VERSION/release/channel ` + --installChannelUri https://aka.ms/vs/$env:VS_BUILDTOOLS_VERSION/release/channel ` + --channelId VisualStudio.$env:VS_BUILDTOOLS_VERSION.Release ` # https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022 --add Microsoft.VisualStudio.Component.Windows11SDK.22621 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project; ` @@ -147,15 +154,8 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host 'Visual Studio components installation cleanup'; ` Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force -Recurse; ` ` - Write-Host 'Removing downloaded...'; ` - Remove-Item -Force -Recurse $env:TEMP\*; ` Write-Host 'Build environment is ready...'; ` ` - Set-Location -Path $env:SystemDrive\.; ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - ` - New-Item -ItemType directory -Path $env:BUILD_OUTPUT -Force | Out-Null; ` - New-Item -ItemType directory -Path $env:BUILD_SRC -Force | Out-Null; ` Set-Location -Path $env:BUILD_SRC; ` ` Write-Host 'Extracting PCRE2 archive ...'; ` @@ -265,7 +265,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` set CL=/MP; ` nmake /S -f Makefile.vc ` mode=static ` - VC=17 ` + VC=$env:VS_BUILDTOOLS_VERSION ` DEBUG=no ` CC="""cl.exe /DCURL_DISABLE_LDAP /DCURL_DISABLE_LDAPS""" ` MACHINE=$env:BUILD_ARCH ` @@ -279,7 +279,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` ZLIB_PATH=$env:BUILD_OUTPUT\zlib ` RTLIBCFG=static; ` ` - Move-Item -Path $env:BUILD_SRC\curl\builds\libcurl-vc17-$env:BUILD_ARCH-release-static-ssl-static-zlib-static-sspi\ -Destination $env:BUILD_OUTPUT\curl; ` + Move-Item -Path $env:BUILD_SRC\curl\builds\libcurl-vc$env:VS_BUILDTOOLS_VERSION-$env:BUILD_ARCH-release-static-ssl-static-zlib-static-sspi\ -Destination $env:BUILD_OUTPUT\curl; ` Remove-Item -Path $env:BUILD_SRC\curl\builds\* -Force -Recurse; ` Write-Host 'Curl is ready...'; ` ` diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent2 b/Dockerfiles/build-base/windows/Dockerfile.agent2 index aa9dbafbe..cac66b374 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-base/windows/Dockerfile.agent2 @@ -6,6 +6,7 @@ FROM ${OS_BASE_IMAGE} ARG PCRE2_VERSION=10.44 ARG OPENSSL_VERSION=3.3.2 ARG GOLANG_VERSION=1.23.2 +ARG VS_BUILDTOOLS_VERSION=17 ARG MSYSTEM=UCRT64 @@ -15,7 +16,7 @@ ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION} ARG MINGW_URL=https://github.com/niXman/mingw-builds-binaries/releases/download/14.2.0-rt_v12-rev0/x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev0.7z -ARG VS_BUILDTOOLS_URL=https://aka.ms/vs/17/release/vs_buildtools.exe +ARG VS_BUILDTOOLS_URL=https://aka.ms/vs/$VS_BUILDTOOLS_VERSION/release/vs_buildtools.exe ARG GOLANG_URL=https://go.dev/dl/go$GOLANG_VERSION.windows-amd64.zip ARG MSYS2_URL=https://api.github.com/repos/msys2/msys2-installer/releases/latest @@ -24,7 +25,7 @@ ARG OPENSSL_URL=https://github.com/openssl/openssl/releases/download/openssl-$OP ENV ZBX_VERSION=$ZBX_VERSION ` BUILD_ARCH=$BUILD_ARCH ` - MINGW_URL=$MINGW_URL VS_BUILDTOOLS_URL=$VS_BUILDTOOLS_URL GOLANG_VERSION=$GOLANG_VERSION MSYS2_URL=$MSYS2_URL ` + MINGW_URL=$MINGW_URL VS_BUILDTOOLS_URL=$VS_BUILDTOOLS_URL VS_BUILDTOOLS_VERSION=$VS_BUILDTOOLS_VERSION GOLANG_VERSION=$GOLANG_VERSION MSYS2_URL=$MSYS2_URL ` PCRE2_VERSION=$PCRE2_VERSION OPENSSL_VERSION=$OPENSSL_VERSION ` PCRE2_URL=$PCRE2_URL OPENSSL_URL=$OPENSSL_URL ` CHERE_INVOKING=yes MSYSTEM=$MSYSTEM @@ -38,11 +39,11 @@ LABEL org.opencontainers.image.title="Zabbix agent 2 build base for Windows" ` org.opencontainers.image.documentation="https://www.zabbix.com/documentation/${MAJOR_VERSION}/manual/installation/containers" ` org.opencontainers.image.version="${ZBX_VERSION}" -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - ADD --checksum=sha256:21c6f0523abfd37a2f5cc85879d0ff32723ab496347f0d20793df888ecec3957 $PCRE2_URL C:\pcre2.zip ADD --checksum=sha256:2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281 $OPENSSL_URL C:\openssl.tar.gz +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + RUN Set-Location -Path $env:SystemDrive\.; ` [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` ` @@ -54,6 +55,9 @@ RUN Set-Location -Path $env:SystemDrive\.; ` $env:BUILD_SRC = [string]::Format('{0}\build_src', $env:SystemDrive); ` [Environment]::SetEnvironmentVariable('BUILD_SRC', $env:BUILD_SRC, [EnvironmentVariableTarget]::Machine); ` ` + New-Item -ItemType directory -Path $env:BUILD_OUTPUT -Force | Out-Null; ` + New-Item -ItemType directory -Path $env:BUILD_SRC -Force | Out-Null; ` + ` Write-Host ('Downloading {0} ...' -f $env:GOLANG_URL); ` Invoke-WebRequest -OutFile $env:TEMP\go_lang.zip -Uri $env:GOLANG_URL; ` ` @@ -129,9 +133,9 @@ RUN Set-Location -Path $env:SystemDrive\.; ` --norestart ` --nocache ` --installPath """${env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools""" ` - --channelUri https://aka.ms/vs/17/release/channel ` - --installChannelUri https://aka.ms/vs/17/release/channel ` - --channelId VisualStudio.17.Release ` + --channelUri https://aka.ms/vs/$env:VS_BUILDTOOLS_VERSION/release/channel ` + --installChannelUri https://aka.ms/vs/$env:VS_BUILDTOOLS_VERSION/release/channel ` + --channelId VisualStudio.$env:VS_BUILDTOOLS_VERSION.Release ` # https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64; ` if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { ` @@ -146,14 +150,8 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host 'Visual Studio components installation cleanup'; ` Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force -Recurse; ` ` - Write-Host 'Removing downloaded...'; ` - Remove-Item -Force -Recurse $env:TEMP\*; ` Write-Host 'Build environment is ready...'; ` ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - ` - New-Item -ItemType directory -Path $env:BUILD_OUTPUT -Force | Out-Null; ` - New-Item -ItemType directory -Path $env:BUILD_SRC -Force | Out-Null; ` Set-Location -Path $env:BUILD_SRC; ` ` Write-Host 'Extracting PCRE2 archive ...'; ` diff --git a/Dockerfiles/build-mysql/windows/Dockerfile.agent b/Dockerfiles/build-mysql/windows/Dockerfile.agent index eee75a9fe..f567ec71b 100644 --- a/Dockerfiles/build-mysql/windows/Dockerfile.agent +++ b/Dockerfiles/build-mysql/windows/Dockerfile.agent @@ -6,13 +6,12 @@ ARG BUILD_BASE_IMAGE=zabbix-build-base:ltsc2022-agent-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - ARG MAJOR_VERSION ARG ZBX_VERSION +ARG ZABBIX_VERSION_RC_NUM=2400 + ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ARG GIT_BRANCH=master -ARG ZABBIX_VERSION_RC_NUM=2400 ENV ZBX_SOURCES=$ZBX_SOURCES MAJOR_VERSION=$MAJOR_VERSION ZBX_VERSION=$ZBX_VERSION GIT_BRANCH=${GIT_BRANCH:-$ZBX_VERSION} ` ZABBIX_VERSION_RC_NUM=$ZABBIX_VERSION_RC_NUM ` @@ -28,10 +27,10 @@ LABEL org.opencontainers.image.title="Zabbix agent build (Windows)" ` org.opencontainers.image.version="${ZBX_VERSION}" ` org.opencontainers.image.source="${ZBX_SOURCES}" -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - ADD config_templates C:\config_templates +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + RUN Set-Location -Path $env:SystemDrive\.; ` ` New-Item -ItemType directory -Path $env:SystemDrive\zabbix_src | Out-Null; ` @@ -46,7 +45,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host ('Checkout GIT {0} ({1}) repository ...' -f $env:ZBX_SOURCES, $env:GIT_BRANCH); ` git -c advice.detachedHead=false clone $env:ZBX_SOURCES --branch $env:GIT_BRANCH --depth 1 --single-branch $env:ZBX_SOURCES_DIR; ` ` - Write-Host ('Building Zabbix {0} version ...' -f $env:ZBX_VERSION); ` + Write-Host ('Building Zabbix agent {0} version ...' -f $env:ZBX_VERSION); ` Set-Location -Path $env:ZBX_SOURCES_DIR; ` $ZbxRevision=(git rev-parse --short HEAD); ` (Get-Content include/version.h).replace('{ZABBIX_REVISION}', $ZbxRevision) | Set-Content include/version.h; ` @@ -74,4 +73,5 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Copy-Item -Path $env:ZBX_SOURCES_DIR\bin\win64\zabbix_sender.exe $env:ZBX_OUTPUT_DIR\bin; ` Copy-Item -Path $env:ZBX_SOURCES_DIR\conf\zabbix_agentd.win.conf $env:ZBX_OUTPUT_DIR\conf\zabbix_agentd.conf_template; ` Copy-Item -Recurse -Path $env:SystemDrive\config_templates\agent\* $env:ZBX_OUTPUT_DIR\conf\; ` + nmake /S -f Makefile clean; ` Write-Host 'Zabbix binaries are compiled...'; diff --git a/Dockerfiles/build-mysql/windows/Dockerfile.agent2 b/Dockerfiles/build-mysql/windows/Dockerfile.agent2 index 0beec6e11..3e4979bee 100644 --- a/Dockerfiles/build-mysql/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-mysql/windows/Dockerfile.agent2 @@ -6,11 +6,10 @@ ARG BUILD_BASE_IMAGE=zabbix-build-base:ltsc2022-agent2-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - -ARG MAJOR_VERSION=7.4 -ARG ZBX_VERSION=${MAJOR_VERSION} +ARG MAJOR_VERSION +ARG ZBX_VERSION ARG ZABBIX_VERSION_RC_NUM=2400 + ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ARG MONGODB_PLUGIN_SOURCES=https://git.zabbix.com/scm/ap/mongodb.git ARG POSTGRESQL_PLUGIN_SOURCES=https://git.zabbix.com/scm/ap/postgresql.git @@ -42,6 +41,8 @@ LABEL org.opencontainers.image.title="Zabbix agent 2 build (Windows)" ` ADD config_templates C:\config_templates +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + RUN Set-Location -Path $env:SystemDrive\.; ` ` New-Item -ItemType directory -Path $env:ZBX_SOURCES_DIR | Out-Null; ` @@ -57,7 +58,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host ('Checkout GIT {0} ({1}) repository ...' -f $env:ZBX_SOURCES, $env:GIT_BRANCH); ` git -c advice.detachedHead=false clone $env:ZBX_SOURCES --branch $env:GIT_BRANCH --depth 1 --single-branch $env:ZBX_SOURCES_DIR; ` ` - Write-Host ('Building Zabbix {0} version ...' -f $env:ZBX_VERSION); ` + Write-Host ('Building Zabbix agent 2 {0} version ...' -f $env:ZBX_VERSION); ` Set-Location -Path $env:ZBX_SOURCES_DIR; ` $ZbxRevision=(git rev-parse --short HEAD); ` (Get-Content include\version.h).replace('{ZABBIX_REVISION}', $ZbxRevision) | Set-Content include\version.h; `