Skip to content

Add swig to Linux docker container, update and cleanup#45084

Merged
vicroms merged 7 commits intomicrosoft:masterfrom
dg0yt:linux-ci
Apr 21, 2025
Merged

Add swig to Linux docker container, update and cleanup#45084
vicroms merged 7 commits intomicrosoft:masterfrom
dg0yt:linux-ci

Conversation

@dg0yt
Copy link
Contributor

@dg0yt dg0yt commented Apr 17, 2025

  • Cleans up the list of packages to install at the top a bit, adding comments.
  • Adds swig
  • Adds explicit switches to build only one of the docker images.
  • Changes cache invalidation mechanism when building the images to explicitly make the SHAs differ rather than trying to prune. (This fixes the image not actually being pruned if other tags still exist, and allows vcpkg devs to have previous versions available and still run the update script)
  • Log out of the ACR we are using, not docker hub.

@LilyWangLL LilyWangLL self-assigned this Apr 17, 2025
@LilyWangLL LilyWangLL added the category:tool-update The issue is with build tool or build script, which requires update or should be executed correctly label Apr 17, 2025
Copy link
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM assuming CI comes back OK :)

@LilyWangLL LilyWangLL added the info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. label Apr 18, 2025
@BillyONeal
Copy link
Member

The one linux failure is:

autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: running: autopoint --force
Can't exec "autopoint": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 293.
autoreconf: error: autopoint failed with exit status: 2

I believe this is caused by the removal of the package autopoint, which was previously installed due to being a transitive dependency of dh-autoreconf.

I think the right fix is to add gettext as a dependency of gdbm? gettext:x64-linux:/tools/gettext/bin/autopoint

@dg0yt
Copy link
Contributor Author

dg0yt commented Apr 18, 2025

I think the right fix is to add gettext as a dependency of gdbm? gettext:x64-linux:/tools/gettext/bin/autopoint

This is one option. But there might be traps.

  • It should be a host dependency, but the PATH isn't set accordingly.
  • The nls feature isn't tested (without the new feature testing) for many ports. With nls disabled, we often override AUTOPOINT.

Maybe adding back the autopoint Ubuntu package to the image would be more robust for now.

@BillyONeal
Copy link
Member

gdbm is a leaf so I don't think we need a world rebuild of it:

PS C:\Dev\vcpkg> docker run --rm -it vcpkgandroidwus.azurecr.io/vcpkg-linux:2025-04-21
root@e62a3d26be18:/# git clone https://github.com/microsoft/vcpkg
Cloning into 'vcpkg'...
remote: Enumerating objects: 272512, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 272512 (delta 20), reused 10 (delta 10), pack-reused 272484 (from 2)
Receiving objects: 100% (272512/272512), 84.67 MiB | 41.44 MiB/s, done.
Resolving deltas: 100% (181027/181027), done.
root@e62a3d26be18:/# cd vcpkg
root@e62a3d26be18:/vcpkg# ./bootstrap-vcpkg.sh 
Downloading vcpkg-glibc...
vcpkg package management program version 2025-04-16-f9b6c6917b23c1ccf16c1a9f015ebabf8f615045

See LICENSE.txt for license information.
Telemetry
---------
vcpkg collects usage data in order to help us improve your experience.
The data collected by Microsoft is anonymous.
You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics,
passing --disable-metrics to vcpkg on the command line,
or by setting the VCPKG_DISABLE_METRICS environment variable.

