953 Commits
Author SHA1 Message Date
Michael Weghorn 363953bde7 Add freetype linker flags for cairo to fix wasm build
Not only the freetype headers, but also freetype linker
flags are needed when building using internal cairo.

Adjust accordingly. (The 'freetype' external already
uses the 'freetype_headers' one, so specifying only
'freetype' is enough.)

This fixes the following build error otherwise seen in
a wasm/Emscripten build after

    commit ea7166ec8b
    Date:   Fri Jul 24 18:01:51 2026 +0300

        vcl: Don’t link against freetype

        It is not used directly anymore.

:

    em++: warning: EXPORT_EXCEPTION_HANDLING_HELPERS is deprecated (getExceptionMessage is exported anyway when ASSERTIONS or EXCEPTION_STACK_TRACES is set, which are set by default at -O0. At -O1 or above, you can export it separately by -sEXPORTED_RUNTIME_METHODS=getExceptionMessage,decrementExceptionRefcount.). Please open a bug if you have a continuing need for this setting [-Wdeprecated]
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Outline_Transform
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Outline_Decompose
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Done_Face
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_New_Face
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Set_Transform
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Set_Char_Size
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_MM_Var
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Var_Design_Coordinates
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Done_MM_Var
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_MM_Var
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Var_Design_Coordinates
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Set_Var_Design_Coordinates
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Done_MM_Var
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Init_FreeType
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Paint
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Paint
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Layer
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Layer
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Load_Glyph
    wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Layer
    wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)

Same also seen in the Tinderbox wasm builds:
https://ci.libreoffice.org/view/tb%20platform%20status/job/lo_daily_tb_linux_wasm/1547/console

Change-Id: Iea8725f9177417cdd3d6e410f693b9ac46d95e78
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211510
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-28 15:26:11 +02:00
Caolán McNamara e8e4c0a88f libxml2: build with cmake's ninja generator on Windows
A: ninja can make use of ccache out of the box
B: ninja participates in the toplevel make job server

The target architecture now comes from the compiler configure selected
instead of the generator's -A.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I86951768ae42a6684b80298ff149af6c8d8d7fb7
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10654
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 29fc77fea92e28dc007781d7f728b67f5b55c58b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210984
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-17 09:02:04 +02:00
Jesus Solis 26eea7a59b external: add libjxl
libjxl is a library for encoding and decoding JPEG XL images

Downloaded from https://github.com/libjxl/libjxl/archive/refs/tags/v0.11.2.tar.gz

Change-Id: Ibb498f96b3576be603ee9a1c3c494d2ac99c403a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207085
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-22 13:33:00 +02:00
Jesus Solis ac3e19d271 external: add brotli
brotli is a lossless compression algorithm using the "stream" format

Downloaded from https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz

Change-Id: Ia5dd6b6e321be4284342068250ae7a6118e192e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208008
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 15:13:53 +02:00
Jesus Solis 20716b38c8 external: add highway
highway is a C++ library that provides portable SIMD/vector intrinsics

Downloaded from https://github.com/google/highway/releases/download/1.4.0/highway-1.4.0.tar.gz

Change-Id: I0e8f0b9a649680e318a0ed7f127ace74310c87bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207706
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 15:13:36 +02:00
Tomaž Vajngerl bfc9cfdecf Remove the lp_solve solver, which CoinMP makes redundant
The Lpsolve solver and the CoinMP solver are both used for the same
thing: a linear model, with optional integer variables by branch
and bound. CoinMP (CLP plus CBC) is the more capable and better
maintained of the two, so the lp_solve one adds a second bundled
dependency and a parallel copy of the solver code for no capability
the other lacks.

Remove the LpsolveSolver component, the bundled lp_solve external
(and its colamd dependency, which only lp_solve used), and all the
build, configure, packaging and license references to them.

A document may still name com.sun.star.comp.Calc.LpsolveSolver as
its engine. SolverSettings now reads that name as the CoinMP
solver, which solves the same model, so such documents keep
working.

The Calc solver test that exercised the engine now uses CoinMP. Its
knapsack model has a single optimal total value of 6987, which fills
the weight capacity of 1000 exactly and which CoinMP finds. The
lp_solve run had returned a suboptimal 6981, so the test now expects
the true optimum.

