194 Commits
Author SHA1 Message Date
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
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
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 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
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
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
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 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
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
Andras Timar 948d9c6480 misc_extensions is now empty and can be removed
Change-Id: Ibffac03be5f22852e647340ddc4f5211d0159c4f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180997
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2025-02-01 16:48:01 +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
Michael Stahl 77c921302b argon2: add new external library
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-19 17:25:05 +01:00
Stephan Bergmann 3a445cb497 Turn onlineupdate into external/onlineupdate
...and update to latest Mozilla sources.

Originally, this was a non-external onlineupdate module (plus correspsonding
top-level include/onlineupdate/ directory) that apparently contained sources
originally copied from Mozilla and subsequently modified in-place (plus, mixed
in, presumably some sources that were not copied from Mozilla but were our own
inventions).  To clean up this mess, this has been turned into a proper
external/onlineupdate module with a tarball containing the pristine external
Mozilla sources.

The sources for the onlineupdate-c003be8b9727672e7d30972983b375f4c200233f.tar.xz
tarball are taken, somewhat arbitrarily, from a recent
<https://github.com/mozilla/gecko-dev/commit/c003be8b9727672e7d30972983b375f4c200233f>
("Bug 1867784 - Force reflow all kids in the last column balancing reflow.
r=layout-reviewers,dholbert") trunk state, by running
`external/onlineupdate/generate-sources.sh ~/github.com/mozilla/gecko-dev` on a
Fedora 39 machine.

The layout of the tarball still mostly follows the old onlineupdate/ layout,
even if that deviates heavily from the actual source layout at
<https://github.com/mozilla/gecko-dev/>.  (And some files, which apparently are
not needed, anyway, lacked sources, see the "Missing source for" in
external/onlineupdate/generate-sources.sh.  And win_dirent.h/.cpp has meanwhile
been superseded by updateutils_win.h/.cpp.)  Merely newly included source files
are laid out in the tarball according to the actual source layout.

Any LO-specific modifications are made via patch files (rather than modifying
the sources inline, as was done in the past): external/onlineupdate/lo.patch
contains whatever modifications are needed to adapt the functionality, while
external/onlineupdate/gtk3deprecated.patch fixes

> workdir/UnpackedTarball/onlineupdate/onlineupdate/source/update/updater/progressui_gtk.cpp:97:21: error: use of undeclared identifier 'gtk_vbox_new'; did you mean 'gtk_box_new'?
>    97 |   GtkWidget* vbox = gtk_vbox_new(TRUE, 6);
>       |                     ^~~~~~~~~~~~
>       |                     gtk_box_new

to not use the deprecated gtk_vbox_new, which is hidden because we include
-DGTK_DISABLE_DEPRECATED in our GTK3_CFLAGS as per our configure.ac.

On Windows, the definition of __BYTE_ORDER__ etc. is needed because
workdir/UnpackedTarball/onlineupdate/include/mozilla/ says "Our supported
compilers provide architecture-independent macros for this", but MSVC doesn't
actually, so define here what would implicitly be defined by GCC.  Similarly, on
Windows -U_WIN32_WINNT is needed to undo -D_WIN32_WINNT=0x0601 in
solenv/gbuild/platform/windows.mk, which would cause

> workdir\UnpackedTarball\onlineupdate\include\mozilla/WinHeaderOnlyUtils.h(537): error C2065: 'FILE_ID_INFO': undeclared identifier

etc., despite the #include <windws.h> there.

Curiously, the original gb_CustomTarget_CustomTarget,onlineupdate/generated from
onlineupdate/CustomTarget_generated.mk had to be renamed to
gb_CustomTarget_CustomTarget,external/onlineupdate/generated when the file was
moved to external/onlineupdate/CustomTarget_generated.mk, as otherwise a
top-level `make CustomTarget_onlineupdate/generated` would have failed with "No
rule to make target..."  Also, as there is no gb_CustomTarget_use_unpacked, its
effect has been poorly mimicked for now in
external/onlineupdate/CustomTarget_generated.mk.

Similarly, as there is no gb_WinResTarget_use_unpacked, its effect has been
poorly mimicked for now in external/onlineupdate/WinResTarget_updater.mk.

