From 1147f0678248ff39bd17484ff49209fd8aa29a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szab=C3=B3?= Date: Tue, 3 Mar 2026 20:54:59 +0100 Subject: [PATCH] Use system liblzma but bundled libunwind on Ubuntu D66446570 disabled using the system liblzma, libunwind and glog packages on Ubuntu due to them causing watchman's tests to hang when run in GitHub Actions, and D86604386 confirmed this still happens with Ubuntu Noble. The original investigation noted that Fedora 40 didn't exhibit this behavior. The main difference I see is that Fedora 40 packages libunwind 1.8.0 while Ubuntu Jammy packages 1.3.2 and Noble 1.6.2. Fedora also doesn't build its libunwind with liblzma support. However, the autotools build system in libunwind tries to enable minidebuginfo support by default, which is what looks for liblzma, so the CI has been using libunwind built with liblzma support anyways. Thus I think the cause is not the liblzma package in Ubuntu but rather the old libunwind version. Building these deps from source via getdeps has been rather painful for OSS consumers since it produces shared object libraries that needs to be shipped alongside watchman. See https://github.com/facebook/watchman/issues/1276, https://github.com/facebook/watchman/issues/1273 for resulting complaints. Conveniently, as of last week we should automatically build and consume a static libunwind thanks to D93644457, so that issue should solve itself once GitHub Actions caches expire. So, let's allow using system liblzma on Ubuntu and update the other comments to incriminate libunwind instead of liblzma. Tested at https://github.com/mszabo-wikia/watchman/actions/runs/22643456785/job/65625279878?pr=1 Fixes #1276, fixes #1273. --- build/fbcode_builder/manifests/glog | 2 +- build/fbcode_builder/manifests/libunwind | 2 +- build/fbcode_builder/manifests/xz | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build/fbcode_builder/manifests/glog b/build/fbcode_builder/manifests/glog index 2649eaad1805..b4a8fabecc2a 100644 --- a/build/fbcode_builder/manifests/glog +++ b/build/fbcode_builder/manifests/glog @@ -24,7 +24,7 @@ HAVE_TR1_UNORDERED_SET=OFF [homebrew] glog -# on ubuntu glog brings in liblzma-dev, which in turn breaks watchman tests +# on ubuntu this pulls in libunwind < 1.8.0 which breaks watchman tests [debs.not(distro=ubuntu)] libgoogle-glog-dev diff --git a/build/fbcode_builder/manifests/libunwind b/build/fbcode_builder/manifests/libunwind index dfaa64f4f6f2..43a1ca9a7cfd 100644 --- a/build/fbcode_builder/manifests/libunwind +++ b/build/fbcode_builder/manifests/libunwind @@ -5,7 +5,7 @@ name = libunwind libunwind-devel libunwind -# on ubuntu this brings in liblzma-dev, which in turn breaks watchman tests +# libunwind < 1.8.0 breaks watchman tests [debs.not(distro=ubuntu)] libunwind-dev diff --git a/build/fbcode_builder/manifests/xz b/build/fbcode_builder/manifests/xz index 22f38ae2739c..670111081506 100644 --- a/build/fbcode_builder/manifests/xz +++ b/build/fbcode_builder/manifests/xz @@ -1,8 +1,7 @@ [manifest] name = xz -# ubuntu's package causes watchman's tests to hang -[debs.not(distro=ubuntu)] +[debs] liblzma-dev [homebrew]