...seen at least with --with-system-python against
python3-3.14.0~rc3-1.fc43.x86_64, causing e.g.
> [FIF] fcfg_database_filters.xcu
> Traceback (most recent call last):
> File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 571, in getFragments
> aFragmentFile = codecs.open(sFragPath, "r", "utf-8")
> File "<frozen codecs>", line 916, in open
> DeprecationWarning: codecs.open() is deprecated. Use open() instead.
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 588, in <module>
> run(sys.argv)
> ~~~^^^^^^^^^^
> File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 290, in run
> aMerger.merge()
> ~~~~~~~~~~~~~^^
> File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 529, in merge
> sBuffer = sBuffer + self.getFragments(\
> ~~~~~~~~~~~~~~~~~^^
> os.path.join(self.m_aFragmentsDir, sSubDir), \
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> sSetName, lFragments, 1)
> ^^^^^^^^^^^^^^^^^^^^^^^^
> File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 574, in getFragments
> raise Exception("fragment \"" + sFragPath + "\" does not exists.")
> Exception: fragment "/home/sberg/lo-plain/core/filter/source/config/fragments/filters/../filters/StarOffice_XML__Base_.xcu" does not exists.
> make: *** [/home/sberg/lo-plain/core/filter/Configuration_filter.mk:81: /home/sberg/lo-plain/core/workdir/XcuFilterFiltersTarget/fcfg_database_filters.xcu] Error 1
to fail
Change-Id: I7de0459ff509009e3bc8afd803003a24b8fdaf41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191349
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
LibreOffice Filters
Filter registration and some simple filters (also descriptions).
Desperate splitting of code into small shared libraries for historical
reasons presumably (OS/2 and Windows 3.x). The libraries produced from
the code in each subdirectory of filter/source/graphicfilter are
graphic format import or export filters. But they don't have uniform
API. Some have either a GraphicImport or GraphicExport entry point,
and are loaded and used in a uniform fashion from code in
svtools/source/filter/filter.cxx. Others have different API and are
loaded from other places. For instance icgm has ImportCGM, and is
loaded and used by sd/source/filter/cgm/sdcgmfilter.cxx (!).
Svgreader is used for "File -> Open" and then to choose the svg file.
For "Insert -> Picture -> From File", see svgio/source/svgreader directory.
Filter Configuration
The filter configuration consists of two parts, the type definition in
filter/source/config/fragments/types/ and the actual filter definition
in filter/source/config/fragments/filters/.
Each file type e.g. text file should be represented by exactly one type definition. This type can then be referenced by several different filters, e.g. calc text, writer text.