The build setup changes only take effect after re-running autogen.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Ia14d8c491779873da6b0157aa524056275adf8f5
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3810
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit e77738a7ca7d44fd9d1f852e26d46e3a6d60467b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208038
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-14 12:49:42 +02:00
Michael Stahl a52e9508c6 gbuild: fix bug in gb_LinkTarget__use_python
The problem is that `$(...)` is evaluated by make while parsing, while
the assignments `python_arch_subdir=amd64/` etc are evaluated by `$(eval
...)` in a separate/later phase, so the first time
`gb_LinkTarget__use_python` is used it will be missing the subdirectory.

How this has ever worked is a mystery.

Signed-off-by: Michael Stahl <michael.stahl@collabora.com>
Change-Id: I6a026a37f54eccaf65a4df71b30acd3389373b6b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2551
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
(cherry picked from commit daf016a65c5f9d0ff7f9aaa55020c377a484b350)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208014
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-13 13:59:55 +02:00
Caolán McNamara dce3608001 afdko: upgrade to 5.0.1
txNew, txFree and doSingleFileSet are public now, so the extern_tx
patches go away.

The mergeFonts crash fix is merged upstream.

The noverbose patch is replaced by a SAL logger installed through
slogger::getLogger.

A new fatal-callback patch lets fatal errors raise exceptions, which
appSpecificFree used to do.

afdko 5.0 replaces makeotfexe with addfeatures, drops the typecomp
Type 1 to CFF converter, and rewrites most of c/shared in C++.

hotconv now only reads CFF, so makeotf() first converts its Type 1 input
to bare CFF with tx, the same step the upstream makeotf driver script
performs.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I1e5b6ac8413eb66d81034f4f1d0b7f2e46e12233
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4251
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 6c40019917bd6e88f6b54d0a2d53d64729c64166)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207285
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-26 09:17:58 +02:00
Caolán McNamara 098d0fd1c3 skia: make SK_USER_CONFIG_HEADER relative so ccache can share it
In from-scratch engine builds of two git worktrees the cacheable hit
rate rose from 91.8% to 99.3%.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4857aad79d0aaaff403e88fd72f8d5eae6b55d2a
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3983
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit bd18bc96a30d3af3041590944426691258a8fbc5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206219
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-08 20:33:20 +02:00
Rene Engelhard 17b18f35b2 add --with-system-quickjs
and use ENABLE_QUICKJS instead of the QUICKJS BUILD_TYPE profile in Repository*mk

Change-Id: I0120352bd2f2a0c2eb8d6a00441c74a30c990879
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203285
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-04-30 10:39:37 +02:00
Neil Roberts 7b2006f800 Download and build QuickJS as a static library
Builds QuickJS 0.14.0 as a static library. It is guarded by the configure
option --enable-quickjs/--disable-quickjs which is disabled by default
but enabled for Jenkins builds.

Downloaded from https://github.com/quickjs-ng/quickjs/releases/download/v0.14.0/quickjs-amalgam.zip

Change-Id: I8a62f27fef85c5d45feefb1e479a4dc24cc857a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203217
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-04-30 10:35:48 +02:00
Dan Williams f74c82da52 Also find zxcvbn headers in /usr/include/zxcvbn
configure only looked in /usr/include while Fedora packages put
the headers in /usr/include/zxcvbn/

Change-Id: I905e00840075af093307f56f7e6038840d3e91ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204533
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: René Engelhard <rene@debian.org>
2026-04-28 20:22:08 +02:00
Xisco Fauli 3bb1efbee4 libxml2: migrate to CMake on Windows
In preparation for the upgrade to 2.15

Change-Id: I439cf6d1d113d97b5f23421da018736305eb683e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192827
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-03-30 21:48:48 +02:00
Michael Weghorn 057f491458 tdf#170932 Allow building win vcl plugin alongside --enable-headless
commit 430f603c6a
    Author: Tor Lillqvist <tml@collabora.com>
    Date:   Tue Feb 25 19:52:15 2025 +0200

        Make --enable-headless possible also on Windows, for CODA-W

        [...]

        In the --enable-headless case, freetype, fontconfig and cairo are
        built. For now, cairo is built as a Library (DLL), but fontconfig and
        freetype as StaticLibrary. Possibly should change these to DLLs,
        too. (See preceding commits.) Do not build the vclplug_win.