The original onlineupdate/workben/test_dialog.cxx, which is actually code
written by us, has been moved to external/onlineupdate/workben/test_dialog.cxx.

The original onlineupdate/qa/ sources (which were apparently not used during the
build) have been preserved for now as external/onlineupdate/qa/, for
documentation purposes.

The original onlineupdate/astyle.options (which was apparently not used during
the build) has been removed.

Change-Id: I5ea606202e7837269e7b128e45af2f0b8c277f9e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160492
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-15 11:27:49 +01:00
Rene Engelhard 82a955498b add --with-system-zxcvbn
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-11-06 20:02:07 +01:00
Sarper Akdemir 3d5cafbe17 tdf#157518: external: bundle zxcvbn-c
Integrates zxcvbn-c as a static library.

zxcvbn-c is C/C++ implementation of
https://dropbox.tech/security/zxcvbn-realistic-password-strength-estimation.

This is the first step for introducing a password strength
meter. Some example projects that utilize zxcvbn-c are
KeepassXC, monero-gui.

ExternalProject_zxcvbn-c takes care of the dictionary node
generation bits resulting in the dict-src.h

Then StaticLibrary_zxcvbn-c depends on
ExternalProject_zxcvbn-c and uses the generated bits and the
zxcvbn-c source to compile the library.

It should be possible to get rid of dictionary node
generation bit with a patch that includes a constant
dict-src.h that's what monero-gui does for example. But this
might also obfuscate what dict-src.h is.

Right now the dictionary that is included with zxcvbn-c only
targets English, so that might be something to improve upon.

Change-Id: Ic2b0a558cff341114d69fbdc257979a28bf5c865
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157565
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-10-30 08:17:05 +01:00
Michael Weghorn 809409ca84 tdf#135586 a11y: Make IAccessible2 an external and update it
So far, there was an internal copy of the IAccessible2
IDL file added in 2013, and never updated since then
(except for cosmetic changes like formatting and typo
fixes), and therefore it e.g. doesn't have the
`IA2_ROLE_BLOCK_QUOTE` role needed for tdf#135586.

Drop the outdated internal copy and integrate an up to
date upstream version (current git master) instead.

Instead of duplicating things in an internal copy,
switch to using the usual mechanism for externals.

The IAccessible2 source contains separate .idl files
for the different interfaces, while the previous
interal copy was already the merged IDL file.

Call the IAccessible2 `./concatidl.sh` script to generate
the merged `ia2_api_all.idl`
(s. external/IAccessible2/ExternalProject_IAccessible2.mk)
and adapt the winaccessibility make files to use that
version instead of the internal copy.
(Add a dependency to the target that generates
`ia2_api_all.idl`.)

