Skip to content

[icu] force absolute path on install script.#52618

Draft
groutoutlook wants to merge 4 commits into
microsoft:masterfrom
groutoutlook:golk/icu-relative-path
Draft

[icu] force absolute path on install script.#52618
groutoutlook wants to merge 4 commits into
microsoft:masterfrom
groutoutlook:golk/icu-relative-path

Conversation

@groutoutlook

@groutoutlook groutoutlook commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Fixes #51839

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
  • Any fixed CI baseline and CI feature baseline entries are removed from that file, or no entries needed to be changed.
  • All patch files in the port are applied and succeed.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

Additional context

User environment:

> fastfetch -l none -s "OS:Kernel:Shell:WM:Terminal:CPU:Memory:Swap"
OS: Windows 11 Pro Insider Preview (26H2) x86_64
Kernel: WIN32_NT 10.0.26300.8758
Shell: PowerShell 7.7.0
WM: Desktop Window Manager 10.0.26100.8687
Terminal: Windows Terminal Preview 1.25.1322.0
CPU: 12th Gen Intel(R) Core(TM) i7-12850HX (16+8) @ 4.80 GHz
Memory: 17.10 GiB / 31.69 GiB (54%)
Swap: 174.04 MiB / 13.50 GiB (1%)

Build output

  • Test on x64-windows and x64-windows-static only.
> vcpkg install icu:x64-windows-static --recurse --binarysource=clear
Computing installation plan...
The following packages will be built and installed:
    icu:x64-windows-static@78.3#2