had introduced support for --enable-headless on
Windows.

As described in the commit message, using the
--enable-headless autogen switch would result in vclplug_win
(i.e. the VCL plugin that provides the UI on Windows)
automatically getting disabled unconditionally.

As described in tdf#170932, this e.g. prevents using
headless mode for document conversion while still
allowing to start LO with a UI with the same build.

Separate the two features:
No longer disable vclplug_win automatically anymore when
--enable-headless is used.
Instead, introduce a new separate --disable-win
autogen switch to explicitly disable the win vcl plugin
(similar to other existing autogen params like
--disable-gtk3 to disable the gtk3 VCL plugin on Linux).

Add that new --disable-win switch to the
CODAWindows distro config, to achieve the original
goal of both enabling headless and disabling vclplug_win
for that build configuration.

Change-Id: I54bc34981327244aa1c8b0aa5b6277ffd1fb4531
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202043
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@iki.fi>
2026-03-19 12:45:03 +01:00
Xisco Fauli 1ec1b40f17 curl: migrate to CMake on Windows
it fails to build without WINBUILD_ACKNOWLEDGE_DEPRECATED with
WARNING:

The winbuild build system is deprecated and will be removed in
September 2025 in favor of the CMake build system.

curl dropped winbuild support in 8.17.
See https://curl.se/ch/8.17.0.html

Change-Id: I236414c670d1d62d82c5a430e2abdbf71a50a2ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201470
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-03-13 09:04:54 +01:00
Tor Lillqvist 430f603c6a Make --enable-headless possible also on Windows, for CODA-W
We variously look at both ENABLE_HEADLESS and USE_HEADLESS_CODE to
check for the --enable-headless case. Are both really needed?

In the --enable-headless case, freetype, fontconfig and cairo are
built. For now, cairo is built as a Library (DLL), but fontconfig and
freetype as StaticLibrary. Possibly should change these to DLLs,
too. (See preceding commits.) Do not build the vclplug_win.

Windows-specific fixes to the headless vcl code, and headless-specific
fixes to some Win32 vcl code. Use <tools/UnixWrappers.h> where
appropriate instead of <unistd.h>, <sys/mman.h>, etc.

fontconfig already has code for Windows, but likely things will break
on machines with a non-ASCII name for the Windows fonts directory, or
for funky font names. Should eventually make it use the new
<tools/UnixWrappers.h>.

Change-Id: Id3a1313083b1c7c44b0b26819c1ffb5138e15bc4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194573
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196980
Tested-by: Tor Lillqvist <tml@iki.fi>
Reviewed-by: Tor Lillqvist <tml@iki.fi>
2026-01-11 08:34:27 +01:00
Caolán McNamara e904a25da2 ENABLE_FONTCONFIG is actually not defined
Change-Id: Iaabcfcab53b7c6ab9b20305d97979d0c978ec598
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194795
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-11-29 01:11:01 +01:00
Jan Holesovsky aad732825e Make it possible to build cairo even on macOS
Change-Id: Iea337f2fdd0f90e2b0612cd2cda9c1ea1f4739a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194792
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-11-28 20:56:17 +01:00
Jan Holesovsky 5d4a689293 Introduce --enable-headless to add it as a possibility on macOS
Change-Id: I3ea0fbdab2d36bf9c9565ed3274eee978ba6764d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194791
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-11-28 20:56:03 +01:00
Xisco Fauli 27d0c9a3db build sqlite3 and lzma on Windows anyway
and use the same config.h in all platforms.
Compiling these libraries only takes a few seconds
so no need to exclude Windows here
it should also fix the win arm64 build

This patch reverts

commit e4421ce01d
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Mon Nov 10 22:35:22 2025 +0100

    sqlite3: don't create a static library on Windows

and part of

commit 1cb84d60d9
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Thu Oct 30 20:11:23 2025 +0100

    external: add lzma

