https://bugs.documentfoundation.org/show_bug.cgi?id=174039
Bug ID: 174039
Summary: iOS build fails at 26.8.1.1: bundled curl needs TLS,
invalid OpenSSL target, expat entropy, vcl iOS code
out of date
Product: LibreOffice
Version: 26.8.1.1 release
Hardware: ARM
OS: iOS
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: iOS Editor
Assignee: [email protected]
Reporter: [email protected]
Blocks: 173986
Description:
LibreOffice 26.8.1.1 cannot be built for iOS (arm64 device) with the shipped
distro config, distro-configs/LibreOfficeiOS.conf. There are four independent
failures. Each one was confirmed by working around the previous one in a
scratch tree. The same code is unchanged on master as of 2026-10-15 (commit
6e8329f204dd).
1. Bundled curl needs a TLS backend. LibreOfficeiOS.conf passes
--disable-openssl, but the bundled curl is configured with no other TLS
backend, so its configure stops (external/curl/ExternalProject_curl.mk:40)
with:
configure: error: select TLS backend(s) or disable TLS with --without-ssl.
The same happens on macOS with --disable-openssl.
2. OpenSSL target name. With --enable-openssl instead,
external/openssl/ExternalProject_openssl.mk (line 44) passes the target
"ios-aarch64" to OpenSSL's Configure. OpenSSL 3.5.8 has no target by that name
(its iOS targets are ios64-xcrun, ios64-cross and iphoneos-cross), so the
openssl ExternalProject fails (ExternalProject_openssl.mk:80).
3. expat entropy source. external/expat/StaticLibrary_expat.mk compiles
random_getrandom.c for iOS, because iOS is not in the "EMSCRIPTEN MACOSX"
branch. iOS cannot build that file:
random_getrandom.c:82:14: error: call to undeclared function 'syscall'
random_getrandom.c:82:22: error: use of undeclared identifier
'SYS_getrandom'
The getentropy variant fails as well, because the iOS SDK has no
sys/random.h ("'sys/random.h' file not found"). iOS provides arc4random_buf,
which expat supports, so that looks like the right entropy source for iOS.
4. The vcl iOS code no longer matches the shared quartz code:
vcl/inc/quartz/salgdi.h:383:47: error: unknown type name 'SalVirtualDevice'
(macOS gets the forward declaration from osx/saldata.hxx; nothing
provides it on iOS)
vcl/ios/salios.cxx:184 and :186: error: too few arguments to function call,
expected 5, have 4 (getBitmap)
vcl/ios/salios.cxx:510: error: out-of-line definition of 'SetSize' does not
match any declaration in 'AquaSalVirtualDevice'
(the declaration now has a third parameter, bAlphaMaskTransparent)
vcl/quartz/salgdi.cxx:64: static assertion failed: skia is required on macOS
(the shared quartz code now requires Skia, which the iOS build does not
have)
Steps to Reproduce:
1. On macOS 26 with Xcode 26.4.1, check out tag libreoffice-26.8.1.1.
2. ./autogen.sh --with-distro=LibreOfficeiOS
3. make
4. To reach failures 2 to 4, add --enable-openssl after --with-distro and work
around each failure in turn.
Actual Results:
The build stops in external/curl (failure 1). After each workaround it stops in
external/openssl, external/expat and vcl.
Expected Results:
The iOS distro config builds.
Reproducible: Always
Additional Info:
Besides the distro config, our configure line had --disable/--without options
that trim unrelated modules for a Writer-only engine (for example
--disable-extensions, --without-java, --disable-pdfimport). None of them touch
curl, OpenSSL, expat or vcl. Android (NDK r28c) and macOS arm64 builds of the
same tag work.
If it helps triage, I can split this into four bugs.
Referenced Bugs:
https://bugs.documentfoundation.org/show_bug.cgi?id=173986
[Bug 173986] [META] LibreOffice for iOS bugs and enhancement requests
--
You are receiving this mail because:
You are the assignee for the bug.