Read-only LibreOffice core repo - no pull request (use gerrit instead https://gerrit.libreoffice.org/) - don't download zip, use https://dev-www.libreoffice.org/bundles/ instead
Clone or download
RickieES and Gerrit Code Review Update git submodules
* Update dictionaries from branch 'master'
  - Bring shipped Spanish dictionary up to version 2.4
    
    Change-Id: Ie814270a83d7459d402e8e92dab4959f2f0793e5
    Reviewed-on: https://gerrit.libreoffice.org/66654
    Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Latest commit 16c6894 Jan 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.git-hooks git hooks: Tell what to do in another problematic submodules case. Nov 22, 2018
UnoControls Fix typos Nov 9, 2018
accessibility tdf#42949 Fix remaining IWYU warnings in include/vcl/* Jan 18, 2019
android Introduce --enable-android-editing Dec 13, 2018
animations New loplugin:external Sep 17, 2018
apple_remote Following tdf#111561: no need to autorelease "elements" (apple_remote) Oct 12, 2017
avmedia convert "*xxx.get()" to "*xxx" Jan 8, 2019
basctl o3tl::make_unique -> std::make_unique in basctl...bridges Jan 16, 2019
basegfx basegfx: Kill empty .cxx Jan 13, 2019
basic Minimum Supported Version is VS2017 Jan 16, 2019
bean Fix typos Jul 22, 2018
bin find-unneeded-includes: don't propose debug/bitset either Jan 17, 2019
binaryurp Use C++17 nested namespace definitions (in binaryurp) Jan 14, 2019
bridges o3tl::make_unique -> std::make_unique in basctl...bridges Jan 16, 2019
canvas tdf#42949 Fix IWYU warnings in include/toolkit/* Jan 15, 2019
chart2 Fix typo Jan 20, 2019
cli_ure fix signatures of deleted copy/assign operators Nov 2, 2018
codemaker Remove obsolete SAL_FALLTHROUGH completely Dec 8, 2018
comphelper Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
compilerplugins update useunique_ptr loplugin Jan 18, 2019
config_host kde5: remove older kde/tde plugins, and references to that Dec 17, 2018
configmgr Replace uses of rtl/instance.hxx with plain local static vars in conf… Jan 16, 2019
connectivity o3tl::make_unique -> std::make_unique in chart2...cui Jan 18, 2019
cppcanvas convert "*xxx.get()" to "*xxx" Jan 8, 2019
cppu Fix typo Jan 19, 2019
cppuhelper Do not use indexed getToken for a single call Dec 28, 2018
cpputools Reduce OUString operations and use indexed getToken Dec 28, 2018
cui tdf#105225 New background tab page for Search for formatting dialog Jan 18, 2019
dbaccess tdf#42949 Fix remaining IWYU warnings in include/vcl/* Jan 18, 2019
desktop lok: We cannot skip duplicates of SELECTION_START / _END. Jan 17, 2019
dictionaries @ 6811c96 Update git submodules Jan 20, 2019
distro-configs Update Flatpak to OpenJDK11 Jan 3, 2019
drawinglayer tdf#122557 EMF+ Implement Shearing for DrawImage records Jan 17, 2019
dtrans Fix typos Nov 16, 2018
editeng Check OS_FOR_BUILD for behavior of sed executed during build Jan 17, 2019
embeddedobj WIN move native dialog hack into WinScheduler Dec 13, 2018
embedserv o3tl::string_view -> std::string_view (in embedserv) Jan 10, 2019
emfio svm xml dumper: move this from test to vcl Jan 3, 2019
eventattacher New loplugin:external Sep 17, 2018
extensions Minimum Supported Version is VS2017 Jan 16, 2019
external Minimum Supported Version is VS2017 Jan 16, 2019
extras [pt_PT] Added 24 words to autocorrect Dec 27, 2018
filter pass SvxMSDffImportRec around using unique_ptr Jan 18, 2019
forms tdf#42949 Fix IWYU warnings in include/toolkit/* Jan 15, 2019
formula Related: tdf#122301 FREQUENCY() with ForceArrayReturn on caller Jan 16, 2019
fpicker tdf#42949 Fix IWYU warnings in include/vcl/[v-x]* Jan 7, 2019
framework tdf#45904 Move XEnumerationAccess Java test to C++ Jan 17, 2019
helpcompiler remove unnecessary "if (!empty()" checks before loops Nov 29, 2018
helpcontent2 @ 497a508 Update git submodules Jan 19, 2019
hwpfilter Fix typo Dec 28, 2018
i18nlangtag Turn LanguageTag::ScriptType into scoped enum Oct 20, 2018
i18npool Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
i18nutil Fix typo in code Dec 20, 2018
icon-themes Sifr icon theme shapes update Jan 16, 2019
idl loplugin:collapseif in dbaccess..lotuswordpro Nov 6, 2018
idlc idlc: no need to store single OString objects on the heap Dec 22, 2018
include Redaction: Adjust offset for multiple Calc pages Jan 19, 2019
instsetoo_native tdf#122302: Set status message when installing KB2999226 Dec 24, 2018
io use unique_ptr in io Dec 19, 2018
ios Mention this file is outdated Nov 30, 2018
javaunohelper HTML tt -> code in JavaDoc comments Oct 10, 2018
jurt Rename Mac OS X to official name macOS in comments and documentation Nov 29, 2018
jvmaccess Improve re-throwing of UNO exceptions May 25, 2018
jvmfwk Remove obsolete SAL_FALLTHROUGH completely Dec 8, 2018
l10ntools loplugin:stringconstant look for unnecessary OString constructor use Nov 29, 2018
librelogo Adapt LibreLogo.py to Python 3.7 re.sub change Nov 8, 2018
libreofficekit Remove obsolete SAL_FALLTHROUGH completely Dec 8, 2018
lingucomponent Rename Mac OS X to official name macOS in comments and documentation Nov 29, 2018
linguistic tdf#42949 Fix IWYU warnings in include/vcl/[v-x]* Jan 7, 2019
lotuswordpro use unique_ptr in LwpTools::GetSystemDateStyle Jan 7, 2019
m4 Fix typos Dec 14, 2017
nlpsolver tdf#43388: add missing info for Evolutionary Algorithm Solver Jun 26, 2018
o3tl array_view was changed to span in upcoming C++20 Jan 13, 2019
odk Bump copyright year to 2019 Jan 1, 2019
offapi Fix typos in code Jan 20, 2019
officecfg tdf#115228 nouns in UI are uppercase, hence Manage Document Classific… Jan 11, 2019
onlineupdate Rename Mac OS X to official name macOS in comments and documentation Nov 29, 2018
oovbaapi oovbaapi: hack Excel / OptionButton compatibility into Button for now. Sep 17, 2018
oox oox smartart, org chart: fix shape type of connectors Jan 18, 2019
opencl Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
osx Rename Mac OS X to official name macOS in comments and documentation Nov 29, 2018
package Remove obsolete SAL_FALLTHROUGH completely Dec 8, 2018
postprocess kde5: remove older kde/tde plugins, and references to that Dec 17, 2018
pyuno replace double-checked locking patterns with thread safe local statics Nov 4, 2018
qadevOOo tdf#45904 Move XEnumerationAccess Java test to C++ Jan 17, 2019
readlicense_oo update credits Jan 8, 2019
registry Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
remotebridges New loplugin:external Sep 17, 2018
reportbuilder Resolves: tdf#94446 if this is a SQLException in disguise, throw that… Nov 28, 2018
reportdesign tdf#42949 Fix IWYU warnings in include/vcl/[v-x]* Jan 7, 2019
ridljar Fix typo Jul 8, 2018
sal Fix rtl_DoubleLocking::getValue_002 test Jan 17, 2019
salhelper tdf#42949 Fix IWYU warnings in salhelper/ Jan 9, 2019
sax Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
sc Check id in outer loop Jan 20, 2019
scaddins Simplify containers iterations in scaddins, sccomp, scripting Dec 20, 2018
sccomp Simplify containers iterations in scaddins, sccomp, scripting Dec 20, 2018
schema address forward incompatibility of InputRequired default change Dec 13, 2018
scp2 tdf#122302: Set status message when installing KB2999226 Dec 24, 2018
scripting Restore original behavior of MasterScriptProvider::hasByName Dec 20, 2018
sd oox smartart, org chart: fix shape type of connectors Jan 18, 2019
sdext poppler: upgrade to release 0.73.0 Jan 15, 2019
setup_native Small corrections to strings Jan 16, 2019
sfx2 Redaction: Adjust offset for multiple Calc pages Jan 19, 2019
shell convert "*xxx.get()" to "*xxx" Jan 8, 2019
slideshow Drop o3tl/clamp.hxx, use C++17 std::clamp instead Jan 11, 2019
smoketest tdf#120703 PVS: V560 A part of conditional expression is always true/… Nov 25, 2018
solenv Adapt solenv/flatpak-manifest.in to recent download.lst changes Jan 17, 2019
soltools loplugin:unnecessaryparen include more assignments Dec 5, 2018
sot remove unused SotExchangeActionFlags enum values Dec 5, 2018
starmath use unique_ptr in SmXMLExport Jan 18, 2019
stoc Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
store tdf#42949 Fix IWYU warnings in store/source/* Jan 8, 2019
svgio Drop o3tl/clamp.hxx, use C++17 std::clamp instead Jan 11, 2019
svl Related: tdf#122509 prevent access of not existing base format Jan 16, 2019
svtools Redaction: Adjust offset for multiple Calc pages Jan 19, 2019
svx tdf#105225 New background tab page for Search for formatting dialog Jan 18, 2019
sw tdf#92542 add index elements to table context menus in sw modules Jan 20, 2019
swext Help files: http -> https Nov 15, 2018
sysui kde5: remove older kde/tde plugins, and references to that Dec 17, 2018
test Add XDDELinks tests to ScDDELinksObj Jan 18, 2019
testtools Fix typos Nov 19, 2018
toolkit tdf#42949 Fix IWYU warnings in include/toolkit/* Jan 15, 2019
tools Drop o3tl/clamp.hxx, use C++17 std::clamp instead Jan 11, 2019
translations @ 46a65ed Update git submodules Dec 19, 2018
ucb Upgrade external/boost to Boost 1.69.0 Jan 15, 2019
ucbhelper Remove obsolete SAL_FALLTHROUGH completely Dec 8, 2018
udkapi Fix typo Dec 26, 2018
uitest eliminate some noise from uitest failure Jan 16, 2019
unodevtools remove unnecessary "if (!empty()" checks before loops Nov 29, 2018
unoidl Remove obsolete SAL_FALLTHROUGH completely Dec 8, 2018
unoil Use https instead of http Apr 16, 2018
unotest tdf#42949 Fix IWYU warnings in include/comphelper/[m-z]* Oct 8, 2018
unotools Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
unoxml loplugin:singlevalfields in unoxml Dec 6, 2018
ure remove more rtl::OUString and OString prefixes Oct 24, 2018
uui tdf#42949 Fix IWYU warnings in include/vcl/[v-x]* Jan 7, 2019
vbahelper Replace OUStringBuffer::appendCopy with append(std::u16string_view) Jan 11, 2019
vcl GSourceFunc return gboolean Jan 20, 2019
winaccessibility Simplify Jan 13, 2019
wizards Cleaning up Document Converter wizard, moving graphics from bmp to png Dec 10, 2018
writerfilter tdf#121670 ooxmlimport: no columns in page styles, only sections Jan 15, 2019
writerperfect tdf#42949 Fix IWYU warnings in include/vcl/s* Dec 10, 2018
xmerge Fix typos Jul 22, 2018
xmlhelp use unique_ptr in xmlhelp Dec 21, 2018
xmloff tdf#101218 Import layer-set from page Jan 18, 2019
xmlreader Simplify containers iterations in xmlhelp, xmlreader, xmlscript, xmls… Sep 15, 2018
xmlscript remove unnecessary "if (!empty()" checks before loops Nov 29, 2018
xmlsecurity CppunitTest_xmlsecurity_pdfsigning: use CPPUNIT_TEST_FIXTURE() Jan 18, 2019
.buckconfig Add build toolchain to upload LibreOffice API to Maven Central Dec 3, 2015
.buckversion Add build toolchain to upload LibreOffice API to Maven Central Dec 3, 2015
.clang-format Retrofit "KeepEmptyLinesAtTheStartOfBlocks: false" into .clang-format Nov 8, 2017
.editorconfig We have some Objective-C source files, too Dec 1, 2017
.gitattributes Ignore schema files for src tarball generation Aug 30, 2016
.gitignore No more need to generate lo.xcent from lo.xcent.in Dec 18, 2018
.gitmodules uset https:// instead of git:// for submodules Dec 20, 2018
.gitreview git-review integration: .gitreview for core repository added Jul 5, 2012
BUCK Add build toolchain to upload LibreOffice API to Maven Central Dec 3, 2015
COPYING Licencing files Jan 11, 2011
COPYING.LGPL Licencing files Jan 11, 2011
COPYING.MPL Targetted text updates, with seasonable changes before l10n freeze. Dec 13, 2013
Library_merged.mk gbuild: Remove MSVC 2013 legacy code Apr 21, 2017
Makefile.fetch tdf#79022 - Please bundle Source Serif Pro Sep 3, 2018
Makefile.gbuild updater: workaround cygwin python bug around command line arguments Aug 5, 2017
Makefile.in No more need to generate lo.xcent from lo.xcent.in Dec 18, 2018
README.Solaris remove use of Archive::Zip Jun 4, 2016
README.cross Rename Mac OS X to official name macOS in comments and documentation Nov 29, 2018
README.md Bump (Linux) GCC baseline to 7.0.0 Dec 6, 2018
Repository.mk tdf#114635: reimplement TWAIN-based scan using 32-bit shim on Windows Dec 29, 2018
RepositoryExternal.mk upload libcmis 0.5.2 Dec 28, 2018
RepositoryFixes.mk Rename Mac OS X to official name macOS in comments and documentation Nov 29, 2018
RepositoryModule_build.mk migrate to boost::gettext Jul 21, 2017
RepositoryModule_host.mk Moving mysqlc into connectivity as a library Aug 24, 2018
TEMPLATE.SOURCECODE.HEADER Add fill-column: 100 to the Emacs mode line Nov 8, 2016
autogen.sh Better way of enabling Developer Toolset 7 for Jenkins' linux_gcc_rel… Nov 25, 2018
config.guess Update config.{guess,sub} Jan 20, 2018
config.sub Update config.{guess,sub} Jan 20, 2018
config_host.mk.in tdf#114635: reimplement TWAIN-based scan using 32-bit shim on Windows Dec 29, 2018
config_host_lang.mk.in gbuild: allow to react on change in configured langs Mar 25, 2015
configure.ac upgrade to python 3.5.6 Jan 17, 2019
download.lst upgrade to python 3.5.6 Jan 17, 2019
g ./g: don't exit early on ./g checkout -f Jul 2, 2018
install-sh update install-sh to the automake-1.11 version Feb 26, 2012
leak-suppress.txt migrate to boost::gettext Jul 21, 2017
lo.xcent No more need to generate lo.xcent from lo.xcent.in Dec 18, 2018
logerrit Improve error message on ssh login failure. Sep 6, 2017
sanitize-ubsan-blacklist file for ci-based ubsan build Oct 31, 2015
setup.cfg pep8 -> pycodestyle Oct 16, 2018

README.md

LibreOffice

Coverity Scan Build Status CII Best Practices

LibreOffice is an integrated office suite based on copyleft licenses and compatible with most document formats and standards. Libreoffice is backed by The Document Foundation, which represents a large independent community of enterprises, developers and other volunteers moved by the common goal of bringing to the market the best software for personal productivity. LibreOffice is open source, and free to download, use and distribute.

A quick overview of the LibreOffice code structure.

Overview

You can develop for LibreOffice in one of two ways, one recommended and one much less so. First the somewhat less recommended way: it is possible to use the SDK to develop an extension, for which you can read the API docs here and here. This re-uses the (extremely generic) UNO APIs that are also used by macro scripting in StarBasic.

The best way to add a generally useful feature to LibreOffice is to work on the code base however. Overall this way makes it easier to compile and build your code, it avoids any arbitrary limitations of our scripting APIs, and in general is far more simple and intuitive - if you are a reasonably able C++ programmer.

The build chain and runtime baselines

These are the current minimal operating system and compiler versions to run and compile LibreOffice, also used by the TDF builds:

  • Windows:
    • Runtime: Windows 7
    • Build: Cygwin + Visual Studio 2017
  • macOS:
    • Runtime: 10.10
    • Build: 10.13.2 + Xcode 9.3
  • Linux:
    • Runtime: RHEL 6 or CentOS 6
    • Build: either GCC 7.0.0; or Clang 5.0.2 with libstdc++ 7.3.0
  • iOS (only for LibreOfficeKit):
    • Runtime: 11.4 (only support for newer i devices == 64 bit)
    • Build: Xcode 9.3 and iPhone SDK 11.4

If you want to use Clang with the LibreOffice compiler plugins, the minimal version of Clang is 5.0.2. Since Xcode doesn't provide the compiler plugin headers, you have to compile your own Clang to use them on macOS.

You can find the TDF configure switches in the distro-configs/ directory.

To setup your initial build environment on Windows and macOS, we provide the LibreOffice Development Environment (LODE) scripts.

For more information see the build instructions for your platform in the TDF wiki.

The important bits of code

Each module should have a README file inside it which has some degree of documentation for that module; patches are most welcome to improve those. We have those turned into a web page here:

https://docs.libreoffice.org/

However, there are two hundred modules, many of them of only peripheral interest for a specialist audience. So - where is the good stuff, the code that is most useful. Here is a quick overview of the most important ones:

Module Description
sal/ this provides a simple System Abstraction Layer
tools/ this provides basic internal types: 'Rectangle', 'Color' etc.
vcl/ this is the widget toolkit library and one rendering abstraction
framework UNO framework, responsible for building toolbars, menus, status bars, and the chrome around the document using widgets from VCL, and XML descriptions from /uiconfig/ files
sfx2/ legacy core framework used by Writer/Calc/Draw: document model / load/save / signals for actions etc.
svx/ drawing model related helper code, including much of Draw/Impress

Then applications

Module Description
desktop/ this is where the 'main' for the application lives, init / bootstrap. the name dates back to an ancient StarOffice that also drew a desktop
sw/ Writer
sc/ Calc
sd/ Draw / Impress

There are several other libraries that are helpful from a graphical perspective:

Module Description
basegfx/ algorithms and data-types for graphics as used in the canvas
canvas/ new (UNO) canvas rendering model with various backends
cppcanvas/ C++ helper classes for using the UNO canvas
drawinglayer/ View code to render drawable objects and break them down into primitives we can render more easily.

Rules for #include directives (C/C++)

Use the "..." form if and only if the included file is found next to the including file. Otherwise, use the <...> form. (For further details, see the mail Re: C[++]: Normalizing include syntax ("" vs <>).)

The UNO API include files should consistently use double quotes, for the benefit of external users of this API.

loplugin:includeform (compilerplugins/clang/includeform.cxx) enforces these rules.

Finding out more

Beyond this, you can read the README files, send us patches, ask on the mailing list libreoffice@lists.freedesktop.org (no subscription required) or poke people on IRC #libreoffice-dev on irc.freenode.net - we're a friendly and generally helpful mob. We know the code can be hard to get into at first, and so there are no silly questions.