Change-Id: Ia66242d4fef78cf8d99f853db4c9eee2e24c62ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194023
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-11-14 15:20:30 +01:00
Xisco Fauli 1cb84d60d9 external: add lzma
Only needed for Linux and Mac. For Windows
we build it from python3 using liblzma.vcxproj

Add external/lzma/config.patch to remove some defines
causing errors

Downloaded from https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.gz

Change-Id: Ic3317ec54b1da838a10db9e6c3127bf9c33ca146
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193225
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-11-11 21:39:24 +01:00
Xisco Fauli e4421ce01d sqlite3: don't create a static library on Windows
sqlite3 is later compiled on Windows by sqlite3.vcxproj

Change-Id: I77662cb5add82e812e2523a89a3d44b3ae05e095
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193772
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2025-11-11 10:40:34 +01:00
Caolán McNamara 9e18540c73 implement system afdko
by shelling out to call the command line equivalents

note: makeotf is makeotfexe on Fedora

Change-Id: I933c456791ecf0f905f4595175a6d458b1444f89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193343
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-11-03 20:28:29 +01:00
Xisco Fauli 71d738ed14 some janitorial work
after

commit f98ce0f91b
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Mon Oct 27 14:39:23 2025 +0100

    external: Add sqlite3

and

commit 1dfb0c9936
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Tue Sep 23 13:17:41 2025 +0200

    tdf#168512: python3: bundle sqlite3

Based on https://gerrit.libreoffice.org/c/core/+/193225/comments/b7f0a403_822adc42

Change-Id: I82f9dd6b9238df94b5c4619d003f67871885945c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193351
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-11-03 17:15:50 +01:00
Andras Timar 567466b473 tdf#168848 fix cairo build with --enable-python=fully-internal on linux
Change-Id: I1abc8a3c9a7378d8a5d8d9917ae53b8405677e3d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193262
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Jenkins
2025-10-31 18:28:08 +01:00
Mike Kaganski c9de8605fe Fix --with-yrs build on Windows
Change-Id: I0b5d6bdcc6603c8b3e516dae6527bddbc34ae6ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193233
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-10-31 08:10:46 +01:00
Xisco Fauli f98ce0f91b external: Add sqlite3
This is needed to build python's bundled sqlite3 on linux and windows

Downloaded from https://sqlite.org/2025/sqlite-amalgamation-3500400.zip

Change-Id: I5480dc8d325bae59ee8a39ba909447c4470bc4aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193047
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2025-10-29 14:21:22 +01:00
Caolán McNamara 4297095d67 add afdko
for conversion of Type 1 fonts to OTF, see:
https://github.com/adobe-type-tools/afdko

Requires antlr4-cpp-runtime, see:
https://github.com/antlr

Change-Id: Id5845e8f62d09055e140fd987dc2545c7fc0c48d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191202
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit 3d13970f18c6c578a6edd8f9669874ff96ae0143)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192332
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-10-14 17:13:19 +02:00
Caolán McNamara 2645317eac fix the linkdir for internal libpixman
Change-Id: Ie21e83636f6351e1e6f6b4253dd689d327d51803
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192135
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-10-10 09:55:22 +02:00
Stephan Bergmann 23366f93bc external/cairo: Fix Emscripten build
...after 2b515d095d "upgrade pixman and cairo".

For one, building ExternalProject_cairo failed with

> Run-time dependency fontconfig found: NO (tried pkgconfig and cmake)
> Not looking for a fallback subproject for the dependency fontconfig because:
> Use of fallback dependencies is disabled.
>
> meson.build:271:17: ERROR: Dependency 'fontconfig' is required but not found.

and