Detecting compiler hash for triplet x64-windows-static...
Compiler found: C:/Program Files/Microsoft Visual Studio/18/Insiders/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64/cl.exe
Installing 1/1 icu:x64-windows-static@78.3#2...
icu:x64-windows-static@78.3#2 package ABI: 87adb63f818d567cd56cc5c4fb25517479b59b8cdff71b7685de173e10ee17a6
Building icu:x64-windows-static@78.3#2...
-- Using cached icu4c-78.3-sources.tgz
-- Cleaning sources at C:/Users/<username>/scoop/apps/vcpkg/current/buildtrees/icu/src/icu4c-78-34dc699e15.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Users/<username>/scoop/apps/vcpkg/current/downloads/icu4c-78.3-sources.tgz
-- Applying patch disable-static-prefix.patch
-- Applying patch fix_bsd_and_solaris.patch
-- Applying patch fix_parallel_build_on_windows.patch
-- Applying patch fix-python-path-with-spaces.patch
-- Applying patch mh-darwin.patch
-- Applying patch mh-mingw.patch
-- Applying patch mh-msys-msvc.patch
-- Applying patch subdirs.patch
-- Applying patch vcpkg-cross-data.patch
-- Using source at C:/Users/<username>/scoop/apps/vcpkg/current/buildtrees/icu/src/icu4c-78-34dc699e15.clean
-- Getting CMake variables for x64-windows-static
-- Loading CMake variables from C:/Users/<username>/scoop/apps/vcpkg/current/buildtrees/icu/cmake-get-vars_C_CXX-x64-windows-static.cmake.log
-- Using cached msys2-autoconf-wrapper-20250528-1-any.pkg.tar.zst
-- Using cached msys2-automake-wrapper-20250528-1-any.pkg.tar.zst
-- Using cached msys2-autoconf-archive-2024.10.16-1-any.pkg.tar.zst
-- Using cached msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-libtool-2.5.4-4-x86_64.pkg.tar.zst
-- Using cached msys2-make-4.4.1-2-x86_64.pkg.tar.zst
-- Using cached msys2-which-2.23-4-x86_64.pkg.tar.zst
-- Using cached msys2-bash-5.3.009-1-x86_64.pkg.tar.zst
-- Using cached msys2-coreutils-8.32-5-x86_64.pkg.tar.zst
-- Using cached msys2-file-5.46-2-x86_64.pkg.tar.zst
-- Using cached msys2-gawk-5.3.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-grep-1~3.0-7-x86_64.pkg.tar.zst
-- Using cached msys2-gzip-1.14-1-x86_64.pkg.tar.zst
-- Using cached msys2-diffutils-3.12-1-x86_64.pkg.tar.zst
-- Using cached msys2-pkgconf-2.5.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-sed-4.9-1-x86_64.pkg.tar.zst
-- Using cached msys2-msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst
-- Using cached msys2-autoconf2.72-2.72-3-any.pkg.tar.zst
-- Using cached msys2-automake1.16-1.16.5-1-any.pkg.tar.zst
-- Using cached msys2-automake1.17-1.17-1-any.pkg.tar.zst
-- Using cached msys2-automake1.18-1.18.1-1-any.pkg.tar.zst
-- Using cached msys2-libiconv-1.18-1-x86_64.pkg.tar.zst
-- Using cached msys2-libintl-0.22.5-1-x86_64.pkg.tar.zst
-- Using cached msys2-zlib-1.3.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-findutils-4.10.0-2-x86_64.pkg.tar.zst
-- Using cached msys2-tar-1.35-3-x86_64.pkg.tar.zst
-- Using cached msys2-gmp-6.3.0-2-x86_64.pkg.tar.zst
-- Using cached msys2-gcc-libs-15.2.0-1-x86_64.pkg.tar.zst
-- Using cached msys2-libbz2-1.0.8-4-x86_64.pkg.tar.zst
-- Using cached msys2-liblzma-5.8.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-libzstd-1.5.7-1-x86_64.pkg.tar.zst
-- Using cached msys2-libreadline-8.3.003-1-x86_64.pkg.tar.zst
-- Using cached msys2-mpfr-4.2.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-libpcre-8.45-5-x86_64.pkg.tar.zst
-- Using cached msys2-m4-1.4.19-2-x86_64.pkg.tar.zst
-- Using cached msys2-perl-5.40.3-1-x86_64.pkg.tar.zst
-- Using cached msys2-ncurses-6.5.20240831-2-x86_64.pkg.tar.zst
-- Using cached msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst
-- Using msys root at C:/Users/<username>/scoop/apps/vcpkg/current/downloads/tools/msys2/19f68f647e350a23
-- Configuring x64-windows-static-dbg
-- Configuring x64-windows-static-rel
-- Using cached msys2-autoconf-wrapper-20250528-1-any.pkg.tar.zst
-- Using cached msys2-automake-wrapper-20250528-1-any.pkg.tar.zst
-- Using cached msys2-autoconf-archive-2024.10.16-1-any.pkg.tar.zst
-- Using cached msys2-binutils-2.45.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-libtool-2.5.4-4-x86_64.pkg.tar.zst
-- Using cached msys2-make-4.4.1-2-x86_64.pkg.tar.zst
-- Using cached msys2-which-2.23-4-x86_64.pkg.tar.zst
-- Using cached msys2-bash-5.3.009-1-x86_64.pkg.tar.zst
-- Using cached msys2-coreutils-8.32-5-x86_64.pkg.tar.zst
-- Using cached msys2-file-5.46-2-x86_64.pkg.tar.zst
-- Using cached msys2-gawk-5.3.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-grep-1~3.0-7-x86_64.pkg.tar.zst
-- Using cached msys2-gzip-1.14-1-x86_64.pkg.tar.zst
-- Using cached msys2-diffutils-3.12-1-x86_64.pkg.tar.zst
-- Using cached msys2-pkgconf-2.5.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-sed-4.9-1-x86_64.pkg.tar.zst
-- Using cached msys2-msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst
-- Using cached msys2-autoconf2.72-2.72-3-any.pkg.tar.zst
-- Using cached msys2-automake1.16-1.16.5-1-any.pkg.tar.zst
-- Using cached msys2-automake1.17-1.17-1-any.pkg.tar.zst
-- Using cached msys2-automake1.18-1.18.1-1-any.pkg.tar.zst
-- Using cached msys2-libiconv-1.18-1-x86_64.pkg.tar.zst
-- Using cached msys2-libintl-0.22.5-1-x86_64.pkg.tar.zst
-- Using cached msys2-zlib-1.3.1-1-x86_64.pkg.tar.zst
-- Using cached msys2-findutils-4.10.0-2-x86_64.pkg.tar.zst
-- Using cached msys2-tar-1.35-3-x86_64.pkg.tar.zst
-- Using cached msys2-gmp-6.3.0-2-x86_64.pkg.tar.zst
-- Using cached msys2-gcc-libs-15.2.0-1-x86_64.pkg.tar.zst
-- Using cached msys2-libbz2-1.0.8-4-x86_64.pkg.tar.zst
-- Using cached msys2-liblzma-5.8.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-libzstd-1.5.7-1-x86_64.pkg.tar.zst
-- Using cached msys2-libreadline-8.3.003-1-x86_64.pkg.tar.zst
-- Using cached msys2-mpfr-4.2.2-1-x86_64.pkg.tar.zst
-- Using cached msys2-libpcre-8.45-5-x86_64.pkg.tar.zst
-- Using cached msys2-m4-1.4.19-2-x86_64.pkg.tar.zst
-- Using cached msys2-perl-5.40.3-1-x86_64.pkg.tar.zst
-- Using cached msys2-ncurses-6.5.20240831-2-x86_64.pkg.tar.zst
-- Using cached msys2-libxcrypt-4.5.2-1-x86_64.pkg.tar.zst
-- Using msys root at C:/Users/<username>/scoop/apps/vcpkg/current/downloads/tools/msys2/19f68f647e350a23
-- Building/Installing x64-windows-static-dbg
-- Making target 'all' for x64-windows-static-dbg
-- Making target 'install' for x64-windows-static-dbg
-- Building/Installing x64-windows-static-rel
-- Making target 'all' for x64-windows-static-rel
-- Making target 'install' for x64-windows-static-rel
-- Installing: C:/Users/<username>/scoop/apps/vcpkg/current/packages/icu_x64-windows-static/tools/icu/config/icucross.inc
-- Installing: C:/Users/<username>/scoop/apps/vcpkg/current/packages/icu_x64-windows-static/tools/icu/config/icucross.mk
-- Fixing pkgconfig file: C:/Users/<username>/scoop/apps/vcpkg/current/packages/icu_x64-windows-static/lib/pkgconfig/icu-uc.pc
-- Fixing pkgconfig file: C:/Users/<username>/scoop/apps/vcpkg/current/packages/icu_x64-windows-static/debug/lib/pkgconfig/icu-uc.pc
-- Installing: C:/Users/<username>/scoop/apps/vcpkg/current/packages/icu_x64-windows-static/share/icu/copyright
-- Performing post-build validation
Elapsed time to handle icu:x64-windows-static: 7.6 min
Total install time: 7.6 min
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Packages installed in this vcpkg installation declare the following licenses:
ICU
icu provides pkg-config modules:

  # International Components for Unicode: Common and Data libraries
  icu-uc

