From e0877702382432b1a0e94d35a98668e39c3f01de Mon Sep 17 00:00:00 2001 From: Mike Mueller Date: Tue, 5 May 2026 14:11:35 +0200 Subject: [PATCH] =?UTF-8?q?vcpkg(mfx-dispatch):=20rewrite=20AC=5FPROG=5FLI?= =?UTF-8?q?BTOOL=20=E2=86=92=20LT=5FINIT=20for=20autotools=201.17+?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci/runners/linux/provision.sh | 6 ++++++ res/vcpkg/mfx-dispatch/portfile.cmake | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ci/runners/linux/provision.sh b/ci/runners/linux/provision.sh index 606c90b70..2889b97d9 100755 --- a/ci/runners/linux/provision.sh +++ b/ci/runners/linux/provision.sh @@ -79,6 +79,7 @@ export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get install -y --no-install-recommends \ build-essential clang gcc g++ cmake ninja-build pkg-config nasm yasm \ + autoconf automake libtool \ libgtk-3-dev libayatana-appindicator3-dev \ libasound2-dev libpulse-dev libpam0g-dev libssl-dev \ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ @@ -173,6 +174,11 @@ chown -R "$SERVICE_USER:$SERVICE_USER" "$FLUTTER_DIR" chown -R "$SERVICE_USER:$SERVICE_USER" "$VCPKG_DIR" # LLVM: read+execute is enough; we never write here at build time. chown -R "$SERVICE_USER:$SERVICE_USER" "$LLVM_DIR" +# /opt/cargo-tools: workflow installs cargo-expand and flutter_rust_bridge_codegen +# here via `cargo install --root`. Pre-create with the right owner so the first +# job doesn't try to mkdir under root-owned /opt. +mkdir -p /opt/cargo-tools +chown -R "$SERVICE_USER:$SERVICE_USER" /opt/cargo-tools # git "dubious ownership": same fix as Windows. Trust system-wide. git config --system --add safe.directory '*' || true diff --git a/res/vcpkg/mfx-dispatch/portfile.cmake b/res/vcpkg/mfx-dispatch/portfile.cmake index cb2ad7e7c..2b2fc6435 100644 --- a/res/vcpkg/mfx-dispatch/portfile.cmake +++ b/res/vcpkg/mfx-dispatch/portfile.cmake @@ -18,6 +18,20 @@ vcpkg_from_github( ${MISSING_CSTDINT_IMPORT_PATCH} ) +# autotools 1.17+ (Debian 13, Ubuntu 24.04+) doesn't trace the deprecated +# `AC_PROG_LIBTOOL` for libtoolize, so the libtool m4 macros never get pulled +# in and automake fails with "Libtool library used but 'LIBTOOL' is undefined". +# Swap to the modern `LT_INIT` macro at extract time so this works on any +# distro. No-op on hosts that already have AC_PROG_LIBTOOL working. +if(EXISTS "${SOURCE_PATH}/configure.ac") + file(READ "${SOURCE_PATH}/configure.ac" _mfx_configure_ac) + string(REPLACE "AC_PROG_LIBTOOL" "LT_INIT" _mfx_configure_ac_patched "${_mfx_configure_ac}") + if(NOT _mfx_configure_ac STREQUAL _mfx_configure_ac_patched) + file(WRITE "${SOURCE_PATH}/configure.ac" "${_mfx_configure_ac_patched}") + message(STATUS "mfx-dispatch: replaced AC_PROG_LIBTOOL with LT_INIT for autotools >= 1.17") + endif() +endif() + if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}"