summaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)Author
2023-07-21Assume that, if we have X11, it supports XineramaNoel Grandin
By now, Xinerama is old enough that we can use the X11 server supports it Change-Id: Ida95902916697808c611a53274b1f0299fd298b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154666 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-10update skia to m116Noel Grandin
(from m111) SK_SUPPORT_GPU is now SK_GANESH GR_OP_ALLOCATE_USE_NEW was removed in skia m111 commit dd8f8ed3848cbe2032edc7ec08ef648a23e28ad9 Author: Mike Klein <mtklein@google.com> Date: Thu Apr 22 12:17:33 2021 -0500 clean up defines that do nothing the fast-png-write patch was removed. The underlying helper function we need was removed in commit 0ec4c84abd0b578a5c792b04b56653cbc325530e Author: Kevin Lubick <kjlubick@google.com> Date: Thu Apr 20 14:46:28 2023 -0400 Remove SkImageEncoder and SkImage::encodeToData So I updated our dump() function in SkiaHelper.cxx to use the new Skia API. The constexpr-template patch seems to be superceded by skia changes. SkOpts: :hash_fn has been replaced with SkChecksum::Hash32 commit 657ed9cf2379a950b925cb2aba7c85d6e1dd36ed Author: Brian Osman <brianosman@google.com> Date: Tue May 23 12:40:12 2023 +0000 Reland "Replace SkOpts::hash/hash_fn with SkChecksum::Hash32" The SkDebugf function needs to be exported from the library since it leaks out to calling code via some of the headers. Change-Id: I80ace8f25e660fa7889d22ef90676f47264d866c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154223 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-05tdf#153328 ZXing::ToSVG() Conditional usageTRaXIn
Change-Id: I8874f596be808d5d255139654a19b25f71299179 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147677 Tested-by: Jenkins Tested-by: Hossein <hossein@libreoffice.org> Reviewed-by: Hossein <hossein@libreoffice.org>
2023-06-29fix cross-compilation with frozen headersChristian Lohmaier
FROZEN wasn't part of the PERMITTED_BUILD_TARGETS in configure.ac, that in turn means it is not part of BUILD_TYPE when building the crossbuild build-tools. That in turn means gb_Helper_optional in external/Module_external.mk doesn't add it to the external module dirs, and that means the makefiles from external/frozen aren't read, more specifically there won't be any gb_UnpackedTarball_UnpackedTarball,frozen definition. The UnpackedTarball definitions don't error out in this case, and the gb_Library_use_extenals,module,frozen then doesn't work as expected. It happily depends on the UnpackedTarball_get_final_target for frozen, but since there is nothing to unpack (since the makefiles with the definitions are skipped) that is a noop/it goes straight to just touch workdir_for_build/UnpackedTarball/frozen.update to fulfill the dependency without actually extracting any files. This patch deals with the first problem only, adding it to the PERMITTED_BUILD_TARGETS will allow the mechanism to work as intended. Change-Id: Ie9e8ad47ba4c281fb3246daf67450a16f792b908 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153747 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-06-27Update ICU to 73.2Taichi Haradaguchi
Remove external/icu/ubsan.patch.1 that was applied upstream. See https://icu.unicode.org/download/73 Change-Id: Ic2bc450b093f1c0ddb09ebe915a9c3e70d7e0964 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153574 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2023-06-27add an --enable-cairo-rgba to set the order of pixels for internal cairoCaolán McNamara
Change-Id: Ieab2ef59f63a7722bffea3273d2eeefadef47b56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153628 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-06-22kf6: Add a kf6 VCL pluginMichael Weghorn
Add a "kf6" VCL plugin that uses the KF6 (KDE Frameworks 6) libraries to provide a native KDE/Plasma file chooser, just like the kf5 VCL plugin does for KF5. Building the plugin is disabled by default and can be enabled by autogen option '--enable-kf6'. Selecting the VCL plugin can be done by starting LO with environment variable 'SAL_USE_VCLPLUGIN=kf6' set. The kf6 VCL plugin reuses the kf5 VCL plugin code. (The kf6 headers and sources for now just `#include` the kf5 ones.) This was quickly tested on KDE Neon unstable, which provides a daily snapshot of Plasma 6 and the KF6 libraries. (Regarding a potential release date, [1] mentions: "Plasma 6 is built on top of Qt 6 and is tentatively planned to be released in late 2023 or early 2024.") [1] https://community.kde.org/Plasma/Plasma_6 Change-Id: I4c2b7e3be8e60f1d8cf60119f6f3f642b71349f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153438 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-06-21No need to fiddle with ICU UChar typedef anymoreKhaled Hosny
The affected external dependencies should be building with c++11 by now already. Change-Id: I0d1f8aed6ed28f510f456a368b724c3c4eeb3240 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153389 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-06-21Remove another workaround for old versions of ICUKhaled Hosny
Change-Id: Id13bdb10bf4bf89a136b28a26c4b3d1113971871 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153388 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-06-21Require icu-i18n >= 66Khaled Hosny
We were requiring ICU 4.6 which was released in 2011, and ifdef'ing our way through newer ICU versions. ICU is a core dependency and it makes no sense to build LibreOffice with such ancient versions of it. This change requires ICU 66 (released in 2020), and removes all the ifdefs for older versions. There are more cleanups to do, but these will be done separately. Change-Id: I2e4f7608a08f4d531b0a4c74bbfdf91a451f833f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153387 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-06-21openldap: upgrade to release 2.6.4Taichi Haradaguchi
Because NSS support has been removed in release 2.5, switch TLS/SSL module used by OpenLDAP to OpenSSL. Add -pthread flag to openldap_LDFLAGS when building on Linux. This avoids errors that occur in libcrypto.a (libcrypto-lib-threads_pthread.o). Change-Id: I4779ce40233d144d930f20e85db7b4ba08f91ea1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143646 Tested-by: Taichi Haradaguchi <20001722@ymail.ne.jp> Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2023-06-18add --with-system-frozenRene Engelhard
Change-Id: Ia09254cab5696fa0a3530fcafa5b48acca631ff2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153208 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-06-14fix ant related test for paths with non-ascii charactersChristian Lohmaier
autoconf forces LC_ALL=C and that in turn sets java's I/O encoding without a way to override separately (https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4163515) and that breaks if the build/source path contains non-ascii characters: java.lang.ExceptionInInitializerError […] Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters […] so set LC_ALL to $LANG for the ant/java tests to unbreak that part of the tests. Change-Id: I5bf197acd48610f1861904be027aa027e1d46024 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138441 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2023-06-09bump version to 24.2.0.0.alpha0+Christian Lohmaier
calendar based naming - 24.2 is the February release, 24.8 would be the one in August Change-Id: I91d14da7060769e995f67c855e9dda04f2144870 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152716 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-06-07Set entitlements in non-release in $(INSTROOTBASE) and .dmg packagePatrick Luby
Also, when building a .dmg for macOS, skip codesigning for non-release builds, both with and without the macOS sandbox, if there is no identity set but set entitlements to allow Xcode's Instruments application to connect to the application. Lastly, add entitlements when building soffice in $(INSTROOTBASE) if this is a non-release build. Change-Id: I764bf5bd5d44e878669c4287906e6efd6aac593f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152655 Tested-by: Jenkins Reviewed-by: Patrick Luby <plubius@neooffice.org>
2023-06-07temporarily bump product version to 7.7.0.0.alpha0+Christian Lohmaier
next version will use different version scheme, but in order to not break scripts, that actual change will go through gerrit Change-Id: I9e4ed4ef8c7bfbba0ed0f91944c46501504447d1
2023-06-07python3: upgrade to release 3.8.17Michael Stahl
Fixes CVE-2023-24329 and a few more obscure security issues. Change-Id: I4b073ce02c0377e2791e4593d20f2b756de0c8cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152696 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-06-05Latest VS 2022 Preview is 17.7.0 nowStephan Bergmann
...while latest proper VS 2022 is 17.6.2 Change-Id: I300812fc9f5d380fb2c288bfa19b74502a5b0e2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152620 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-06-04Fix ccache cache size detectionKhaled Hosny
I have ccache 4.8.1 and it reports: (/home/khaled/.config/ccache/ccache.conf) max_size = 30.0 GB With a space between the number and the unit and the configure check with then see a unit-less 30 and will warn: ccache's cache size is less than 1GB using it is counter-productive: Disabling auto-ccache detection Change-Id: I12bad9204feddfe06be7207d9367586da871a5e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152592 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-06-04Revert "Fix ccache cache size detection"خالد حسني
This reverts commit 70fd835b4cf75e386ee115c705241a4059fb68a8. Reason for revert: cache_size_kibibyte is the current cache size not the maximum size Change-Id: Idca3f7f3af9d2d6f20a50cb8360754dc63729726 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152542 Tested-by: Jenkins Reviewed-by: Khaled Hosny (خالد حسني) <khaled@libreoffice.org>
2023-06-01Fix ccache cache size detectionKhaled Hosny
I have ccache 4.8.1 and it reports: (/home/khaled/.config/ccache/ccache.conf) max_size = 30.0 GB With a space between the number and the unit and the configure check with then see a unit-less 30 and will warn: ccache's cache size is less than 1GB using it is counter-productive: Disabling auto-ccache detection Instead of relying on the human readable output, use --print-stats which prints machine-readable output and is available since 3.7 (thanks to Cloph for the suggestion). Change-Id: I69f994a07cfbf08b66a2010f9c99401881d4acf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152382 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2023-05-23Add configure switch to enable building the installer with WiX.Jussi Pakkanen
Change-Id: I5b1cf7a4a90c65b27fd3a9e2f33c9ffe044704e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151738 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-05-16Make --with-latest-c++ support future C++26Stephan Bergmann
...as already supported by <https://github.com/llvm/llvm-project/commit/b763d6a4ed4650c74c6846d743156468563b0e31> "Add C++26 compile flags." Change-Id: I0e7b55138222c0f0a81d4aec9a20da7922c51df2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151825 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-05-11bump product version to 7.6.0.0.alpha1+Christian Lohmaier
Change-Id: I4215440ecfc7509004837e436c2f947eba3f8148
2023-04-18vscode: add Cygwin terminal profile and config for VS debugger for WindowsChristian Lohmaier
and also fix the gdb helper path for linux in one of the launch configurations, it used instdir for both the solenv as well as instdir paths. Change-Id: I2d2ad955e4c1d386071edc50af8fd0bdcffc66e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150051 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-04-16configure.ac: add error message if NET SDK not foundJulien Nabet
+ rename find_dotnetsdk46 to find_dotnetsdk Change-Id: I6354ed1a900bb3b86999bee4354f628e79318924 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150440 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-04-14Latest VS 2022 Preview is 17.6.0 nowStephan Bergmann
...while latest proper VS 2022 is 17.5.4 Change-Id: I7d3ff3dea730cf1490a0198922281792e524ed9a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150382 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-04-11allow native compile for windows aarch64Christian Lohmaier
using both --host=aarch64-pc-cygwin and --build=aarch64-pc-cygwin on a suitable system. Change-Id: Id11e25b03de8dd8dd52c63e7a06d57d44e3fce33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150053 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-04-04Fix typo in codeAndrea Gelmini
Change-Id: I9386ce811885e46ffedfc5bd8cc05007ddf75f10 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149968 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-04-02New --with-coredumpctl to obtain core dumps of crashed tests from coredumpctlStephan Bergmann
...for (Linux) systems that don't store core.* files in the current working directory. When enabled, this wraps test execution in `systemd-run --scope --user --unit=...` with unit values unique per individual test invocation, so that solenv/bin/gdb-core-bt.sh can query coredumpctl for matching core dumps. (See the mailing list thread starting at <https://lists.freedesktop.org/archives/systemd-devel/2023-March/048884.html> "[systemd-devel] coredumpctl: matching by e.g. env var?" for further details.) The used --unit=... scheme is a best effort to produce system-wide unique values, combining the target location path of the given test with a second-granularity date/time and the current PID. (In case there would be multiple invocations of the same test per second, which then hopefully wouldn't reuse the same PID. The date/time and PID could be replaced with a high-resolution system-wide monotonic clock/counter if one were easily available. The advantage of the current scheme is that it only uses Posix features.) The overall length of the unit value (incl. the appended ".scope" suffix) must not exceed 256 characters, or else systemd-run would fail with "Failed to mangle scope name: Invalid argument". It might look more natural to pass the unit value into gdb-core-bt.sh as a fourth positional argument rather than via a new LIBO_TEST_UNIT env var. But for one, the unit value is most easily computed from within the recipe shell command lines, where an env var is the most natural fit. And for another, this avoids having to tunnel yet another value through the tearDown method in unotest/source/java/org/openoffice/test/OfficeConnection.java to the given postprocesscommand. Change-Id: Idcb20cd1e1141d8ec7f10947e5edc70aa2aa7d32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149690 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-15Bump dconf minimum version requirementStephan Bergmann
At least building on Fedora 37 with dconf-devel-0.40.0-7.fc37.x86_64 against recent LLVM 17 trunk libc++ started to fail now with > In file included from configmgr/source/dconf.cxx:25: > In file included from /usr/include/dconf/dconf.h:23: > In file included from /usr/include/dconf/common/dconf-enums.h:23: > In file included from /usr/include/glib-2.0/glib.h:34: > In file included from /usr/include/glib-2.0/glib/gasyncqueue.h:34: > In file included from /usr/include/glib-2.0/glib/gthread.h:34: > In file included from /usr/include/glib-2.0/glib/gatomic.h:30: > In file included from /usr/include/glib-2.0/glib/glib-typeof.h:44: > In file included from ~/llvm/inst/bin/../include/c++/v1/type_traits:430: > ~/llvm/inst/bin/../include/c++/v1/__type_traits/aligned_union.h:23:1: error: templates must have C++ linkage > template <size_t _I0, size_t ..._In> > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > configmgr/source/dconf.cxx:19:1: note: extern "C" language linkage specification begins here > extern "C" { > ^ because the missing extern "C" has meanwhile been added to upstream dconf with <https://gitlab.gnome.org/GNOME/dconf/-/commit/f860ddcc6a501b982d82c5630c73936bd611ad8a> "common: Add missing G_BEGIN/END_DECLS" towards tag 0.40.0. So the easiest fix here appears to be to bump our requirements to that dconf version 0.40.0: The one case I'm aware of that explicitly wants dconf support is downstream Fedora and RHEL builds, which already have dconf 0.40.0 (cf. most recent <https://src.fedoraproject.org/rpms/dconf/blob/a9987b0abe15133d091bcd390fd33077881567ae/f/dconf.spec#_4> for f37 and most recent <https://gitlab.com/redhat/centos-stream/rpms/dconf/-/blob/1bb6b46da242b75e5e1864f5c97ab6e592ca60ba/dconf.spec#L4> for e9s). On the other hand, the TDF Linux release builds are done with an explicit --disable-dconf in distro-configs/LibreOfficeLinux.conf (since ecc617e797aa5ed329668114e54ec7ffa5c0e87b "configmgr: support reading from a dconf layer (WIP)") and the Flatpak builds on Flathub are done against an org.freedesktop.Sdk//22.08 where no dconf support is detected at all (for the most recent LO 7.5.1 build on Flathub see > checking for DCONF... no > checking whether to enable dconf... no at <https://buildbot.flathub.org/#/builders/5/builds/3184/steps/8/logs/stdio> for aarch64 and at <https://buildbot.flathub.org/#/builders/5/builds/3184/steps/8/logs/stdio> for x86_64). Change-Id: I559d2ac8712dbe2b40c9b881314b88d1cc8eaf43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148887 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-03-12cross-compiling on windows needs openssl to build internal pythonChristian Lohmaier
→ add back OPENSSL as a permissable sub-build target and explicitly enable openssl when cross-compiling for windows_aarch64 partially reverts 4132bd5477c25a505f7bfbee1e7dcf6602c927d3 Change-Id: Ic162a2f0c6db377eadedb149fb428f0f015539f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148688 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-03-08MSVC: use the newer conformant preprocessorMike Kaganski
As explained in the /Zc:preprocessor documentation [1], it enables "a token-based preprocessor that conforms to C99 and C++11 and later standards", available since Visual Studio 2019 version 16.5. It helps to workaround an IntelliSense bug [2], which disables highlighting and code completion in the IDE integration when certain Boost libraries are included; but using a better preprocessor can't hurt in general, right? [1] https://learn.microsoft.com/en-us/cpp/build/reference/zc-preprocessor [2] https://developercommunity.visualstudio.com/t/IntelliSense-reports-many-errors-for-the/10287480#T-ND10303205 Change-Id: I5268f2dd4acf01cc1da23cfe76653c2f6c688c05 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148484 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-03-05tdf#153465 Add Sukapura's dark variantRizal Muttaqin
Change-Id: I9f97c3990064db88fccf9269deb62414bfb6c3b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148011 Tested-by: Rizal Muttaqin <rizmut@libreoffice.org> Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-02-27Note that Clang consteval bugs are meanwhile fixedStephan Bergmann
Change-Id: I90b2765bdad5fe753288420b01a5395bcf22f44f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147885 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-02-23Refer directly to static library files for Graphite2 and HarfBuzz on LinuxRico Tzschichholz
Just using "-L... -l..." will cause dynamic linking if a matching system library is found. Change-Id: I9bc3ee1fb1351336f73c3c9219526749dffe546e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146907 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2023-02-22vcl: Avoid the need to patch HarfBuzzKhaled Hosny
Reverts parts of d552b4a549d614a03aa9328e017dec27bd3ff41e and 97e2e73e87479a742b798f362eda4baafb89497c. Instead of patching HarfBuzz, lets make use of the already mmap’ed file we use with FreeType. Change-Id: Ia81222118162a30cadb8c988bc477ad3ce36166d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147410 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-02-16android: Support NDK 24.x and 25.x, use NDK 25 for JenkinsMichael Weghorn
NDK 24 dropped support for API versions < 19, quoting [1]: > * Jelly Bean (APIs 16, 17, and 18) is no longer supported. The minimum OS > supported by the NDK is KitKat (API level 19). Therefore, use API level 19 for these (and unknown) NDKs unless anything greater has explicitly been specified using the `--with-android-api-level=<VERSION>` autogen switch (or is default for the architecture, s. above). Update the Jenkins config to use NDK 25 for the Android builds as discussed in the ESC meeting on 2023-01-26 [2]. [1] https://developer.android.com/ndk/downloads/revision_history [2] https://lists.freedesktop.org/archives/libreoffice/2023-January/089878.html Change-Id: Ib8e65f433ee89ff1bc12432722570bf8f9f7ed85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146135 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-16android: Move android API level check up in configure.acMichael Weghorn
No logical change intended. This is in preparation of using `ANDROID_API_LEVEL` in the NDK check in a follow-up commit. Change-Id: I746cae640a57a49efbdefd8ba00dcc1c4edc4ef9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146134 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-16android: Use libc++_shared path that works for NDK 25, tooMichael Weghorn
While e.g. NDK 23.0.7599858 has both, `$HOME/Android/Sdk/ndk/23.0.7599858/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so` and `$HOME/Android/Sdk/ndk/23.0.7599858/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so` (with the same content), NDK 25.1.8937393 no longer ships that under the former path scheme, just the latter. Therefore, use that one when copying the library, in preparation to add support for NDK 24 and 25. Change-Id: I20894701f4f436f41781467b57ec4f5311a8317f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146133 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-16android: Use actual Android API level for minSdkVersion, nssMichael Weghorn
When an Android API level is explicitly set with the `--with-android-api-level` switch introduced in commit 4c0bccbb21ba022fd9d630eb1d9ae34673b4dc11 Date: Thu Jul 4 09:06:49 2019 +0200 android: Allow specification of the API level. , use that for the minSdkVersion for the Android Viewer app and the API level for the NSS build, rather than leaving that hard-coded at API level 16. Building with a newer API level means that the app won't run on devices with older API levels. With this in place, this will be recognized at install time (installation will fail: INSTALL_FAILED_OLDER_SDK) rather than crashing at run time. Change-Id: Id6047b768d265b965696f3a3161d7828e5f3696e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146127 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-16android: Require NDK 23 and use default linker lldMichael Weghorn
Using lld instead of hard-coding ld.gold speeds up linking liblo-native-code.so from about 40 seconds to about 10 seconds for my x86 debug Android build with NDK 23.2.8568313. lld was added in NDK 21, made default in NDK 22 [1]. lld doesn't know the `--no-keep-files-mapped` option, so drop that as well. ld.gold had previously been hard-coded in commit c6dadf5035c8e1c31dbd3fccec167bd4a906bf54 Date: Fri Nov 1 17:57:17 2019 +0100 android: Fix linking of liblo-native-code.so on aarch64. , but lld wasn't available yet back then. To make sure that lld is used by default, NDK >= 22 has to be used. In addition, due to a clang bug in NDK 22.1.7171670 [2] ("Misspelled -fnostack-clash-protection"), building for aarch64 Android with that NDK version would fail as follows: clang++: error: unknown argument '-fno-stack-clash-protection'; did you mean '-fnostack-clash-protection'? clang++ version: $ /home/michael.weghorn/Android/Sdk/ndk/22.1.7171670//toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --version Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /home/michael.weghorn/Android/Sdk/ndk/22.1.7171670//toolchains/llvm/prebuilt/linux-x86_64/bin Rather than work around that bug on LO side, require NDK 23.x right away, since that provides a clang where this is fixed. Both, non-debug as well as `--enable-dbgutil` builds with NDK version 23.2.8568313 were successfully tested for all 4 supported architectures and these devices: * aarch64: Fairphone 3 Plus, LineageOS 19 (Android 12), API 31 * arm32: Samsung Galaxy S4 I9505, LineageOS 17.1 (Android 10), API 29 * x86: * AVD: Nexus 4, API 16 * AVD: Pixel 2, API 30 * x86_64: AVD: Pixel 2, API 33 [1] https://developer.android.com/ndk/downloads/revision_history [2] https://bugs.llvm.org/show_bug.cgi?id=47139 Change-Id: I9ea714255faf29d50bb5f8e206f13495637da867 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146119 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-16android: Switch from GNU binutils to support NDK 23.x, require 21.xMichael Weghorn
Relevant announcement from revision history for NDK 23 [1]: > * GNU binutils, excluding the GNU Assembler (GAS), has been removed. GAS > will be removed in the next release. If you are building with > -fno-integrated-as, file bugs if anything is preventing you from > removing that flag. Therefore, switch from uses of GNU binutils to the corresponding LLVM tools instead. NDK 20.x doesn't provide `llvm-ranlib` yet, so bump the minimum version to 21.x. Also drop the previous uses of `ANDROID_BINUTILS_PREBUILT_ROOT`, which appear to no longer be relevant by now. commit 4082a18406c18af7b4fcef7bd501c3679c3be56b Date: Wed Nov 22 23:08:06 2017 +0100 android: use unified headers and llvm-c++ STL (x86) with NDK 16 gnustl (and others) are to be removed in future versions of the ndk also bump gradle and build-tools to current versions along with it arm unfortunately crashes with llvm-c++, so keep with gnustl for now/fix that later that introduced one of those uses mentions issues on ARM, but building and running the app at least on my 32-bit ARM device (Samsung Galaxy S4 I9505, LineageOS 17.1/Android 10) didn't show any issues in a quick test with this change in place. Update the Jenkins config to switch from the now no longer supported NDK 20.1.5948944 to 23.2.8568313 for which building and running the app has been tested on devices for all of the four supported architectures with upcoming change Change-Id I9ea714255faf29d50bb5f8e206f13495637da867 "android: Require NDK 23 and use default linker lld" in place on top, s. that one's commit message for more details. Note however that the NDK version will be further updated to use NDK 25 in upcoming change Change-Id Ib8e65f433ee89ff1bc12432722570bf8f9f7ed85 ("android: Support NDK 24.x and 25.x, use NDK 25 for Jenkins"). [1] https://developer.android.com/ndk/downloads/revision_history [2] https://lists.freedesktop.org/archives/libreoffice/2023-January/089878.html Change-Id: I7645f8025d42f0fa384b5bceb31bb4b1c0a44cb5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146118 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-10qt6 configure: Search for Qt 6 moc in more locationsMichael Weghorn
This e.g. makes this find the correct moc on Arch Linux, where the Qt 6 moc is provided under `/usr/lib/qt6/moc` by package `qt6-base`. Change-Id: Iefca23e6391a952eb79108260ae1417fc75ad0ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146781 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-10qt6 configure: Add moc version checkMichael Weghorn
This way, it is determined at configure time if the moc meant to be used for Qt 6 is actually a Qt 5 one, as happened e.g. on Arch Linux without upcoming Change-Id Iefca23e6391a952eb79108260ae1417fc75ad0ef ("qt6 configure: Search for Qt 6 moc in more locations"). Fail at configure rather than build time in such cases. Change-Id: I2ada2045f41f08bf339920d043226f9b36c335b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146780 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-02-09Require HarfBuzz 5.1.0Khaled Hosny
This is the minimal version to provide the functionality we currently check for. Some important LO functionality currently depend on idfdef'd HarfBuzz code, and some distributions build against old system HarfBuzz leading to user bug reports that are tricky to track down, e.g: tdf#153048 and tdf#153470. Change-Id: I7d58ec46f8fd340d2592887c0088876d71351771 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146674 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2023-02-09Enable opening of downloaded fonts only in ForKit in OnlineTor Lillqvist
We want that only the ForKit process needs to have access to new font files added to a Collabora Online instance dynamically by downloading from a server. There are however many locations in the Kit process, in core and in external libraries like harfbuzz, where the code wants to open a font file. Handle this so that the ForKit process opens such a downloaded font file and doesn't close it. The file descriptor is thus inherited by Kit processes. The font file pathname passed on to other code is a fake on in the format "/:FD:/%d" where the %d is the file descriptor of the opened font file. Add checks in all places where font files are opened, look for this special pathname format, and modify the code to just dup() the already open file descriptor in that case. All this is relevant for Linux only, as Collabora Online runs on Linux. Do the above for harfbuzz, cairo, fontconfig, and freetype. In addition make sure that these libraries (except harfbuzz which needs to be a static library and freetype) when bundled, on Linux, are built as shared libraries, and won't be confused with the corresponding system libraries by making sure their sonames are different. Change-Id: Ib059cb27e1637d07bb709249abd0d984f948caa9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140714 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146341 Tested-by: Jenkins
2023-02-09tdf#153476 Disable MS telemetry in VsDevCmd.batHossein
MS telemetry inside VsDevCmd.bat causes problems for the autogen.sh script which uses it to find the Visual Studio C/C++ standard library via the environment variables that show the UCRT path and version. VsDevCmd.bat is the "Developer Command Prompt for Visual Studio". The telemtry is disabled by: set VSCMD_SKIP_SENDTELEMETRY=1 This change resolves the problems described in tdf#153476. Change-Id: I8b77a2ca0c3577b3ba490723ab7901f463562578 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146677 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-01-27Remove support for 32-bit S390Stephan Bergmann
As discussed in the mailing list thread starting at <https://lists.freedesktop.org/archives/libreoffice/2023-January/089808.html> "Plan to remove dead C++ UNO bridge implementations (bridges/source/cpp_uno/*)", the bridge implementation at bridges/source/cpp_uno/gcc3_linux_s390 is apparently dead and should thus be removed. However, that was the only bridge implementation for 32-bit S390, which implies that support for the 32-bit S390 architecture as a whole is dead and should thus be removed. Change-Id: I18b3b4fa11df4ce693107bad6bbea2fab1c19f26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146058 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-01-27Remove support for AIXStephan Bergmann
As discussed in the mailing list thread starting at <https://lists.freedesktop.org/archives/libreoffice/2023-January/089808.html> "Plan to remove dead C++ UNO bridge implementations (bridges/source/cpp_uno/*)", the bridge implementation at bridges/source/cpp_uno/gcc3_aix_powerpc is apparently dead and should thus be removed. However, that was the only bridge implementation for AIX, which implies that support for the AIX platform as a whole is dead and should thus be removed. Change-Id: I96de3f7f97d4fd770ff78256f0ea435383688be9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146057 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>