All requested installations completed successfully in: 7.6 min
@groutoutlook groutoutlook changed the title force absolute path on install script. Jun 27, 2026
@groutoutlook groutoutlook marked this pull request as draft June 27, 2026 08:02
@groutoutlook

Copy link
Copy Markdown
Contributor Author

osx failed with this exact symptom in here #34835 (comment)

@BillyONeal

Copy link
Copy Markdown
Member

osx looks like an infrastructure issue but not restarting this one because there are other failures.

Comment thread ports/icu/portfile.cmake Outdated
vcpkg-cross-data.patch
)

vcpkg_replace_string("${SOURCE_PATH}/source/icudefs.mk.in" "INSTALL = @INSTALL@" "INSTALL = \$(top_srcdir)/install-sh -c")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I would prefer this change in the form of a patch.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

it's currently an unprecedented amount of broken in CI... so I think I will only try to apply that on windows port.

can I apply a patch like that?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Patches should be applied regardless of platform so that everybody can update the port on linux or osx without nasty surprises in CI.

@dg0yt

dg0yt commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Hm,
sqlite3:x64-linux failed in pkgconfig fixup with

 -- Fixing pkgconfig file: /mnt/vcpkg-ci/p/sqlite3_x64-linux/lib/pkgconfig/sqlite3.pc
CMake Error at scripts/cmake/vcpkg_fixup_pkgconfig.cmake:134 (message):
  /bin/pkg-config --exists sqlite3 failed with error code: 1

      ENV{PKG_CONFIG_PATH}: "/mnt/vcpkg-ci/p/sqlite3_x64-linux/lib/pkgconfig:/mnt/vcpkg-ci/p/sqlite3_x64-linux/share/pkgconfig:/mnt/vcpkg-ci/installed/x64-linux/lib/pkgconfig:/mnt/vcpkg-ci/installed/x64-linux/share/pkgconfig"
      output: Package icu-i18n was not found in the pkg-config search path.

  Perhaps you should add the directory containing `icu-i18n.pc'

  to the PKG_CONFIG_PATH environment variable

  Package 'icu-i18n', required by 'sqlite3', not found

and indeed the filelist only has

icu:x64-linux:/lib/pkgconfig/icu-uc.pc

but past CI filelists have

icu:x64-linux:/lib/pkgconfig/icu-i18n.pc
icu:x64-linux:/lib/pkgconfig/icu-io.pc
icu:x64-linux:/lib/pkgconfig/icu-uc.pc
@groutoutlook

groutoutlook commented Jun 30, 2026

Copy link
Copy Markdown
Contributor Author

move to patch changes instead.

EDIT: that took a while since I need to test local installation again. That still works:

> vcpkg install icu:x64-windows-static --recurse --binarysource=clear

Computing installation plan...
The following packages will be built and installed:
  * icu[core,tools]:x64-windows@78.3#2
    icu:x64-windows-static@78.3#2
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-windows...
# Many other lines...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants