diff --git a/docker/README.md b/docker/README.md index 6d61860a..4f2b415e 100644 --- a/docker/README.md +++ b/docker/README.md @@ -4,7 +4,7 @@ Docker images building 3rd-party libraries. Assumptions for Docker images utilizing Windows Containers: -1. [Docker](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/deploy-containers-on-server) runs on [Windows Server 2019 1809](https://docs.microsoft.com/en-us/windows-server/get-started/windows-server-release-info) -1. Docker 19.03+ -1. Commands in README files use Bash (Git Bash) syntax +1. [Docker](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/deploy-containers-on-server) runs on [Windows Server 2022 LTSC](https://docs.microsoft.com/en-us/windows-server/get-started/windows-server-release-info) +1. Docker 20.10+ +1. Commands in README files use Bash (Git Bash) syntax, unless different is explicitly specified 1. Commands in README files assume current directory is the directory where this repository is cloned diff --git a/docker/boost-mingw/scripts/build.ps1 b/docker/boost-mingw/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/boost-mingw/scripts/build.ps1 +++ b/docker/boost-mingw/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/boost-mingw/src/Dockerfile b/docker/boost-mingw/src/Dockerfile index 98e44758..a0e84121 100644 --- a/docker/boost-mingw/src/Dockerfile +++ b/docker/boost-mingw/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/mingw:2.15.0 +FROM abrarov/mingw:2.16.0 ENV BOOST_VERSION="1.80.0" \ BOOST_RELEASE_URL="https://boostorg.jfrog.io/artifactory/main/release" \ diff --git a/docker/boost-mingw/src/app/bootstrap.bat b/docker/boost-mingw/src/app/bootstrap.bat index b9d88f45..15c07d63 100644 --- a/docker/boost-mingw/src/app/bootstrap.bat +++ b/docker/boost-mingw/src/app/bootstrap.bat @@ -9,19 +9,22 @@ rem set exit_code=0 if not "--%BOOST_PATCH_FILE%" == "--" ( - set "DEFAULT_PATH=%PATH%" + setlocal set "PATH=%MSYS_HOME%\usr\bin;%PATH%" patch -uNf -p0 -i "%BOOST_PATCH_FILE%" set exit_code=%errorlevel% if %exit_code% neq 0 ( - if %exit_code% neq 1 goto exit + if %exit_code% neq 1 ( + endlocal + goto exit + ) ) + endlocal + rem Reset errorlevel to zero cmd /c "exit /b 0" - - set "PATH=%DEFAULT_PATH%" ) set "PATH=%MINGW_HOME%\bin;%PATH%" diff --git a/docker/boost-msvc-2017/README.md b/docker/boost-msvc-2017/README.md index 41e99900..47cf710a 100644 --- a/docker/boost-msvc-2017/README.md +++ b/docker/boost-msvc-2017/README.md @@ -14,7 +14,7 @@ docker build -t abrarov/boost-msvc-2017 docker/boost-msvc-2017/src | Name | Meaning of variable | Possible values | Default value | Comments | |------|---------------------|-----------------|---------------|----------| -| BOOST_VERSION | Version of Boost to build | One of: `1.70.0`, `1.71.0`, `1.72.0`, `1.73.0`, `1.74.0`, `1.75.0`, `1.76.0`, `1.77.0`, `1.78.0`, `1.79.0`, `1.80.0` | `1.80.0` | | +| BOOST_VERSION | Version of Boost to build | One of: `1.70.0`, `1.71.0`, `1.72.0`, `1.73.0`, `1.74.0`, `1.75.0`, `1.76.0`, `1.77.0`, `1.78.0`, `1.79.0`, `1.80.0`, `1.83.0` | `1.83.0` | | | BOOST_ADDRESS_MODEL | CPU architecture | One of: `32`, `64` | Undefined | When undefined then both `64` and `32` (in the same order) are built | | BOOST_LINKAGE | Linkage of built libraries | One of: `shared`, `static` | Undefined | When undefined then both `shared` and `static` (in the same order) are built | | BOOST_RUNTIME_LINKAGE | Linkage of C/C++ runtime | One of: `shared`, `static` | Undefined | When undefined then both `shared` and `static` (in the same order) are built, when `BOOST_LINKAGE` is `shared` then `static` value of `BOOST_RUNTIME_LINKAGE` is ignored | diff --git a/docker/boost-msvc-2017/scripts/build.ps1 b/docker/boost-msvc-2017/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/boost-msvc-2017/scripts/build.ps1 +++ b/docker/boost-msvc-2017/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/boost-msvc-2017/src/Dockerfile b/docker/boost-msvc-2017/src/Dockerfile index e4a60105..6a29a784 100644 --- a/docker/boost-msvc-2017/src/Dockerfile +++ b/docker/boost-msvc-2017/src/Dockerfile @@ -4,9 +4,9 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2017:2.15.0 +FROM abrarov/msvc-2017:2.16.0 -ENV BOOST_VERSION="1.80.0" \ +ENV BOOST_VERSION="1.83.0" \ BOOST_RELEASE_URL="https://boostorg.jfrog.io/artifactory/main/release" \ B2_OPTIONS="--without-python --without-mpi --without-graph_parallel" diff --git a/docker/boost-msvc-2019/README.md b/docker/boost-msvc-2019/README.md index 9c9d13cb..9eb9b932 100644 --- a/docker/boost-msvc-2019/README.md +++ b/docker/boost-msvc-2019/README.md @@ -14,7 +14,7 @@ docker build -t abrarov/boost-msvc-2019 docker/boost-msvc-2019/src | Name | Meaning of variable | Possible values | Default value | Comments | |------|---------------------|-----------------|---------------|----------| -| BOOST_VERSION | Version of Boost to build | One of: `1.77.0`, `1.78.0`, `1.79.0`, `1.80.0` | `1.80.0` | | +| BOOST_VERSION | Version of Boost to build | One of: `1.77.0`, `1.78.0`, `1.79.0`, `1.80.0`, `1.83.0` | `1.83.0` | | | BOOST_ADDRESS_MODEL | CPU architecture | One of: `32`, `64` | Undefined | When undefined then both `64` and `32` (in the same order) are built | | BOOST_LINKAGE | Linkage of built libraries | One of: `shared`, `static` | Undefined | When undefined then both `shared` and `static` (in the same order) are built | | BOOST_RUNTIME_LINKAGE | Linkage of C/C++ runtime | One of: `shared`, `static` | Undefined | When undefined then both `shared` and `static` (in the same order) are built, when `BOOST_LINKAGE` is `shared` then `static` value of `BOOST_RUNTIME_LINKAGE` is ignored | diff --git a/docker/boost-msvc-2019/scripts/build.ps1 b/docker/boost-msvc-2019/scripts/build.ps1 index 80e41d47..6cca248e 100644 --- a/docker/boost-msvc-2019/scripts/build.ps1 +++ b/docker/boost-msvc-2019/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/boost-msvc-2019/src/Dockerfile b/docker/boost-msvc-2019/src/Dockerfile index b14a0c7a..facefbe7 100644 --- a/docker/boost-msvc-2019/src/Dockerfile +++ b/docker/boost-msvc-2019/src/Dockerfile @@ -4,9 +4,9 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2019:2.15.0 +FROM abrarov/msvc-2019:2.16.0 -ENV BOOST_VERSION="1.80.0" \ +ENV BOOST_VERSION="1.83.0" \ BOOST_RELEASE_URL="https://boostorg.jfrog.io/artifactory/main/release" \ B2_OPTIONS="--without-python --without-mpi --without-graph_parallel" diff --git a/docker/boost-msvc-2022/README.md b/docker/boost-msvc-2022/README.md index 4e0ccab3..13661e44 100644 --- a/docker/boost-msvc-2022/README.md +++ b/docker/boost-msvc-2022/README.md @@ -14,7 +14,7 @@ docker build -t abrarov/boost-msvc-2022 docker/boost-msvc-2022/src | Name | Meaning of variable | Possible values | Default value | Comments | |------|---------------------|-----------------|---------------|----------| -| BOOST_VERSION | Version of Boost to build | One of: `1.78.0`, `1.79.0`, `1.80.0` | `1.80.0` | | +| BOOST_VERSION | Version of Boost to build | One of: `1.78.0`, `1.79.0`, `1.80.0`, `1.83.0` | `1.83.0` | | | BOOST_ADDRESS_MODEL | CPU architecture | One of: `32`, `64` | Undefined | When undefined then both `64` and `32` (in the same order) are built | | BOOST_LINKAGE | Linkage of built libraries | One of: `shared`, `static` | Undefined | When undefined then both `shared` and `static` (in the same order) are built | | BOOST_RUNTIME_LINKAGE | Linkage of C/C++ runtime | One of: `shared`, `static` | Undefined | When undefined then both `shared` and `static` (in the same order) are built, when `BOOST_LINKAGE` is `shared` then `static` value of `BOOST_RUNTIME_LINKAGE` is ignored | diff --git a/docker/boost-msvc-2022/scripts/build.ps1 b/docker/boost-msvc-2022/scripts/build.ps1 index 22dec60f..34c496c4 100644 --- a/docker/boost-msvc-2022/scripts/build.ps1 +++ b/docker/boost-msvc-2022/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/boost-msvc-2022/src/Dockerfile b/docker/boost-msvc-2022/src/Dockerfile index 02ad12cc..dfee1657 100644 --- a/docker/boost-msvc-2022/src/Dockerfile +++ b/docker/boost-msvc-2022/src/Dockerfile @@ -4,9 +4,9 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2022:2.15.0 +FROM abrarov/msvc-2022:2.16.0 -ENV BOOST_VERSION="1.80.0" \ +ENV BOOST_VERSION="1.83.0" \ BOOST_RELEASE_URL="https://boostorg.jfrog.io/artifactory/main/release" \ B2_OPTIONS="--without-python --without-mpi --without-graph_parallel" diff --git a/docker/boost-msvc-2022/src/app/bootstrap.bat b/docker/boost-msvc-2022/src/app/bootstrap.bat index faa19e9d..4262cd28 100644 --- a/docker/boost-msvc-2022/src/app/bootstrap.bat +++ b/docker/boost-msvc-2022/src/app/bootstrap.bat @@ -8,6 +8,25 @@ rem set exit_code=0 +if not "--%BOOST_PATCH_FILE%" == "--" ( + setlocal + set "PATH=%MSYS_HOME%\usr\bin;%PATH%" + + patch -uNf -p0 -i "%BOOST_PATCH_FILE%" + set exit_code=%errorlevel% + if %exit_code% neq 0 ( + if %exit_code% neq 1 ( + endlocal + goto exit + ) + ) + + endlocal + + rem Reset errorlevel to zero + cmd /c "exit /b 0" +) + call "%MSVC_BUILD_DIR%\%MSVC_CMD_BOOTSTRAP%" set exit_code=%errorlevel% if %exit_code% neq 0 goto exit diff --git a/docker/boost-msvc-2022/src/app/patches/boost-1.83.0.patch b/docker/boost-msvc-2022/src/app/patches/boost-1.83.0.patch new file mode 100644 index 00000000..d08aa5ce --- /dev/null +++ b/docker/boost-msvc-2022/src/app/patches/boost-1.83.0.patch @@ -0,0 +1,50 @@ +--- ./tools/build/src/tools/msvc.jam 2024-10-27 01:03:50.705233500 +0300 ++++ ./tools/build/src/tools/msvc.jam 2024-10-27 01:03:50.705233500 +0300 +@@ -23,6 +23,7 @@ + tools on Microsoft Windows. The supported products and versions of + command line tools are listed below: + ++* Visual Studio 2019-14.3 + * Visual Studio 2019-14.2 + * Visual Studio 2017—14.1 + * Visual Studio 2015—14.0 +@@ -1137,7 +1138,7 @@ + } + else + { +- if [ MATCH "(14.3)" : $(version) ] ++ if [ MATCH "(14.[34])" : $(version) ] + { + if $(.debug-configuration) + { +@@ -1316,7 +1317,7 @@ + # version from the path. + # FIXME: We currently detect both Microsoft Visual Studio 9.0 and + # 9.0express as 9.0 here. +- if [ MATCH "(MSVC\\\\14.3)" : $(command) ] ++ if [ MATCH "(MSVC\\\\14.[34])" : $(command) ] + { + version = 14.3 ; + } +--- ./boost/config/compiler/visualc.hpp 2023-08-09 00:02:55.000000000 +0300 ++++ ./boost/config/compiler/visualc.hpp 2023-08-09 00:02:55.000000000 +0300 +@@ -365,7 +365,7 @@ + # define BOOST_COMPILER_VERSION 14.1 + # elif _MSC_VER < 1930 + # define BOOST_COMPILER_VERSION 14.2 +-# elif _MSC_VER < 1940 ++# elif _MSC_VER < 1950 + # define BOOST_COMPILER_VERSION 14.3 + # else + # define BOOST_COMPILER_VERSION _MSC_VER +@@ -378,8 +378,8 @@ + #include + + // +-// last known and checked version is 19.3x (VS2022): +-#if (_MSC_VER >= 1940) ++// last known and checked version is 19.4x (VS2022 17.10): ++#if (_MSC_VER >= 1950) + # if defined(BOOST_ASSERT_CONFIG) + # error "Boost.Config is older than your current compiler version." + # elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE) diff --git a/docker/boost-msvc-2022/src/app/start.ps1 b/docker/boost-msvc-2022/src/app/start.ps1 index c77b8760..41965e29 100644 --- a/docker/boost-msvc-2022/src/app/start.ps1 +++ b/docker/boost-msvc-2022/src/app/start.ps1 @@ -44,6 +44,15 @@ if (Test-Path -Path "${env:BOOST_ROOT_DIR}") { $env:B2_BIN = "${env:BOOST_ROOT_DIR}\b2.exe" $env:B2_TOOLSET = "msvc-14.3" +# Prepare patch for Boost +if (-not (Test-Path env:BOOST_PATCH_FILE)) { + $env:BOOST_PATCH_FILE = "${PSScriptRoot}\patches\boost-${env:BOOST_VERSION}.patch" +} +if (-not (Test-Path -Path "${env:BOOST_PATCH_FILE}")) { + Write-Warning "Patch for chosen version of Boost (${env:BOOST_VERSION}) was not found at ${env:BOOST_PATCH_FILE}" + $env:BOOST_PATCH_FILE = "" +} + # Build Boost.Build $env:MSVC_CMD_BOOTSTRAP = "vcvars64.bat" $env:BOOST_BOOTSTRAP = "${env:BOOST_ROOT_DIR}\bootstrap.bat" diff --git a/docker/icu-mingw/scripts/build.ps1 b/docker/icu-mingw/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/icu-mingw/scripts/build.ps1 +++ b/docker/icu-mingw/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/icu-mingw/src/Dockerfile b/docker/icu-mingw/src/Dockerfile index a0900325..6731057e 100644 --- a/docker/icu-mingw/src/Dockerfile +++ b/docker/icu-mingw/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/mingw:2.15.0 +FROM abrarov/mingw:2.16.0 ENV ICU_VERSION="64.2" \ ICU_URL="http://download.icu-project.org/files/icu4c" \ diff --git a/docker/icu-msvc-2017/scripts/build.ps1 b/docker/icu-msvc-2017/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/icu-msvc-2017/scripts/build.ps1 +++ b/docker/icu-msvc-2017/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/icu-msvc-2017/src/Dockerfile b/docker/icu-msvc-2017/src/Dockerfile index 704ba248..50fa636b 100644 --- a/docker/icu-msvc-2017/src/Dockerfile +++ b/docker/icu-msvc-2017/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2017:2.15.0 +FROM abrarov/msvc-2017:2.16.0 ENV ICU_VERSION="64.2" \ ICU_URL="http://download.icu-project.org/files/icu4c" \ diff --git a/docker/icu-msvc-2019/scripts/build.ps1 b/docker/icu-msvc-2019/scripts/build.ps1 index 80e41d47..6cca248e 100644 --- a/docker/icu-msvc-2019/scripts/build.ps1 +++ b/docker/icu-msvc-2019/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/icu-msvc-2019/src/Dockerfile b/docker/icu-msvc-2019/src/Dockerfile index e4fa2685..588b5d58 100644 --- a/docker/icu-msvc-2019/src/Dockerfile +++ b/docker/icu-msvc-2019/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2019:2.15.0 +FROM abrarov/msvc-2019:2.16.0 ENV ICU_VERSION="64.2" \ ICU_URL="http://download.icu-project.org/files/icu4c" \ diff --git a/docker/mingw/scripts/build.ps1 b/docker/mingw/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/mingw/scripts/build.ps1 +++ b/docker/mingw/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/mingw/src/Dockerfile b/docker/mingw/src/Dockerfile index 91388a52..ca040659 100644 --- a/docker/mingw/src/Dockerfile +++ b/docker/mingw/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/windows-dev:2.15.0 +FROM abrarov/windows-dev:2.16.0 ENV MINGW_VERSION="8.1.0" \ MINGW_RT_FILE_SUFFIX="6" \ diff --git a/docker/msvc-2017/scripts/build.ps1 b/docker/msvc-2017/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/msvc-2017/scripts/build.ps1 +++ b/docker/msvc-2017/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/msvc-2017/src/Dockerfile b/docker/msvc-2017/src/Dockerfile index d55ac99f..3a392009 100644 --- a/docker/msvc-2017/src/Dockerfile +++ b/docker/msvc-2017/src/Dockerfile @@ -4,13 +4,13 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/windows-dev:2.15.0 +FROM abrarov/windows-dev:2.16.0 ENV MSVS_VERSION="15" \ MSVS_URL="https://aka.ms/vs" \ MSVS_DIST_NAME="vs_community.exe" \ VSWHERE_URL="https://github.com/Microsoft/vswhere/releases/download" \ - VSWHERE_VERSION="2.8.4" \ + VSWHERE_VERSION="3.1.7" \ VSWHERE_DIST_NAME="vswhere.exe" ADD ["app", "C:/app/"] diff --git a/docker/msvc-2019/scripts/build.ps1 b/docker/msvc-2019/scripts/build.ps1 index 80e41d47..6cca248e 100644 --- a/docker/msvc-2019/scripts/build.ps1 +++ b/docker/msvc-2019/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/msvc-2019/src/Dockerfile b/docker/msvc-2019/src/Dockerfile index 648876d9..b2726a97 100644 --- a/docker/msvc-2019/src/Dockerfile +++ b/docker/msvc-2019/src/Dockerfile @@ -4,13 +4,13 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/windows-dev:2.15.0 +FROM abrarov/windows-dev:2.16.0 ENV MSVS_VERSION="16" \ MSVS_URL="https://aka.ms/vs" \ MSVS_DIST_NAME="vs_community.exe" \ VSWHERE_URL="https://github.com/Microsoft/vswhere/releases/download" \ - VSWHERE_VERSION="2.8.4" \ + VSWHERE_VERSION="3.1.7" \ VSWHERE_DIST_NAME="vswhere.exe" ADD ["app", "C:/app/"] diff --git a/docker/msvc-2022/scripts/build.ps1 b/docker/msvc-2022/scripts/build.ps1 index 22dec60f..34c496c4 100644 --- a/docker/msvc-2022/scripts/build.ps1 +++ b/docker/msvc-2022/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/msvc-2022/src/Dockerfile b/docker/msvc-2022/src/Dockerfile index 11a9efb3..552d0e78 100644 --- a/docker/msvc-2022/src/Dockerfile +++ b/docker/msvc-2022/src/Dockerfile @@ -4,13 +4,13 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/windows-dev:2.15.0 +FROM abrarov/windows-dev:2.16.0 ENV MSVS_VERSION="17" \ MSVS_URL="https://aka.ms/vs" \ MSVS_DIST_NAME="vs_buildtools.exe" \ VSWHERE_URL="https://github.com/Microsoft/vswhere/releases/download" \ - VSWHERE_VERSION="2.8.4" \ + VSWHERE_VERSION="3.1.7" \ VSWHERE_DIST_NAME="vswhere.exe" ADD ["app", "C:/app/"] diff --git a/docker/openssl-mingw/scripts/build.ps1 b/docker/openssl-mingw/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/openssl-mingw/scripts/build.ps1 +++ b/docker/openssl-mingw/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/openssl-mingw/src/Dockerfile b/docker/openssl-mingw/src/Dockerfile index 2e2606f8..c6e7d0e5 100644 --- a/docker/openssl-mingw/src/Dockerfile +++ b/docker/openssl-mingw/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/mingw:2.15.0 +FROM abrarov/mingw:2.16.0 ENV OPENSSL_VERSION="1.0.2q" \ OPENSSL_URL="https://www.openssl.org/source" \ diff --git a/docker/openssl-msvc-2017/scripts/build.ps1 b/docker/openssl-msvc-2017/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/openssl-msvc-2017/scripts/build.ps1 +++ b/docker/openssl-msvc-2017/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/openssl-msvc-2017/src/Dockerfile b/docker/openssl-msvc-2017/src/Dockerfile index 91a86fdc..90203a29 100644 --- a/docker/openssl-msvc-2017/src/Dockerfile +++ b/docker/openssl-msvc-2017/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2017:2.15.0 +FROM abrarov/msvc-2017:2.16.0 ENV OPENSSL_VERSION="1.0.2q" \ OPENSSL_URL="https://www.openssl.org/source" \ diff --git a/docker/openssl-msvc-2019/scripts/build.ps1 b/docker/openssl-msvc-2019/scripts/build.ps1 index 80e41d47..6cca248e 100644 --- a/docker/openssl-msvc-2019/scripts/build.ps1 +++ b/docker/openssl-msvc-2019/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/openssl-msvc-2019/src/Dockerfile b/docker/openssl-msvc-2019/src/Dockerfile index 078481bb..7232c3ce 100644 --- a/docker/openssl-msvc-2019/src/Dockerfile +++ b/docker/openssl-msvc-2019/src/Dockerfile @@ -4,7 +4,7 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM abrarov/msvc-2019:2.15.0 +FROM abrarov/msvc-2019:2.16.0 ENV OPENSSL_VERSION="1.0.2q" \ OPENSSL_URL="https://www.openssl.org/source" \ diff --git a/docker/windows-dev/scripts/build.ps1 b/docker/windows-dev/scripts/build.ps1 index 7c818857..e3779efc 100644 --- a/docker/windows-dev/scripts/build.ps1 +++ b/docker/windows-dev/scripts/build.ps1 @@ -10,7 +10,7 @@ $ErrorActionPreference = "Stop" $project_dir = (Get-Item "${PSScriptRoot}").Parent.FullName $image_repository = "${env:DOCKER_USER}/$(Split-Path "${project_dir}" -Leaf)" #TODO: find way to deal with tags and versions -$image_version = "2.15.0" +$image_version = "2.16.0" $image_revision = "$(git -C "${project_dir}" rev-parse --verify HEAD)" Write-Host "Building ${image_repository}:${image_version} image with ${image_revision} revision" diff --git a/docker/windows-dev/scripts/test.ps1 b/docker/windows-dev/scripts/test.ps1 index 8a58954d..2974f4da 100644 --- a/docker/windows-dev/scripts/test.ps1 +++ b/docker/windows-dev/scripts/test.ps1 @@ -52,6 +52,24 @@ if (${LastExitCode} -ne 0) { throw "Failed to get version of MSYS2 GNU patch" } +Write-Host "Running MSYS2 GNU make in container created from ${image_repository}:latest image" +docker run --rm "${image_repository}:latest" "C:\msys64\usr\bin\make" --version +if (${LastExitCode} -ne 0) { + throw "Failed to get version of MSYS2 GNU make" +} + +Write-Host "Running MSYS2 bison in container created from ${image_repository}:latest image" +docker run --rm "${image_repository}:latest" "C:\msys64\usr\bin\bison" --version +if (${LastExitCode} -ne 0) { + throw "Failed to get version of MSYS2 bison" +} + +Write-Host "Running MSYS2 diff in container created from ${image_repository}:latest image" +docker run --rm "${image_repository}:latest" "C:\msys64\usr\bin\diff" --version +if (${LastExitCode} -ne 0) { + throw "Failed to get version of MSYS2 diff" +} + Write-Host "Running Strawberry Perl in container created from ${image_repository}:latest image" docker run --rm "${image_repository}:latest" "C:\Perl\perl\bin\perl.exe" --version if (${LastExitCode} -ne 0) { diff --git a/docker/windows-dev/src/Dockerfile b/docker/windows-dev/src/Dockerfile index b0ac2ca8..c18ec6a8 100644 --- a/docker/windows-dev/src/Dockerfile +++ b/docker/windows-dev/src/Dockerfile @@ -4,31 +4,31 @@ # Distributed under the MIT License (see accompanying LICENSE) # -FROM mcr.microsoft.com/windows/servercore:ltsc2019 +FROM mcr.microsoft.com/windows/servercore:ltsc2022 ENV DOWNLOAD_DIR="C:\download" \ BUILD_DIR="C:\build" \ TARGET_DIR="C:\target" \ - SEVEN_ZIP_VERSION="22.01" \ + SEVEN_ZIP_VERSION="24.08" \ SEVEN_ZIP_DOWNLOAD_URL="http://www.7-zip.org/a" \ SEVEN_ZIP_HOME="C:\Program Files\7-Zip" \ - GIT_VERSION="2.37.2.2" \ - CMAKE_VERSION="3.24.1" \ + GIT_VERSION="2.47.0.20241025" \ + CMAKE_VERSION="3.30.5" \ CMAKE_URL="https://github.com/Kitware/CMake/releases/download" \ CMAKE_HOME="C:\cmake" \ MSYS2_URL="http://repo.msys2.org/distrib" \ MSYS2_TARGET="x86_64" \ - MSYS2_VERSION="20220603" \ + MSYS2_VERSION="20240727" \ MSYS_HOME="C:\msys64" \ - STRAWBERRY_PERL_VERSION="5.32.1.1" \ - STRAWBERRY_PERL_URL="https://strawberryperl.com/download" \ + STRAWBERRY_PERL_VERSION="5.40.0.1" \ + STRAWBERRY_PERL_URL="https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54001_64bit_UCRT/" \ STRAWBERRY_PERL_HOME="C:\Perl" \ PYTHON_URL="https://www.python.org/ftp/python" \ - PYTHON3_VERSION="3.10.6" \ + PYTHON3_VERSION="3.13.0" \ PYTHON3_HOME="C:\Python3" \ PYTHON2_VERSION="2.7.18" \ PYTHON2_HOME="C:\Python2" \ - NINJA_VERSION="1.11.0" \ + NINJA_VERSION="1.12.1" \ NINJA_URL="https://github.com/ninja-build/ninja/releases/download" \ NINJA_HOME="C:\ninja" diff --git a/docker/windows-dev/src/app/install.ps1 b/docker/windows-dev/src/app/install.ps1 index 4efc6ea1..b238e068 100644 --- a/docker/windows-dev/src/app/install.ps1 +++ b/docker/windows-dev/src/app/install.ps1 @@ -79,7 +79,7 @@ Write-Host "MSYS2 ${env:MSYS2_VERSION} installed into ${env:MSYS_HOME}" # Download and install Strawberry Perl $strawberry_perl_dist_name = "strawberry-perl-${env:STRAWBERRY_PERL_VERSION}-64bit.msi" -$strawberry_perl_url = "${env:STRAWBERRY_PERL_URL}/${env:STRAWBERRY_PERL_VERSION}/${strawberry_perl_dist_name}" +$strawberry_perl_url = "${env:STRAWBERRY_PERL_URL}/${strawberry_perl_dist_name}" $strawberry_perl_dist = "${env:TMP}\${strawberry_perl_dist_name}" Write-Host "Downloading Strawberry Perl from ${strawberry_perl_url} into ${strawberry_perl_dist}" (New-Object System.Net.WebClient).DownloadFile("${strawberry_perl_url}", "${strawberry_perl_dist}") @@ -134,5 +134,11 @@ Write-Host "Extracting Ninja from ${ninja_dist} into ${env:NINJA_HOME} directory Write-Host "Ninja ${env:NINJA_VERSION} installed into ${env:NINJA_HOME}" # Cleanup -Write-Host "Removing all files and directories from ${env:TMP}" -Remove-Item -Path "${env:TMP}\*" -Recurse -Force +$chocolatey_subdir = "chocolatey" +Write-Host "Removing all files and directories from ${env:TMP} except ${chocolatey_subdir} subdirectory" +Get-ChildItem -Path "${env:TMP}" -Recurse | + Select -ExpandProperty FullName | + Where {$_ -notlike "${env:TMP}\${chocolatey_subdir}\*"} | + Where {$_ -notlike "${env:TMP}\${chocolatey_subdir}"} | + Sort length -Descending | + Remove-Item -Recurse -Force