The tarball was generated from the master branch of the
IAccessible2 git repo [1] as of

    commit 3d8c7f0b833453f761ded6b12d8be431507bfe0b (HEAD -> master, origin/master, origin/HEAD, mygithub/master)
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 13 04:16:03 2023 +0300

        Update no longer working links (#26)

        * Update link to Linux Foundation Trademark Policy
        * Update link to Object Attributes specification

        Signed-off-by: Michael Weghorn <m.weghorn@posteo.de>

using this command:

    $ git archive -o ../IAccessible2-1.3+git20231013.3d8c7f0.tar.gz --prefix=IAccessible2-1.3+git20231013.3d8c7f0/ master

Andrea Gelmini's typo fixes have been upstreamed in [2].

[1] https://github.com/LinuxA11y/IAccessible2
[2] https://github.com/LinuxA11y/IAccessible2/pull/21

Change-Id: I9f19ff55694da5d3a9a8750be8de387cbf6da785
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158427
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-10-25 20:48:07 +02:00
Skyler Grey 8e246331f6 Add a FunctionBasedURPConnection and a websocket URP connector
- FunctionBasedURPConnection is used to enable a client to open a URP
  connection to a fresh Kit instance in COOL.
- This URP connector can be used with that and
  https://github.com/CollaboraOnline/online/pull/6992 to use a Java Uno
  Remote Protocol client over websockets
- For interoperability with existing Collabora Online websockets a
  prefix (urp ) is added to each message sent and a similar prefix
  (urp: ) is expected on each message recieved. This allows sending over
  the same websocket as other data is being transmitted through. If you
  are writing a bridge to work with this, you will need to add/strip the
  prefixes accordingly
- This commit uses Java WebSocket
  (https://github.com/TooTallNate/Java-WebSocket) to send data over
  websockets.

Change-Id: I2bda3d0b988bef7883f9b6829eeb5b7ae8075f27
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151171
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-09-01 16:55:37 +02:00
Rene Engelhard cd9afc213d add --with-system-frozen
Change-Id: Ia09254cab5696fa0a3530fcafa5b48acca631ff2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153208
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-06-18 13:31:37 +02:00
Tomaž Vajngerl 472fec1b45 Add frozen library support - for compile-time dict, set support
Change-Id: I8fa02569ba02048cc3ef02b349aafba1c0cbebb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153173
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-06-17 12:31:07 +02:00
Xisco Fauli 938c899831 tdf#150452: Revert "tdf#130795 use concurrent hashmap in SharedStringPool"
This commit reverts 3749d9af37
which removes the dependency on the external library cuckoo

Without using cuckoo the same file in tdf#130795 takes

real	0m4,892s
user	0m5,298s
sys	0m0,449s

With it, it takes

real	0m4,914s
user	0m5,276s
sys	0m0,444s

pretty much the same time

Change-Id: I4cc9000ac5bf26de22bb9835283ae8d5b3230196
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138435
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-08-17 16:59:14 +02:00
Stephan Bergmann a8485d558f [API CHANGE] Remove deprecated idlc and regmerge from the SDK
* Client code must replace uses of idlc and regmerge with uses of unoidl-write,
  see the changes to odk/examples/ and ure/source/uretext/ in
  40f2aee658 "Provide unoidl-write also for the
  SDK" for examples.

* The new types.rdb format is not compatible with LibreOffice < 4.1.  Clients
  generating extensions containing such files are advised to use appropriate
  LibreOffice-minimal-version elements.

* For compatibility with old extensions, reading the legacy types.rdb format is
  still supported.

* The SDK no longer ships an idl/ sub-directory containing the udkap and offapi
  .idl files (as, unlike idlc, unoidl-write does not need them).
  odk/config/cfgWin.js had to be adapted to look (somewhat arbitrarily) for an
  examples/ sub-directory instead of idl/ when checking for "an sdk folder".
  gb_UnoApi_package_idlfiles became unused and has been removed.

* The idlc and regmerge executables have been removed.  Module idlc has been
  removed except for idlc/test/parser/, which is also used by
  CustomTarget_unoidl/unoidl-write_test, and which may eventually be moved into
  module unoidl.  Module external/ucpp and the corresponding configure options
  have also been removed.

Change-Id: I42a0231699b863b5ebe2bee63bc32c8f79278cc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122363
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-10 17:15:49 +02:00
Julien Nabet a2ffd71f20 build libtiff
Change-Id: Id9b6e1355147c3f68b9922db14f1b4904a05c686
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134650
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-05-20 22:29:00 +02:00
Gabor Kelemen f0ba8e43da Drop unused LanguageTool extension
Do not bundle LanguageTool which is at a 10 year old version (1.7)
while upstream has a lot of new releases (now at version 5.5.x)
It is not bundled by any downstream distributions
so it makes no much sense to keep it integrated here.

Change-Id: Icd2ef151b1b8d0252ffa3db0caaba576f2783fa9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133356
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-04-26 10:08:54 +02:00
Gabor Kelemen 437b3b9d4f Drop unused CT2N extension
It is not bundled by any downstream distributions
so it makes no much sense to keep it integrated here.

Change-Id: I80180e53e050b8b3cd1b173ef01b51e8d706f295
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133355
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-04-26 10:08:30 +02:00
Rene Engelhard 19b0ba55ea add system-dragonbox
Missed in 9eb9083ff2

Change-Id: I1d001b39f55c8504a76bfbdadd1423b414adc9c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130209
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: René Engelhard <rene@debian.org>
2022-02-22 15:53:59 +01:00
Mike Kaganski 9eb9083ff2 Use Dragonbox to implement doubleTo*String*
This header-only library is accurate in decimal representation of
doubles; provides API that allows to create custom representation
- so it's possible to use custom decimal separators and grouping.

This allows to unify all corner cases: integers, numbers close to
DBL_MAX, up-rounding to the next decade.

Note that Dragonbox creates the shortest decimal representation
of the number, that is unambiguously convertible back to the same
number; thus it may hide trailing digits that are unneeded for
such conversion.

The functional changes are minimal, and beneficial:
1. Rounding numbers close to DBL_MAX now takes into account the
bEraseTrailingDecZeros argument, as it should, allowing to have
"1.8E+308" for rounding DBL_MAX to 2 decimals without trailing
zeroes, instead of previous "1.80E+308".
2. Incorrect rounding is fixed in some cases, e.g. 9.9999999999999929
rounded to 10 previously using rtl_math_DecimalPlaces_Max.
3. Representing the number in the shortest way may change display
of some printed numbers. E.g., 5th greatest double is represented
as "1.797693134862315E+308" instead of a bit longer, but giving
the same double on roundtrip, "1.7976931348623149E+308". This would
generally look better for some numbers similar to the famous 0.1,
where users would likely expect more "round" representation where
it's unambiguous (but we still truncate to 15 significant decimals
anyway - so there's no point in pretending to provide exact digits
for actual binary representation).

These are reflected in the unit tests affected by the change.

Change-Id: I05e20274a30eec499593ee3e9ec070e1269232a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129948
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-17 21:46:58 +01:00
Luboš Luňák 60eaa424c5 support for the WebP image format (tdf#114532)
This commit implements a WebP reader and writer for both lossless
and lossy WebP, export dialog options for selecting lossless/lossy
and quality for lossy, and various internal support for the format.

Since writing WebP to e.g. ODT documents would make those images
unreadable by previous versions with no WebP support, support
for that is explicitly disabled in GraphicFilter, to be enabled
somewhen later.

Change-Id: I9b10f6da6faa78a0bb74415a92e9f163c14685f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128920
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-01-31 10:44:29 +01:00
Michael Stahl 023ebf1789 ucb: remove --with-webdav=neon
Remove code in ucb/source/ucp/webdav-neon, and now unused external
neon.

The --with-webdav=no option is retained for now.

Change-Id: I4ce429587e3991fa82009da2f8e4a068abe36435
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126839
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-12-15 15:24:52 +01:00
Michael Stahl f45b7871e7 ucb: remove --with-webdav=serf
Remove code in ucb/source/ucp/webdav, and now unused externals
apr, apr-util, serf.

Change-Id: I31ab8bb1491f5290e175e87f2b30499811c5a359
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126835
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
2021-12-15 15:24:09 +01:00
Noel Grandin 3749d9af37 tdf#130795 use concurrent hashmap in SharedStringPool
we are loading a spreadsheet in parallel here, but the parallel threads
achievei very little actual concurrency because of heavy contention
in the SharedStringPool mutex.

So switch to a concurrent hash map. I looked at a couple of different
ones (including the Folly one), and this was the one with the simplest
resulting code.

This takes my load time from 12.5s to 8s

Change-Id: I04d6d8e11d613b510eb3bc981f3338819b7ac813
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121717
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-09 09:06:45 +02:00
Stephan Bergmann 6de0b1710a Get rid of apache-commons-logging
...using Java 1.4 java.util.logging.Logger instead also for the last remaining
uses in reportbuilder.

(The mention in swext/mediawiki/src/THIRDPARTYLICENSEREADME.html was presumably
a leftover from 4b6ceed4a4 "swext: Wiki Publisher
does not use those apache-commons libraries".)

Change-Id: Ia0bc598fe5844ced11cae497548ec7d09453a99d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113939
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-04-11 10:35:04 +02:00
Michael Weghorn 2fa33c89ff Drop external owncloud-android-lib
It's no longer used by Android Viewer and use in
the online-based Android app has already been removed
in online commit

    commit 2a52d768dd61f2ef8fedccb32f015c9095915935
    Date:   Wed Feb 19 09:05:56 2020 +0100

        android shell: Remove the 'storage framework', we have content providers.

Change-Id: I468c7121eb495eb8b1a8892f14f2c289b94b7a93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112766
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-03-22 07:55:52 +01:00
homeboy445 66e88f46f7 tdf#139778 qrcodegen library removal.
It was replaced by ZXing library.

Change-Id: I49eb809586c7b4ba3a93fd77f804bfc93fead669
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112701
Reviewed-by: René Engelhard <rene@debian.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2021-03-20 21:36:24 +01:00
homeboy445 f72cd65eef tdf#139778 bundle external:zxing lib
Change-Id: I0023f6ce8315427b1a3deaf755e78ae06475b08c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112053
Reviewed-by: René Engelhard <rene@debian.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: René Engelhard <rene@debian.org>
Tested-by: Jenkins
2021-03-20 21:35:30 +01:00
Tor Lillqvist 808e8a8e9e tdf#128136: Build curl, nss, and xmlsec for iOS, too
We must link nss statically, including the three dylibs that normally
are loaded at run-time, because including bare dylibs in an iOS appp
on the App Store is not OK. See
https://developer.apple.com/forums/thread/125796 .

For linking the softokn3 library statically, NSS already had code,
behind NSS_STATIC_SOFTOKEN ifdefs. Introduce two more macros:
NSS_STATIC_FREEBL for the freebl library and NSS_STATIC_PKCS11 for the
nssckbi library.

Turn off parallelism for the sub-make building nss. There seems to be
race conditions or something when running simultaneous instances of
the nsinstall.py script or the nsinstall program in nss (used when
building nss for the build platform).

When cross-compiling from macOS, use python3 to run the nsinstall.py
script, as it is Python 3.

Change-Id: Idd427b5ebf21f802b3feb0d5a3d259317ba8fc67
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103106
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103218
Tested-by: Jenkins
2020-09-23 07:47:55 +02:00
Sarper Akdemir a7f2239e64 external: bundle box2d
Bundled box2d with the build system of LO as a static library.
If --with-system-box2d was specified checks for instance box2d in
the system, defines SYSTEM_BOX2D and uses the library from the system.

Change-Id: Ifb05912f2acaff273b25abebafc5af1cac3afec4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94103
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-05-17 02:21:54 +02:00
Mike Kaganski f3e7004794 tdf#130725: use strtod by David M. Gay to make sure we get the nearest
... representation of given decimal.
Use dtoa.c from https://www.netlib.org/fp/dtoa.c to build a custom
static library that doesn't use current locale (unlike strtod from
stdlib.h).  This is the implementation used by e.g. python and nss
(search for "dtoa.c" under UnpackedTarball).

To avoid name clash with the standard strtod, rename the function
to strtod_nolocale.

Size of buffer on stack in ImpSvNumberInputScan::StringToDouble is
256 characters. Logging function usage in make check, of ~124 600
invocations, the longest string was 14 characters, average being
2.1 characters. So heap allocation is unlikely in scenarios with
intensive function usage.

After std::from_chars is available in baseline compilers, external
library can be dropped, and call to strtod_nolocale replaced with
the standard function.

The artifact at https://dev-www.libreoffice.org/src/dtoa-20180411.tgz
is created with

  mkdir dtoa && mkdir dtoa/src && wget https://www.netlib.org/fp/dtoa.c -O dtoa/src/dtoa.c && \
   printf 'd8bab255476f39ea495c8c8ed164f9077da926e6ca7afb9ad3c56d337c4484fe dtoa/src/dtoa.c' | sha256sum -c && \
   tar -c --owner=0 --group=0 --mode=go=r,u=rw --mtime='Wed, 11 Apr 2018 15:59:39 GMT' dtoa/src/dtoa.c | gzip -n > dtoa-20180411.tgz && \
   printf '0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4 dtoa-20180411.tgz' | sha256sum -c

(where the date "Wed, 11 Apr 2018 15:59:39 GMT" is from
`wget -S https://www.netlib.org/fp/dtoa.c`
"Last-Modified: Wed, 11 Apr 2018 15:59:39 GMT" header).

Change-Id: Ia61b7678e257c4bc1ff193f3f856d611aa5c1a21
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88854
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-02-27 11:02:03 +01:00
Michael Stahl 79084665f0 python3: bundle libffi for GNU/Linux builds
CPython commit f40d4ddff3c800b3c956a5e8820aabe3aa87cddd "Closes #27979:
Remove bundled copy of libffi" causes a bit of a problem because it
turns out that libffi isn't all that stable; there's libffi.so.5 on
CentOS 6, libffi.so.6 on CentOS 7 and libffi.so.7 on
lo_daily_update_gandalf tinderbox.

So we have to bundle it in LO; it's only used on GNU/Linux currently.

CPython commit 32119e10b792ad7ee4e5f951a2d89ddbaf111cc5 "bpo-35947:
Update Windows to the current version of libffi (GH-11797)" also removes
the libffi for MSVC, so in a future python upgrade we will have to build
libffi for MSVC too.

The libffi fork for MacOSX is still in CPython git master.

(regression from b10be5d484)

Change-Id: Ibc20cf8cd3614cf9941b6970662bd930496776b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86493
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-09 17:56:19 +01:00
Luboš Luňák 478f290e45 initial build of the Skia library
Not quite complete yet, missing e.g. Vulkan sources, and the setup
is not completely correct either.

Change-Id: I2283bf12f0d226ff8a34554deae5a7bd69045971
2019-11-27 09:55:05 +01:00
Shubham Goyal b4141cade0 bundle external: qrcodegen
The bundle helps to generate QR code in LO.

Change-Id: Iaa9225a72d15806c929d30951cefd3f3fee8960e
Reviewed-on: https://gerrit.libreoffice.org/73302
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-07-02 12:09:30 +02:00
Michael Stahl a626bdd56d gbuild: rename value OS=IOS to OS=iOS
This gets rid of the horrible hack in gbuild.mk to accomodate the
case-incorrect iOS platform makefiles that cannot be renamed without
upsetting git on file systems that sadly lack the case sensitivity
feature.

Keep the macro defined to IOS though.

Change-Id: I1022bfef4900da00e75fc1ccce786b20f8673234
Reviewed-on: https://gerrit.libreoffice.org/62705
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2018-11-01 16:39:54 +01:00
Tamas Bunth 26b40fcfc6 Moving mysqlc into connectivity as a library
Additionally I erased the remains of the old mysql C++ connector.

Also update the code where the clang plugins were unhappy after moving
the mysqlc module.

Remove mysql-cpp-connector external.

Change-Id: I771cc7afacf5012fc349afb6b36828fb0fee5a66
Reviewed-on: https://gerrit.libreoffice.org/59200
Tested-by: Jenkins
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2018-08-24 17:19:51 +02:00
László Németh f1579d3d6c tdf#117171 support localized number name numbering styles
in page number, chapter and outline numbering
in ~30 languages by integrating libnumbertext library.

- offapi: add linguistic2::NumberText

New NumberingType constants:

- ordinal indicators (1st, 2nd, 3rd...)

- cardinal number names (One, Two, Three...)

- ordinal number names  (First, Second, Third...)

Note: these numberings are parts of OOXML, too.

Plain text files of Libnumbertext's language data
are installed in share/numbertext (similar to
share/fingerprint), allowing further customization.

Change-Id: I4034da0a40a8c926f14a3f591749a89a8d807d5a
Reviewed-on: https://gerrit.libreoffice.org/53313
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
2018-05-03 11:42:20 +02:00
Sophia Schröder f4fc28aedf Revert "Remove dead HSQLDB driver"
We cannot silently convert user data or their used file formats
and then await them to accept it or reinstall an older version.

Let us make a soft change instead of an hard (heart) break
and avoid us to been attacked with fire and forks from our users.

This reverts commit 8d381ae8d6.

Change-Id: Ia153640935e355771acb85cf652f8fe4c21fafbb
Reviewed-on: https://gerrit.libreoffice.org/52731
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2018-04-12 09:09:37 +02:00
Tamas Bunth 8d381ae8d6 Remove dead HSQLDB driver
Change-Id: Id4cfb69079f0150c9cca2626c16df7fab441d916
Reviewed-on: https://gerrit.libreoffice.org/52611
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2018-04-10 11:34:35 +02:00