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.

Reply via email to