summaryrefslogtreecommitdiff
path: root/config_host.mk.in
AgeCommit message (Collapse)Author
2024-10-10Make --disable-emscripten-proxy-to-pthread configurableStephan Bergmann
...as is convenient for some experiments Change-Id: I74aedb38ecc0f7b5a0d913799f649dce77dc7bba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174753 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-10-01also set TMP in addition to TMPDIRChristian Lohmaier
primarily for Windows where unittests also use Windows' GetTempPathW function that prefers TMP over TEMP over USERPROFILE over the windows directory/doesn't respect TMPDIR Unittests not using TMPDIR is annoying since bitdefender will block access on some CVE tests. While you can create "dev drives" now that also allow you to disable AV-scanning permanently on those, that of course won't help when the files are created outside the devdrive/in the default temporary directory. Using TEMPDIR allows to specify the dir in autogen.input and the user won't have to add the regular temp-dir to AV-exclusions or remember to always disable the real-time-scanning before starting a build. Change-Id: I47349e4318e8de99e45961a4989975cf4081fc07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174267 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-09-20add a --with-system-java-websocketCaolán McNamara
there was a system Java-WebSocket in Fedora 35, f.e. but unaware if this is actively packaged standalone in contemporary distros, but useful for the coverity build case. Change-Id: Id6393dbfb1c449b75391752a8bb5e5ea4481a084 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173725 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-25tdf#161941 add --with-docrepair-fonts optionCaolán McNamara
to enabling bundling or not bundling the docrepair fonts of https://github.com/docrepair-fonts (which provide replacments for: Agency FB, Baskerville Old Face, Berlin Sans FB, Cooper Black, Lucida Calligraphy, Lucida Grande, Lucida Handwriting) Change-Id: I4ea442fa54d21f213ccbdccba9aea1b9c0675c90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172337 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-22Emscripten: Experimental -sPROXY_POSIX_SOCKETS supportStephan Bergmann
...see <https://emscripten.org/docs/porting/networking.html#full-posix-sockets-over-websocket-proxy-server>. This requires <https://github.com/stbergmann/emscripten/commit/4aff1f28b88480791236adcc6d5cb2d919ad4bf3> "-sPROXY_POSIX_SOCKETS: Add websocket_proxy_poll". When configured with --disable-socketpair (which appears to have no negative consequences), external/curl appears to only call poll(2) with socket-related file descriptors, so we can use websocket_proxy_poll instead. The URL on which the websocket_to_posix_proxy process listens must be specified as Module.uno_websocket_to_posix_socket_url. Change-Id: I4ad23098b5bbc0646fa50859c0aeb9870d1cc92a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172243 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-08-20More useful to have an EMSCRIPTEN_EXTRA_SOFFICE_PRE_JSStephan Bergmann
...than an EMSCRIPTEN_EXTRA_SOFFICE_POST_JS. That way, we can e.g. set up Module.arguments there. Change-Id: I4990ab6daac2f74326ab2ee9508828f1b79bceb7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172154 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-08-03.NET Bindings: Move built .NET libraries into instdirRMZeroFour
This commit adds Package targets for the net_basetypes, net_uretypes and net_oootypes libraries to install them into instdir/program/dotnet. Also adds a LIBO_SHARE_DOTNET_FOLDER variable mirroring the LIBO_SHARE_JAVA_FOLDER variable. Change-Id: I28cdb2dac799bd72d11c3e550bba1a946db8b49c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170098 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2024-08-03.NET Bindings: Upgrade --enable-dotnet to --with-dotnetRMZeroFour
This commit changes the existing --enable-dotnet switch into --with-dotnet, allowing users to pass in a different dotnet executable than the one on their PATH, similar to --with-java. This is used to determine the variables DOTNET and DOTNET_ROOT. Change-Id: Ia4f02dfdbd33d7629a800a076f758b26bb186d9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169656 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2024-07-25Enable start center in Emscripten buildStephan Bergmann
...and let it open with that instead of with a hard-coded example.odt. (But keep that example.odt in CustomTarget,static_emscripten_fs_image and adapt the example code in static/README.wasm.md to explicitly load it now.) Change-Id: Ie43e3795e44542acba5a8e755f65acc56fa753f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171019 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-07-10make MSVC /analyze a configure optionNoel Grandin
My debug build is slow enough already, no need to make it worse. People who want it, can turn it on explicitly. Change-Id: I8677534d8f0142699baa6b95a249ae5f70c5cc3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170269 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-06-22.NET Bindings: Switch for old windows CLI bindingsRMZeroFour
This commit adds an --enable-cli/--disable-cli switch to autoconf to control generation of the old CLI bindings (Windows only). It is enabled by default, to not be a breaking change to users just yet. Over time, when the old bindings are deprecated in favor of the new .NET bindings, it could be set to disabled by default. Change-Id: Ib60b372459cb0c735275ed17d004d037279357eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168751 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2024-06-13Handle CPDB lib in configure/build systemMichael Weghorn
In preparation of Biswadeep's upcoming GSoC changes (see [1]) to update the CPDB (Common Print Dialog Backends) support to the latest version and use the CPDB C API, add a corresponding `--enable-cpdb` autogen option (disabled by default). When CPDB is enabled, check for the cpdb-frontend library, define `ENABLE_CPDB` and set the compiler and linker flags for building the `CPDManager` (in vcl/unx/generic/printer/cpdmgr.cxx). Add checks for existing code using `CPDBManager`, so it only gets used when when CPDB is actually enabled. While the cpdb-frontend library is currently not actually used in `CPDManager` yet (as the previous approach tried to use some DBUs API directly), it will be in Biswadeep's upcoming changes. With this commit in place, an `--enable-cpdb` build works with this additional local test change in place to actually make use of the library: diff --git a/vcl/unx/generic/printer/cpdmgr.cxx b/vcl/unx/generic/printer/cpdmgr.cxx index 7dc17cede353..0c3b71d519db 100644 --- a/vcl/unx/generic/printer/cpdmgr.cxx +++ b/vcl/unx/generic/printer/cpdmgr.cxx @@ -22,6 +22,8 @@ #include <cstddef> #include <unistd.h> +#include <cpdb/cpdb-frontend.h> + #include <unx/cpdmgr.hxx> #include <osl/file.h> @@ -259,6 +261,7 @@ CPDManager* CPDManager::tryLoadCPD() } } #endif + cpdbPrintFile(nullptr, nullptr); return pManager; } [1] https://lists.freedesktop.org/archives/libreoffice/2024-May/091911.html Change-Id: Ifc50d2cd6496346bea55c73cb703e3c2d3eb44b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168656 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Biswadeep Purkayastha <bpdps95@hotmail.com>
2024-06-12.NET Bindings: Add DotnetLibrary class to gbuildRMZeroFour
This commit adds the DotnetLibrary gbuild class to build a .NET assembly using the .NET SDK. Also adds an option to enable or disable building .NET components with --enable-dotnet (default) and --disable-dotnet to the autogen script. Also adds a net_ure/ directory for the updated .NET bindings, currently consisting of the net_basetypes library. Change-Id: I9256387a2463ff8476deee85d886c6b3dce8257b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166380 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2024-06-07New EMSCRIPTEN_EXTRA_SOFFICE_POST_JS configure variableStephan Bergmann
...which can be useful during development, to add e.g. additional test code to the generated qt_soffice.html Change-Id: Ic498dcd4c812b7b4c8e48b07c2bff411a9f19438 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168522 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-05-29Emscripten: Unconditional --enable-wasm-exceptionsStephan Bergmann
(...which will be beneficial, in turn, to implement exception handling in the work-in-progress bridges/source/cpp_uno/gcc3_wasm UNO bridge). As per <https://developer.mozilla.org/en-US/docs/WebAssembly#browser_compatibility>, Wasm exceptions appear to be supported by most if not all relevant engines by now. * Lets see whether the "Note that to really use WASM exceptions everywhere" for external libraries in solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk does have any practical consequences (but ignoring it for now). * This change depends on the preceding 77129fbb74bcefde4551d494f029169e7c6026e3 "Emscripten: Add hack to prepare for --enable-wasm-exceptions" to work around the issue that was mentioned in static/README.wasm.md. * In unotest/source/embindtest/embindtest.js, getExceptionMessage started to work now, no longer exhibiting the RuntimeError that had been documented there for non-Wasm-based exceptions. Change-Id: Ifa2165b62208cc927844684911ddf21a4a2b624f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168169 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-05-21tdf#145735 avmedia qt: Use QtMultimedia for Qt 6 media playbackMichael Weghorn
Similar to the way that GTK 4's native facilities for video playback are used for the gtk4 VCL plugin, initially added in commit commit d0a527ec09516bc7215baf229adb90cd21ffa27a Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Feb 10 12:55:18 2022 +0000 first cut at using Gtk4 built in video playback , implement media playback using QtMultimedia for the Qt 6 based VCL plugins (qt6/kf6) via a new service "com.sun.star.comp.avmedia.Manager_Qt". Video playback with the mechanism used for qt5 no longer works with qt6, as "qwidget5videosink" that gets used on Wayland for qt5 wasn't ported to Qt 6 and is unmaintained, s. the commit message of commit 88d57cf241209ffec9eaed3e523942ab51af6db6 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Sep 29 11:09:51 2021 +0200 qt6: Add a qt6 VCL plugin for more details. Additionally, this also doesn't work properly any more on X11/with the xcb Qt QPA platform, see tdf#145735 comment 7. Instead of using GStreamer directly, let Qt handle the low-level stuff by using the QtMultimedia module [1] instead. This adds a new dependency on QtMultimedia. For building, this requires installing the Qt 6 QtMultimedia development headers (e.g. package `qt6-multimedia-dev` on current Debian testing). Except for WASM, the use of QtMultimedia is enabled by default when building with autogen options `--enable-qt6` or `--enable-kf6`, but can explicitly be disabled using `--disable-qt6-multimedia`. In tests with the qt6 VCL plugin on Debian testing, with a sample presentation containing an embedded video, attachment 145517 from tdf#120452, video playback generally works for both, the xcb and the wayland Qt QPA platforms: * Video and audio are played as expected on the external screen in presentation mode when using the presenter console * Video and audio playback work in non-presentation mode by clicking on the video and using the controls in the Impress sidebar (play, pause,...). However, the following issues were observed with the current implementation: * There's an odd frame/margin around the video. * In non-presentation mode, the placeholder shown until the video gets started using the controls in the sidebar is just an "audio icon", not a frame from the actual video. (This might be related to the fact that `QtPlayer::createFrameGrabber` currently returns an empty reference.) * At least on Wayland (issue not observed with QT_QPA_PLATFORM=xcb so far), when using the presenter console, video playback in the presenter console (i.e. on the non-presentation screen) is unreliable: The video sometimes shows, but sometimes doesn't. At least the (more important) one on the presentation screen was reliably shown in my tests, however. Tested with git dev versions of qtbase (as of commit 8d5e7d50d8dbf1ad79bd8ff9f6ef6028eba481c9), qtwayland (as of commit 6f0ebd916f176f6fbe35af28caeb52b62768ac94) and qtmultimedia (as of commit 264b7e8d7d5683252102b5e5149685c8b8a70c2d). [1] https://doc.qt.io/qt-6/qtmultimedia-index.html Change-Id: I29c3c7ded01c61b49b192fa5c313d8a92c942185 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167869 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-16android: Set android.ndkVersion for GradleMichael Weghorn
Set the `android.ndkVersion` property [1] for the Android Gradle Plugin, in addition to `android.ndkPath` that is set there already. This addresses the warning > Task :stripStrippedUIEditingDebugDebugSymbols [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. [CXX1100] android.ndkVersion is [26.1.10909125] but android.ndkPath /home/michi/Android/Sdk/ndk/25.1.8937393 refers to a different version [25.1.8937393]. Unable to strip the following libraries, packaging them as they are: libc++_shared.so, libfreebl3.so, liblo-native-code.so, libnspr4.so, libnss3.so, libnssckbi.so, libnssdbm3.so, libnssutil3.so, libplc4.so, libplds4.so, libsmime3.so, libsoftokn3.so, libsqlite3.so, libssl3.so. that started to show up in a local `--with-android-ndk=$HOME/Android/Sdk/ndk/25.1.8937393` Android build after commit 1610ebc06b34263bf3e525babe1e583b932f6242 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon May 13 10:47:49 2024 +0200 android: Update Android Gradle Plugin to 8.4.0 ... and gradle to 8.6, as suggested by Android Studio. As described at [2], that Android Gradle Plugin defaults to NDK 26.1.10909125. [1] https://developer.android.com/studio/projects/install-ndk#apply-specific-version [2] https://developer.android.com/build/releases/gradle-plugin Change-Id: Ied81f13f535303f9578177646f177b4ef791eefa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167715 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-10make sure KEEP_AWAKE_CMD gets only evaluated onceChristian Lohmaier
if using deferred evaluation then the creation of targets via $(call gb_Top_GbuildModuleRules,foo) would result in it getting processed over 900 times, and on windows spawning a shell with the two ps and awk command that takes 5 minutes. If future commands need to be run when the rule is run, then an alternative is to escape the variable in the define for the gb_Top_GbuildModuleRules macro via double-$ → $$(KEEP_AWAKE_CMD) - but I cannot think of any method where that should be necessary Change-Id: I126e4d317bd77f359ca9f39adf00cc88846af281 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167351 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-27fix some hardcoded use of wsl.exe and fix some typosChristian Lohmaier
Change-Id: I6152ee61913638f828eeb201ecb26312de5f8572 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166737 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26add --with-keep-awake switch to prevent going into sleep/suspendChristian Lohmaier
if used defaults to Awake for Windows and caffeinate for macOS Change-Id: I35f41bf1fb63af05ce2ec1a7f4d7b50b310536a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166743 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2024-04-26initial support for running autogen.sh inside wsl from git-bashChristian Lohmaier
Change-Id: I4272ea817a48880fd4206d6c73add7ccb8c4f6c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166335 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-26add MSYS_NO_PATHCONV=1 to prevent MSYS auto-magicChristian Lohmaier
git-bash/MSYS tries to resolve anything that looks like a path (i.e. anything starting with a /) - if the "target" doesn't exists, it just prepends the MSYS installation dir and breaks all kind of stuff. You could escape those with double-slash at the beginning, but that would mean lots of noise/unnecessary changes in pretty much every makefile, so just getting rid of that behavior is much better. ant and some externals however rely on MSYS path-conversion, so unset MSYS_NO_PATHCONV for those. Ant does its own checks whether it runs under cygwin or msys, and easier to please externals using the autoconversion than to add patches to force them into compliance… Change-Id: Ie80964e40c53ace80adb4707aae0db63ebc4ee4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166330 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-19add --enable-hardening-flags to enable compiler hardening flagsCaolán McNamara
distros typically have their own set via C[XX]FLAGS, so make this an optional argument some notes on the options: -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=2 https://www.redhat.com/en/blog/enhance-application-security-fortifysource (I see Fedora has recently bumped to to 3 since Jan 2024 https://fedoraproject.org/wiki/Changes/Add_FORTIFY_SOURCE%3D3_to_distribution_build_flags but here use 2 for now instead) -Wp,-D_GLIBCXX_ASSERTIONS https://fedoraproject.org/wiki/Changes/HardeningFlags28 -fstack-protector-strong (We already apply this by default) -fstack-clash-protection https://fedoraproject.org/wiki/Changes/HardeningFlags28 -fcf-protection https://fedoraproject.org/wiki/Changes/HardeningFlags28 https://cgit.freedesktop.org/libreoffice/core/commit/?id=af55dc3891f7950d392175004b2090cb0e54828e and record the compiler flags in debuginfo -grecord-gcc-switches Change-Id: Ib05387bad8324b188bd4ed0ee327d6a7cf83973b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163312 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> (cherry picked from commit 33483058f6e27f39633114721f7329c90571101d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166289 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-02Allow building with Java 8Fridrich Štrba
Change-Id: Ib1af1a98993aabb8a03f4ef19d8da4d9a71fdbc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164226 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-12create --enable-mergelibs=moreNoel Grandin
The existing --enable-mergelibs is in use by Linux distro people, who do not want any further mergeing because they want to be able to split libreoffice up into things like nogui, calc, writer, dbaccess, etc. So this work is to enable combining even more into libmerged for platforms like Windows and macOS and COOL, where we really want everything in one big lump of code. Change-Id: I4b268864955747d9859e16ebb569debbfc32fa78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162999 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-16Remove unused `make upload-update-info`Stephan Bergmann
Change-Id: Ifdec48aaf53b0444c2d7ceef554f64795e2f2c38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162172 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-14Fix system-libfixmathThorsten Behrens
Seems distros start to disagree on whether its liblibfixmath or just libfixmath. Change-Id: I54a42b2ba050980ae632ab3c82254131cad7787e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161969 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-01-11Fix `make create-partial-info` (for Windows, at least)Stephan Bergmann
I got lost trying to figure out how the original bin/update/create_partial_update.py code was meant to obtain old and new installation trees to diff, so I simplified that down to the create-partial-info make target now expecting an ONLINEUPDATE_MAR_OLDARCHIVE make variable that points at the old archive install set. (And the --with-online-update-mar-serverurl configure option is gone for good again.) The remaining changes are similar to what was needed in 28bad382face10be75af3875e44dde89fbc78108 "Fix `make create-update-info` (for Windows, at least)". (And the mbsdiff and mar tools expect Windows-style pathnames, but mktemp returns a Unix-style pathname in cygwin shell scripts, so this needed an additional Windows-only external/onlineupdate/cygpath.patch.) Change-Id: I40690210d62e3f26fb2d574914a0dd4323e6cd62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161924 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-02Hard-code --with-online-update-mar-channel=LOOnlineUpdaterStephan Bergmann
(An upcoming change will add an instset/update-settings.ini file containing that value, but using a GeneratedPackage for a single file instead of a directory seems unsupported, so it will use the hard-coded value and a plain Package instead.) Change-Id: I12ffef4db71ce36be9096df674588b39c660e4de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161545 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-19argon2: add new external libraryMichael Stahl
Change-Id: I81860a94b33eba95918c30b0e92b583cc2d02ff3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160969 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-12-12Split --with-update-config=... into many --with-online-update-mar-...=...Stephan Bergmann
...and allow each of them to be left off, for debug purposes, even if that may render the resulting --enable-online-update-mar feature non-functional. This change tracked each item that was potentially read from the --with-update-config ini file, and turned each of them into a new --with-online-update-mar-... option. The only exception and remaining TODO is bin/update/upload_build_config.py (called from Makefile.gbuild). distro-configs/Jenkins/LibreOfficeLinuxUpdater.conf (which might well be dead) set --with-update-config=~/updater.ini with an ini file of unknown content. So that no items are silently missing if we ever resurrect that distro-config, I set all of the new options to =TODO there for now. Change-Id: I17a13e0d190a868436bac10c1b0a6675d8c704c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160622 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-11-16fix --enable-wix switch - that didn't do anythingChristian Lohmaier
it used the wrong variable name in AC_SUBST and also had no place where it would be set for the rest of the build to use. Also the script hardcodes the location of the WiX Toolkit, so check for the same path in configure. Also it was needlessly tied to LIBO_TEST_INSTALL - since it has its own conditional, "double-guarding" it is not necessary. Change-Id: I6dd4a41e63d2a43a3e2f1aac5b6799a6601eb656 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159510 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2023-11-06add --with-system-zxcvbnRene Engelhard
Change-Id: I9a90585d8eb498861a6ef4752ab85dcff8eeaab6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158674 Tested-by: René Engelhard <rene@debian.org> Reviewed-by: René Engelhard <rene@debian.org>
2023-10-05tdf#101970 Introduce config option for building with orBalazs Varga
without the not necessary template files. The default is building with all templates, otherwise we can use: --with-templates=no/yes --with-templates -->yes --without-templates -->no Change-Id: I13f5b411057254771ad4021aa9521c153702af16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157600 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2023-08-18Drop JAVA_CLASSPATH_NOT_SET which is always TRUEMichael Weghorn
The variable was introduced in commit b97cade9183d14ad21ae71892348a9a81689488b Date: Sun Apr 7 12:14:36 2013 -0400 Supress warnings about unset classpath I get the below warning for every single jar file without this patch. warning: [options] bootstrap class path not set in conjunction with -source 1.5 1 warning Change-Id: I71c01aeea993640f1ec86fe1d8a977656861358d , at a time when Java 5 was the minimum version, likely to suppress warnings with JDK versions >= 6 (greater than 1.6.0 to be exact...). The version check was then just bumped along with the Java baseline bumps in commit aafc10c9edb61e13ac557c7e43c8d4a31dce4f37 Date: Fri Jul 26 10:19:39 2019 +0200 Bump Java baseline to Java 8 and commit 941b567a41569260fef14a7337511e8f42337323 Date: Thu May 7 09:42:22 2020 +0200 tdf#131572 Add java 9 module info for libreoffice.jar for no apparent reason. In any case, the variable will always be set to TRUE, since the Java version string is using the actual major version number as the first digit since JDK 9 (while JDK 8 would still use 1.8.x as version string), s.a. upcoming commit Change-Id I79eeb247315499caddd63d6abbb1e14ea6a72a4a ("configure.ac: Update Java check for JDK >= 9 version string"). Drop the variable and set the Java params in `solenv/gbuild/JavaClassSet.mk` unconditionally. Change-Id: Ib4aad07da3937289fc6ff29dd80abdd4c35f1773 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155825 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-02external/skia: Avoid -std:c++20 with known-broken VS-provided clang-clStephan Bergmann
...as witnessed with patch set 1 of <https://gerrit.libreoffice.org/c/core/+/155121/1> "Bump baseline to C++20", > In file included from C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: > In file included from C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/skia\src/base/SkBezierCurves.h:10: > C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/skia\include/private/base/SkSpan_impl.h(122,1): error: C++ requires a type specifier for all declarations > SkSpan(Container&&) -> > ^ > C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp(185,12): error: use of class template 'SkSpan' requires template arguments > return SkSpan{intersectionStorage, intersectionCount}; > ^ > C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/skia\include/private/base/SkSpan_impl.h(64,7): note: template is declared here > class SkSpan { > ^ etc. (<https://ci.libreoffice.org/job/gerrit_windows/160027/>) Change-Id: I6166f1cb49ac1540ec1c4d3bc3331c8b228efa27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155228 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-07-27vcl gtk3: Introduce AT-SPI2 tests for the GTK3 accessibility layerColomban Wendling
Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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-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-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-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-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-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: 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>
2022-12-19keep environment clear of SYSTEM_FOO varsChristian Lohmaier
those are only meant to be used by the build system (primarily RepositoryExternal.mk) - of course no rule without exception: concat-deps reads SYSTEM_BOOST from env, so set it in the corresponding recipe lines Change-Id: I83c88fc6ad4467b429771c43650fe7fc0ccde407 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144343 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-12-15don't export the various language lists and consolidate themChristian Lohmaier
this further frees the environment for Windows builders, to reduce the risk of running into "environment is too large for exec" errors when attempting to use xargs in a recipe. Change-Id: I7e0b97163372018edb12329f24bb1dfafeefc526 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144235 Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>