Read more about vcpkg telemetry at docs/about/privacy.md
root@e62a3d26be18:/vcpkg# ./vcpkg install gdbm
Computing installation plan...
A suitable version of cmake was not found (required v3.30.1).
Downloading https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-linux-x86_64.tar.gz -> cmake-3.30.1-linux-x86_64.tar.gz
Successfully downloaded cmake-3.30.1-linux-x86_64.tar.gz
Extracting cmake...
The following packages will be built and installed:
    gdbm:x64-linux@1.24
  * vcpkg-cmake:x64-linux@2024-04-23
  * vcpkg-cmake-get-vars:x64-linux@2024-09-22
  * vcpkg-make:x64-linux@2025-04-10
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
Restored 0 package(s) from /root/.cache/vcpkg/archives in 13.3 us. Use --debug to see more details.
Installing 1/4 vcpkg-cmake:x64-linux@2024-04-23...
Building vcpkg-cmake:x64-linux@2024-04-23...
-- Installing: /vcpkg/packages/vcpkg-cmake_x64-linux/share/vcpkg-cmake/vcpkg_cmake_configure.cmake
-- Installing: /vcpkg/packages/vcpkg-cmake_x64-linux/share/vcpkg-cmake/vcpkg_cmake_build.cmake
-- Installing: /vcpkg/packages/vcpkg-cmake_x64-linux/share/vcpkg-cmake/vcpkg_cmake_install.cmake
-- Installing: /vcpkg/packages/vcpkg-cmake_x64-linux/share/vcpkg-cmake/vcpkg-port-config.cmake
-- Installing: /vcpkg/packages/vcpkg-cmake_x64-linux/share/vcpkg-cmake/copyright
-- Performing post-build validation
Starting submission of vcpkg-cmake:x64-linux@2024-04-23 to 1 binary cache(s) in the background
Elapsed time to handle vcpkg-cmake:x64-linux: 12.7 ms
vcpkg-cmake:x64-linux package ABI: e4edddf5f044dbe159a1d21ecaca79b4bd69195ac3341b7f2d15fb320b605954
Installing 2/4 vcpkg-cmake-get-vars:x64-linux@2024-09-22...
Building vcpkg-cmake-get-vars:x64-linux@2024-09-22...
-- Installing: /vcpkg/packages/vcpkg-cmake-get-vars_x64-linux/share/vcpkg-cmake-get-vars/vcpkg_cmake_get_vars.cmake
-- Installing: /vcpkg/packages/vcpkg-cmake-get-vars_x64-linux/share/vcpkg-cmake-get-vars/cmake_get_vars
-- Installing: /vcpkg/packages/vcpkg-cmake-get-vars_x64-linux/share/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt
-- Installing: /vcpkg/packages/vcpkg-cmake-get-vars_x64-linux/share/vcpkg-cmake-get-vars/vcpkg-port-config.cmake
-- Installing: /vcpkg/packages/vcpkg-cmake-get-vars_x64-linux/share/vcpkg-cmake-get-vars/copyright
-- Performing post-build validation
Starting submission of vcpkg-cmake-get-vars:x64-linux@2024-09-22 to 1 binary cache(s) in the background
Elapsed time to handle vcpkg-cmake-get-vars:x64-linux: 12.9 ms
vcpkg-cmake-get-vars:x64-linux package ABI: 0739de6a1467fbab7be30eb730e63a658219abac8f92513d651c9d62bae4368e
Completed submission of vcpkg-cmake:x64-linux@2024-04-23 to 1 binary cache(s) in 2.53 ms
Installing 3/4 vcpkg-make:x64-linux@2025-04-10...
Building vcpkg-make:x64-linux@2025-04-10...
Downloading automake-1.17.tar.gz, trying https://ftp.gnu.org/gnu/automake/automake-1.17.tar.gz
Successfully downloaded automake-1.17.tar.gz
-- Extracting source /vcpkg/downloads/automake-1.17.tar.gz
-- Using source at /vcpkg/buildtrees/vcpkg-make/src/automake-1-c362683103.clean
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/vcpkg_make_configure.cmake
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/vcpkg_make_install.cmake
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/vcpkg_make_common.cmake
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/vcpkg_make.cmake
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/vcpkg_scripts.cmake
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/vcpkg-port-config.cmake
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/wrappers/ar-lib
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/wrappers/compile
-- Up-to-date: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/wrappers
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/wrappers/cl_cpp_wrapper
-- Installing: /vcpkg/packages/vcpkg-make_x64-linux/share/vcpkg-make/wrappers/windres-rc
Downloading https://github.com/NixOS/patchelf/releases/download/0.14.5/patchelf-0.14.5-x86_64.tar.gz -> patchelf-0.14.5-x86_64.tar.gz
Successfully downloaded patchelf-0.14.5-x86_64.tar.gz
-- Performing post-build validation
Starting submission of vcpkg-make:x64-linux@2025-04-10 to 1 binary cache(s) in the background
Elapsed time to handle vcpkg-make:x64-linux: 2.4 s
vcpkg-make:x64-linux package ABI: 2fc1f893a2dfde12d1d2ac861a561eb836b8483758ae235d5c643029dd3db2d0
Completed submission of vcpkg-cmake-get-vars:x64-linux@2024-09-22 to 1 binary cache(s) in 2.86 ms
Installing 4/4 gdbm:x64-linux@1.24...
Building gdbm:x64-linux@1.24...
Downloading gdbm-1.24.tar.gz, trying https://ftp.gnu.org/gnu/gdbm/gdbm-1.24.tar.gz
Successfully downloaded gdbm-1.24.tar.gz
-- Extracting source /vcpkg/downloads/gdbm-1.24.tar.gz
-- Using source at /vcpkg/buildtrees/gdbm/src/gdbm-1-515c6e7639.clean
-- Getting CMake variables for x64-linux
-- Generating configure for x64-linux
-- Finished generating configure for x64-linux
-- Configuring x64-linux-dbg
-- Configuring x64-linux-rel
-- Building/Installing x64-linux-dbg
-- Making target 'all' for x64-linux-dbg
-- Making target 'install' for x64-linux-dbg
-- Building/Installing x64-linux-rel
-- Making target 'all' for x64-linux-rel
-- Making target 'install' for x64-linux-rel
-- Installing: /vcpkg/packages/gdbm_x64-linux/share/gdbm/copyright
-- Adjusted RPATH of '/vcpkg/packages/gdbm_x64-linux/tools/gdbm/bin/gdbm_dump' (From '' -> To '$ORIGIN:$ORIGIN/../../../lib')
-- Adjusted RPATH of '/vcpkg/packages/gdbm_x64-linux/tools/gdbm/bin/gdbm_load' (From '' -> To '$ORIGIN:$ORIGIN/../../../lib')
-- Adjusted RPATH of '/vcpkg/packages/gdbm_x64-linux/tools/gdbm/bin/gdbmtool' (From '' -> To '$ORIGIN:$ORIGIN/../../../lib')
-- Adjusted RPATH of '/vcpkg/packages/gdbm_x64-linux/tools/gdbm/debug/bin/gdbm_dump' (From '' -> To '$ORIGIN:$ORIGIN/../../../../debug/lib')
-- Adjusted RPATH of '/vcpkg/packages/gdbm_x64-linux/tools/gdbm/debug/bin/gdbm_load' (From '' -> To '$ORIGIN:$ORIGIN/../../../../debug/lib')
-- Adjusted RPATH of '/vcpkg/packages/gdbm_x64-linux/tools/gdbm/debug/bin/gdbmtool' (From '' -> To '$ORIGIN:$ORIGIN/../../../../debug/lib')
-- Performing post-build validation
Starting submission of gdbm:x64-linux@1.24 to 1 binary cache(s) in the background
Elapsed time to handle gdbm:x64-linux: 11 s
gdbm:x64-linux package ABI: 5b6c12e06781a46c7c26287639194f3742d2775fe1726da9692a3f5a17263ae6
Total install time: 14 s
Completed submission of vcpkg-make:x64-linux@2025-04-10 to 1 binary cache(s) in 4.85 ms
Waiting for 1 remaining binary cache submissions...
Completed submission of gdbm:x64-linux@1.24 to 1 binary cache(s) in 69.7 ms (1/1)
root@e62a3d26be18:/vcpkg#

@BillyONeal BillyONeal changed the title Update linux CI image Add swig to Linux docker container, update and cleanup Apr 21, 2025
@BillyONeal BillyONeal closed this Apr 21, 2025
@BillyONeal BillyONeal reopened this Apr 21, 2025
@BillyONeal
Copy link
Member

Closed and reopened to kick CLA bot

@BillyONeal
Copy link
Member

BillyONeal commented Apr 21, 2025

Sorry for the force push, still trying to kick CLA Bot and hoping removing the merge commits makes it happy. If that doesn't work I'm just going to wait for it.

@vicroms vicroms enabled auto-merge (squash) April 21, 2025 19:18
@vicroms vicroms merged commit 586daa8 into microsoft:master Apr 21, 2025
18 checks passed
@dg0yt dg0yt deleted the linux-ci branch April 22, 2025 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:tool-update The issue is with build tool or build script, which requires update or should be executed correctly info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants