From dfdf25773ab8133b5096c99ac7ee3cd46ab9cd7b Mon Sep 17 00:00:00 2001 From: Hanjin Bae Date: Tue, 9 Jun 2026 22:26:27 +0900 Subject: [PATCH] fix: use static vcpkg triplet + graphite2 overlay on Linux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two issues combined: 1. vcpkg x64-linux (dynamic) → linker finds system ICU 74 .so instead of vcpkg ICU 78 .so, causing undefined _78 symbols 2. graphite2 hidden visibility → rust-lld errors on gr_* symbols Fix: x64-linux-static triplet (static .a files, no .so confusion) + graphite2 overlay port with -fvisibility=default + GRAPHITE2_EXPORTING. VCPKGRS_TRIPLET=x64-linux-static tells tectonic's dep_support to find packages in the correct vcpkg path. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/build-desktop.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index 611fa3f..b8ddc76 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -458,12 +458,20 @@ jobs: $HOME/vcpkg/bootstrap-vcpkg.sh echo "VCPKG_ROOT=$HOME/vcpkg" >> $GITHUB_ENV + # Create custom static triplet for Linux + cat > $HOME/vcpkg/triplets/community/x64-linux-static.cmake <<'TRIPLET' + set(VCPKG_TARGET_ARCHITECTURE x64) + set(VCPKG_CRT_LINKAGE dynamic) + set(VCPKG_LIBRARY_LINKAGE static) + set(VCPKG_CMAKE_SYSTEM_NAME Linux) + TRIPLET + - name: Restore vcpkg cache id: vcpkg-cache uses: actions/cache/restore@v4 with: path: ~/vcpkg/installed - key: vcpkg-linux-x64-overlay-v2 + key: vcpkg-linux-static-overlay-v1 - name: Install Linux dependencies (vcpkg) if: steps.vcpkg-cache.outputs.cache-hit != 'true' @@ -472,17 +480,17 @@ jobs: run: | $HOME/vcpkg/vcpkg install \ --overlay-ports=$GITHUB_WORKSPACE/.github/vcpkg-overlays \ - "harfbuzz[graphite2]:x64-linux" \ - fontconfig:x64-linux \ - freetype:x64-linux \ - icu:x64-linux + "harfbuzz[graphite2]:x64-linux-static" \ + fontconfig:x64-linux-static \ + freetype:x64-linux-static \ + icu:x64-linux-static - name: Save vcpkg cache if: steps.vcpkg-cache.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: path: ~/vcpkg/installed - key: vcpkg-linux-x64-overlay-v2 + key: vcpkg-linux-static-overlay-v1 - uses: dtolnay/rust-toolchain@stable with: @@ -506,6 +514,7 @@ jobs: ZOTERO_CONSUMER_KEY: ${{ secrets.ZOTERO_CONSUMER_KEY }} ZOTERO_CONSUMER_SECRET: ${{ secrets.ZOTERO_CONSUMER_SECRET }} TECTONIC_DEP_BACKEND: vcpkg + VCPKGRS_TRIPLET: x64-linux-static CXXFLAGS: "-std=c++17" CFLAGS: "" run: pnpm --filter @claude-prism/desktop tauri build --target x86_64-unknown-linux-gnu