> Called: `/usr/bin/pkg-config --cflags fontconfig` -> 1
> stderr:
> Package libxml-2.0 was not found in the pkg-config search path.
> Perhaps you should add the directory containing `libxml-2.0.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'libxml-2.0', required by 'fontconfig', not found

in workdir/UnpackedTarball/cairo/builddir/meson-logs/meson-log.txt, because
workdir/UnpackedTarball/fontconfig/fontconfig.pc contains

> Requires.private:  libxml-2.0 >= 2.6

so add workdir/UnpackedTarball/libxml2/libxml-2.0.pc to PKG_CONFIG_PATH (TODO:
even though its contents point to /usr/local? but that seems good enough to get
the build going).

For another,

> [LNK] Executable/soffice.js: wait for lock at Mon Sep 29 10:23:58 AM UTC 2025
> [LNK] Executable/soffice.js: got link lock at Mon Sep 29 10:24:03 AM UTC 2025
> em++: error: /home/sberg/lo-wasm-upstream/core/workdir/UnpackedTarball/pixman/pixman/.libs/libpixman-1.a: No such file or directory ("/home/sberg/lo-wasm-upstream/core/workdir/UnpackedTarball/pixman/pixman/.libs/libpixman-1.a" was expected to be an input file, based on the commandline arguments provided)
> make[1]: *** [/home/sberg/lo-wasm-upstream/core/desktop/Executable_soffice_bin.mk:10: /home/sberg/lo-wasm-upstream/core/instdir/program/soffice.js] Error 1

failed to link, so adapt the path in RepositoryExternal.mk.

Change-Id: I925f4fbcaabd58b0de074575293ba9b5366f2cf6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191623
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-09-29 16:20:17 +02:00
Caolán McNamaraandNoel Grandin 2b515d095d upgrade pixman and cairo
Co-authored-by: Noel Grandin <noel.grandin@collabora.co.uk>

Change-Id: I21b8c772138b544d3192b786a6bae4c64ebcac94
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191199
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-09-27 21:38:46 +02:00
Mike Kaganski b6feccc9a2 Replace dtoa with fast_float for faster string-to-float parsing
fast_float implements C++17 from_chars for floating-point types, which
is still unavailable even in the latest versions of compilers e.g. for
macOS. It is maintained, unlike dtoa; it is said to be adopted as the
from_chars implementation for gcc. It is header-only, which simplifies
many things.

Change-Id: I6b597d4d35a076930e6e35f4f8cff3ca84f48ba1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191248
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-09-21 08:17:39 +02:00
Thorsten Behrens b9ab692883 Cleanup BOOST_SYSTEM_LIB after upgrade to boost 1.89
Fixup after 421a66fc52 which left some
BOOST_SYSTEM_LIB usage, breaking system-boost builds.

Change-Id: I64bdcc163a954927684a83bf1c1ef98238acf9c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191078
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Thorsten Behrens <thorsten.behrens@collabora.com>
Tested-by: Jenkins
2025-09-17 15:00:35 +02:00
Kohei Yoshida d48fddcd20 Upgrade liborcus to 0.21.0
Change-Id: I39bd6d94d03ba7f7c4ce6a2bdd1fb12c1078b42e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191011
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2025-09-16 23:46:00 +02:00
Xisco Fauli 421a66fc52 boost: upgrade to 1_89_0
libs/system/src/error_code.cpp no longer exists in boost so the static
boost_system library can be removed

<https://dev-www.libreoffice.org/src/boost_1_89_0.tar.xz> has been generated (on
Debian 12) with

> $ wget https://archives.boost.io/release/1.89.0/source/boost_1_89_0.tar.bz2
> $ printf '85a33fa22621b4f314f8e85e1a5e2a9363d22e4f4992925d4bb3bc631b5a0c7a boost_1_89_0.tar.bz2' | sha256sum -c # cf. <https://www.boost.org/users/history/version_1_89_0.html>
> boost_1_89_0.tar.bz2: OK
> $ external/boost/repack_tarball.sh boost_1_89_0.tar.bz2
> Unpacking boost_1_89_0.tar.bz2 ...
> Removing unnecessary files ...
> Creating boost_1_89_0.tar.xz ...
> Cleaning up ...
> b3a976c659961f1d7fae9a8e58d6729a11f5473abaf2ef0e623f53777c86475d  boost_1_89_0.tar.xz
> Done.

Change-Id: I1278e7f301b083c692539165293ca5ee7f0ab5ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189876
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2025-09-11 09:48:34 +02:00
Noel Grandin 51d0a6ec74 remove remnants of gendict
the bulk of it was removed in
    commit 14c6cde779
    Author: Jonathan Clark <jonathan@libreoffice.org>
    Date:   Mon Apr 15 17:10:51 2024 -0600
    tdf#49885 Updated CJK BreakIterator to use ICU

Change-Id: I576b992c41c915c091548467b1eab8ac761f7097
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187908
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-07-15 15:29:21 +02:00
Michael Stahl b28efcf06f LOCRDT y-crdt: bundle as external
Unfortunately it has 144 dependencies so hack Makefile.fetch to invoke
cargo fetch to get them all at once, based on the Cargo.lock file
extracted from the tarball; this all ends up in a "cargo" subdirectory
below $TARFILE_LOCATION.

Then $CARGO_HOME must be set consistently in the ExternalProject file
and cargo invoked with --offline to prevent downloading during the
build; altogether uses about 720 MB of storage here.

Change-Id: I6126fdd988f12bf9da48b6c2d9123d349eb7cb96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186903
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
2025-06-24 19:06:51 +02:00
Ujjawal Kumar 8539f39c84 Add MD4C common mark import library
MD4C is Markdown parser implementation in C, compliant with the
CommonMark specification v0.31

Change-Id: Id0ab4d60d9ba9815feb954705d767022fffd5d08
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183850
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2025-06-22 14:03:08 +02:00
Christian Lohmaier 9e348f9c5b no longer add the 64bit windows explorer extensions to the 32bit build
those were from a time where there was 64bit Windows, but no 64bit
builds of LibreOffice/OpenOffice.org - now the only usecase for 32bit
LibreOffice is to use it on 32bit-only machines…

Change-Id: Icf1eacafd9e157788e8ec5a035716327492f5c2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185565
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2025-05-24 23:40:41 +02:00
Michael Stahl 55793ae8c8 LOCRDT fix conditional compilation
Add a config header for this, and split yrs.hxx in two because the
actual libyrs.h is only needed in 2 files.

Change-Id: I30453fda3082f977e328ed56a4a101743ecdd586
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185329
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2025-05-15 09:24:48 +02:00
Christian Lohmaier 9430b6549a use meson as an external when building with fully-internal python
people didn't read configure's warnings and systemwide installed copy of
meson just causes too many conflicts or even if people read the message
they'd still break the idea behind fully-internal python.

If the user specifies MESON in autogen.input it will be called as
specified, if configure autodetects it, it will be prefixed with the
python command used for building.

meson requires python 3.7, so if harfbuzz is enabled configure now also
now checks for that (can by bypassed by setting PYTHON in autogen.input

Change-Id: I6535c9f421fe865b389a87252163ab99d617b7b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185032
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
2025-05-09 19:54:07 +02:00
Tomaž Vajngerl 80e08f59ea make libeot compile on Windows
Compile for Windows with LO infrastructure (not the only external lib
where we do this).

Remove unneeded include of <err.h> in libeot.c that isn't used, but
Windows doesn't have <err.h> - it's a BSD / Linux thing.

Only compile libeot.la and not the eot2ttf binary (which uses err.h so
it doesn't compile on Windows).

Change-Id: I26afb2b7bcf0bdf0d2ce0bdbcfceb10599d599e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185057
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2025-05-09 06:55:09 +02:00
Michael Stahl 8f8034177b LOCRDT editeng,sfx2,sw: experimental yrs collab
This can be enabled in configure via --with-yrs=...; see also README.yrs

Currently this is hardcoded to run over a local named pipe.

Everything related to editengine is implemented in EditDoc and made
accessible via its wrapper classes; everything related to communication
and accessing sw's comment is implemented in sw::DocumentStateManager.

The acceptor starts in SwView::SwView(), once SwPostItMgr exists.

There is a hack in SfxFrameLoader_Impl::load() to fetch the document
that the accepting soffice has loaded, and load it in the connecting
soffice as well.

Change-Id: I89476b5864b70f479bcf15989374c1c65b5da9ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175652
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2025-05-07 13:36:01 +02:00
Akshay Kumar Dubey b410749d30 tdf#137308 - Add zstd build support and decompression classes
Integrate build system support for the Zstandard (zstd) library and
implement the corresponding C++ decompression stream classes, enabling
future use of zstd-compressed streams in ZIP packages.

Build System (Part 2a):
- Add `--with-system-zstd=[yes|no|auto]` configure option.
- Implement system library checks (`zstd.h`, `libzstd`) in configure.ac.
- Define rules (`external/zstd/*`) for downloading and building the
  internal zstd static library (decompression components only).
- Set up necessary CFLAGS/LIBS via configure.ac and config_host.mk.in.
- Configure linking via RepositoryExternal.mk (`gb_LinkTarget__use_zstd`).
- Update auxiliary files (download.lst, distro-configs, etc.).

C++ Implementation (Part 2b):
- Implement `InflateZstd` (in `include/package`) and `InflaterBytesZstd`
  (in `package/inc`) inheriting from `Inflater`/`InflaterBytes`.
- Use the zstd streaming API (`ZSTD_decompressStream`) following the
  existing single-call pattern established by the zlib implementation.
- Manage context (`ZSTD_DCtx`) and input buffer (`ZSTD_inBuffer`) state.
- Handle errors, stream completion (`ret == 0`), and input truncation.
- Add new classes to `package/Library_package2.mk` build.

This completes the infrastructure for zstd decompression support.
The next step (Part 2c) involves adding logic to select the
appropriate Inflater based on the ZIP entry's compression method ID.

Change-Id: Ia673f3f19b6a751ba5225394fcf8c3f145c4ae63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184243
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-05-01 12:18:19 +02:00
Christian Lohmaier 186e9720b1 win: fix dependency issue on libffi for internal python
$(call gb_ExternalExecutable_get_dependencies,python) was incomplete
since at least "import _ctypes" as done by meson requires libffi to be
available in instdir. So depend on the package instead of the project.

Change-Id: I8665aeda74cca994e2ba8591278b4b5c8d9ff2b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183851
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
2025-04-14 18:36:16 +02:00
Xisco Fauli c9057566e3 libjpeg-turbo: upgrade to 3.1.0
Downloaded from https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.0/libjpeg-turbo-3.1.0.tar.gz

Change-Id: Ic9e8c7e4520073da09abf27866aa3cff0b6a0c63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183617
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-03 14:11:41 +02:00
Kohei Yoshida 89285dd322 Upgrade mdds to 3.0.0 and liborcus to 0.20.0
The portion of this change related to the mdds upgrade has been done by Xisco
Fauli via https://gerrit.libreoffice.org/c/core/+/180862

mdds 3.0.0

* external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 is fixed upstream
* external/mdds/use-after-free.patch is fixed upstream

Downloaded from https://gitlab.com/api/v4/projects/mdds%2Fmdds/packages/generic/source/3.0.0/mdds-3.0.0.tar.xz

liborcus 0.20.0

* Pick up superscript and subscript text attributes.
* Update the import of the font underline attributes as well as the
  strikethrough attributes applied to the cells.
* Pick up the underline and strikethrough attributes in rich text
  strings.
* Implementation for the previous auto filter interface has been
  removed for now.

Downloaded from https://gitlab.com/api/v4/projects/orcus%2Forcus/packages/generic/source/0.20.0/liborcus-0.20.0.tar.xz

Change-Id: I93f6e5ab961d707a2bae03a4eca1466c541f086e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181282
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2025-02-08 19:09:57 +01:00
Mike Kaganski ec0a49ecc7 Windows 7-8.1 support was removed, prevent install on these old systems
There is no simple "Windows is 10 or newer" check in MSI, with the
Microsoft policy of "you don't need to know real Windows version".
See also https://developercommunity.visualstudio.com/t/detect-a-windows-version-from-msi/412198

The values that MSI sees (e.g. on my Win11) are:

Property(C): VersionNT = 603
Property(C): VersionNT64 = 603
Property(C): WindowsBuild = 9600

So those can't be used for the check. I use the WINMAJORVER that is
read from registry (Software\Microsoft\Windows NT\CurrentVersion).

There is no more need to check and install UCRT; it was dropped.

Change-Id: Ic02d6aeb965e9684bafd4357f969980f77000e73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178049
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-12-07 20:06:46 +01:00
Caolán McNamara 84ed46d7ee don't need to use dlsym for cairo_surface_set_device_scale...
for bundled cairo case

Change-Id: I8ca48433b3be144d8347defe3831b92cc87d7cbe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175081
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-17 17:49:07 +02:00
Caolán McNamara 3de3f660af add a --with-system-java-websocket
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-09-20 17:43:42 +02:00